@vybestack/llxprt-code-agents 0.10.0-nightly.260613.1adad3b34

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 (176) hide show
  1. package/dist/.last_build +0 -0
  2. package/dist/index.d.ts +10 -0
  3. package/dist/index.js +11 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/src/agents/executor-prompt-builder.d.ts +19 -0
  6. package/dist/src/agents/executor-prompt-builder.js +44 -0
  7. package/dist/src/agents/executor-prompt-builder.js.map +1 -0
  8. package/dist/src/agents/executor-termination.d.ts +22 -0
  9. package/dist/src/agents/executor-termination.js +44 -0
  10. package/dist/src/agents/executor-termination.js.map +1 -0
  11. package/dist/src/agents/executor-validation.d.ts +17 -0
  12. package/dist/src/agents/executor-validation.js +35 -0
  13. package/dist/src/agents/executor-validation.js.map +1 -0
  14. package/dist/src/agents/executor.d.ts +136 -0
  15. package/dist/src/agents/executor.js +874 -0
  16. package/dist/src/agents/executor.js.map +1 -0
  17. package/dist/src/agents/invocation.d.ts +45 -0
  18. package/dist/src/agents/invocation.js +118 -0
  19. package/dist/src/agents/invocation.js.map +1 -0
  20. package/dist/src/agents/recovery.d.ts +75 -0
  21. package/dist/src/agents/recovery.js +107 -0
  22. package/dist/src/agents/recovery.js.map +1 -0
  23. package/dist/src/agents/types.d.ts +149 -0
  24. package/dist/src/agents/types.js +18 -0
  25. package/dist/src/agents/types.js.map +1 -0
  26. package/dist/src/agents/utils.d.ts +15 -0
  27. package/dist/src/agents/utils.js +28 -0
  28. package/dist/src/agents/utils.js.map +1 -0
  29. package/dist/src/compression/CompressionHandler.d.ts +178 -0
  30. package/dist/src/compression/CompressionHandler.js +630 -0
  31. package/dist/src/compression/CompressionHandler.js.map +1 -0
  32. package/dist/src/compression/HighDensityStrategy.d.ts +113 -0
  33. package/dist/src/compression/HighDensityStrategy.js +769 -0
  34. package/dist/src/compression/HighDensityStrategy.js.map +1 -0
  35. package/dist/src/compression/MiddleOutStrategy.d.ts +27 -0
  36. package/dist/src/compression/MiddleOutStrategy.js +347 -0
  37. package/dist/src/compression/MiddleOutStrategy.js.map +1 -0
  38. package/dist/src/compression/OneShotStrategy.d.ts +22 -0
  39. package/dist/src/compression/OneShotStrategy.js +235 -0
  40. package/dist/src/compression/OneShotStrategy.js.map +1 -0
  41. package/dist/src/compression/TopDownTruncationStrategy.d.ts +13 -0
  42. package/dist/src/compression/TopDownTruncationStrategy.js +74 -0
  43. package/dist/src/compression/TopDownTruncationStrategy.js.map +1 -0
  44. package/dist/src/compression/compressionBudgeting.d.ts +34 -0
  45. package/dist/src/compression/compressionBudgeting.js +139 -0
  46. package/dist/src/compression/compressionBudgeting.js.map +1 -0
  47. package/dist/src/compression/compressionStrategyFactory.d.ts +23 -0
  48. package/dist/src/compression/compressionStrategyFactory.js +40 -0
  49. package/dist/src/compression/compressionStrategyFactory.js.map +1 -0
  50. package/dist/src/compression/index.d.ts +16 -0
  51. package/dist/src/compression/index.js +17 -0
  52. package/dist/src/compression/index.js.map +1 -0
  53. package/dist/src/compression/reasoningUtils.d.ts +18 -0
  54. package/dist/src/compression/reasoningUtils.js +22 -0
  55. package/dist/src/compression/reasoningUtils.js.map +1 -0
  56. package/dist/src/compression/utils.d.ts +114 -0
  57. package/dist/src/compression/utils.js +316 -0
  58. package/dist/src/compression/utils.js.map +1 -0
  59. package/dist/src/core/AgentHookManager.d.ts +41 -0
  60. package/dist/src/core/AgentHookManager.js +65 -0
  61. package/dist/src/core/AgentHookManager.js.map +1 -0
  62. package/dist/src/core/ChatSessionFactory.d.ts +50 -0
  63. package/dist/src/core/ChatSessionFactory.js +216 -0
  64. package/dist/src/core/ChatSessionFactory.js.map +1 -0
  65. package/dist/src/core/ConversationManager.d.ts +113 -0
  66. package/dist/src/core/ConversationManager.js +311 -0
  67. package/dist/src/core/ConversationManager.js.map +1 -0
  68. package/dist/src/core/DirectMessageProcessor.d.ts +79 -0
  69. package/dist/src/core/DirectMessageProcessor.js +478 -0
  70. package/dist/src/core/DirectMessageProcessor.js.map +1 -0
  71. package/dist/src/core/IdeContextTracker.d.ts +56 -0
  72. package/dist/src/core/IdeContextTracker.js +207 -0
  73. package/dist/src/core/IdeContextTracker.js.map +1 -0
  74. package/dist/src/core/MessageConverter.d.ts +78 -0
  75. package/dist/src/core/MessageConverter.js +492 -0
  76. package/dist/src/core/MessageConverter.js.map +1 -0
  77. package/dist/src/core/MessageStreamOrchestrator.d.ts +85 -0
  78. package/dist/src/core/MessageStreamOrchestrator.js +448 -0
  79. package/dist/src/core/MessageStreamOrchestrator.js.map +1 -0
  80. package/dist/src/core/MessageStreamTerminalHandler.d.ts +16 -0
  81. package/dist/src/core/MessageStreamTerminalHandler.js +170 -0
  82. package/dist/src/core/MessageStreamTerminalHandler.js.map +1 -0
  83. package/dist/src/core/StreamProcessor.d.ts +105 -0
  84. package/dist/src/core/StreamProcessor.js +660 -0
  85. package/dist/src/core/StreamProcessor.js.map +1 -0
  86. package/dist/src/core/TodoContinuationService.d.ts +74 -0
  87. package/dist/src/core/TodoContinuationService.js +312 -0
  88. package/dist/src/core/TodoContinuationService.js.map +1 -0
  89. package/dist/src/core/TurnProcessor.d.ts +91 -0
  90. package/dist/src/core/TurnProcessor.js +540 -0
  91. package/dist/src/core/TurnProcessor.js.map +1 -0
  92. package/dist/src/core/baseLlmClient.d.ts +115 -0
  93. package/dist/src/core/baseLlmClient.js +231 -0
  94. package/dist/src/core/baseLlmClient.js.map +1 -0
  95. package/dist/src/core/bucketFailoverIntegration.d.ts +62 -0
  96. package/dist/src/core/bucketFailoverIntegration.js +186 -0
  97. package/dist/src/core/bucketFailoverIntegration.js.map +1 -0
  98. package/dist/src/core/chatSession.d.ts +121 -0
  99. package/dist/src/core/chatSession.js +720 -0
  100. package/dist/src/core/chatSession.js.map +1 -0
  101. package/dist/src/core/client.d.ts +132 -0
  102. package/dist/src/core/client.js +524 -0
  103. package/dist/src/core/client.js.map +1 -0
  104. package/dist/src/core/clientHelpers.d.ts +15 -0
  105. package/dist/src/core/clientHelpers.js +122 -0
  106. package/dist/src/core/clientHelpers.js.map +1 -0
  107. package/dist/src/core/clientLlmUtilities.d.ts +30 -0
  108. package/dist/src/core/clientLlmUtilities.js +125 -0
  109. package/dist/src/core/clientLlmUtilities.js.map +1 -0
  110. package/dist/src/core/clientToolGovernance.d.ts +37 -0
  111. package/dist/src/core/clientToolGovernance.js +104 -0
  112. package/dist/src/core/clientToolGovernance.js.map +1 -0
  113. package/dist/src/core/compression-config.d.ts +12 -0
  114. package/dist/src/core/compression-config.js +21 -0
  115. package/dist/src/core/compression-config.js.map +1 -0
  116. package/dist/src/core/coreToolScheduler.d.ts +105 -0
  117. package/dist/src/core/coreToolScheduler.js +453 -0
  118. package/dist/src/core/coreToolScheduler.js.map +1 -0
  119. package/dist/src/core/hookToolRestrictions.d.ts +18 -0
  120. package/dist/src/core/hookToolRestrictions.js +187 -0
  121. package/dist/src/core/hookToolRestrictions.js.map +1 -0
  122. package/dist/src/core/nonInteractiveToolExecutor.d.ts +17 -0
  123. package/dist/src/core/nonInteractiveToolExecutor.js +102 -0
  124. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -0
  125. package/dist/src/core/subagent.d.ts +105 -0
  126. package/dist/src/core/subagent.js +650 -0
  127. package/dist/src/core/subagent.js.map +1 -0
  128. package/dist/src/core/subagentExecution.d.ts +104 -0
  129. package/dist/src/core/subagentExecution.js +275 -0
  130. package/dist/src/core/subagentExecution.js.map +1 -0
  131. package/dist/src/core/subagentOrchestrator.d.ts +84 -0
  132. package/dist/src/core/subagentOrchestrator.js +503 -0
  133. package/dist/src/core/subagentOrchestrator.js.map +1 -0
  134. package/dist/src/core/subagentRuntimeSetup.d.ts +75 -0
  135. package/dist/src/core/subagentRuntimeSetup.js +387 -0
  136. package/dist/src/core/subagentRuntimeSetup.js.map +1 -0
  137. package/dist/src/core/subagentScheduler.d.ts +17 -0
  138. package/dist/src/core/subagentScheduler.js +7 -0
  139. package/dist/src/core/subagentScheduler.js.map +1 -0
  140. package/dist/src/core/subagentToolProcessing.d.ts +51 -0
  141. package/dist/src/core/subagentToolProcessing.js +359 -0
  142. package/dist/src/core/subagentToolProcessing.js.map +1 -0
  143. package/dist/src/core/toolGovernance.d.ts +18 -0
  144. package/dist/src/core/toolGovernance.js +50 -0
  145. package/dist/src/core/toolGovernance.js.map +1 -0
  146. package/dist/src/core/turn.d.ts +47 -0
  147. package/dist/src/core/turn.js +455 -0
  148. package/dist/src/core/turn.js.map +1 -0
  149. package/dist/src/core/turnLogging.d.ts +35 -0
  150. package/dist/src/core/turnLogging.js +80 -0
  151. package/dist/src/core/turnLogging.js.map +1 -0
  152. package/dist/src/index.d.ts +32 -0
  153. package/dist/src/index.js +44 -0
  154. package/dist/src/index.js.map +1 -0
  155. package/dist/src/scheduler/confirmation-coordinator.d.ts +139 -0
  156. package/dist/src/scheduler/confirmation-coordinator.js +443 -0
  157. package/dist/src/scheduler/confirmation-coordinator.js.map +1 -0
  158. package/dist/src/scheduler/result-aggregator.d.ts +127 -0
  159. package/dist/src/scheduler/result-aggregator.js +302 -0
  160. package/dist/src/scheduler/result-aggregator.js.map +1 -0
  161. package/dist/src/scheduler/status-transitions.d.ts +39 -0
  162. package/dist/src/scheduler/status-transitions.js +184 -0
  163. package/dist/src/scheduler/status-transitions.js.map +1 -0
  164. package/dist/src/scheduler/tool-dispatcher.d.ts +40 -0
  165. package/dist/src/scheduler/tool-dispatcher.js +120 -0
  166. package/dist/src/scheduler/tool-dispatcher.js.map +1 -0
  167. package/dist/src/scheduler/tool-executor.d.ts +44 -0
  168. package/dist/src/scheduler/tool-executor.js +117 -0
  169. package/dist/src/scheduler/tool-executor.js.map +1 -0
  170. package/dist/src/scheduler/utils.d.ts +11 -0
  171. package/dist/src/scheduler/utils.js +19 -0
  172. package/dist/src/scheduler/utils.js.map +1 -0
  173. package/dist/src/tools/task.d.ts +128 -0
  174. package/dist/src/tools/task.js +932 -0
  175. package/dist/src/tools/task.js.map +1 -0
  176. package/package.json +54 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../../src/core/subagent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wJAAwJ;AAExJ;;;;GAIG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,kDAAkD,CAAC;AAE/E,OAAO,EAA4B,eAAe,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,EACL,8BAA8B,EAC9B,0BAA0B,GAC3B,MAAM,wDAAwD,CAAC;AAQhE,OAAO,EACL,eAAe,GAGhB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,iCAAiC,EACjC,6BAA6B,EAC7B,uCAAuC,EACvC,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2DAA2D,CAAC;AAKhG,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,iBAAiB,EACjB,gCAAgC,EAChC,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,oBAAoB,EACpB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,iCAAiC,EACjC,8BAA8B,EAC9B,oBAAoB,EACpB,wBAAwB,GAEzB,MAAM,wBAAwB,CAAC;AAIhC,OAAO,EACL,qBAAqB,EACrB,+BAA+B,GAShC,MAAM,mDAAmD,CAAC;AAG3D,yEAAyE;AACzE,2DAA2D;AAE3D;;;;;;;;GAQG;AACH,MAAM,OAAO,aAAa;IAsBb;IACA;IACQ;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAhCnB,MAAM,GAAiB;QACrB,gBAAgB,EAAE,qBAAqB,CAAC,KAAK;QAC7C,YAAY,EAAE,EAAE;KACjB,CAAC;IACe,UAAU,CAAS;IACnB,MAAM,GAAG,IAAI,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC5C,cAAc,GAAG,IAAI,mBAAmB,EAAE,CAAC;IACpD,qBAAqB,GAA2B,IAAI,CAAC;IAC5C,iBAAiB,CAAe;IACzC,kBAAkB,CAAc;IAExC,gDAAgD;IAC/B,WAAW,CAAe;IAE3C,qEAAqE;IACrE,SAAS,CAA6B;IAE9B,aAAa,GAAyC,IAAI,CAAC;IAEnE,uEAAuE;IACvE,YACW,IAAY,EACZ,cAAmC,EAC3B,WAAwB,EACxB,SAAoB,EACpB,YAA0B,EAC1B,gBAAkC,EAClC,mBAAwC,EACxC,wBAAkD,EAClD,MAAc,EACd,UAAuB,EACvB,UAAuB,EACvB,YAA2B,EAC5C,gBAA2C,EAC3C,iBAA+B;QAbtB,SAAI,GAAJ,IAAI,CAAQ;QACZ,mBAAc,GAAd,cAAc,CAAqB;QAC3B,gBAAW,GAAX,WAAW,CAAa;QACxB,cAAS,GAAT,SAAS,CAAW;QACpB,iBAAY,GAAZ,YAAY,CAAc;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,wBAAmB,GAAnB,mBAAmB,CAAqB;QACxC,6BAAwB,GAAxB,wBAAwB,CAA0B;QAClD,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAa;QACvB,eAAU,GAAV,UAAU,CAAa;QACvB,iBAAY,GAAZ,YAAY,CAAe;QAI5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAE3C,oEAAoE;QACpE,IAAI,CAAC,WAAW,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,IAAY,EACZ,gBAAwB,EACxB,YAA0B,EAC1B,WAAwB,EACxB,SAAoB,EACpB,UAAuB,EACvB,YAA2B,EAC3B,YAAsC,EAAE,EACxC,YAA0B;QAE1B,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa,CAAC;QAC9C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QAED,MAAM,SAAS;QACb,+HAA+H;QAC/H,aAAa,CAAC,cAAc,CAAC,KAAK,IAAI,aAAa,CAAC,SAAS,CAAC;QAChE,+HAA+H;QAC/H,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,aAAa,CAAC,YAAY,CAAC;QAC1E,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAC;QACJ,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,kBAAkB,GAAG,MAAM,yBAAyB,CAAC;gBACzD,UAAU;gBACV,SAAS;aACV,CAAC,CAAC;YACH,+CAA+C;YAC/C,UAAU;gBACR,kBAAkB,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,CAAC;QAED,MAAM,gBAAgB,GACpB,SAAS,CAAC,gBAAgB,IAAI,aAAa,CAAC,gBAAgB,CAAC;QAE/D,MAAM,mBAAmB,GAAG,yBAAyB,CACnD,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,SAAS,CAAC,UAAU,EACpB,gBAAgB,EAChB,UAAU,CACX,CAAC;QAEF,MAAM,wBAAwB,GAC5B,SAAS,CAAC,wBAAwB,IAAI,+BAA+B,CAAC;QAExE,MAAM,cAAc,GAAwB,MAAM,CAAC,MAAM,CAAC;YACxD,GAAG,aAAa,CAAC,cAAc;YAC/B,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;QAEH,OAAO,IAAI,aAAa,CACtB,IAAI,EACJ,cAAc,EACd,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,CAAC,gBAAgB,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,gBAAgB,EAChB,SAAS,CAAC,UAAU,EACpB,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,YAAY,CACb,CAAC;IACJ,CAAC;IAEO,gBAAgB,CAAC,eAAgC;QACvD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;YACnC,UAAU,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;YAC3D,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QACH,IAAI,CAAC,kBAAkB,GAAG,GAAG,EAAE;YAC7B,IAAI,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC,CAAC;IACJ,CAAC;IAEO,UAAU,CAAC,eAAgC;QACjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;QAC9D,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC;gBAC7D,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5C,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE;YACnC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC;YAC7D,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5C,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAEO,kBAAkB;QACxB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACjC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,OAAqB;QAC5C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC;YAClC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;YACvD,gBAAgB,EAAE,IAAI,CAAC,MAAM;YAC7B,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC;YAC3D,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,IAAI,CAAC,qBAAqB,GAAG,eAAe,CAAC;QAC7C,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;QACvC,MAAM,oBAAoB,GAAG,gCAAgC,CAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,EACzB,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,IAAI,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;YAC/B,oBAAoB,CAAC,IAAI,CAAC,GAAG,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACzD,CAAC;IAEO,oBAAoB,CAAC,OAAqB;QAChD,MAAM,gBAAgB,GACnB,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAA0B,IAAI,EAAE,CAAC;QACxE,MAAM,kBAAkB,GACtB,gBAAgB,CAAC,MAAM,GAAG,CAAC;YACzB,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;YAC7B,CAAC,CAAC,2DAA2D,CAAC;QAElE,OAAO;YACL;gBACE,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;aACtC;SACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,2BAA2B,CACvC,OAA6B,EAC7B,SAAiB,EACjB,WAAmB,EACnB,WAAmB;QAEnB,MAAM,OAAO,GAAG,0BAA0B,CAAC,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5E,IAAI,OAAO,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,OAAO,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAqB,EACrB,OAEC;QAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC;QACxC,IAAI,gBAAgB,GAAwB,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC;QAE3D,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,GACrD,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACpC,gBAAgB,GAAG,gBAAgB,CAAC;YAEpC,2KAA2K;YAC3K,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,0BAA0B,CACtC,WAAW,EACX,SAAS,EACT,OAAO,CACR,CAAC;gBACF,IAAI,KAAK,CAAC,UAAU;oBAAE,MAAM;gBAE5B,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,GAChD,MAAM,IAAI,CAAC,kBAAkB,CAC3B,IAAI,EACJ,eAAe,EACf,eAAe,EACf,WAAW,EAAE,EACb,OAAO,CACR,CAAC;gBACJ,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;oBAAE,OAAO;gBAEpD,8BAA8B,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;gBAEtD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,0BAA0B,CACxD,aAAa,EACb,SAAS,EACT,eAAe,EACf,OAAO,CACR,CAAC;gBACF,IAAI,YAAY,EAAE,CAAC;oBACjB,eAAe,GAAG,YAAY,CAAC;oBAC/B,SAAS;gBACX,CAAC;gBAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACzD,OAAO,EACP,SAAS,EACT,WAAW,EACX,WAAW,CACZ,CAAC;gBACF,IAAI,CAAC,YAAY;oBAAE,MAAM;gBACzB,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,qBAAqB,CAAC,OAAO,EAAE,CAAC;gBACnE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAoE;QAEpE,OAAO,wBAAwB,CAAC,OAAO,EAAE;YACvC,eAAe,EAAE,qBAAqB,CACpC,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,MAAM,EACX,EAAE,WAAW,EAAE,IAAI,EAAE,CACtB;YACD,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,IAAiB,EACjB,eAA0B,EAC1B,eAAgC,EAChC,SAAiB,EACjB,OAA6B;QAE7B,MAAM,WAAW,GAAG,SAAS,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;QAC5F,+HAA+H;QAC/H,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;QACrE,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACrE,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;QAE9C,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACjC,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;oBAAE,MAAM;gBACnD,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1D,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC;oBAC5B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;oBAC3D,8JAA8J;oBAC9J,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACrB,OAAO,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC;wBAC9D,MAAM,IAAI,KAAK,CACb,QAAQ,CAAC,KAAK,IAAI,iCAAiC,CACpD,CAAC;oBACJ,CAAC;oBACD,8JAA8J;oBAC9J,IAAI,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;wBACvC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;oBAChD,MAAM,UAAU,GACd,KAAK,CAAC,KACP,EAAE,KAAK,CAAC;oBACT,8JAA8J;oBAC9J,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;wBACvB,OAAO,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,KAAK,CAAC;wBAC9D,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,MAAM,gBAAgB,EAAE,CAAC;YAC3B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO;YACL,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;YACzC,YAAY;YACZ,WAAW;SACZ,CAAC;IACJ,CAAC;IAEO,gCAAgC,CACtC,YAAmC;QAEnC,MAAM,WAAW,GAAW,EAAE,CAAC;QAC/B,MAAM,iBAAiB,GAA0B,EAAE,CAAC;QAEpD,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;YACnC,MAAM,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,CAAC;YACtE,MAAM,YAAY,GAAG;gBACnB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,MAAM;aACnB,CAAC;YACF,IAAI,wBAAwB,CAAC,YAAY,EAAE,0BAA0B,CAAC,EAAE,CAAC;gBACvE,SAAS;YACX,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACtC,WAAW,CAAC,IAAI,CACd,GAAG,mBAAmB,CAAC,OAAO,EAAE;oBAC9B,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAC5C,CAAC;IAEO,KAAK,CAAC,0BAA0B,CACtC,YAAmC,EACnC,SAQC,EACD,eAAgC,EAChC,OAA6B;QAE7B,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE3C,MAAM,EAAE,WAAW,EAAE,iBAAiB,EAAE,GACtC,IAAI,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;QAEtD,IAAI,aAAa,GAAW,CAAC,GAAG,WAAW,CAAC,CAAC;QAE7C,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,iBAAiB,GAAG,SAAS,CAAC,mBAAmB,CACrD,eAAe,CAAC,MAAM,CACvB,CAAC;YACF,qDAAqD;YACrD,qDAAqD;YACrD,iBAAiB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAClC,MAAM,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YACpE,MAAM,cAAc,GAAG,MAAM,iBAAiB,CAAC;YAE/C,aAAa,GAAG,aAAa,CAAC,MAAM,CAClC,4BAA4B,CAAC,cAAc,EAAE;gBAC3C,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CACH,CAAC;YACF,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CACnC,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CACvE,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,YAAY,GAAG,2BAA2B,CAC9C,SAAS,CAAC,OAAO,CAAC,IAAI,EACtB,SAAS,CAAC,QAAQ,CAAC,aAAa,EAChC,SAAS,CAAC,QAAQ,CAAC,KAAK,CACzB,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,EAAE,CACH,YAAY,IAAI,CAAC,UAAU,qBAAqB,SAAS,CAAC,OAAO,CAAC,IAAI,MAAM,YAAY,EAAE,CAC7F,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC3C,OAAO,CAAC,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,IAAI,iBAAiB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,IAAI,CAAC;YACd,CAAC;YACD,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,mFAAmF;aAC1F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,gBAAqC,EACrC,gBAAiC;QAEjC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,gBAAgB,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,GAAG,EAAE,CACH,YAAY,IAAI,CAAC,UAAU,iCACzB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CACvD,EAAE,CACL,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC5B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;IACpC,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAqB;QAC3C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK;YAAE,OAAO;QACnB,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,oBAAoB,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAEzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY;gBAC/B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;gBACnD,CAAC,CAAC,MAAM,CAAC;YACX,OAAO,YAAY,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,IAAI,iCAAiC,SAAS,CAAC,MAAM,qBAAqB,OAAO,cAAc,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9K,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACpC,IAAI,eAAe,GAAc,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,IAAI,CAAC;YACH,2KAA2K;YAC3K,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,0BAA0B,CACtC,WAAW,EACX,SAAS,EACT,OAAO,CACR,CAAC;gBACF,IAAI,KAAK,CAAC,UAAU;oBAAE,MAAM;gBAE5B,MAAM,WAAW,GAAG,WAAW,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAAC;gBAC5F,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,EAAE,CACH,YAAY,IAAI,CAAC,UAAU,SAAS,WAAW,aAAa,QAAQ,EAAE,CACzE,CAAC;gBAEF,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CACxD,IAAI,EACJ,eAAe,EACf,SAAS,EACT,eAAe,EACf,WAAW,EACX,OAAO,CACR,CAAC;gBACF,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI;oBAAE,OAAO;gBAEpD,4BAA4B;gBAC5B,MAAM,OAAO,GAAG,0BAA0B,CACxC,WAAW,EACX,SAAS,EACT,OAAO,CACR,CAAC;gBACF,IAAI,OAAO,CAAC,UAAU;oBAAE,MAAM;gBAE9B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAC9D,aAAa,EACb,eAAe,EACf,QAAQ,EACR,WAAW,EACX,OAAO,CACR,CAAC;gBACF,IAAI,CAAC,YAAY;oBAAE,MAAM;gBACzB,eAAe,GAAG,YAAY,CAAC;YACjC,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,qBAAqB,CAAC,OAAO,EAAE,CAAC;gBACnE,oBAAoB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACvC,CAAC;YACD,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;YACpC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QACpC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CACjC,IAAiB,EACjB,eAA0B,EAC1B,SAAgC,EAChC,eAAgC,EAChC,WAAmB,EACnB,OAA6B;QAE7B,MAAM,aAAa,GAAG;YACpB,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;YACxC,MAAM,EAAE;gBACN,WAAW,EAAE,eAAe,CAAC,MAAM;gBACnC,KAAK,EAAE,CAAC,EAAE,oBAAoB,EAAE,SAAS,EAAE,CAAC;aAC7C;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACjD,aAAa,EACb,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,WAAW,EAAE,CAC3E,CAAC;QAEF,MAAM,EACJ,aAAa,EAAE,QAAQ,EACvB,YAAY,EACZ,qBAAqB,EACrB,0BAA0B,GAC3B,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACxC,cAAc,EACd,eAAe,EACf,WAAW,CACZ,CAAC;QACF,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QACjD,CAAC;QAED,IAAI,aAAa,GAAG,QAAQ,CAAC;QAC7B,IAAI,qBAAqB,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,iCAAiC,CAC9C,qBAAqB,EACrB,aAAa,EACb,OAAO,EACP,eAAe,EACf,0BAA0B,CAC3B,CAAC;YACF,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;QACvC,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,cAA0C,EAC1C,eAAgC,EAChC,WAAmB;QAOnB,MAAM,iBAAiB,GAAG,IAAI,eAAe,EAAE,CAAC;QAChD,MAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC;QAC/C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;QAChD,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO,EAAE,CAAC;YACV,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7D,OAAO;gBACL,aAAa,EAAE,EAAE;gBACjB,YAAY,EAAE,EAAE;gBAChB,qBAAqB,EAAE,EAAE;gBACzB,0BAA0B,EAAE,SAAS;aACtC,CAAC;QACJ,CAAC;QAED,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,qBAAqB,GAAG,EAAE,CAAC;QAC/B,IAAI,0BAAgD,CAAC;QACrD,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACxD,MAAM,kBAAkB,GAAG,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,+HAA+H;YAC/H,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACnD,QAAQ,EACR,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,CACnB,CAAC;gBACF,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC1B,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACjE,IAAI,gBAAgB,EAAE,CAAC;oBACrB,OAAO;wBACL,aAAa,EAAE,EAAE;wBACjB,YAAY,EAAE,EAAE;wBAChB,qBAAqB,EAAE,EAAE;wBACzB,0BAA0B;qBAC3B,CAAC;gBACJ,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;oBACxC,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CACjD,IAAI,EACJ,aAAa,EACb,WAAW,CACZ,CAAC;oBACF,0BAA0B;wBACxB,WAAW,CAAC,0BAA0B;4BACtC,0BAA0B,CAAC;oBAC7B,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC;oBACjC,qBAAqB,IAAI,WAAW,CAAC,IAAI,CAAC;gBAC5C,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YAC7C,iBAAiB,CAAC,KAAK,EAAE,CAAC;YAC1B,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACL,aAAa;YACb,YAAY;YACZ,qBAAqB;YACrB,0BAA0B;SAC3B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,QAA6C,EAC7C,eAAgC,EAChC,iBAAkC,EAClC,aAA0B,EAC1B,kBAA0B;QAE1B,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,8BAA8B,CAAC;gBACpC,QAAQ;gBACR,SAAS,EAAE,kBAAkB;gBAC7B,MAAM,EAAE,aAAa;gBACrB,SAAS,EAAE,GAAG,EAAE;oBACd,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;wBAC5C,OAAO;oBACT,CAAC;oBACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC;oBAC7D,iBAAiB,CAAC,KAAK,EAAE,CAAC;oBAC1B,eAAe,CAAC,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC;gBAC5C,CAAC;gBACD,kBAAkB,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE;aAC7C,CAAC,CAAC;QACL,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEO,0BAA0B,CAChC,IAAmD,EACnD,aAA6B,EAC7B,WAAmB;QAEnB,MAAM,YAAY,GAAG,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;QAC/D,MAAM,SAAS,GAAG,uCAAuC,CACvD,KAAK,EACL,YAAY,CACb,CAAC;QACF,MAAM,aAAa,GAAG,iCAAiC,CACrD,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,EAC9B,YAAY,CACb,CAAC;QACF,MAAM,UAAU,GAAG,gCAAgC,CACjD,SAAS,EACT,aAAa,CACd,CAAC;QACF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,aAAa,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,EAAE,CACH,YAAY,IAAI,CAAC,UAAU,aAAa,UAAU,CAAC,MAAM,2BAA2B,WAAW,EAAE,CACpG,CAAC;QACJ,CAAC;QACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;gBAC3B,0BAA0B,EAAE,SAAS;aACtC,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,GAAG,yBAAyB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QACrE,MAAM,YAAY,GAAG,aAAa;aAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;aACxB,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;aAC1D,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,0BAA0B,EAAE,YAAY,EAAE,CAAC;IAC1E,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAC5C,aAA6B,EAC7B,eAAgC,EAChC,QAAgB,EAChB,WAAmB,EACnB,OAA6B;QAE7B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,oBAAoB,CAAC,aAAa,EAAE,eAAe,EAAE,QAAQ,EAAE;gBACpE,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QACD,MAAM,YAAY,GAAG,MAAM,yBAAyB,CAClD,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,MAAM,CACZ,CAAC;QACF,OAAO,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IACjE,CAAC;IAEO,YAAY;QAClB,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAe;QACpB,IACE,IAAI,CAAC,qBAAqB,KAAK,IAAI;YACnC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,KAAK,IAAI,EAClD,CAAC;YACD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,qBAAqB,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACpB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3C,OAAO,YAAY,IAAI,CAAC,UAAU,0BAA0B,MAAM,EAAE,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO;QACL,kCAAkC;QAClC,IACE,IAAI,CAAC,qBAAqB;YAC1B,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,OAAO,EAC1C,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,EAAE,CACH,sBAAsB,IAAI,CAAC,UAAU,8BAA8B,CACtE,CAAC;YACF,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC;QAElC,kDAAkD;QAClD,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,kBAAkB,GAAG,SAAS,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,IAAI,CAAC,UAAU,WAAW,CAAC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,104 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * @fileoverview Execution loop helpers for subagent interactive and
8
+ * non-interactive run modes.
9
+ *
10
+ * Functions here are pure or parameterized — they receive all dependencies
11
+ * via arguments and never import from subagentRuntimeSetup.ts (enforced by
12
+ * ESLint no-restricted-imports).
13
+ *
14
+ * @see project-plans/issue1581/README.md
15
+ */
16
+ import type { DebugLogger } from '@vybestack/llxprt-code-core/debug/DebugLogger.js';
17
+ import type { Config } from '@vybestack/llxprt-code-core/config/config.js';
18
+ import type { Content, FunctionCall } from '@google/genai';
19
+ import type { EmojiFilter } from '@vybestack/llxprt-code-core/filters/EmojiFilter.js';
20
+ import type { GemmaToolCallParser } from '@vybestack/llxprt-code-core/parsers/TextToolCallParser.js';
21
+ import type { ToolRegistryView } from '@vybestack/llxprt-code-core/runtime/AgentRuntimeContext.js';
22
+ import type { SubagentSchedulerFactory } from './subagentScheduler.js';
23
+ import type { CompletedToolCall, OutputUpdateHandler } from './coreToolScheduler.js';
24
+ import { SubagentTerminateMode, type OutputObject, type OutputConfig, type RunConfig } from '@vybestack/llxprt-code-core/core/subagentTypes.js';
25
+ import type { MessageBus } from '@vybestack/llxprt-code-core/confirmation-bus/message-bus.js';
26
+ export interface ExecutionLoopContext {
27
+ readonly output: OutputObject;
28
+ readonly subagentId: string;
29
+ readonly runConfig: RunConfig;
30
+ readonly outputConfig?: OutputConfig;
31
+ readonly emojiFilter?: EmojiFilter;
32
+ readonly textToolParser: GemmaToolCallParser;
33
+ readonly toolsView: ToolRegistryView;
34
+ readonly logger: DebugLogger;
35
+ onMessage?: (message: string) => void;
36
+ }
37
+ export interface TerminationCheck {
38
+ shouldStop: boolean;
39
+ reason?: SubagentTerminateMode;
40
+ }
41
+ /**
42
+ * Check whether the loop should terminate (max_turns or max_time).
43
+ */
44
+ export declare function checkTerminationConditions(turnCounter: number, startTime: number, ctx: Pick<ExecutionLoopContext, 'runConfig' | 'subagentId' | 'output' | 'logger'>): TerminationCheck;
45
+ export interface FilterResult {
46
+ text: string;
47
+ blocked: boolean;
48
+ error?: string;
49
+ }
50
+ /**
51
+ * Apply the emoji filter to a text string, dispatching system feedback via
52
+ * onMessage when in warn mode.
53
+ */
54
+ export declare function filterTextWithEmoji(text: string, ctx: Pick<ExecutionLoopContext, 'emojiFilter' | 'onMessage'>): FilterResult;
55
+ /**
56
+ * After a turn with no tool calls, determine what to send next:
57
+ * - A task-list-completion reminder, or
58
+ * - A nudge for missing output variables, or
59
+ * - null (goal is met — caller should break the loop).
60
+ */
61
+ export declare function checkGoalCompletion(ctx: Pick<ExecutionLoopContext, 'output' | 'outputConfig' | 'subagentId' | 'logger'>, todoReminder: string | null, currentTurn: number): Promise<Content[] | null>;
62
+ export interface NonInteractiveTextResult {
63
+ functionCalls: FunctionCall[];
64
+ cleanedText: string;
65
+ }
66
+ /**
67
+ * Process a non-interactive text response: apply emoji filter, parse
68
+ * textual tool calls via GemmaToolCallParser, update output.final_message.
69
+ */
70
+ export declare function processNonInteractiveTextResponse(textResponse: string, existingFunctionCalls: FunctionCall[], ctx: Pick<ExecutionLoopContext, 'emojiFilter' | 'onMessage' | 'textToolParser' | 'toolsView' | 'output' | 'subagentId' | 'logger'>, resolveToolNameFn: (rawName: string | undefined, toolsView: ToolRegistryView) => string | null, hookRestrictedAllowedTools?: readonly string[]): NonInteractiveTextResult;
71
+ /**
72
+ * Apply emoji filter to interactive streaming text, update output.final_message.
73
+ */
74
+ export declare function processInteractiveTextResponse(textResponse: string, ctx: Pick<ExecutionLoopContext, 'emojiFilter' | 'output'>): void;
75
+ /**
76
+ * Handle errors during execution loop — set terminate reason and final message.
77
+ */
78
+ export declare function handleExecutionError(error: unknown, ctx: Pick<ExecutionLoopContext, 'output' | 'subagentId' | 'logger'>): void;
79
+ /** Context needed to initialize an interactive scheduler. */
80
+ export interface InitSchedulerContext {
81
+ schedulerConfig: Config;
82
+ onMessage?: (message: string) => void;
83
+ messageBus?: MessageBus;
84
+ subagentId: string;
85
+ logger: DebugLogger;
86
+ }
87
+ /** Return type for the completion channel factory. */
88
+ export interface CompletionChannel {
89
+ awaitCompletedCalls: (signal?: AbortSignal) => Promise<CompletedToolCall[]>;
90
+ handleCompletion: (calls: CompletedToolCall[]) => Promise<void>;
91
+ outputUpdateHandler: OutputUpdateHandler;
92
+ }
93
+ /** Creates the resolved-call channel and output handler for an interactive scheduler. */
94
+ export declare function createCompletionChannel(ctx: Pick<InitSchedulerContext, 'onMessage'>): CompletionChannel;
95
+ /** Creates and returns the interactive scheduler and its dispose function. */
96
+ export declare function initInteractiveScheduler(options: {
97
+ schedulerFactory?: SubagentSchedulerFactory;
98
+ } | undefined, ctx: InitSchedulerContext): Promise<{
99
+ scheduler: {
100
+ schedule: (request: import("@vybestack/llxprt-code-core/index.js").ToolCallRequestInfo | import("@vybestack/llxprt-code-core/index.js").ToolCallRequestInfo[], signal: AbortSignal) => Promise<void> | void;
101
+ awaitCompletedCalls: (signal?: AbortSignal) => Promise<CompletedToolCall[]>;
102
+ };
103
+ schedulerDispose: () => Promise<void>;
104
+ }>;
@@ -0,0 +1,275 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { SubagentTerminateMode, } from '@vybestack/llxprt-code-core/core/subagentTypes.js';
7
+ import { createAbortError } from '@vybestack/llxprt-code-core/utils/delay.js';
8
+ import { isHookRestrictedToolCall, setHookRestrictedAllowedToolsOnFunctionCall, } from './hookToolRestrictions.js';
9
+ /**
10
+ * Check whether the loop should terminate (max_turns or max_time).
11
+ */
12
+ export function checkTerminationConditions(turnCounter, startTime, ctx) {
13
+ if (ctx.runConfig.max_turns !== undefined &&
14
+ turnCounter >= ctx.runConfig.max_turns) {
15
+ ctx.output.terminate_reason = SubagentTerminateMode.MAX_TURNS;
16
+ ctx.logger.warn(() => `Subagent ${ctx.subagentId} reached max turns (${ctx.runConfig.max_turns})`);
17
+ return { shouldStop: true, reason: SubagentTerminateMode.MAX_TURNS };
18
+ }
19
+ const durationMin = (Date.now() - startTime) / (1000 * 60);
20
+ if (durationMin >= ctx.runConfig.max_time_minutes) {
21
+ ctx.output.terminate_reason = SubagentTerminateMode.TIMEOUT;
22
+ ctx.logger.warn(() => `Subagent ${ctx.subagentId} reached time limit (${ctx.runConfig.max_time_minutes} minutes)`);
23
+ return { shouldStop: true, reason: SubagentTerminateMode.TIMEOUT };
24
+ }
25
+ return { shouldStop: false };
26
+ }
27
+ /**
28
+ * Apply the emoji filter to a text string, dispatching system feedback via
29
+ * onMessage when in warn mode.
30
+ */
31
+ export function filterTextWithEmoji(text, ctx) {
32
+ if (!ctx.emojiFilter) {
33
+ return { text, blocked: false };
34
+ }
35
+ const result = ctx.emojiFilter.filterText(text);
36
+ if (result.blocked) {
37
+ return {
38
+ text: '',
39
+ blocked: true,
40
+ error: result.error ?? 'Content blocked by emoji filter',
41
+ };
42
+ }
43
+ if (result.systemFeedback && ctx.onMessage) {
44
+ ctx.onMessage(result.systemFeedback);
45
+ }
46
+ const filtered = typeof result.filtered === 'string' ? result.filtered : '';
47
+ return { text: filtered, blocked: false };
48
+ }
49
+ // ---------------------------------------------------------------------------
50
+ // Goal completion check (post-turn)
51
+ // ---------------------------------------------------------------------------
52
+ /**
53
+ * After a turn with no tool calls, determine what to send next:
54
+ * - A task-list-completion reminder, or
55
+ * - A nudge for missing output variables, or
56
+ * - null (goal is met — caller should break the loop).
57
+ */
58
+ export async function checkGoalCompletion(ctx, todoReminder, currentTurn) {
59
+ if (todoReminder) {
60
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} postponing completion until outstanding todos are addressed`);
61
+ return [{ role: 'user', parts: [{ text: todoReminder }] }];
62
+ }
63
+ if (!ctx.outputConfig || Object.keys(ctx.outputConfig.outputs).length === 0) {
64
+ ctx.output.terminate_reason = SubagentTerminateMode.GOAL;
65
+ return null;
66
+ }
67
+ const remainingVars = Object.keys(ctx.outputConfig.outputs).filter((key) => !(key in ctx.output.emitted_vars));
68
+ if (remainingVars.length === 0) {
69
+ ctx.output.terminate_reason = SubagentTerminateMode.GOAL;
70
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} satisfied output requirements on turn ${currentTurn}`);
71
+ return null;
72
+ }
73
+ const nudgeMessage = `You have stopped calling tools but have not emitted the following required variables: ${remainingVars.join(', ')}. Please use the 'self_emitvalue' tool to emit them now, or continue working if necessary.`;
74
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} nudging for outputs: ${remainingVars.join(', ')}`);
75
+ return [{ role: 'user', parts: [{ text: nudgeMessage }] }];
76
+ }
77
+ /**
78
+ * Process a non-interactive text response: apply emoji filter, parse
79
+ * textual tool calls via GemmaToolCallParser, update output.final_message.
80
+ */
81
+ export function processNonInteractiveTextResponse(textResponse, existingFunctionCalls, ctx, resolveToolNameFn, hookRestrictedAllowedTools) {
82
+ const messageToSend = textResponse;
83
+ // Apply emoji filter for callback
84
+ const callbackFilter = filterTextWithEmoji(messageToSend, ctx);
85
+ if (callbackFilter.blocked) {
86
+ ctx.output.terminate_reason = SubagentTerminateMode.ERROR;
87
+ throw new Error(callbackFilter.error ?? 'Content blocked by emoji filter');
88
+ }
89
+ if (ctx.onMessage && callbackFilter.text) {
90
+ ctx.onMessage(callbackFilter.text);
91
+ }
92
+ // Parse textual tool calls
93
+ let cleanedText = messageToSend;
94
+ let functionCalls = [...existingFunctionCalls];
95
+ try {
96
+ const parsedResult = ctx.textToolParser.parse(messageToSend);
97
+ cleanedText = parsedResult.cleanedContent;
98
+ if (parsedResult.toolCalls.length > 0) {
99
+ const synthesized = synthesizeToolCalls(parsedResult.toolCalls, ctx, resolveToolNameFn, hookRestrictedAllowedTools);
100
+ if (synthesized.length > 0) {
101
+ functionCalls = [...functionCalls, ...synthesized];
102
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} extracted ${synthesized.length} tool call(s) from text: ${synthesized
103
+ .map((c) => c.name)
104
+ .join(', ')}`);
105
+ }
106
+ }
107
+ }
108
+ catch (error) {
109
+ ctx.logger.warn(() => `Subagent ${ctx.subagentId} failed to parse textual tool calls: ${error instanceof Error ? error.message : String(error)}`);
110
+ }
111
+ // Apply emoji filter to final message
112
+ const trimmedText = cleanedText.trim();
113
+ if (trimmedText.length > 0) {
114
+ const finalFilter = filterTextWithEmoji(trimmedText, ctx);
115
+ if (finalFilter.blocked) {
116
+ ctx.output.terminate_reason = SubagentTerminateMode.ERROR;
117
+ throw new Error(finalFilter.error ?? 'Content blocked by emoji filter');
118
+ }
119
+ ctx.output.final_message = finalFilter.text;
120
+ }
121
+ const preview = cleanedText.length > 200 ? `${cleanedText.slice(0, 200)}…` : cleanedText;
122
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} model response (truncated): ${preview}`);
123
+ return { functionCalls, cleanedText };
124
+ }
125
+ // ---------------------------------------------------------------------------
126
+ // Interactive text response processing (emoji filter only, no text tool parsing)
127
+ // ---------------------------------------------------------------------------
128
+ /**
129
+ * Apply emoji filter to interactive streaming text, update output.final_message.
130
+ */
131
+ export function processInteractiveTextResponse(textResponse, ctx) {
132
+ if (!textResponse.trim())
133
+ return;
134
+ const filter = filterTextWithEmoji(textResponse.trim(), ctx);
135
+ if (filter.blocked) {
136
+ ctx.output.terminate_reason = SubagentTerminateMode.ERROR;
137
+ throw new Error(filter.error ?? 'Content blocked by emoji filter');
138
+ }
139
+ ctx.output.final_message = filter.text;
140
+ }
141
+ // ---------------------------------------------------------------------------
142
+ // Shared error handling
143
+ // ---------------------------------------------------------------------------
144
+ /**
145
+ * Handle errors during execution loop — set terminate reason and final message.
146
+ */
147
+ export function handleExecutionError(error, ctx) {
148
+ ctx.logger.warn(() => `Error during subagent execution for ${ctx.subagentId}: ${error instanceof Error ? error.message : String(error)}`);
149
+ ctx.output.terminate_reason = SubagentTerminateMode.ERROR;
150
+ ctx.output.final_message ??=
151
+ error instanceof Error ? error.message : String(error);
152
+ }
153
+ function synthesizeToolCalls(toolCalls, ctx, resolveToolNameFn, hookRestrictedAllowedTools) {
154
+ const synthesized = [];
155
+ toolCalls.forEach((call, index) => {
156
+ const normalizedName = resolveToolNameFn(call.name, ctx.toolsView);
157
+ if (!normalizedName) {
158
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} could not map textual tool name '${call.name}' to a registered tool`);
159
+ return;
160
+ }
161
+ const functionCall = {
162
+ id: `parsed_${ctx.subagentId}_${Date.now()}_${index}`,
163
+ name: normalizedName,
164
+ args: call.arguments ?? {},
165
+ };
166
+ setHookRestrictedAllowedToolsOnFunctionCall(functionCall, hookRestrictedAllowedTools);
167
+ if (isHookRestrictedToolCall(functionCall, hookRestrictedAllowedTools)) {
168
+ ctx.logger.debug(() => `Subagent ${ctx.subagentId} skipped hook-restricted textual tool '${functionCall.name}'`);
169
+ return;
170
+ }
171
+ synthesized.push(functionCall);
172
+ });
173
+ return synthesized;
174
+ }
175
+ /** Creates the resolved-call channel and output handler for an interactive scheduler. */
176
+ export function createCompletionChannel(ctx) {
177
+ let pendingCompletedCalls = null;
178
+ let completionResolver = null;
179
+ const awaitCompletedCalls = (signal) => {
180
+ if (pendingCompletedCalls) {
181
+ const calls = pendingCompletedCalls;
182
+ pendingCompletedCalls = null;
183
+ return Promise.resolve(calls);
184
+ }
185
+ if (signal?.aborted === true) {
186
+ return Promise.reject(createAbortError());
187
+ }
188
+ const completionPromise = new Promise((resolve, reject) => {
189
+ const resolveCompletion = (calls) => {
190
+ signal?.removeEventListener('abort', onAbort);
191
+ resolve(calls);
192
+ };
193
+ const onAbort = () => {
194
+ if (completionResolver === resolveCompletion) {
195
+ completionResolver = null;
196
+ }
197
+ signal?.removeEventListener('abort', onAbort);
198
+ reject(createAbortError());
199
+ };
200
+ completionResolver = resolveCompletion;
201
+ signal?.addEventListener('abort', onAbort, { once: true });
202
+ });
203
+ return completionPromise;
204
+ };
205
+ const outputUpdateHandler = (_toolCallId, output) => {
206
+ if (output != null && ctx.onMessage != null) {
207
+ const textOutput = typeof output === 'string'
208
+ ? output
209
+ : output
210
+ .filter((line) => Array.isArray(line))
211
+ .map((line) => line.map((token) => token.text).join(''))
212
+ .join('\n');
213
+ ctx.onMessage(textOutput);
214
+ }
215
+ };
216
+ const handleCompletion = async (calls) => {
217
+ if (completionResolver) {
218
+ completionResolver(calls);
219
+ completionResolver = null;
220
+ }
221
+ else {
222
+ pendingCompletedCalls = calls;
223
+ }
224
+ };
225
+ return { awaitCompletedCalls, handleCompletion, outputUpdateHandler };
226
+ }
227
+ /** Creates and returns the interactive scheduler and its dispose function. */
228
+ export async function initInteractiveScheduler(options, ctx) {
229
+ const channel = createCompletionChannel(ctx);
230
+ const schedulerPromise = options?.schedulerFactory
231
+ ? Promise.resolve(options.schedulerFactory({
232
+ schedulerConfig: ctx.schedulerConfig,
233
+ onAllToolCallsComplete: channel.handleCompletion,
234
+ outputUpdateHandler: channel.outputUpdateHandler,
235
+ onToolCallsUpdate: undefined,
236
+ }))
237
+ : (async () => {
238
+ const sessionId = ctx.schedulerConfig.getSessionId();
239
+ return ctx.schedulerConfig.getOrCreateScheduler(sessionId, {
240
+ outputUpdateHandler: channel.outputUpdateHandler,
241
+ onAllToolCallsComplete: channel.handleCompletion,
242
+ onToolCallsUpdate: undefined,
243
+ getPreferredEditor: () => undefined,
244
+ onEditorClose: () => { },
245
+ }, undefined, { messageBus: ctx.messageBus });
246
+ })();
247
+ let scheduler;
248
+ try {
249
+ scheduler = await schedulerPromise;
250
+ }
251
+ catch (error) {
252
+ ctx.logger.error(() => `Subagent ${ctx.subagentId} failed to create scheduler: ${error instanceof Error ? error.message : String(error)}`);
253
+ throw error;
254
+ }
255
+ let schedulerDispose;
256
+ if (options?.schedulerFactory) {
257
+ if (typeof scheduler.dispose === 'function') {
258
+ schedulerDispose = async () => scheduler.dispose?.();
259
+ }
260
+ else {
261
+ schedulerDispose = async () => { };
262
+ }
263
+ }
264
+ else {
265
+ schedulerDispose = async () => ctx.schedulerConfig.disposeScheduler(ctx.schedulerConfig.getSessionId());
266
+ }
267
+ return {
268
+ scheduler: {
269
+ schedule: scheduler.schedule,
270
+ awaitCompletedCalls: channel.awaitCompletedCalls,
271
+ },
272
+ schedulerDispose,
273
+ };
274
+ }
275
+ //# sourceMappingURL=subagentExecution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagentExecution.js","sourceRoot":"","sources":["../../../src/core/subagentExecution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { Config } from '@vybestack/llxprt-code-core/config/config.js';
7
+ import type { SubagentManager } from '@vybestack/llxprt-code-core/config/subagentManager.js';
8
+ import { type Profile, type ProfileManager } from '@vybestack/llxprt-code-settings';
9
+ import type { SubagentConfig } from '@vybestack/llxprt-code-core/config/types.js';
10
+ import { SubAgentScope } from './subagent.js';
11
+ import type { PromptConfig, RunConfig, ToolConfig, OutputConfig } from '@vybestack/llxprt-code-core/core/subagentTypes.js';
12
+ import { type AgentRuntimeLoaderOptions, type AgentRuntimeLoaderResult } from '@vybestack/llxprt-code-core/runtime/AgentRuntimeLoader.js';
13
+ type RuntimeLoader = (options: AgentRuntimeLoaderOptions) => Promise<AgentRuntimeLoaderResult>;
14
+ type ScopeFactory = typeof SubAgentScope.create;
15
+ export interface SubagentLaunchRequest {
16
+ name: string;
17
+ runConfig?: RunConfig;
18
+ behaviourPrompts?: string[];
19
+ toolConfig?: ToolConfig;
20
+ outputConfig?: OutputConfig;
21
+ }
22
+ export interface SubagentLaunchResult {
23
+ agentId: string;
24
+ scope: SubAgentScope;
25
+ dispose: () => Promise<void>;
26
+ prompt: PromptConfig;
27
+ profile: Profile;
28
+ config: SubagentConfig;
29
+ runtime: AgentRuntimeLoaderResult;
30
+ }
31
+ export interface SubagentOrchestratorOptions {
32
+ subagentManager: SubagentManager;
33
+ profileManager: ProfileManager;
34
+ foregroundConfig: Config;
35
+ runtimeLoader?: RuntimeLoader;
36
+ scopeFactory?: ScopeFactory;
37
+ idFactory?: () => string;
38
+ }
39
+ /**
40
+ * Light-weight orchestrator responsible for resolving subagent configuration,
41
+ * building isolated runtime bundles, and launching {@link SubAgentScope} instances.
42
+ *
43
+ * @plan PLAN-20251029-SUBAGENTORCHESTRATION
44
+ * @requirement REQ-SUBAGENT-ORCH-001, REQ-SUBAGENT-ORCH-002
45
+ */
46
+ export declare class SubagentOrchestrator {
47
+ private readonly options;
48
+ private readonly runtimeLoader;
49
+ private readonly scopeFactory;
50
+ private readonly idFactory;
51
+ private readonly defaultDisabledTools;
52
+ constructor(options: SubagentOrchestratorOptions);
53
+ private buildScopeDispose;
54
+ private createScopeWithEnvironment;
55
+ /**
56
+ * Launches a subagent by name, returning the created {@link SubAgentScope}
57
+ * and associated agent metadata.
58
+ */
59
+ launch(request: SubagentLaunchRequest, signal?: AbortSignal): Promise<SubagentLaunchResult>;
60
+ private throwIfAborted;
61
+ private loadSubagentConfig;
62
+ private buildPromptConfig;
63
+ private buildModelConfig;
64
+ private buildRunConfig;
65
+ private resolveRuntimeProfile;
66
+ private baseSessionId;
67
+ private createRuntimeId;
68
+ private buildContentGeneratorConfig;
69
+ private createSettingsSnapshot;
70
+ private populateProviderSettings;
71
+ private populateAuthSettings;
72
+ private tryLoadApiKeyFromKeyfile;
73
+ private populateCompressionSettings;
74
+ private populateToolAndMiscSettings;
75
+ private populateSettingsService;
76
+ private getNumberSetting;
77
+ private getStringSetting;
78
+ private getStringArraySetting;
79
+ private getSetting;
80
+ private mergeDefaultDisabledTools;
81
+ private createRuntimeState;
82
+ private createRuntimeBundle;
83
+ }
84
+ export {};