@agent-profile/web 0.1.5 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (206) hide show
  1. package/build/client/_app/immutable/chunks/4FiW6_9u.js +1 -0
  2. package/build/client/_app/immutable/chunks/4FiW6_9u.js.br +2 -0
  3. package/build/client/_app/immutable/chunks/4FiW6_9u.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/CF39CcoQ.js +3 -0
  5. package/build/client/_app/immutable/chunks/CF39CcoQ.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/CF39CcoQ.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/CRcOA4L4.js +3 -0
  8. package/build/client/_app/immutable/chunks/CRcOA4L4.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/CRcOA4L4.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{D0_SwbnT.js → Cc9Av3g9.js} +1 -1
  11. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{BN4Ca4cJ.js → DUEBfJ-c.js} +1 -1
  14. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.br +4 -0
  15. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/{DRoN73NW.js → DvNNrklS.js} +1 -1
  17. package/build/client/_app/immutable/chunks/DvNNrklS.js.br +2 -0
  18. package/build/client/_app/immutable/chunks/DvNNrklS.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.B45QQayJ.js → app.ZULfIbKE.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.XwZvWTgq.js +1 -0
  23. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.br +0 -0
  24. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{0.JRffyfUR.js → 0.BTaKrNnR.js} +1 -1
  26. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.56EgwKsF.js → 1.B4GcuHvH.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{10.Bhdlxk-S.js → 10.IHQDAuDz.js} +1 -1
  32. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{11.DAqRx2TI.js → 11.B5APptAv.js} +1 -1
  35. package/build/client/_app/immutable/nodes/11.B5APptAv.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/11.B5APptAv.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{2.CI-wpOC8.js → 2.BHUaWFMZ.js} +2 -2
  38. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{3.Bphawycs.js → 3.DIhh3cSh.js} +1 -1
  41. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{4.BGFkNM65.js → 4.DjkBBmOF.js} +1 -1
  44. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{5.VTs5grF0.js → 5.BPcSAYs6.js} +1 -1
  47. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{6.CndSdLIk.js → 6.DZa-5yoH.js} +1 -1
  50. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{7.DpFk4StA.js → 7.v6t5o5IK.js} +1 -1
  53. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js +1 -0
  56. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js +3 -0
  59. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.gz +0 -0
  61. package/build/client/_app/version.json +1 -1
  62. package/build/client/_app/version.json.br +0 -0
  63. package/build/client/_app/version.json.gz +0 -0
  64. package/build/server/chunks/{0-DWEpTDaF.js → 0-IAeZ4YD5.js} +8 -8
  65. package/build/server/chunks/{0-DWEpTDaF.js.map → 0-IAeZ4YD5.js.map} +1 -1
  66. package/build/server/chunks/{1-B68UkVTE.js → 1--R3gZqoU.js} +3 -3
  67. package/build/server/chunks/{1-B68UkVTE.js.map → 1--R3gZqoU.js.map} +1 -1
  68. package/build/server/chunks/10-B2v4GVik.js +9 -0
  69. package/build/server/chunks/{10-D7op0myD.js.map → 10-B2v4GVik.js.map} +1 -1
  70. package/build/server/chunks/{11-Ms74wtl9.js → 11-DbxvesJH.js} +4 -4
  71. package/build/server/chunks/{11-Ms74wtl9.js.map → 11-DbxvesJH.js.map} +1 -1
  72. package/build/server/chunks/{2-bmpngDVe.js → 2-CHviyPyI.js} +3 -3
  73. package/build/server/chunks/{2-bmpngDVe.js.map → 2-CHviyPyI.js.map} +1 -1
  74. package/build/server/chunks/3-CdNRNP5d.js +9 -0
  75. package/build/server/chunks/{3-BkezOAX7.js.map → 3-CdNRNP5d.js.map} +1 -1
  76. package/build/server/chunks/{4-CSfQwQwV.js → 4-CCj_Mhpz.js} +5 -5
  77. package/build/server/chunks/{4-CSfQwQwV.js.map → 4-CCj_Mhpz.js.map} +1 -1
  78. package/build/server/chunks/5-CqBVRlNU.js +9 -0
  79. package/build/server/chunks/{5-D_pZV4fS.js.map → 5-CqBVRlNU.js.map} +1 -1
  80. package/build/server/chunks/{6-DcbRMrH1.js → 6-BHxeFzUE.js} +3 -3
  81. package/build/server/chunks/{6-DcbRMrH1.js.map → 6-BHxeFzUE.js.map} +1 -1
  82. package/build/server/chunks/{7-BsMFIBGU.js → 7-BUFOaHdC.js} +6 -6
  83. package/build/server/chunks/{7-BsMFIBGU.js.map → 7-BUFOaHdC.js.map} +1 -1
  84. package/build/server/chunks/8-BbviFV5J.js +9 -0
  85. package/build/server/chunks/{8-DWleYW_e.js.map → 8-BbviFV5J.js.map} +1 -1
  86. package/build/server/chunks/{9-tHCipeiW.js → 9-kCTRECfO.js} +4 -4
  87. package/build/server/chunks/{9-tHCipeiW.js.map → 9-kCTRECfO.js.map} +1 -1
  88. package/build/server/chunks/{Badge-BYK3z3lr.js → Badge-DCQxSQCS.js} +2 -2
  89. package/build/server/chunks/{Badge-BYK3z3lr.js.map → Badge-DCQxSQCS.js.map} +1 -1
  90. package/build/server/chunks/{SafetyBadge-BXNCgLE-.js → SafetyBadge-BxEGojgX.js} +2 -2
  91. package/build/server/chunks/{SafetyBadge-BXNCgLE-.js.map → SafetyBadge-BxEGojgX.js.map} +1 -1
  92. package/build/server/chunks/{_layout.svelte-Cv35k3JT.js → _layout.svelte-CQM4xaaq.js} +5 -5
  93. package/build/server/chunks/{_layout.svelte-Cv35k3JT.js.map → _layout.svelte-CQM4xaaq.js.map} +1 -1
  94. package/build/server/chunks/{_page.svelte-BftcSD3f.js → _page.svelte-1wUrXGW-.js} +3 -3
  95. package/build/server/chunks/{_page.svelte-BftcSD3f.js.map → _page.svelte-1wUrXGW-.js.map} +1 -1
  96. package/build/server/chunks/{_page.svelte-CmuUQI4Y.js → _page.svelte-2W3EhlSt.js} +43 -20
  97. package/build/server/chunks/_page.svelte-2W3EhlSt.js.map +1 -0
  98. package/build/server/chunks/{_page.svelte-B-Kaw1RF.js → _page.svelte-B3CasgD8.js} +2 -2
  99. package/build/server/chunks/{_page.svelte-B-Kaw1RF.js.map → _page.svelte-B3CasgD8.js.map} +1 -1
  100. package/build/server/chunks/{_page.svelte-Cat8tEeF.js → _page.svelte-B6d3qwTm.js} +4 -4
  101. package/build/server/chunks/{_page.svelte-Cat8tEeF.js.map → _page.svelte-B6d3qwTm.js.map} +1 -1
  102. package/build/server/chunks/{_page.svelte-CIEY8g8A.js → _page.svelte-BikYFdJv.js} +4 -4
  103. package/build/server/chunks/{_page.svelte-CIEY8g8A.js.map → _page.svelte-BikYFdJv.js.map} +1 -1
  104. package/build/server/chunks/{_page.svelte-DyI46sDh.js → _page.svelte-D8ffqrO3.js} +3 -3
  105. package/build/server/chunks/{_page.svelte-DyI46sDh.js.map → _page.svelte-D8ffqrO3.js.map} +1 -1
  106. package/build/server/chunks/{_page.svelte-DLQqGym0.js → _page.svelte-DfUc4h7g.js} +4 -4
  107. package/build/server/chunks/{_page.svelte-DLQqGym0.js.map → _page.svelte-DfUc4h7g.js.map} +1 -1
  108. package/build/server/chunks/{_page.svelte-DZX4Bixr.js → _page.svelte-sygmDxbg.js} +5 -5
  109. package/build/server/chunks/{_page.svelte-DZX4Bixr.js.map → _page.svelte-sygmDxbg.js.map} +1 -1
  110. package/build/server/chunks/{_page.svelte-DHNevyzi.js → _page.svelte-wL3fdD1l.js} +4 -4
  111. package/build/server/chunks/{_page.svelte-DHNevyzi.js.map → _page.svelte-wL3fdD1l.js.map} +1 -1
  112. package/build/server/chunks/{_page.svelte-CUnw0pLx.js → _page.svelte-xTZOj1o8.js} +3 -3
  113. package/build/server/chunks/{_page.svelte-CUnw0pLx.js.map → _page.svelte-xTZOj1o8.js.map} +1 -1
  114. package/build/server/chunks/{_server.ts-sMKRiXFg.js → _server.ts-B7znNtap.js} +4 -4
  115. package/build/server/chunks/{_server.ts-sMKRiXFg.js.map → _server.ts-B7znNtap.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-DHt1bGpF.js → _server.ts-BjPyYUki.js} +3 -3
  117. package/build/server/chunks/{_server.ts-DHt1bGpF.js.map → _server.ts-BjPyYUki.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-BUQYdxPs.js → _server.ts-C8Fe0kql.js} +2 -2
  119. package/build/server/chunks/{_server.ts-BUQYdxPs.js.map → _server.ts-C8Fe0kql.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-5396UuLQ.js → _server.ts-D1Ja2hnG.js} +2 -2
  121. package/build/server/chunks/{_server.ts-5396UuLQ.js.map → _server.ts-D1Ja2hnG.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-Dq1jAomo.js → _server.ts-DsbQ4b7x.js} +3 -3
  123. package/build/server/chunks/{_server.ts-Dq1jAomo.js.map → _server.ts-DsbQ4b7x.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-CvdpZfED.js → _server.ts-hEGlXjuB.js} +2 -2
  125. package/build/server/chunks/{_server.ts-CvdpZfED.js.map → _server.ts-hEGlXjuB.js.map} +1 -1
  126. package/build/server/chunks/{client-92HF3fc9.js → client-h6Frgnzt.js} +3 -3
  127. package/build/server/chunks/{client-92HF3fc9.js.map → client-h6Frgnzt.js.map} +1 -1
  128. package/build/server/chunks/{dev-Duv_-rxF.js → dev-BdIdjvaY.js} +216 -82
  129. package/build/server/chunks/dev-BdIdjvaY.js.map +1 -0
  130. package/build/server/chunks/{doctorSummary-Bm0dY6PW.js → doctorSummary-FyoWuR3R.js} +3 -3
  131. package/build/server/chunks/{doctorSummary-Bm0dY6PW.js.map → doctorSummary-FyoWuR3R.js.map} +1 -1
  132. package/build/server/chunks/{error.svelte-BEI8QxGW.js → error.svelte-DYzh-S9t.js} +4 -4
  133. package/build/server/chunks/{error.svelte-BEI8QxGW.js.map → error.svelte-DYzh-S9t.js.map} +1 -1
  134. package/build/server/chunks/{internal-DBeni9My.js → internal-Dz8-ksla.js} +20 -15
  135. package/build/server/chunks/internal-Dz8-ksla.js.map +1 -0
  136. package/build/server/chunks/{marketingSeo-Do5o0grg.js → marketingSeo-6Ec8IVzY.js} +2 -2
  137. package/build/server/chunks/{marketingSeo-Do5o0grg.js.map → marketingSeo-6Ec8IVzY.js.map} +1 -1
  138. package/build/server/chunks/{profileApiHelpers-BFzohffv.js → profileApiHelpers-CUuQdn1G.js} +2 -2
  139. package/build/server/chunks/{profileApiHelpers-BFzohffv.js.map → profileApiHelpers-CUuQdn1G.js.map} +1 -1
  140. package/build/server/chunks/{projectContext-Cxsfz84C.js → projectContext-fk5wtjwg.js} +988 -29
  141. package/build/server/chunks/projectContext-fk5wtjwg.js.map +1 -0
  142. package/build/server/chunks/{src2-DNqJAXv6.js → src2-BFardyAd.js} +2 -2
  143. package/build/server/chunks/src2-BFardyAd.js.map +1 -0
  144. package/build/server/chunks/{src3-jm480tTA.js → src3-vKD2iyNK.js} +134 -2
  145. package/build/server/chunks/src3-vKD2iyNK.js.map +1 -0
  146. package/build/server/index.js +4 -5
  147. package/build/server/index.js.map +1 -1
  148. package/build/server/manifest.js +19 -19
  149. package/build/server/manifest.js.map +1 -1
  150. package/package.json +7 -7
  151. package/build/client/_app/immutable/chunks/6SrQtk22.js +0 -3
  152. package/build/client/_app/immutable/chunks/6SrQtk22.js.br +0 -0
  153. package/build/client/_app/immutable/chunks/6SrQtk22.js.gz +0 -0
  154. package/build/client/_app/immutable/chunks/B1X0Iqjr.js +0 -3
  155. package/build/client/_app/immutable/chunks/B1X0Iqjr.js.br +0 -0
  156. package/build/client/_app/immutable/chunks/B1X0Iqjr.js.gz +0 -0
  157. package/build/client/_app/immutable/chunks/BN4Ca4cJ.js.br +0 -0
  158. package/build/client/_app/immutable/chunks/BN4Ca4cJ.js.gz +0 -0
  159. package/build/client/_app/immutable/chunks/BYeYmN2n.js +0 -1
  160. package/build/client/_app/immutable/chunks/BYeYmN2n.js.br +0 -2
  161. package/build/client/_app/immutable/chunks/BYeYmN2n.js.gz +0 -0
  162. package/build/client/_app/immutable/chunks/D0_SwbnT.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/D0_SwbnT.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/DRoN73NW.js.br +0 -2
  165. package/build/client/_app/immutable/chunks/DRoN73NW.js.gz +0 -0
  166. package/build/client/_app/immutable/entry/app.B45QQayJ.js.br +0 -0
  167. package/build/client/_app/immutable/entry/app.B45QQayJ.js.gz +0 -0
  168. package/build/client/_app/immutable/entry/start.BIlQ_snM.js +0 -1
  169. package/build/client/_app/immutable/entry/start.BIlQ_snM.js.br +0 -0
  170. package/build/client/_app/immutable/entry/start.BIlQ_snM.js.gz +0 -0
  171. package/build/client/_app/immutable/nodes/0.JRffyfUR.js.br +0 -0
  172. package/build/client/_app/immutable/nodes/0.JRffyfUR.js.gz +0 -0
  173. package/build/client/_app/immutable/nodes/1.56EgwKsF.js.br +0 -0
  174. package/build/client/_app/immutable/nodes/1.56EgwKsF.js.gz +0 -0
  175. package/build/client/_app/immutable/nodes/10.Bhdlxk-S.js.br +0 -0
  176. package/build/client/_app/immutable/nodes/10.Bhdlxk-S.js.gz +0 -0
  177. package/build/client/_app/immutable/nodes/11.DAqRx2TI.js.br +0 -0
  178. package/build/client/_app/immutable/nodes/11.DAqRx2TI.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/2.CI-wpOC8.js.br +0 -0
  180. package/build/client/_app/immutable/nodes/2.CI-wpOC8.js.gz +0 -0
  181. package/build/client/_app/immutable/nodes/3.Bphawycs.js.br +0 -0
  182. package/build/client/_app/immutable/nodes/3.Bphawycs.js.gz +0 -0
  183. package/build/client/_app/immutable/nodes/4.BGFkNM65.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/4.BGFkNM65.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/5.VTs5grF0.js.br +0 -0
  186. package/build/client/_app/immutable/nodes/5.VTs5grF0.js.gz +0 -0
  187. package/build/client/_app/immutable/nodes/6.CndSdLIk.js.br +0 -0
  188. package/build/client/_app/immutable/nodes/6.CndSdLIk.js.gz +0 -0
  189. package/build/client/_app/immutable/nodes/7.DpFk4StA.js.br +0 -0
  190. package/build/client/_app/immutable/nodes/7.DpFk4StA.js.gz +0 -0
  191. package/build/client/_app/immutable/nodes/8.Y7A99ODL.js +0 -1
  192. package/build/client/_app/immutable/nodes/8.Y7A99ODL.js.br +0 -0
  193. package/build/client/_app/immutable/nodes/8.Y7A99ODL.js.gz +0 -0
  194. package/build/client/_app/immutable/nodes/9.DF3LeTGi.js +0 -3
  195. package/build/client/_app/immutable/nodes/9.DF3LeTGi.js.br +0 -0
  196. package/build/client/_app/immutable/nodes/9.DF3LeTGi.js.gz +0 -0
  197. package/build/server/chunks/10-D7op0myD.js +0 -9
  198. package/build/server/chunks/3-BkezOAX7.js +0 -9
  199. package/build/server/chunks/5-D_pZV4fS.js +0 -9
  200. package/build/server/chunks/8-DWleYW_e.js +0 -9
  201. package/build/server/chunks/_page.svelte-CmuUQI4Y.js.map +0 -1
  202. package/build/server/chunks/dev-Duv_-rxF.js.map +0 -1
  203. package/build/server/chunks/internal-DBeni9My.js.map +0 -1
  204. package/build/server/chunks/projectContext-Cxsfz84C.js.map +0 -1
  205. package/build/server/chunks/src2-DNqJAXv6.js.map +0 -1
  206. package/build/server/chunks/src3-jm480tTA.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"profileApiHelpers-BFzohffv.js","sources":["../../../.svelte-kit/adapter-node/chunks/profileApiHelpers.js"],"sourcesContent":["import { c as renderProfileYaml, i as deriveEffectivePermissions, l as validateProfileValue, o as normalizeSafety, s as parseProfileYaml, t as containsSecretLikeLiteral } from \"./src.js\";\nimport { o as computeFileEtag } from \"./projectContext.js\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { createTwoFilesPatch, diffLines } from \"diff\";\n//#region src/lib/server/profileApiHelpers.ts\n/**\n* Shared helpers for the Phase 8 profile API routes:\n* GET /api/profile\n* POST /api/profile/plan\n* POST /api/profile/apply\n*/\nvar PROFILE_FILENAME = \"ai-profile.yaml\";\nvar MAX_PAYLOAD_BYTES = 128 * 1024;\nvar UTF8_DECODER = new TextDecoder(\"utf-8\", { fatal: true });\nasync function readDiskProfile(rootDir) {\n\tconst profilePath = path.join(rootDir, PROFILE_FILENAME);\n\tlet bytes;\n\ttry {\n\t\tbytes = await readFile(profilePath);\n\t} catch (err) {\n\t\tif (isNodeError(err) && err.code === \"ENOENT\") return {\n\t\t\tok: false,\n\t\t\treason: \"not_found\",\n\t\t\tissues: [],\n\t\t\tunsupportedEditing: false\n\t\t};\n\t\tthrow err;\n\t}\n\tconst source = bytes.toString(\"utf8\");\n\tconst etag = computeFileEtag(bytes);\n\tconst result = parseProfileYaml(source, { sourcePath: PROFILE_FILENAME });\n\tif (!result.ok) {\n\t\tconst hasUnknown = result.issues.some((i) => i.code === \"schema_validation_error\" && i.expected === \"no additional properties\");\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"invalid\",\n\t\t\tissues: result.issues,\n\t\t\tunsupportedEditing: hasUnknown,\n\t\t\tetag\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tbytes,\n\t\tetag,\n\t\tsource,\n\t\tprofile: result.profile,\n\t\tsafety: normalizeSafety(result.profile),\n\t\teffectivePermissions: deriveEffectivePermissions(result.profile),\n\t\tunsupportedEditing: false\n\t};\n}\nasync function readJsonRequestBody(request, maxBytes = MAX_PAYLOAD_BYTES) {\n\tconst contentLengthHeader = request.headers.get(\"content-length\");\n\tif (contentLengthHeader !== null) {\n\t\tconst contentLength = Number(contentLengthHeader);\n\t\tif (!Number.isFinite(contentLength) || contentLength < 0) return {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_request\",\n\t\t\tmessage: \"Invalid content-length header.\"\n\t\t};\n\t\tif (contentLength > maxBytes) return {\n\t\t\tok: false,\n\t\t\tstatus: 413,\n\t\t\terror: \"payload_too_large\"\n\t\t};\n\t}\n\tconst bytes = new Uint8Array(await request.arrayBuffer());\n\tif (bytes.byteLength > maxBytes) return {\n\t\tok: false,\n\t\tstatus: 413,\n\t\terror: \"payload_too_large\"\n\t};\n\tif (bytes.includes(0)) return {\n\t\tok: false,\n\t\tstatus: 400,\n\t\terror: \"invalid_encoding\",\n\t\tmessage: \"Request body contains a NUL byte.\"\n\t};\n\tlet text;\n\ttry {\n\t\ttext = UTF8_DECODER.decode(bytes);\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_encoding\",\n\t\t\tmessage: \"Request body is not valid UTF-8.\"\n\t\t};\n\t}\n\ttry {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tbody: JSON.parse(text)\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_request\",\n\t\t\tmessage: \"Body is not valid JSON.\"\n\t\t};\n\t}\n}\nfunction validateCandidate(candidate) {\n\tconst result = validateProfileValue(candidate);\n\tif (!result.ok) return {\n\t\tok: false,\n\t\treason: \"invalid\",\n\t\tissues: result.issues\n\t};\n\tconst nulPaths = findNulStringPaths(result.profile);\n\tif (nulPaths.length > 0) return {\n\t\tok: false,\n\t\treason: \"invalid_encoding\",\n\t\tpaths: nulPaths\n\t};\n\tconst secretPaths = findSecretLikePaths(result.profile);\n\tif (secretPaths.length > 0) return {\n\t\tok: false,\n\t\treason: \"secret_like\",\n\t\tpaths: secretPaths\n\t};\n\tconst yaml = renderProfileYaml(result.profile);\n\treturn {\n\t\tok: true,\n\t\tyaml,\n\t\tetag: computeFileEtag(Buffer.from(yaml, \"utf8\"))\n\t};\n}\nfunction findNulStringPaths(profile) {\n\tconst paths = [];\n\tif (profile.profile.name.includes(\"\\0\")) paths.push(\"/profile/name\");\n\tif (profile.profile.description.includes(\"\\0\")) paths.push(\"/profile/description\");\n\tfor (const [i, lang] of profile.stack.languages.entries()) if (lang.includes(\"\\0\")) paths.push(`/stack/languages/${i}`);\n\tfor (const [i, fw] of profile.stack.frameworks.entries()) if (fw.includes(\"\\0\")) paths.push(`/stack/frameworks/${i}`);\n\tfor (const [i, pm] of profile.stack.packageManagers.entries()) if (pm.includes(\"\\0\")) paths.push(`/stack/packageManagers/${i}`);\n\tfor (const [i, t] of profile.stack.testing.entries()) if (t.includes(\"\\0\")) paths.push(`/stack/testing/${i}`);\n\treturn paths;\n}\nfunction findSecretLikePaths(profile) {\n\tconst paths = [];\n\tif (containsSecretLikeLiteral(profile.profile.name)) paths.push(\"/profile/name\");\n\tif (containsSecretLikeLiteral(profile.profile.description)) paths.push(\"/profile/description\");\n\tfor (const [i, lang] of profile.stack.languages.entries()) if (containsSecretLikeLiteral(lang)) paths.push(`/stack/languages/${i}`);\n\tfor (const [i, fw] of profile.stack.frameworks.entries()) if (containsSecretLikeLiteral(fw)) paths.push(`/stack/frameworks/${i}`);\n\tfor (const [i, pm] of profile.stack.packageManagers.entries()) if (containsSecretLikeLiteral(pm)) paths.push(`/stack/packageManagers/${i}`);\n\tfor (const [i, t] of profile.stack.testing.entries()) if (containsSecretLikeLiteral(t)) paths.push(`/stack/testing/${i}`);\n\treturn paths;\n}\nfunction computeProfileDiff(oldText, newText) {\n\tif (oldText === newText) return {\n\t\ttext: \"\",\n\t\tadded: 0,\n\t\tremoved: 0,\n\t\tchanged: false\n\t};\n\tlet added = 0;\n\tlet removed = 0;\n\tfor (const change of diffLines(oldText, newText)) if (change.added) added += change.count ?? countLines(change.value);\n\telse if (change.removed) removed += change.count ?? countLines(change.value);\n\treturn {\n\t\ttext: createTwoFilesPatch(PROFILE_FILENAME, PROFILE_FILENAME, oldText, newText, \"\", \"\", { context: 3 }),\n\t\tadded,\n\t\tremoved,\n\t\tchanged: true\n\t};\n}\nfunction countLines(value) {\n\tif (value.length === 0) return 0;\n\treturn value.endsWith(\"\\n\") ? value.slice(0, -1).split(\"\\n\").length : value.split(\"\\n\").length;\n}\nfunction isNodeError(err) {\n\treturn err instanceof Error && \"code\" in err;\n}\n//#endregion\nexport { validateCandidate as i, readDiskProfile as n, readJsonRequestBody as r, computeProfileDiff as t };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profileApiHelpers-CUuQdn1G.js","sources":["../../../.svelte-kit/adapter-node/chunks/profileApiHelpers.js"],"sourcesContent":["import { _ as validateProfileValue, a as deriveEffectivePermissions, g as renderProfileYaml, h as parseProfileYaml, p as normalizeSafety, t as containsSecretLikeLiteral } from \"./src.js\";\nimport { o as computeFileEtag } from \"./projectContext.js\";\nimport { readFile } from \"node:fs/promises\";\nimport path from \"node:path\";\nimport { createTwoFilesPatch, diffLines } from \"diff\";\n//#region src/lib/server/profileApiHelpers.ts\n/**\n* Shared helpers for the Phase 8 profile API routes:\n* GET /api/profile\n* POST /api/profile/plan\n* POST /api/profile/apply\n*/\nvar PROFILE_FILENAME = \"ai-profile.yaml\";\nvar MAX_PAYLOAD_BYTES = 128 * 1024;\nvar UTF8_DECODER = new TextDecoder(\"utf-8\", { fatal: true });\nasync function readDiskProfile(rootDir) {\n\tconst profilePath = path.join(rootDir, PROFILE_FILENAME);\n\tlet bytes;\n\ttry {\n\t\tbytes = await readFile(profilePath);\n\t} catch (err) {\n\t\tif (isNodeError(err) && err.code === \"ENOENT\") return {\n\t\t\tok: false,\n\t\t\treason: \"not_found\",\n\t\t\tissues: [],\n\t\t\tunsupportedEditing: false\n\t\t};\n\t\tthrow err;\n\t}\n\tconst source = bytes.toString(\"utf8\");\n\tconst etag = computeFileEtag(bytes);\n\tconst result = parseProfileYaml(source, { sourcePath: PROFILE_FILENAME });\n\tif (!result.ok) {\n\t\tconst hasUnknown = result.issues.some((i) => i.code === \"schema_validation_error\" && i.expected === \"no additional properties\");\n\t\treturn {\n\t\t\tok: false,\n\t\t\treason: \"invalid\",\n\t\t\tissues: result.issues,\n\t\t\tunsupportedEditing: hasUnknown,\n\t\t\tetag\n\t\t};\n\t}\n\treturn {\n\t\tok: true,\n\t\tbytes,\n\t\tetag,\n\t\tsource,\n\t\tprofile: result.profile,\n\t\tsafety: normalizeSafety(result.profile),\n\t\teffectivePermissions: deriveEffectivePermissions(result.profile),\n\t\tunsupportedEditing: false\n\t};\n}\nasync function readJsonRequestBody(request, maxBytes = MAX_PAYLOAD_BYTES) {\n\tconst contentLengthHeader = request.headers.get(\"content-length\");\n\tif (contentLengthHeader !== null) {\n\t\tconst contentLength = Number(contentLengthHeader);\n\t\tif (!Number.isFinite(contentLength) || contentLength < 0) return {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_request\",\n\t\t\tmessage: \"Invalid content-length header.\"\n\t\t};\n\t\tif (contentLength > maxBytes) return {\n\t\t\tok: false,\n\t\t\tstatus: 413,\n\t\t\terror: \"payload_too_large\"\n\t\t};\n\t}\n\tconst bytes = new Uint8Array(await request.arrayBuffer());\n\tif (bytes.byteLength > maxBytes) return {\n\t\tok: false,\n\t\tstatus: 413,\n\t\terror: \"payload_too_large\"\n\t};\n\tif (bytes.includes(0)) return {\n\t\tok: false,\n\t\tstatus: 400,\n\t\terror: \"invalid_encoding\",\n\t\tmessage: \"Request body contains a NUL byte.\"\n\t};\n\tlet text;\n\ttry {\n\t\ttext = UTF8_DECODER.decode(bytes);\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_encoding\",\n\t\t\tmessage: \"Request body is not valid UTF-8.\"\n\t\t};\n\t}\n\ttry {\n\t\treturn {\n\t\t\tok: true,\n\t\t\tbody: JSON.parse(text)\n\t\t};\n\t} catch {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tstatus: 400,\n\t\t\terror: \"invalid_request\",\n\t\t\tmessage: \"Body is not valid JSON.\"\n\t\t};\n\t}\n}\nfunction validateCandidate(candidate) {\n\tconst result = validateProfileValue(candidate);\n\tif (!result.ok) return {\n\t\tok: false,\n\t\treason: \"invalid\",\n\t\tissues: result.issues\n\t};\n\tconst nulPaths = findNulStringPaths(result.profile);\n\tif (nulPaths.length > 0) return {\n\t\tok: false,\n\t\treason: \"invalid_encoding\",\n\t\tpaths: nulPaths\n\t};\n\tconst secretPaths = findSecretLikePaths(result.profile);\n\tif (secretPaths.length > 0) return {\n\t\tok: false,\n\t\treason: \"secret_like\",\n\t\tpaths: secretPaths\n\t};\n\tconst yaml = renderProfileYaml(result.profile);\n\treturn {\n\t\tok: true,\n\t\tyaml,\n\t\tetag: computeFileEtag(Buffer.from(yaml, \"utf8\"))\n\t};\n}\nfunction findNulStringPaths(profile) {\n\tconst paths = [];\n\tif (profile.profile.name.includes(\"\\0\")) paths.push(\"/profile/name\");\n\tif (profile.profile.description.includes(\"\\0\")) paths.push(\"/profile/description\");\n\tfor (const [i, lang] of profile.stack.languages.entries()) if (lang.includes(\"\\0\")) paths.push(`/stack/languages/${i}`);\n\tfor (const [i, fw] of profile.stack.frameworks.entries()) if (fw.includes(\"\\0\")) paths.push(`/stack/frameworks/${i}`);\n\tfor (const [i, pm] of profile.stack.packageManagers.entries()) if (pm.includes(\"\\0\")) paths.push(`/stack/packageManagers/${i}`);\n\tfor (const [i, t] of profile.stack.testing.entries()) if (t.includes(\"\\0\")) paths.push(`/stack/testing/${i}`);\n\treturn paths;\n}\nfunction findSecretLikePaths(profile) {\n\tconst paths = [];\n\tif (containsSecretLikeLiteral(profile.profile.name)) paths.push(\"/profile/name\");\n\tif (containsSecretLikeLiteral(profile.profile.description)) paths.push(\"/profile/description\");\n\tfor (const [i, lang] of profile.stack.languages.entries()) if (containsSecretLikeLiteral(lang)) paths.push(`/stack/languages/${i}`);\n\tfor (const [i, fw] of profile.stack.frameworks.entries()) if (containsSecretLikeLiteral(fw)) paths.push(`/stack/frameworks/${i}`);\n\tfor (const [i, pm] of profile.stack.packageManagers.entries()) if (containsSecretLikeLiteral(pm)) paths.push(`/stack/packageManagers/${i}`);\n\tfor (const [i, t] of profile.stack.testing.entries()) if (containsSecretLikeLiteral(t)) paths.push(`/stack/testing/${i}`);\n\treturn paths;\n}\nfunction computeProfileDiff(oldText, newText) {\n\tif (oldText === newText) return {\n\t\ttext: \"\",\n\t\tadded: 0,\n\t\tremoved: 0,\n\t\tchanged: false\n\t};\n\tlet added = 0;\n\tlet removed = 0;\n\tfor (const change of diffLines(oldText, newText)) if (change.added) added += change.count ?? countLines(change.value);\n\telse if (change.removed) removed += change.count ?? countLines(change.value);\n\treturn {\n\t\ttext: createTwoFilesPatch(PROFILE_FILENAME, PROFILE_FILENAME, oldText, newText, \"\", \"\", { context: 3 }),\n\t\tadded,\n\t\tremoved,\n\t\tchanged: true\n\t};\n}\nfunction countLines(value) {\n\tif (value.length === 0) return 0;\n\treturn value.endsWith(\"\\n\") ? value.slice(0, -1).split(\"\\n\").length : value.split(\"\\n\").length;\n}\nfunction isNodeError(err) {\n\treturn err instanceof Error && \"code\" in err;\n}\n//#endregion\nexport { validateCandidate as i, readDiskProfile as n, readJsonRequestBody as r, computeProfileDiff as t };\n"],"names":[],"mappings":";;;;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gBAAgB,GAAG,iBAAiB;AACxC,IAAI,iBAAiB,GAAG,GAAG,GAAG,IAAI;AAClC,IAAI,YAAY,GAAG,IAAI,WAAW,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AAC5D,eAAe,eAAe,CAAC,OAAO,EAAE;AACxC,CAAC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACzD,CAAC,IAAI,KAAK;AACV,CAAC,IAAI;AACL,EAAE,KAAK,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC;AACrC,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE;AACf,EAAE,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,OAAO;AACxD,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,WAAW;AACtB,GAAG,MAAM,EAAE,EAAE;AACb,GAAG,kBAAkB,EAAE;AACvB,GAAG;AACH,EAAE,MAAM,GAAG;AACX,CAAC;AACD,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACtC,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC;AACpC,CAAC,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC;AAC1E,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE;AACjB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,yBAAyB,IAAI,CAAC,CAAC,QAAQ,KAAK,0BAA0B,CAAC;AACjI,EAAE,OAAO;AACT,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,SAAS;AACpB,GAAG,MAAM,EAAE,MAAM,CAAC,MAAM;AACxB,GAAG,kBAAkB,EAAE,UAAU;AACjC,GAAG;AACH,GAAG;AACH,CAAC;AACD,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,KAAK;AACP,EAAE,IAAI;AACN,EAAE,MAAM;AACR,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO;AACzB,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;AACzC,EAAE,oBAAoB,EAAE,0BAA0B,CAAC,MAAM,CAAC,OAAO,CAAC;AAClE,EAAE,kBAAkB,EAAE;AACtB,EAAE;AACF;AACA,eAAe,mBAAmB,CAAC,OAAO,EAAE,QAAQ,GAAG,iBAAiB,EAAE;AAC1E,CAAC,MAAM,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AAClE,CAAC,IAAI,mBAAmB,KAAK,IAAI,EAAE;AACnC,EAAE,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACnD,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,OAAO;AACnE,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,KAAK,EAAE,iBAAiB;AAC3B,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,EAAE,IAAI,aAAa,GAAG,QAAQ,EAAE,OAAO;AACvC,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,KAAK,EAAE;AACV,GAAG;AACH,CAAC;AACD,CAAC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,OAAO,CAAC,WAAW,EAAE,CAAC;AAC1D,CAAC,IAAI,KAAK,CAAC,UAAU,GAAG,QAAQ,EAAE,OAAO;AACzC,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE;AACT,EAAE;AACF,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO;AAC/B,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,MAAM,EAAE,GAAG;AACb,EAAE,KAAK,EAAE,kBAAkB;AAC3B,EAAE,OAAO,EAAE;AACX,EAAE;AACF,CAAC,IAAI,IAAI;AACT,CAAC,IAAI;AACL,EAAE,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC;AACnC,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO;AACT,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,KAAK,EAAE,kBAAkB;AAC5B,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,CAAC;AACD,CAAC,IAAI;AACL,EAAE,OAAO;AACT,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;AACxB,GAAG;AACH,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,OAAO;AACT,GAAG,EAAE,EAAE,KAAK;AACZ,GAAG,MAAM,EAAE,GAAG;AACd,GAAG,KAAK,EAAE,iBAAiB;AAC3B,GAAG,OAAO,EAAE;AACZ,GAAG;AACH,CAAC;AACD;AACA,SAAS,iBAAiB,CAAC,SAAS,EAAE;AACtC,CAAC,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC;AAC/C,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO;AACxB,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,MAAM,EAAE,SAAS;AACnB,EAAE,MAAM,EAAE,MAAM,CAAC;AACjB,EAAE;AACF,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC;AACpD,CAAC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO;AACjC,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,MAAM,EAAE,kBAAkB;AAC5B,EAAE,KAAK,EAAE;AACT,EAAE;AACF,CAAC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC;AACxD,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO;AACpC,EAAE,EAAE,EAAE,KAAK;AACX,EAAE,MAAM,EAAE,aAAa;AACvB,EAAE,KAAK,EAAE;AACT,EAAE;AACF,CAAC,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC;AAC/C,CAAC,OAAO;AACR,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,IAAI;AACN,EAAE,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;AACjD,EAAE;AACF;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE;AACrC,CAAC,MAAM,KAAK,GAAG,EAAE;AACjB,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AACrE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;AACnF,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;AACxH,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;AACtH,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;AAChI,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;AAC9G,CAAC,OAAO,KAAK;AACb;AACA,SAAS,mBAAmB,CAAC,OAAO,EAAE;AACtC,CAAC,MAAM,KAAK,GAAG,EAAE;AACjB,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;AACjF,CAAC,IAAI,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC;AAC/F,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,yBAAyB,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;AACpI,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,yBAAyB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;AAClI,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,IAAI,yBAAyB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5I,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,yBAAyB,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1H,CAAC,OAAO,KAAK;AACb;AACA,SAAS,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE;AAC9C,CAAC,IAAI,OAAO,KAAK,OAAO,EAAE,OAAO;AACjC,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,KAAK,EAAE,CAAC;AACV,EAAE,OAAO,EAAE,CAAC;AACZ,EAAE,OAAO,EAAE;AACX,EAAE;AACF,CAAC,IAAI,KAAK,GAAG,CAAC;AACd,CAAC,IAAI,OAAO,GAAG,CAAC;AAChB,CAAC,KAAK,MAAM,MAAM,IAAI,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AACtH,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7E,CAAC,OAAO;AACR,EAAE,IAAI,EAAE,mBAAmB,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;AACzG,EAAE,KAAK;AACP,EAAE,OAAO;AACT,EAAE,OAAO,EAAE;AACX,EAAE;AACF;AACA,SAAS,UAAU,CAAC,KAAK,EAAE;AAC3B,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,CAAC;AACjC,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;AAC/F;AACA,SAAS,WAAW,CAAC,GAAG,EAAE;AAC1B,CAAC,OAAO,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG;AAC7C;;;;"}