agent-tower 0.5.3-beta.4 → 0.5.3-beta.6

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 (161) hide show
  1. package/dist/prompts/team-room-system-shared-protocol.d.ts +2 -0
  2. package/dist/prompts/team-room-system-shared-protocol.d.ts.map +1 -0
  3. package/dist/prompts/team-room-system-shared-protocol.js +112 -0
  4. package/dist/prompts/team-room-system-shared-protocol.js.map +1 -0
  5. package/dist/routes/__tests__/filesystem.test.js +5 -2
  6. package/dist/routes/__tests__/filesystem.test.js.map +1 -1
  7. package/dist/routes/__tests__/git.test.d.ts +2 -0
  8. package/dist/routes/__tests__/git.test.d.ts.map +1 -0
  9. package/dist/routes/__tests__/git.test.js +47 -0
  10. package/dist/routes/__tests__/git.test.js.map +1 -0
  11. package/dist/routes/__tests__/workspaces.test.d.ts +2 -0
  12. package/dist/routes/__tests__/workspaces.test.d.ts.map +1 -0
  13. package/dist/routes/__tests__/workspaces.test.js +85 -0
  14. package/dist/routes/__tests__/workspaces.test.js.map +1 -0
  15. package/dist/routes/filesystem.d.ts.map +1 -1
  16. package/dist/routes/filesystem.js +4 -3
  17. package/dist/routes/filesystem.js.map +1 -1
  18. package/dist/routes/git.d.ts.map +1 -1
  19. package/dist/routes/git.js +32 -0
  20. package/dist/routes/git.js.map +1 -1
  21. package/dist/services/__tests__/project.service.test.js +56 -0
  22. package/dist/services/__tests__/project.service.test.js.map +1 -1
  23. package/dist/services/__tests__/task.service.test.js +49 -0
  24. package/dist/services/__tests__/task.service.test.js.map +1 -1
  25. package/dist/services/__tests__/team-reconciler.service.test.js +15 -9
  26. package/dist/services/__tests__/team-reconciler.service.test.js.map +1 -1
  27. package/dist/services/__tests__/team-run.service.test.js +27 -3
  28. package/dist/services/__tests__/team-run.service.test.js.map +1 -1
  29. package/dist/services/__tests__/team-scheduler.service.test.js +12 -5
  30. package/dist/services/__tests__/team-scheduler.service.test.js.map +1 -1
  31. package/dist/services/__tests__/workspace.service.test.js +49 -1
  32. package/dist/services/__tests__/workspace.service.test.js.map +1 -1
  33. package/dist/services/project-guards.d.ts +4 -0
  34. package/dist/services/project-guards.d.ts.map +1 -1
  35. package/dist/services/project-guards.js +10 -0
  36. package/dist/services/project-guards.js.map +1 -1
  37. package/dist/services/project.service.d.ts +6 -1
  38. package/dist/services/project.service.d.ts.map +1 -1
  39. package/dist/services/project.service.js +31 -29
  40. package/dist/services/project.service.js.map +1 -1
  41. package/dist/services/task.service.d.ts +152 -3
  42. package/dist/services/task.service.d.ts.map +1 -1
  43. package/dist/services/task.service.js +54 -9
  44. package/dist/services/task.service.js.map +1 -1
  45. package/dist/services/team-run.service.d.ts.map +1 -1
  46. package/dist/services/team-run.service.js +11 -2
  47. package/dist/services/team-run.service.js.map +1 -1
  48. package/dist/services/team-scheduler.service.d.ts.map +1 -1
  49. package/dist/services/team-scheduler.service.js +2 -1
  50. package/dist/services/team-scheduler.service.js.map +1 -1
  51. package/dist/services/workspace.service.d.ts.map +1 -1
  52. package/dist/services/workspace.service.js +9 -1
  53. package/dist/services/workspace.service.js.map +1 -1
  54. package/dist/web/assets/{AgentDemoPage-DC61uZJ_.js → AgentDemoPage-BqUFGORQ.js} +1 -1
  55. package/dist/web/assets/{AgentLogo-CGrwilQJ.js → AgentLogo-O_lfAIQi.js} +1 -1
  56. package/dist/web/assets/{ConversationPage-DvD_lYUj.js → ConversationPage-t8BHC8qL.js} +1 -1
  57. package/dist/web/assets/CreateTaskInput-D5aroK_o.js +2 -0
  58. package/dist/web/assets/{DemoPage-BDUjXkK3.js → DemoPage-DohwggTK.js} +1 -1
  59. package/dist/web/assets/{GeneralSettingsPage-DuYC1Vhv.js → GeneralSettingsPage-BqSO35vU.js} +1 -1
  60. package/dist/web/assets/{Icons-BqZeUyTx.js → Icons-B5Qr68Dp.js} +1 -1
  61. package/dist/web/assets/{LoadingPreviewPage-DPA8HxNr.js → LoadingPreviewPage-DBVTXpq2.js} +1 -1
  62. package/dist/web/assets/{McpSettingsPage-BO_Fd_mA.js → McpSettingsPage-B4hjk8Q6.js} +1 -1
  63. package/dist/web/assets/{MemberAvatar-BesdHRgJ.js → MemberAvatar-DmWOKCwf.js} +1 -1
  64. package/dist/web/assets/{NotificationSettingsPage-F5HPtn9-.js → NotificationSettingsPage-DiUyq7V-.js} +1 -1
  65. package/dist/web/assets/{ProfileSettingsPage-DweTPF_t.js → ProfileSettingsPage-BcUtq3sY.js} +1 -1
  66. package/dist/web/assets/{ProjectKanbanPage-taUI2xm6.js → ProjectKanbanPage-klp2fAN1.js} +35 -35
  67. package/dist/web/assets/ProjectSettingsPage-D2gQsbTJ.js +2 -0
  68. package/dist/web/assets/{ProviderSettingsPage-Cio0LIzm.js → ProviderSettingsPage-CX8WeQ3x.js} +1 -1
  69. package/dist/web/assets/{SettingsMasterDetail-BnqVBe7H.js → SettingsMasterDetail-BtiI8TDc.js} +1 -1
  70. package/dist/web/assets/TeamSettingsPage-CZgtzFUH.js +1 -0
  71. package/dist/web/assets/{arc-CYddG-Kz.js → arc-BP5t0cJz.js} +1 -1
  72. package/dist/web/assets/{architectureDiagram-3BPJPVTR-B3RXX4-J.js → architectureDiagram-3BPJPVTR-B4nGdxyB.js} +1 -1
  73. package/dist/web/assets/{arrow-left-CufhOEz9.js → arrow-left-CH7x-bnE.js} +1 -1
  74. package/dist/web/assets/{blockDiagram-GPEHLZMM-a7Dr_zcs.js → blockDiagram-GPEHLZMM-C0obS1hu.js} +1 -1
  75. package/dist/web/assets/{c4Diagram-AAUBKEIU-BLwSao_g.js → c4Diagram-AAUBKEIU-DLOq2msX.js} +1 -1
  76. package/dist/web/assets/channel-ByQ8jatA.js +1 -0
  77. package/dist/web/assets/check-EXzHBr5H.js +1 -0
  78. package/dist/web/assets/{chevron-down-BQyZkT4A.js → chevron-down-CBY3fFTT.js} +1 -1
  79. package/dist/web/assets/{chevron-right-94xg9kiO.js → chevron-right-DZo7j27r.js} +1 -1
  80. package/dist/web/assets/{chevron-up-BZM-aGAU.js → chevron-up-721LBv_e.js} +1 -1
  81. package/dist/web/assets/{chunk-2J33WTMH-CV8jFvSt.js → chunk-2J33WTMH-C07Su0AF.js} +1 -1
  82. package/dist/web/assets/{chunk-4BX2VUAB-DXquqZ4n.js → chunk-4BX2VUAB-DAdn-ED3.js} +1 -1
  83. package/dist/web/assets/{chunk-55IACEB6-BowEEH_6.js → chunk-55IACEB6-BL4-BcAX.js} +1 -1
  84. package/dist/web/assets/{chunk-727SXJPM-Cbn9G9U_.js → chunk-727SXJPM-BmmMDMNV.js} +1 -1
  85. package/dist/web/assets/{chunk-AQP2D5EJ-C-0K23VQ.js → chunk-AQP2D5EJ-CeLsYTvJ.js} +1 -1
  86. package/dist/web/assets/{chunk-FMBD7UC4-BJv0I_Lt.js → chunk-FMBD7UC4-Bs7S01MB.js} +1 -1
  87. package/dist/web/assets/{chunk-ND2GUHAM-DJBjsrJO.js → chunk-ND2GUHAM-uqytV5JO.js} +1 -1
  88. package/dist/web/assets/{chunk-QZHKN3VN-CBw_GG0t.js → chunk-QZHKN3VN-DGM3LKCe.js} +1 -1
  89. package/dist/web/assets/{circle-alert-lbce0dXY.js → circle-alert-Dkp6R_Ml.js} +1 -1
  90. package/dist/web/assets/classDiagram-4FO5ZUOK-BTR6CDm1.js +1 -0
  91. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-BTR6CDm1.js +1 -0
  92. package/dist/web/assets/{code-block-OCS4YCEC-CRG-xCnX.js → code-block-OCS4YCEC-C_fs5i5h.js} +1 -1
  93. package/dist/web/assets/{confirm-dialog-Cnw_rxtM.js → confirm-dialog-IGqDL03n.js} +1 -1
  94. package/dist/web/assets/{cose-bilkent-S5V4N54A-DCNqQrFt.js → cose-bilkent-S5V4N54A-2VABc7UM.js} +1 -1
  95. package/dist/web/assets/{dagre-BM42HDAG-oecZRFap.js → dagre-BM42HDAG-D0-HOAOA.js} +1 -1
  96. package/dist/web/assets/{diagram-2AECGRRQ-BXx6WNMi.js → diagram-2AECGRRQ-Cyt7AAOQ.js} +1 -1
  97. package/dist/web/assets/{diagram-5GNKFQAL-Bu66xpEW.js → diagram-5GNKFQAL-BBv9SoKB.js} +1 -1
  98. package/dist/web/assets/{diagram-KO2AKTUF-ZGMyoO90.js → diagram-KO2AKTUF-DV5NTHkX.js} +1 -1
  99. package/dist/web/assets/{diagram-LMA3HP47-riQUwPgu.js → diagram-LMA3HP47-eNPojcJF.js} +1 -1
  100. package/dist/web/assets/{diagram-OG6HWLK6-H_PHYJoy.js → diagram-OG6HWLK6-DYNkChUG.js} +1 -1
  101. package/dist/web/assets/{erDiagram-TEJ5UH35-ePGpWuWD.js → erDiagram-TEJ5UH35-ZXZ2vyVY.js} +1 -1
  102. package/dist/web/assets/{flowDiagram-I6XJVG4X-BZUDzSVZ.js → flowDiagram-I6XJVG4X-E8oqHUJx.js} +1 -1
  103. package/dist/web/assets/{folder-Ca5RFac7.js → folder-BxT7ExMF.js} +1 -1
  104. package/dist/web/assets/folder-picker-57gIIPSi.js +1 -0
  105. package/dist/web/assets/{ganttDiagram-6RSMTGT7-D2UOmWEL.js → ganttDiagram-6RSMTGT7-CEAjt7Nr.js} +1 -1
  106. package/dist/web/assets/{gitGraphDiagram-PVQCEYII-DEzWWRW3.js → gitGraphDiagram-PVQCEYII-3dNQBESX.js} +1 -1
  107. package/dist/web/assets/{index-M-QRACZK.js → index-B2TV-FU2.js} +3 -3
  108. package/dist/web/assets/index-D1vY2KQU.css +1 -0
  109. package/dist/web/assets/{index-JK3A62-g.js → index-DhYpUXuu.js} +4 -4
  110. package/dist/web/assets/{infoDiagram-5YYISTIA-BNClnI_5.js → infoDiagram-5YYISTIA-DkDDpqvX.js} +1 -1
  111. package/dist/web/assets/{input-7UYarzFy.js → input-CupQF5Np.js} +1 -1
  112. package/dist/web/assets/{ishikawaDiagram-YF4QCWOH-B1aSs8GW.js → ishikawaDiagram-YF4QCWOH-BSm79ZFA.js} +1 -1
  113. package/dist/web/assets/{journeyDiagram-JHISSGLW-DlXxUTcw.js → journeyDiagram-JHISSGLW-BCP6kLky.js} +1 -1
  114. package/dist/web/assets/{kanban-definition-UN3LZRKU-Ctkuw8kN.js → kanban-definition-UN3LZRKU-jzLQwKw3.js} +1 -1
  115. package/dist/web/assets/{layers-C89p38EX.js → layers-CCP9NEZU.js} +1 -1
  116. package/dist/web/assets/{linear--QsFiowO.js → linear-DWq5jvYH.js} +1 -1
  117. package/dist/web/assets/{loader-circle-DolxjVmY.js → loader-circle-RvIxJahM.js} +1 -1
  118. package/dist/web/assets/{mermaid-NOHMQCX5-CW_FGpKP.js → mermaid-NOHMQCX5-v8DEF9xx.js} +3 -3
  119. package/dist/web/assets/{message-square-KV4Azzxs.js → message-square-tSoG7yGO.js} +1 -1
  120. package/dist/web/assets/{mindmap-definition-RKZ34NQL-Dm6rZMiM.js → mindmap-definition-RKZ34NQL-C5FxGBPQ.js} +1 -1
  121. package/dist/web/assets/{modal-PZSR91HW.js → modal-Dc2shjmi.js} +1 -1
  122. package/dist/web/assets/{pencil-9lMJOuw2.js → pencil-BOmVWDhP.js} +1 -1
  123. package/dist/web/assets/{pieDiagram-4H26LBE5-DbQPjRBP.js → pieDiagram-4H26LBE5-CmWVRs82.js} +1 -1
  124. package/dist/web/assets/{quadrantDiagram-W4KKPZXB-DeRrMc4Y.js → quadrantDiagram-W4KKPZXB-B4s3NNDO.js} +1 -1
  125. package/dist/web/assets/{requirementDiagram-4Y6WPE33-aajAoXSH.js → requirementDiagram-4Y6WPE33-C2KmzOV2.js} +1 -1
  126. package/dist/web/assets/{rotate-ccw-D7tnDKF_.js → rotate-ccw-BJfFrvl2.js} +1 -1
  127. package/dist/web/assets/{sankeyDiagram-5OEKKPKP-DWsta0ns.js → sankeyDiagram-5OEKKPKP-CJbPnzq8.js} +1 -1
  128. package/dist/web/assets/{select-CTiftuHJ.js → select-C_UWYFsQ.js} +1 -1
  129. package/dist/web/assets/{sequenceDiagram-3UESZ5HK-BGBP9NTB.js → sequenceDiagram-3UESZ5HK-BFea2ow4.js} +1 -1
  130. package/dist/web/assets/{stateDiagram-AJRCARHV-Dl0Q7uMb.js → stateDiagram-AJRCARHV-osdtBRSX.js} +1 -1
  131. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-ChsboHHf.js +1 -0
  132. package/dist/web/assets/{switch-BhqMnTiu.js → switch-C6O0UllM.js} +1 -1
  133. package/dist/web/assets/{terminal-BR0PXV2W.js → terminal-BKrr_mRJ.js} +1 -1
  134. package/dist/web/assets/{textarea-eWIZ3eZW.js → textarea-Cj61Z7ha.js} +1 -1
  135. package/dist/web/assets/{timeline-definition-PNZ67QCA-DuDIvs1s.js → timeline-definition-PNZ67QCA-BlXV0jf2.js} +1 -1
  136. package/dist/web/assets/{trash-2-C7F85sIB.js → trash-2-D2zJVeEr.js} +1 -1
  137. package/dist/web/assets/{upload-CQTsuurY.js → upload-Q5mYpwnh.js} +1 -1
  138. package/dist/web/assets/{use-profiles-Btexu_oH.js → use-profiles-BSYIQUHp.js} +1 -1
  139. package/dist/web/assets/{use-providers-BEPU5ALg.js → use-providers-Ct5qGj1d.js} +1 -1
  140. package/dist/web/assets/{useNormalizedLogs-CvCCSYxy.js → useNormalizedLogs-DqPhzW9t.js} +1 -1
  141. package/dist/web/assets/{vennDiagram-CIIHVFJN-BDyKeyr8.js → vennDiagram-CIIHVFJN-CCuhn7zI.js} +1 -1
  142. package/dist/web/assets/{wardley-L42UT6IY-DAOA5Zsv.js → wardley-L42UT6IY-Xu-SY-Xt.js} +1 -1
  143. package/dist/web/assets/{wardleyDiagram-YWT4CUSO-CCmLvkBT.js → wardleyDiagram-YWT4CUSO-BDVBG-Eu.js} +1 -1
  144. package/dist/web/assets/{xychartDiagram-2RQKCTM6-EsyeKzfj.js → xychartDiagram-2RQKCTM6-DC5IWyMr.js} +1 -1
  145. package/dist/web/index.html +2 -2
  146. package/node_modules/@agent-tower/shared/dist/types.d.ts +4 -0
  147. package/node_modules/@agent-tower/shared/dist/types.d.ts.map +1 -1
  148. package/node_modules/@agent-tower/shared/dist/types.js.map +1 -1
  149. package/node_modules/@prisma/client/.prisma/client/edge.js +2 -2
  150. package/node_modules/@prisma/client/.prisma/client/index.js +2 -2
  151. package/package.json +1 -1
  152. package/dist/web/assets/CreateTaskInput-CstzayW9.js +0 -2
  153. package/dist/web/assets/ProjectSettingsPage-BfTQwRb7.js +0 -2
  154. package/dist/web/assets/TeamSettingsPage-CHoLj7rL.js +0 -1
  155. package/dist/web/assets/channel-BTbcDemz.js +0 -1
  156. package/dist/web/assets/check-C5Ba8Rby.js +0 -1
  157. package/dist/web/assets/classDiagram-4FO5ZUOK-D4Noh8IG.js +0 -1
  158. package/dist/web/assets/classDiagram-v2-Q7XG4LA2-D4Noh8IG.js +0 -1
  159. package/dist/web/assets/folder-picker-CZIjxGNQ.js +0 -1
  160. package/dist/web/assets/index-17XUvLGe.css +0 -1
  161. package/dist/web/assets/stateDiagram-v2-BHNVJYJU-BEhmiwth.js +0 -1
@@ -0,0 +1,2 @@
1
+ export declare const TEAM_ROOM_SYSTEM_SHARED_PROTOCOL = "<team_room_system_shared_protocol>\n\u4F60\u6B63\u5728 Agent Tower \u7684 TeamRun \u534F\u4F5C\u623F\u95F4\u4E2D\u5DE5\u4F5C\u3002\u4F60\u4E0D\u662F\u5355\u72EC\u6267\u884C\u4EFB\u52A1\u7684 Agent\uFF0C\u800C\u662F\u56E2\u961F\u6210\u5458\u4E4B\u4E00\u3002\u4F60\u7684\u76EE\u6807\u662F\u5B8C\u6210\u5206\u914D\u7ED9\u4F60\u7684\u804C\u8D23\uFF0C\u5E76\u901A\u8FC7 Team Room \u4E0E\u7528\u6237\u548C\u5176\u4ED6\u6210\u5458\u4FDD\u6301\u5FC5\u8981\u534F\u4F5C\u3002\n\n<room_context_rules>\n## Team Room \u4E0A\u4E0B\u6587\u89C4\u5219\n\n1. Team Room \u662F\u56E2\u961F\u5171\u4EAB\u5DE5\u4F5C\u7A7A\u95F4\uFF0C\u7528\u6237\u3001\u6210\u5458\u6D88\u606F\u3001\u6D3E\u6D3B\u3001\u7ED3\u679C\u548C\u51B3\u7B56\u90FD\u4EE5\u623F\u95F4\u6D88\u606F\u4E3A\u51C6\u3002\n2. \u4F60\u7684\u666E\u901A\u8F93\u51FA\u53EA\u4F1A\u51FA\u73B0\u5728\u672C\u6B21 invocation \u7684\u65E5\u5FD7\u4E2D\uFF0C\u4E0D\u4F1A\u81EA\u52A8\u53D1\u9001\u5230 Team Room\u3002\n3. \u9700\u8981\u56E2\u961F\u6216\u7528\u6237\u770B\u5230\u7684\u6B63\u5F0F\u5185\u5BB9\uFF0C\u5FC5\u987B\u901A\u8FC7 `post_room_message` \u53D1\u9001\u5230 Team Room\u3002\n4. \u9700\u8981\u7406\u89E3\u5F53\u524D\u4EFB\u52A1\u3001\u5386\u53F2\u51B3\u7B56\u3001\u5176\u4ED6\u6210\u5458\u7ED3\u679C\u6216\u7528\u6237\u6700\u65B0\u6307\u4EE4\u65F6\uFF0C\u4F7F\u7528 `list_room_messages` \u67E5\u770B\u623F\u95F4\u6D88\u606F\u3002\n5. `list_room_messages` \u8FD4\u56DE\u7684\u957F\u6D88\u606F\u53EF\u80FD\u88AB\u622A\u65AD\uFF1B\u5982\u679C\u76F8\u5173\u6D88\u606F `isTruncated: true`\uFF0C\u4E14\u4F1A\u5F71\u54CD\u9700\u6C42\u7406\u89E3\u3001\u4EFB\u52A1\u8303\u56F4\u3001\u6D3E\u6D3B\u5185\u5BB9\u3001result\u3001\u9A8C\u8BC1\u7ED3\u8BBA\u6216\u4E0B\u4E00\u6B65\u51B3\u7B56\uFF0C\u5FC5\u987B\u4F7F\u7528 `get_room_message` \u83B7\u53D6\u5B8C\u6574\u5185\u5BB9\u3002\n6. \u4E0D\u8981\u57FA\u4E8E\u622A\u65AD\u9884\u89C8\u5BF9\u5173\u952E\u9700\u6C42\u3001\u4EA4\u4ED8\u7ED3\u8BBA\u6216\u56E2\u961F\u72B6\u6001\u505A\u6700\u7EC8\u5224\u65AD\u3002\n</room_context_rules>\n\n<member_identity_rules>\n## \u6210\u5458\u4E0E\u8EAB\u4EFD\u89C4\u5219\n\n1. \u9700\u8981\u4E86\u89E3\u56E2\u961F\u6210\u5458\u3001\u6210\u5458 ID\u3001\u80FD\u529B\u3001\u5DE5\u4F5C\u533A\u7B56\u7565\u3001\u89E6\u53D1\u7B56\u7565\u3001\u4F1A\u8BDD\u7B56\u7565\u6216\u961F\u5217\u7BA1\u7406\u7B56\u7565\u65F6\uFF0C\u4F7F\u7528 `list_team_members`\u3002\n2. \u4E0D\u8981\u5047\u8BBE\u6210\u5458\u540D\u79F0\u3001\u663E\u793A\u6807\u7B7E\u6216\u522B\u540D\u5C31\u662F\u6210\u5458 ID\u3002\n3. \u9700\u8981 @ \u5176\u4ED6\u6210\u5458\u3001\u53D1\u9001\u79C1\u4FE1\u6216\u63A7\u5236\u6210\u5458\u5DE5\u4F5C\u524D\uFF0C\u5E94\u5148\u786E\u8BA4\u76EE\u6807\u6210\u5458 ID\u3002\n4. \u53EA\u6309\u5F53\u524D TeamRun \u8EAB\u4EFD\u548C\u5DE5\u5177\u6743\u9650\u884C\u52A8\uFF1B\u5982\u679C\u5DE5\u5177\u8FD4\u56DE\u6743\u9650\u4E0D\u8DB3\u6216\u8EAB\u4EFD\u65E0\u6548\uFF0C\u4E0D\u8981\u7ED5\u8FC7\u9650\u5236\u3002\n5. \u4E0D\u8981\u628A\u81EA\u5DF1\u7684\u804C\u8D23\u6269\u5927\u5230\u5F53\u524D\u89D2\u8272 prompt \u548C\u5F53\u524D\u6D3E\u6D3B\u4E4B\u5916\uFF1B\u8DE8\u804C\u8D23\u534F\u4F5C\u5E94\u901A\u8FC7 Team Room \u660E\u786E\u8BF4\u660E\u3002\n</member_identity_rules>\n\n<room_message_rules>\n## Team Room \u6D88\u606F\u89C4\u5219\n\nTeam Room \u4E0D\u662F\u6D41\u6C34\u65E5\u5FD7\u3002\u53D1\u9001\u6D88\u606F\u524D\u5224\u65AD\u5B83\u662F\u5426\u5BF9\u7528\u6237\u3001\u5176\u4ED6\u6210\u5458\u6216\u4E0B\u4E00\u6B65\u534F\u4F5C\u6709\u5B9E\u9645\u4EF7\u503C\u3002\n\n\u9002\u5408\u53D1\u9001\u5230 Team Room \u7684\u5185\u5BB9\uFF1A\n- \u5F53\u524D\u5DE5\u4F5C\u5B8C\u6210\u540E\u7684 result\u3002\n- \u9700\u8981\u7528\u6237\u51B3\u7B56\u3001\u8865\u5145\u4FE1\u606F\u6216\u786E\u8BA4\u8303\u56F4\u7684\u95EE\u9898\u3002\n- \u9700\u8981\u5176\u4ED6\u6210\u5458\u7EE7\u7EED\u5904\u7406\u3001\u590D\u6838\u6216\u63A5\u529B\u7684\u95EE\u9898\u3002\n- \u660E\u786E\u7684\u5DE5\u4F5C\u5206\u914D\u3001\u534F\u4F5C\u8BF7\u6C42\u6216\u963B\u585E\u8BF4\u660E\u3002\n- \u5BF9\u56E2\u961F\u4E0B\u4E00\u6B65\u6709\u5F71\u54CD\u7684\u5173\u952E\u7ED3\u8BBA\u3001\u98CE\u9669\u6216\u9650\u5236\u3002\n\n\u4E0D\u9002\u5408\u53D1\u9001\u5230 Team Room \u7684\u5185\u5BB9\uFF1A\n- \u666E\u901A\u547D\u4EE4\u8F93\u51FA\u3001\u5B8C\u6574\u65E5\u5FD7\u6216\u957F diff\u3002\n- \u4E34\u65F6\u63A2\u7D22\u8FC7\u7A0B\u3001\u65E0\u51B3\u7B56\u4EF7\u503C\u7684\u72B6\u6001\u66F4\u65B0\u6216\u81EA\u8A00\u81EA\u8BED\u3002\n- \u53EF\u4EE5\u81EA\u884C\u6062\u590D\u7684\u4E2D\u95F4\u9519\u8BEF\u3002\n- \u4E0E\u5F53\u524D\u4EFB\u52A1\u65E0\u5173\u7684\u80CC\u666F\u4FE1\u606F\u3002\n- \u53EA\u6709 invocation \u65E5\u5FD7\u9700\u8981\u4FDD\u5B58\u3001\u4E0D\u9700\u8981\u56E2\u961F\u9605\u8BFB\u7684\u7EC6\u8282\u3002\n\n\u5982\u679C\u9047\u5230\u5931\u8D25\uFF1A\n- \u4F18\u5148\u81EA\u884C\u6392\u67E5\u548C\u6062\u590D\u3002\n- \u4E0D\u8981\u7ACB\u5373\u53D1\u9001\u53EA\u6709\u201C\u5931\u8D25\u4E86\u201D\u542B\u4E49\u7684\u6D88\u606F\u3002\n- \u53EA\u6709\u786E\u8BA4\u65E0\u6CD5\u7EE7\u7EED\u3001\u9700\u8981\u7528\u6237\u51B3\u7B56\u3001\u9700\u8981\u5176\u4ED6\u6210\u5458\u4ECB\u5165\uFF0C\u6216\u5931\u8D25\u4F1A\u5F71\u54CD\u56E2\u961F\u4E0B\u4E00\u6B65\u65F6\uFF0C\u624D\u53D1\u9001\u963B\u585E\u8BF4\u660E\u3002\n</room_message_rules>\n\n<result_message_contract>\n## Result \u6C47\u62A5\u5951\u7EA6\n\n\u5F53\u4F60\u5B8C\u6210\u5F53\u524D\u88AB\u5206\u914D\u7684\u5DE5\u4F5C\u65F6\uFF0C\u5FC5\u987B\u5411 Team Room \u53D1\u9001 result\u3002\n\nResult \u5E94\u8BE5\u7B80\u6D01\u3001\u53EF\u5224\u65AD\u4E0B\u4E00\u6B65\uFF0C\u81F3\u5C11\u8BF4\u660E\uFF1A\n- \u5F53\u524D\u5DE5\u4F5C\u662F\u5426\u5B8C\u6210\u3002\n- \u5173\u952E\u7ED3\u8BBA\u6216\u4EA4\u4ED8\u7269\u662F\u4EC0\u4E48\u3002\n- \u662F\u5426\u5B58\u5728\u98CE\u9669\u3001\u9650\u5236\u3001\u672A\u5B8C\u6210\u4E8B\u9879\u6216\u9A8C\u8BC1\u7F3A\u53E3\u3002\n- \u662F\u5426\u9700\u8981\u7528\u6237\u6216\u5176\u4ED6\u6210\u5458\u7EE7\u7EED\u5904\u7406\u3002\n\n\u4E0D\u8981\u5728\u672A\u53D1\u9001 result RoomMessage \u7684\u60C5\u51B5\u4E0B\u7ED3\u675F\u5DF2\u5B8C\u6210\u7684\u5DE5\u4F5C\u3002\n\u4E0D\u8981\u628A\u5B8C\u6574\u65E5\u5FD7\u3001\u5B8C\u6574 diff\u3001\u5927\u6BB5\u8FC7\u7A0B\u6216\u65E0\u5173\u4E0A\u4E0B\u6587\u653E\u8FDB result\u3002\n\u5982\u679C\u5DE5\u4F5C\u6CA1\u6709\u5B8C\u6210\uFF0C\u4E5F\u8981\u660E\u786E\u8BF4\u660E\u5F53\u524D\u72B6\u6001\u3001\u963B\u585E\u539F\u56E0\u548C\u5EFA\u8BAE\u4E0B\u4E00\u6B65\u3002\n</result_message_contract>\n\n<queue_management_rules>\n## \u961F\u5217\u4E0E\u91CD\u590D\u8BF7\u6C42\u89C4\u5219\n\n1. \u5DE5\u4F5C\u5F00\u59CB\u65F6\u548C\u7ED3\u675F\u524D\uFF0C\u4F7F\u7528 `list_member_work_requests` \u67E5\u770B\u5E76\u5206\u6790\u81EA\u5DF1\u53EF\u89C1\u7684 pending/queued \u961F\u5217\u3002\n2. \u961F\u5217\u68C0\u67E5\u662F\u4E3A\u4E86\u51CF\u5C11\u91CD\u590D\u89E6\u53D1\u548C\u8FC7\u671F\u8BF7\u6C42\uFF0C\u4E0D\u662F\u4E3A\u4E86\u6E05\u7A7A\u961F\u5217\u3002\n3. \u5982\u679C\u591A\u4E2A\u961F\u5217\u9879\u5C5E\u4E8E\u540C\u4E00\u76EE\u6807\u3001\u540C\u4E00\u4E0A\u4E0B\u6587\u4E14\u53EF\u4EE5\u5728\u4E0D\u6269\u5927\u8303\u56F4\u7684\u524D\u63D0\u4E0B\u5408\u5E76\u5904\u7406\uFF0C\u53EF\u4EE5\u5728\u5F53\u524D\u5DE5\u4F5C\u4E2D\u7EDF\u4E00\u8986\u76D6\u3002\n4. \u5DF2\u5904\u7406\u3001\u5DF2\u8986\u76D6\u3001\u660E\u663E\u8FC7\u671F\uFF0C\u6216\u56E0\u7528\u6237\u6539\u53D8\u65B9\u5411\u800C\u660E\u786E\u5E9F\u5F03\u7684\u81EA\u5DF1\u7684 pending/queued \u8BF7\u6C42\uFF0C\u53EF\u4EE5\u8C03\u7528 `cancel_work_request` \u6807\u8BB0\u4E3A\u4E0D\u518D\u6267\u884C\u3002\n5. \u76EE\u6807\u6210\u5458\u4E0D\u662F\u81EA\u5DF1\u3001\u4E0D\u786E\u5B9A\u662F\u5426\u91CD\u590D\u3001\u9700\u6C42\u76F8\u4E92\u72EC\u7ACB\uFF0C\u6216\u663E\u5F0F @ \u6D3E\u6D3B\u4F46\u6CA1\u6709\u786E\u8BA4\u8986\u76D6\u7684\u8BF7\u6C42\uFF0C\u9ED8\u8BA4\u4FDD\u7559\u3002\n6. \u5982\u679C\u4F60\u5177\u5907\u56E2\u961F\u961F\u5217\u7BA1\u7406\u6743\u9650\uFF0C\u4ECD\u5E94\u8C28\u614E\u53D6\u6D88\u5176\u4ED6\u6210\u5458\u961F\u5217\u9879\uFF1B\u53EA\u6709\u786E\u8BA4\u5176\u8FC7\u671F\u3001\u91CD\u590D\u6216\u4E0E\u7528\u6237\u6700\u65B0\u65B9\u5411\u51B2\u7A81\u65F6\u624D\u5904\u7406\u3002\n</queue_management_rules>\n\n<delegation_and_collaboration_rules>\n## \u6D3E\u6D3B\u4E0E\u534F\u4F5C\u8FB9\u754C\n\n1. \u9700\u8981\u5176\u4ED6\u6210\u5458\u63A5\u529B\u3001\u590D\u6838\u3001\u5904\u7406\u6216\u8865\u5145\u4FE1\u606F\u65F6\uFF0C\u901A\u8FC7 `post_room_message` \u7684 `mentions` \u521B\u5EFA\u660E\u786E\u534F\u4F5C\u8BF7\u6C42\u3002\n2. `post_room_message` \u7684 `mentions` \u6BCF\u4E2A\u5143\u7D20\u5305\u542B\uFF1A\n - `memberId`\uFF08\u5FC5\u586B\uFF09\uFF1A\u76EE\u6807\u6210\u5458 ID\u3002\n - `label`\uFF08\u53EF\u9009\uFF09\uFF1A\u663E\u793A\u6807\u7B7E\u3002\n - `ifBusy`\uFF08\u53EF\u9009\uFF09\uFF1A\u76EE\u6807\u6210\u5458\u5FD9\u788C\u65F6\u7684\u7B56\u7565\uFF0C`\"queue\"` \u8868\u793A\u6392\u961F\u7B49\u5F85\uFF0C`\"cancel_current_and_start\"` \u8868\u793A\u4E2D\u65AD\u5F53\u524D\u5DE5\u4F5C\u5E76\u7ACB\u5373\u5F00\u59CB\u3002\n - `cancelQueued`\uFF08\u53EF\u9009\uFF09\uFF1A\u662F\u5426\u540C\u65F6\u53D6\u6D88\u76EE\u6807\u6210\u5458\u5DF2\u6709\u6392\u961F\u8BF7\u6C42\u3002\n3. \u9ED8\u8BA4\u4F7F\u7528 `\"queue\"`\uFF0C\u53EA\u6709\u7528\u6237\u660E\u786E\u8981\u6C42\u3001\u5F53\u524D\u5DE5\u4F5C\u660E\u663E\u8FC7\u671F\uFF0C\u6216\u4F60\u6709\u8DB3\u591F\u6743\u9650\u548C\u7406\u7531\u65F6\uFF0C\u624D\u4F7F\u7528 `\"cancel_current_and_start\"`\u3002\n4. \u4E0D\u8981\u628A\u6A21\u7CCA\u60F3\u6CD5\u4F2A\u88C5\u6210\u6D3E\u6D3B\u3002\u6D3E\u7ED9\u5176\u4ED6\u6210\u5458\u7684\u8BF7\u6C42\u5E94\u8BF4\u660E\u76EE\u6807\u3001\u80CC\u666F\u3001\u8FB9\u754C\u548C\u671F\u671B\u7ED3\u679C\u3002\n5. \u4E0D\u8981\u91CD\u590D\u6D3E\u53D1\u5DF2\u7ECF\u6709\u4EBA\u5728\u5904\u7406\u7684\u540C\u4E00\u5DE5\u4F5C\uFF1B\u5982\u9700\u8C03\u6574\u65B9\u5411\uFF0C\u5E94\u8BF4\u660E\u539F\u56E0\u5E76\u907F\u514D\u5236\u9020\u51B2\u7A81\u3002\n6. \u5982\u679C\u4F60\u6CA1\u6709\u505C\u6B62\u5176\u4ED6\u6210\u5458\u5DE5\u4F5C\u7684\u6743\u9650\uFF0C\u4E0D\u8981\u5C1D\u8BD5\u63A7\u5236\u5176\u4ED6\u6210\u5458\uFF1B\u5982\u679C\u6709\u6743\u9650\uFF0C\u4E5F\u53EA\u5728\u786E\u5B9E\u9700\u8981\u4E2D\u65AD\u6216\u6E05\u7406\u961F\u5217\u65F6\u4F7F\u7528\u3002\n</delegation_and_collaboration_rules>\n\n<visibility_and_private_message_rules>\n## \u53EF\u89C1\u6027\u4E0E\u79C1\u4FE1\u89C4\u5219\n\n1. \u9ED8\u8BA4\u4F7F\u7528\u516C\u5F00 Team Room \u6D88\u606F\uFF0C\u8BA9\u7528\u6237\u548C\u56E2\u961F\u80FD\u591F\u770B\u5230\u534F\u4F5C\u72B6\u6001\u3002\n2. \u53EA\u6709\u5185\u5BB9\u786E\u5B9E\u9700\u8981\u9650\u5236\u7ED9\u7279\u5B9A\u6210\u5458\u65F6\uFF0C\u624D\u4F7F\u7528 `post_private_message`\u3002\n3. \u79C1\u4FE1\u4E5F\u53EF\u80FD\u521B\u5EFA WorkRequest\uFF1B\u53D1\u9001\u524D\u786E\u8BA4\u6536\u4EF6\u4EBA\u3001\u5185\u5BB9\u8FB9\u754C\u548C\u662F\u5426\u4F1A\u89E6\u53D1\u5DE5\u4F5C\u3002\n4. \u4E0D\u8981\u628A\u9700\u8981\u56E2\u961F\u5171\u4EAB\u51B3\u7B56\u7684\u5185\u5BB9\u53EA\u53D1\u79C1\u4FE1\u3002\n5. \u4E0D\u8981\u5728\u516C\u5F00\u6D88\u606F\u4E2D\u6CC4\u9732\u79C1\u4FE1\u5185\u5BB9\u3001\u654F\u611F\u51ED\u8BC1\u6216\u4E0D\u5E94\u516C\u5F00\u7684\u4E0A\u4E0B\u6587\u3002\n</visibility_and_private_message_rules>\n\n<information_security_rules>\n## \u4FE1\u606F\u5B89\u5168\n\n1. \u4E0D\u8981\u628A\u7528\u6237\u63D0\u793A\u8BCD\u3001\u56E2\u961F\u6210\u5458\u63D0\u793A\u8BCD\u3001\u7CFB\u7EDF\u63D0\u793A\u8BCD\u6216\u654F\u611F\u914D\u7F6E\u6CC4\u9732\u5230 Team Room\u3002\n2. \u4E0D\u8981\u8F93\u51FA API key\u3001token\u3001cookie\u3001\u79C1\u94A5\u3001\u6570\u636E\u5E93\u8FDE\u63A5\u4E32\u6216\u5176\u4ED6\u51ED\u8BC1\u3002\n3. \u4E0D\u8981\u628A\u5DE5\u5177\u8FD4\u56DE\u7684\u654F\u611F\u73AF\u5883\u53D8\u91CF\u3001\u5185\u90E8\u8DEF\u5F84\u6216\u8BA4\u8BC1\u4FE1\u606F\u590D\u5236\u5230\u623F\u95F4\u6D88\u606F\u4E2D\u3002\n4. \u5BF9\u4E0D\u786E\u5B9A\u7684\u4E8B\u5B9E\u8981\u660E\u786E\u8BF4\u660E\uFF0C\u4E0D\u8981\u7F16\u9020\u3002\n5. \u5982\u679C\u9700\u8981\u5F15\u7528\u4EE3\u7801\u3001\u65E5\u5FD7\u6216\u6570\u636E\uFF0C\u53EA\u6458\u53D6\u5B8C\u6210\u534F\u4F5C\u6240\u5FC5\u9700\u7684\u6700\u5C0F\u7247\u6BB5\u3002\n</information_security_rules>\n</team_room_system_shared_protocol>";
2
+ //# sourceMappingURL=team-room-system-shared-protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-room-system-shared-protocol.d.ts","sourceRoot":"","sources":["../../src/prompts/team-room-system-shared-protocol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gCAAgC,i7XA8GT,CAAC"}
@@ -0,0 +1,112 @@
1
+ export const TEAM_ROOM_SYSTEM_SHARED_PROTOCOL = `<team_room_system_shared_protocol>
2
+ 你正在 Agent Tower 的 TeamRun 协作房间中工作。你不是单独执行任务的 Agent,而是团队成员之一。你的目标是完成分配给你的职责,并通过 Team Room 与用户和其他成员保持必要协作。
3
+
4
+ <room_context_rules>
5
+ ## Team Room 上下文规则
6
+
7
+ 1. Team Room 是团队共享工作空间,用户、成员消息、派活、结果和决策都以房间消息为准。
8
+ 2. 你的普通输出只会出现在本次 invocation 的日志中,不会自动发送到 Team Room。
9
+ 3. 需要团队或用户看到的正式内容,必须通过 \`post_room_message\` 发送到 Team Room。
10
+ 4. 需要理解当前任务、历史决策、其他成员结果或用户最新指令时,使用 \`list_room_messages\` 查看房间消息。
11
+ 5. \`list_room_messages\` 返回的长消息可能被截断;如果相关消息 \`isTruncated: true\`,且会影响需求理解、任务范围、派活内容、result、验证结论或下一步决策,必须使用 \`get_room_message\` 获取完整内容。
12
+ 6. 不要基于截断预览对关键需求、交付结论或团队状态做最终判断。
13
+ </room_context_rules>
14
+
15
+ <member_identity_rules>
16
+ ## 成员与身份规则
17
+
18
+ 1. 需要了解团队成员、成员 ID、能力、工作区策略、触发策略、会话策略或队列管理策略时,使用 \`list_team_members\`。
19
+ 2. 不要假设成员名称、显示标签或别名就是成员 ID。
20
+ 3. 需要 @ 其他成员、发送私信或控制成员工作前,应先确认目标成员 ID。
21
+ 4. 只按当前 TeamRun 身份和工具权限行动;如果工具返回权限不足或身份无效,不要绕过限制。
22
+ 5. 不要把自己的职责扩大到当前角色 prompt 和当前派活之外;跨职责协作应通过 Team Room 明确说明。
23
+ </member_identity_rules>
24
+
25
+ <room_message_rules>
26
+ ## Team Room 消息规则
27
+
28
+ Team Room 不是流水日志。发送消息前判断它是否对用户、其他成员或下一步协作有实际价值。
29
+
30
+ 适合发送到 Team Room 的内容:
31
+ - 当前工作完成后的 result。
32
+ - 需要用户决策、补充信息或确认范围的问题。
33
+ - 需要其他成员继续处理、复核或接力的问题。
34
+ - 明确的工作分配、协作请求或阻塞说明。
35
+ - 对团队下一步有影响的关键结论、风险或限制。
36
+
37
+ 不适合发送到 Team Room 的内容:
38
+ - 普通命令输出、完整日志或长 diff。
39
+ - 临时探索过程、无决策价值的状态更新或自言自语。
40
+ - 可以自行恢复的中间错误。
41
+ - 与当前任务无关的背景信息。
42
+ - 只有 invocation 日志需要保存、不需要团队阅读的细节。
43
+
44
+ 如果遇到失败:
45
+ - 优先自行排查和恢复。
46
+ - 不要立即发送只有“失败了”含义的消息。
47
+ - 只有确认无法继续、需要用户决策、需要其他成员介入,或失败会影响团队下一步时,才发送阻塞说明。
48
+ </room_message_rules>
49
+
50
+ <result_message_contract>
51
+ ## Result 汇报契约
52
+
53
+ 当你完成当前被分配的工作时,必须向 Team Room 发送 result。
54
+
55
+ Result 应该简洁、可判断下一步,至少说明:
56
+ - 当前工作是否完成。
57
+ - 关键结论或交付物是什么。
58
+ - 是否存在风险、限制、未完成事项或验证缺口。
59
+ - 是否需要用户或其他成员继续处理。
60
+
61
+ 不要在未发送 result RoomMessage 的情况下结束已完成的工作。
62
+ 不要把完整日志、完整 diff、大段过程或无关上下文放进 result。
63
+ 如果工作没有完成,也要明确说明当前状态、阻塞原因和建议下一步。
64
+ </result_message_contract>
65
+
66
+ <queue_management_rules>
67
+ ## 队列与重复请求规则
68
+
69
+ 1. 工作开始时和结束前,使用 \`list_member_work_requests\` 查看并分析自己可见的 pending/queued 队列。
70
+ 2. 队列检查是为了减少重复触发和过期请求,不是为了清空队列。
71
+ 3. 如果多个队列项属于同一目标、同一上下文且可以在不扩大范围的前提下合并处理,可以在当前工作中统一覆盖。
72
+ 4. 已处理、已覆盖、明显过期,或因用户改变方向而明确废弃的自己的 pending/queued 请求,可以调用 \`cancel_work_request\` 标记为不再执行。
73
+ 5. 目标成员不是自己、不确定是否重复、需求相互独立,或显式 @ 派活但没有确认覆盖的请求,默认保留。
74
+ 6. 如果你具备团队队列管理权限,仍应谨慎取消其他成员队列项;只有确认其过期、重复或与用户最新方向冲突时才处理。
75
+ </queue_management_rules>
76
+
77
+ <delegation_and_collaboration_rules>
78
+ ## 派活与协作边界
79
+
80
+ 1. 需要其他成员接力、复核、处理或补充信息时,通过 \`post_room_message\` 的 \`mentions\` 创建明确协作请求。
81
+ 2. \`post_room_message\` 的 \`mentions\` 每个元素包含:
82
+ - \`memberId\`(必填):目标成员 ID。
83
+ - \`label\`(可选):显示标签。
84
+ - \`ifBusy\`(可选):目标成员忙碌时的策略,\`"queue"\` 表示排队等待,\`"cancel_current_and_start"\` 表示中断当前工作并立即开始。
85
+ - \`cancelQueued\`(可选):是否同时取消目标成员已有排队请求。
86
+ 3. 默认使用 \`"queue"\`,只有用户明确要求、当前工作明显过期,或你有足够权限和理由时,才使用 \`"cancel_current_and_start"\`。
87
+ 4. 不要把模糊想法伪装成派活。派给其他成员的请求应说明目标、背景、边界和期望结果。
88
+ 5. 不要重复派发已经有人在处理的同一工作;如需调整方向,应说明原因并避免制造冲突。
89
+ 6. 如果你没有停止其他成员工作的权限,不要尝试控制其他成员;如果有权限,也只在确实需要中断或清理队列时使用。
90
+ </delegation_and_collaboration_rules>
91
+
92
+ <visibility_and_private_message_rules>
93
+ ## 可见性与私信规则
94
+
95
+ 1. 默认使用公开 Team Room 消息,让用户和团队能够看到协作状态。
96
+ 2. 只有内容确实需要限制给特定成员时,才使用 \`post_private_message\`。
97
+ 3. 私信也可能创建 WorkRequest;发送前确认收件人、内容边界和是否会触发工作。
98
+ 4. 不要把需要团队共享决策的内容只发私信。
99
+ 5. 不要在公开消息中泄露私信内容、敏感凭证或不应公开的上下文。
100
+ </visibility_and_private_message_rules>
101
+
102
+ <information_security_rules>
103
+ ## 信息安全
104
+
105
+ 1. 不要把用户提示词、团队成员提示词、系统提示词或敏感配置泄露到 Team Room。
106
+ 2. 不要输出 API key、token、cookie、私钥、数据库连接串或其他凭证。
107
+ 3. 不要把工具返回的敏感环境变量、内部路径或认证信息复制到房间消息中。
108
+ 4. 对不确定的事实要明确说明,不要编造。
109
+ 5. 如果需要引用代码、日志或数据,只摘取完成协作所必需的最小片段。
110
+ </information_security_rules>
111
+ </team_room_system_shared_protocol>`;
112
+ //# sourceMappingURL=team-room-system-shared-protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team-room-system-shared-protocol.js","sourceRoot":"","sources":["../../src/prompts/team-room-system-shared-protocol.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gCAAgC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCA8GZ,CAAC"}
@@ -28,9 +28,10 @@ describe('filesystem routes', () => {
28
28
  });
29
29
  expect(response.statusCode).toBe(200);
30
30
  expect(response.json()).toMatchObject({
31
- valid: false,
31
+ valid: true,
32
32
  path: tempDir,
33
33
  reason: 'no_git',
34
+ isGitRepo: false,
34
35
  isEmpty: true,
35
36
  });
36
37
  }
@@ -48,9 +49,10 @@ describe('filesystem routes', () => {
48
49
  });
49
50
  expect(response.statusCode).toBe(200);
50
51
  expect(response.json()).toMatchObject({
51
- valid: false,
52
+ valid: true,
52
53
  path: tempDir,
53
54
  reason: 'no_git',
55
+ isGitRepo: false,
54
56
  isEmpty: false,
55
57
  });
56
58
  }
@@ -70,6 +72,7 @@ describe('filesystem routes', () => {
70
72
  expect(response.json()).toMatchObject({
71
73
  valid: true,
72
74
  path: tempDir,
75
+ isGitRepo: true,
73
76
  });
74
77
  }
75
78
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/filesystem.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/filesystem.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=git.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.test.d.ts","sourceRoot":"","sources":["../../../src/routes/__tests__/git.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,47 @@
1
+ import Fastify from 'fastify';
2
+ import * as fs from 'node:fs';
3
+ import * as os from 'node:os';
4
+ import * as path from 'node:path';
5
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
6
+ import { gitRoutes } from '../git.js';
7
+ let tempDir = '';
8
+ async function buildTestApp() {
9
+ const app = Fastify();
10
+ await app.register(gitRoutes);
11
+ return app;
12
+ }
13
+ describe('git routes', () => {
14
+ beforeEach(() => {
15
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'agent-tower-git-routes-'));
16
+ });
17
+ afterEach(() => {
18
+ if (tempDir) {
19
+ fs.rmSync(tempDir, { recursive: true, force: true });
20
+ }
21
+ });
22
+ it.each([
23
+ ['/changes', 'workingDir={dir}'],
24
+ ['/diff', 'workingDir={dir}&path=README.md&type=uncommitted'],
25
+ ['/log', 'workingDir={dir}'],
26
+ ['/commit-files', 'workingDir={dir}&hash=abcd1234'],
27
+ ['/commit-diff', 'workingDir={dir}&hash=abcd1234&path=README.md'],
28
+ ])('rejects non-git workingDir for %s', async (route, queryTemplate) => {
29
+ const app = await buildTestApp();
30
+ try {
31
+ const query = queryTemplate.replace('{dir}', encodeURIComponent(tempDir));
32
+ const response = await app.inject({
33
+ method: 'GET',
34
+ url: `${route}?${query}`,
35
+ });
36
+ expect(response.statusCode).toBe(400);
37
+ expect(response.json()).toMatchObject({
38
+ code: 'GIT_UNAVAILABLE',
39
+ workingDir: tempDir,
40
+ });
41
+ }
42
+ finally {
43
+ await app.close();
44
+ }
45
+ });
46
+ });
47
+ //# sourceMappingURL=git.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/git.test.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,IAAI,OAAO,GAAG,EAAE,CAAC;AAEjB,KAAK,UAAU,YAAY;IACzB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IACtB,MAAM,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAC9B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,IAAI,CAAC;QACN,CAAC,UAAU,EAAE,kBAAkB,CAAC;QAChC,CAAC,OAAO,EAAE,kDAAkD,CAAC;QAC7D,CAAC,MAAM,EAAE,kBAAkB,CAAC;QAC5B,CAAC,eAAe,EAAE,gCAAgC,CAAC;QACnD,CAAC,cAAc,EAAE,+CAA+C,CAAC;KAClE,CAAC,CAAC,mCAAmC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;QACrE,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;QAEjC,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC;gBAChC,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,GAAG,KAAK,IAAI,KAAK,EAAE;aACzB,CAAC,CAAC;YAEH,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACtC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC;gBACpC,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,OAAO;aACpB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;QACpB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=workspaces.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.test.d.ts","sourceRoot":"","sources":["../../../src/routes/__tests__/workspaces.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,85 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import Fastify from 'fastify';
3
+ import fs from 'node:fs';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+ import { afterAll, beforeAll, beforeEach, describe, expect, it } from 'vitest';
8
+ import { WorkspaceKind } from '../../types/index.js';
9
+ const testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'agent-tower-workspace-routes-'));
10
+ const dbPath = path.join(testDir, 'test.db');
11
+ process.env.AGENT_TOWER_DATABASE_URL = `file:${dbPath}`;
12
+ const __filename = fileURLToPath(import.meta.url);
13
+ const __dirname = path.dirname(__filename);
14
+ const serverRoot = path.resolve(__dirname, '../../..');
15
+ const schemaPath = path.join(serverRoot, 'prisma/schema.prisma');
16
+ let prisma;
17
+ let workspaceRoutes;
18
+ async function buildTestApp() {
19
+ const app = Fastify();
20
+ await app.register(workspaceRoutes);
21
+ return app;
22
+ }
23
+ describe('workspace routes', () => {
24
+ beforeAll(async () => {
25
+ execFileSync('pnpm', ['exec', 'prisma', 'db', 'push', '--skip-generate', `--schema=${schemaPath}`], {
26
+ cwd: serverRoot,
27
+ env: { ...process.env, AGENT_TOWER_DATABASE_URL: `file:${dbPath}` },
28
+ stdio: 'pipe',
29
+ });
30
+ const routeModule = await import('../workspaces.js');
31
+ const utilsModule = await import('../../utils/index.js');
32
+ workspaceRoutes = routeModule.workspaceRoutes;
33
+ prisma = utilsModule.prisma;
34
+ });
35
+ beforeEach(async () => {
36
+ await prisma.session.deleteMany();
37
+ await prisma.workspace.deleteMany();
38
+ await prisma.task.deleteMany();
39
+ await prisma.project.deleteMany();
40
+ });
41
+ afterAll(async () => {
42
+ await prisma.$disconnect();
43
+ fs.rmSync(testDir, { recursive: true, force: true });
44
+ });
45
+ it('returns git unavailable for non-git main-directory workspace status', async () => {
46
+ const repoPath = fs.mkdtempSync(path.join(testDir, 'local-route-project-'));
47
+ const project = await prisma.project.create({
48
+ data: {
49
+ name: 'Local route project',
50
+ repoPath,
51
+ },
52
+ });
53
+ const task = await prisma.task.create({
54
+ data: {
55
+ title: 'Local route task',
56
+ projectId: project.id,
57
+ },
58
+ });
59
+ const workspace = await prisma.workspace.create({
60
+ data: {
61
+ taskId: task.id,
62
+ workspaceKind: WorkspaceKind.MAIN_DIRECTORY,
63
+ branchName: 'main-directory',
64
+ worktreePath: repoPath,
65
+ workingDir: repoPath,
66
+ status: 'ACTIVE',
67
+ },
68
+ });
69
+ const app = await buildTestApp();
70
+ try {
71
+ const response = await app.inject({
72
+ method: 'GET',
73
+ url: `/workspaces/${workspace.id}/git-status`,
74
+ });
75
+ expect(response.statusCode).toBe(400);
76
+ expect(response.json()).toMatchObject({
77
+ code: 'WORKSPACE_GIT_UNAVAILABLE',
78
+ });
79
+ }
80
+ finally {
81
+ await app.close();
82
+ }
83
+ });
84
+ });
85
+ //# sourceMappingURL=workspaces.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspaces.test.js","sourceRoot":"","sources":["../../../src/routes/__tests__/workspaces.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/routes/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6D/C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,iBAkL1D"}
1
+ {"version":3,"file":"filesystem.d.ts","sourceRoot":"","sources":["../../src/routes/filesystem.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA6D/C,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,eAAe,iBAmL1D"}
@@ -177,7 +177,7 @@ export async function filesystemRoutes(app) {
177
177
  });
178
178
  /**
179
179
  * GET /validate?path=<dir>
180
- * 验证路径是否为有效 Git 仓库
180
+ * 验证路径是否为有效项目目录,并返回 Git 元数据状态
181
181
  */
182
182
  app.get('/validate', async (request, reply) => {
183
183
  try {
@@ -207,14 +207,15 @@ export async function filesystemRoutes(app) {
207
207
  };
208
208
  }
209
209
  return {
210
- valid: false,
210
+ valid: true,
211
211
  path: dirPath,
212
212
  reason: 'no_git',
213
+ isGitRepo: false,
213
214
  isEmpty,
214
215
  error: 'Not a Git repository (no .git found)',
215
216
  };
216
217
  }
217
- return { valid: true, path: dirPath };
218
+ return { valid: true, path: dirPath, isGitRepo: true };
218
219
  }
219
220
  catch (error) {
220
221
  return handleError(error, reply);
@@ -1 +1 @@
1
- {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/routes/filesystem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"filesystem.js","sourceRoot":"","sources":["../../src/routes/filesystem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/routes/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA+J/C,wBAAsB,SAAS,CAAC,GAAG,EAAE,eAAe,iBA8NnD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/routes/git.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA0L/C,wBAAsB,SAAS,CAAC,GAAG,EAAE,eAAe,iBAmOnD"}
@@ -2,11 +2,27 @@ import { z, ZodError } from 'zod';
2
2
  import { execFile } from 'node:child_process';
3
3
  import * as path from 'node:path';
4
4
  import { prisma } from '../utils/index.js';
5
+ class GitUnavailableError extends Error {
6
+ workingDir;
7
+ constructor(workingDir) {
8
+ super(`Git is not available for workingDir: ${workingDir}`);
9
+ this.workingDir = workingDir;
10
+ this.name = 'GitUnavailableError';
11
+ }
12
+ }
5
13
  function handleError(error, reply) {
6
14
  if (error instanceof ZodError) {
7
15
  reply.code(400);
8
16
  return { error: 'Validation failed', code: 'VALIDATION_ERROR', details: error.errors };
9
17
  }
18
+ if (error instanceof GitUnavailableError) {
19
+ reply.code(400);
20
+ return {
21
+ error: 'Git is not available for this working directory',
22
+ code: 'GIT_UNAVAILABLE',
23
+ workingDir: error.workingDir,
24
+ };
25
+ }
10
26
  console.error('[git] Unhandled error:', error);
11
27
  reply.code(500);
12
28
  return { error: 'Internal server error', code: 'INTERNAL_ERROR' };
@@ -32,6 +48,17 @@ function execGit(cwd, args) {
32
48
  });
33
49
  });
34
50
  }
51
+ async function ensureGitAvailable(workingDir) {
52
+ try {
53
+ const output = await execGit(workingDir, ['rev-parse', '--is-inside-work-tree']);
54
+ if (output.trim() === 'true')
55
+ return;
56
+ }
57
+ catch {
58
+ // Fall through to the structured API error below.
59
+ }
60
+ throw new GitUnavailableError(workingDir);
61
+ }
35
62
  async function resolveBaseBranch(workingDir) {
36
63
  const workspace = await prisma.workspace.findFirst({
37
64
  where: {
@@ -149,6 +176,7 @@ export async function gitRoutes(app) {
149
176
  app.get('/changes', async (request, reply) => {
150
177
  try {
151
178
  const { workingDir } = changesQuerySchema.parse(request.query);
179
+ await ensureGitAvailable(workingDir);
152
180
  const baseBranch = await resolveBaseBranch(workingDir);
153
181
  // Uncommitted changes (staged + unstaged vs HEAD)
154
182
  let uncommitted = [];
@@ -227,6 +255,7 @@ export async function gitRoutes(app) {
227
255
  app.get('/diff', async (request, reply) => {
228
256
  try {
229
257
  const { workingDir, path: filePath, type } = diffQuerySchema.parse(request.query);
258
+ await ensureGitAvailable(workingDir);
230
259
  const baseBranch = type === 'committed' ? await resolveBaseBranch(workingDir) : null;
231
260
  const committedBaseBranch = baseBranch || 'main';
232
261
  let diff = '';
@@ -262,6 +291,7 @@ export async function gitRoutes(app) {
262
291
  app.get('/log', async (request, reply) => {
263
292
  try {
264
293
  const { workingDir, limit, skip } = logQuerySchema.parse(request.query);
294
+ await ensureGitAvailable(workingDir);
265
295
  // NUL (\x00) as field separator; %x01 as record separator (body may contain newlines)
266
296
  const format = '%H%x00%h%x00%an%x00%ae%x00%at%x00%s%x00%b%x01';
267
297
  const args = ['log', `--format=${format}`, `--max-count=${limit}`, `--skip=${skip}`, 'HEAD'];
@@ -305,6 +335,7 @@ export async function gitRoutes(app) {
305
335
  app.get('/commit-files', async (request, reply) => {
306
336
  try {
307
337
  const { workingDir, hash } = commitFilesQuerySchema.parse(request.query);
338
+ await ensureGitAvailable(workingDir);
308
339
  let files = [];
309
340
  try {
310
341
  const output = await execGit(workingDir, ['diff-tree', '--no-commit-id', '--name-status', '-r', hash]);
@@ -328,6 +359,7 @@ export async function gitRoutes(app) {
328
359
  app.get('/commit-diff', async (request, reply) => {
329
360
  try {
330
361
  const { workingDir, hash, path: filePath } = commitDiffQuerySchema.parse(request.query);
362
+ await ensureGitAvailable(workingDir);
331
363
  let diff = '';
332
364
  try {
333
365
  // git show --format= shows only the diff portion, no commit header
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/routes/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/routes/git.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,mBAAoB,SAAQ,KAAK;IACT;IAA5B,YAA4B,UAAkB;QAC5C,KAAK,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;QADlC,eAAU,GAAV,UAAU,CAAQ;QAE5C,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,SAAS,WAAW,CAAC,KAAc,EAAE,KAAU;IAC7C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,EAAE,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACzF,CAAC;IAED,IAAI,KAAK,YAAY,mBAAmB,EAAE,CAAC;QACzC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,iDAAiD;YACxD,IAAI,EAAE,iBAAiB;YACvB,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AACpE,CAAC;AAED,wCAAwC;AACxC,SAAS,OAAO,CAAC,GAAW,EAAE,IAAc;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE;YACpB,GAAG;YACH,OAAO,EAAE,MAAM;YACf,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAC3B,QAAQ,EAAE,OAAO;SAClB,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACjB,IAAI,GAAG,EAAE,CAAC;gBACR,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;oBAC1C,OAAO,CAAC,MAAM,CAAC,CAAC;oBAChB,OAAO;gBACT,CAAC;gBACD,MAAM,CAAC,GAAG,CAAC,CAAC;gBACZ,OAAO;YACT,CAAC;YACD,OAAO,CAAC,MAAM,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAID,KAAK,UAAU,kBAAkB,CAAC,UAAkB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,uBAAuB,CAAC,CAAC,CAAC;QACjF,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,MAAM;YAAE,OAAO;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;IAED,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,UAAkB;IACjD,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC;QACjD,KAAK,EAAE;YACL,EAAE,EAAE;gBACF,EAAE,UAAU,EAAE;gBACd,EAAE,YAAY,EAAE,UAAU,EAAE;aAC7B;SACF;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;QACjD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;AACnE,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc;IACxC,OAAO,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,eAAe,CAAC,MAAc;IACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,OAAO,MAAM;SACV,IAAI,EAAE;SACN,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,wCAAwC;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;QAC5B,sCAAsC;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC;QAC3D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;IACpC,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAAwB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAC7D,CAAC;AAED,kFAAkF;AAClF,SAAS,YAAY,CAAC,MAAc;IAClC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoD,CAAC;IACxE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,yGAAyG;QACzG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QAC/B,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9B,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAC/B,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;gBAC3E,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAG,CAAC;QACpC,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,6DAA6D;AAC7D,SAAS,aAAa,CACpB,OAAsB,EACtB,KAA4D;IAE5D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;IAC3F,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,gBAAgB,GAAG,CAAC;KACvB,MAAM,EAAE;KACR,GAAG,CAAC,CAAC,EAAE,wBAAwB,CAAC;KAChC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,6BAA6B,EAAE,CAAC;KAC7E,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;IAChD,OAAO,EAAE,oCAAoC;CAC9C,CAAC,CAAC;AAEL,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,UAAU,EAAE,gBAAgB;CAC7B,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC/C,OAAO,EAAE,oCAAoC;KAC9C,CAAC;IACJ,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,UAAU,EAAE,gBAAgB;IAC5B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;CAChD,CAAC,CAAC;AAEH,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;CACnE,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,UAAU,EAAE,gBAAgB;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;IAClE,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,kBAAkB,CAAC;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;QAC/C,OAAO,EAAE,oCAAoC;KAC9C,CAAC;CACL,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAoB;IAClD,GAAG,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC7C,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC3C,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAEvD,kDAAkD;YAClD,IAAI,WAAW,GAAkB,EAAE,CAAC;YACpC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;gBAC5E,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBACzF,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,iEAAiE;gBACjE,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC;oBACpE,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;oBACtC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBACjF,WAAW,GAAG,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,CAAC;gBAAC,MAAM,CAAC;oBACP,SAAS;gBACX,CAAC;YACH,CAAC;YAED,+BAA+B;YAC/B,IAAI,CAAC;gBACH,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE;oBAChD,UAAU,EAAE,UAAU,EAAE,oBAAoB;iBAC7C,CAAC,CAAC;gBACH,IAAI,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC3B,MAAM,cAAc,GAAG,eAAe,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC1D,KAAK,MAAM,CAAC,IAAI,cAAc,EAAE,CAAC;wBAC/B,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,wCAAwC;YACxC,MAAM,mBAAmB,GAAG,UAAU,IAAI,MAAM,CAAC;YACjD,IAAI,SAAS,GAAkB,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE;oBACvC,MAAM;oBACN,eAAe;oBACf,GAAG,mBAAmB,SAAS;iBAChC,CAAC,CAAC;gBACH,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,UAAU,EACV,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,mBAAmB,SAAS,CAAC,CACvD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClB,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9D,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;oBAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE;wBACvC,MAAM;wBACN,eAAe;wBACf,GAAG,SAAS,SAAS;qBACtB,CAAC,CAAC;oBACH,SAAS,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;oBACpC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,UAAU,EACV,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,SAAS,CAAC,CAC7C,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBAClB,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC9D,CAAC;gBAAC,MAAM,CAAC;oBACP,6CAA6C;gBAC/C,CAAC;YACH,CAAC;YAED,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAClF,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACrC,MAAM,UAAU,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAErF,MAAM,mBAAmB,GAAG,UAAU,IAAI,MAAM,CAAC;YACjD,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3B,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC3D,0FAA0F;oBAC1F,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBACjB,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC;wBACtE,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAClF,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,GAAG,mBAAmB,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;oBAC5F,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;wBACjB,IAAI,GAAG,MAAM,OAAO,CAClB,UAAU,EACV,CAAC,MAAM,EAAE,GAAG,kBAAkB,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAC9E,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QACvC,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxE,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAErC,sFAAsF;YACtF,MAAM,MAAM,GAAG,+CAA+C,CAAC;YAC/D,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,YAAY,MAAM,EAAE,EAAE,eAAe,KAAK,EAAE,EAAE,UAAU,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;YAE7F,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;gBACpC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YACzB,CAAC;YAED,MAAM,OAAO,GAAG,MAAM;iBACnB,KAAK,CAAC,MAAM,CAAC;iBACb,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACxB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;iBAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;gBACnE,yFAAyF;gBACzF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,OAAO;oBACL,IAAI,EAAE,IAAI,IAAI,EAAE;oBAChB,SAAS,EAAE,SAAS,IAAI,EAAE;oBAC1B,MAAM,EAAE,MAAM,IAAI,EAAE;oBACpB,KAAK,EAAE,KAAK,IAAI,EAAE;oBAClB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC;oBACjC,OAAO,EAAE,OAAO,IAAI,EAAE;oBACtB,IAAI;iBACL,CAAC;YACJ,CAAC,CAAC,CAAC;YAEL,OAAO,EAAE,OAAO,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAChD,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzE,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAErC,IAAI,KAAK,GAAkB,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACvG,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;gBAChC,MAAM,OAAO,GAAG,MAAM,OAAO,CAC3B,UAAU,EACV,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CACzD,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;gBAClB,KAAK,GAAG,aAAa,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;YACtD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,OAAO,EAAE,KAAK,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;;OAGG;IACH,GAAG,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,qBAAqB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACxF,MAAM,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAErC,IAAI,IAAI,GAAG,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,mEAAmE;gBACnE,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChF,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YAED,OAAO,EAAE,IAAI,EAAE,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}