@agent-profile/web 0.2.0 → 0.3.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 (233) hide show
  1. package/build/client/_app/immutable/assets/9.BDcQmxob.css +1 -0
  2. package/build/client/_app/immutable/assets/9.BDcQmxob.css.br +0 -0
  3. package/build/client/_app/immutable/assets/9.BDcQmxob.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/BcMnim1Z.js +2 -0
  5. package/build/client/_app/immutable/chunks/BcMnim1Z.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/BcMnim1Z.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/D5fBh0I2.js +1 -0
  8. package/build/client/_app/immutable/chunks/D5fBh0I2.js.br +2 -0
  9. package/build/client/_app/immutable/chunks/D5fBh0I2.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/DJ5W1vn7.js +3 -0
  11. package/build/client/_app/immutable/chunks/DJ5W1vn7.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/DJ5W1vn7.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/DTBN031P.js +1 -0
  14. package/build/client/_app/immutable/chunks/DTBN031P.js.br +2 -0
  15. package/build/client/_app/immutable/chunks/DTBN031P.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/D_wMLkFK.js +1 -0
  17. package/build/client/_app/immutable/chunks/D_wMLkFK.js.br +2 -0
  18. package/build/client/_app/immutable/chunks/D_wMLkFK.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{CRcOA4L4.js → m4VeB-e-.js} +2 -2
  20. package/build/client/_app/immutable/chunks/m4VeB-e-.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/m4VeB-e-.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/app.DMWpO7sJ.js +2 -0
  23. package/build/client/_app/immutable/entry/app.DMWpO7sJ.js.br +0 -0
  24. package/build/client/_app/immutable/entry/app.DMWpO7sJ.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/start.BBaMgJ1R.js +1 -0
  26. package/build/client/_app/immutable/entry/start.BBaMgJ1R.js.br +0 -0
  27. package/build/client/_app/immutable/entry/start.BBaMgJ1R.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/0.Dv0k2Jqi.js +1 -0
  29. package/build/client/_app/immutable/nodes/0.Dv0k2Jqi.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/0.Dv0k2Jqi.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/1.E6HqFVj7.js +1 -0
  32. package/build/client/_app/immutable/nodes/1.E6HqFVj7.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/1.E6HqFVj7.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/10.DorD5wKe.js +3 -0
  35. package/build/client/_app/immutable/nodes/10.DorD5wKe.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/10.DorD5wKe.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{10.IHQDAuDz.js → 11.3lkgWYOd.js} +2 -2
  38. package/build/client/_app/immutable/nodes/11.3lkgWYOd.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/11.3lkgWYOd.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/12.p6ol8gkx.js +1 -0
  41. package/build/client/_app/immutable/nodes/12.p6ol8gkx.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/12.p6ol8gkx.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{2.BHUaWFMZ.js → 2.DMK5rlQk.js} +2 -2
  44. package/build/client/_app/immutable/nodes/2.DMK5rlQk.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/2.DMK5rlQk.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/3.BBvN4Erf.js +2 -0
  47. package/build/client/_app/immutable/nodes/3.BBvN4Erf.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/3.BBvN4Erf.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/4.3VL8fZOS.js +4 -0
  50. package/build/client/_app/immutable/nodes/4.3VL8fZOS.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/4.3VL8fZOS.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/5.CiNtblYV.js +2 -0
  53. package/build/client/_app/immutable/nodes/5.CiNtblYV.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/5.CiNtblYV.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/6.BRCCYakl.js +5 -0
  56. package/build/client/_app/immutable/nodes/6.BRCCYakl.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/6.BRCCYakl.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/7.Bn-YL1OM.js +4 -0
  59. package/build/client/_app/immutable/nodes/7.Bn-YL1OM.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/7.Bn-YL1OM.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/8.CkQQuOBs.js +1 -0
  62. package/build/client/_app/immutable/nodes/8.CkQQuOBs.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/8.CkQQuOBs.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/9.6KxRZbKJ.js +9 -0
  65. package/build/client/_app/immutable/nodes/9.6KxRZbKJ.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/9.6KxRZbKJ.js.gz +0 -0
  67. package/build/client/_app/version.json +1 -1
  68. package/build/client/_app/version.json.br +0 -0
  69. package/build/client/_app/version.json.gz +0 -0
  70. package/build/server/chunks/{0-IAeZ4YD5.js → 0-D1xG012U.js} +8 -8
  71. package/build/server/chunks/{0-IAeZ4YD5.js.map → 0-D1xG012U.js.map} +1 -1
  72. package/build/server/chunks/1-B1kTzRNn.js +9 -0
  73. package/build/server/chunks/{1--R3gZqoU.js.map → 1-B1kTzRNn.js.map} +1 -1
  74. package/build/server/chunks/{9-kCTRECfO.js → 10-DahfOzGu.js} +7 -7
  75. package/build/server/chunks/10-DahfOzGu.js.map +1 -0
  76. package/build/server/chunks/11-mzYblRmm.js +9 -0
  77. package/build/server/chunks/11-mzYblRmm.js.map +1 -0
  78. package/build/server/chunks/{11-DbxvesJH.js → 12-Dw1Y6Xen.js} +4 -4
  79. package/build/server/chunks/{11-DbxvesJH.js.map → 12-Dw1Y6Xen.js.map} +1 -1
  80. package/build/server/chunks/{2-CHviyPyI.js → 2-Cbd6Pglj.js} +3 -3
  81. package/build/server/chunks/{2-CHviyPyI.js.map → 2-Cbd6Pglj.js.map} +1 -1
  82. package/build/server/chunks/{3-CdNRNP5d.js → 3-DjAsck26.js} +2 -2
  83. package/build/server/chunks/{3-CdNRNP5d.js.map → 3-DjAsck26.js.map} +1 -1
  84. package/build/server/chunks/{4-CCj_Mhpz.js → 4-CKQYCTZo.js} +4 -4
  85. package/build/server/chunks/{4-CCj_Mhpz.js.map → 4-CKQYCTZo.js.map} +1 -1
  86. package/build/server/chunks/5-BDp1sX0Q.js +9 -0
  87. package/build/server/chunks/{5-CqBVRlNU.js.map → 5-BDp1sX0Q.js.map} +1 -1
  88. package/build/server/chunks/{6-BHxeFzUE.js → 6-CUIuzy6O.js} +2 -2
  89. package/build/server/chunks/{6-BHxeFzUE.js.map → 6-CUIuzy6O.js.map} +1 -1
  90. package/build/server/chunks/{7-BUFOaHdC.js → 7-BDv5_nF1.js} +6 -6
  91. package/build/server/chunks/{7-BUFOaHdC.js.map → 7-BDv5_nF1.js.map} +1 -1
  92. package/build/server/chunks/8-CspJz0xl.js +9 -0
  93. package/build/server/chunks/{8-BbviFV5J.js.map → 8-CspJz0xl.js.map} +1 -1
  94. package/build/server/chunks/9-BpgaO-rd.js +33 -0
  95. package/build/server/chunks/9-BpgaO-rd.js.map +1 -0
  96. package/build/server/chunks/{_layout.svelte-CQM4xaaq.js → _layout.svelte-6X0-Uv9x.js} +13 -3
  97. package/build/server/chunks/_layout.svelte-6X0-Uv9x.js.map +1 -0
  98. package/build/server/chunks/_page.svelte-BEU4JrAd.js +433 -0
  99. package/build/server/chunks/_page.svelte-BEU4JrAd.js.map +1 -0
  100. package/build/server/chunks/{_page.svelte-B6d3qwTm.js → _page.svelte-Bi4xsxv7.js} +3 -3
  101. package/build/server/chunks/{_page.svelte-B6d3qwTm.js.map → _page.svelte-Bi4xsxv7.js.map} +1 -1
  102. package/build/server/chunks/{_page.svelte-2W3EhlSt.js → _page.svelte-Bx-fv-rO.js} +3 -3
  103. package/build/server/chunks/{_page.svelte-2W3EhlSt.js.map → _page.svelte-Bx-fv-rO.js.map} +1 -1
  104. package/build/server/chunks/{_page.svelte-sygmDxbg.js → _page.svelte-CveCaqpY.js} +3 -3
  105. package/build/server/chunks/{_page.svelte-sygmDxbg.js.map → _page.svelte-CveCaqpY.js.map} +1 -1
  106. package/build/server/chunks/{_page.svelte-DfUc4h7g.js → _page.svelte-DNmC-yjw.js} +2 -2
  107. package/build/server/chunks/{_page.svelte-DfUc4h7g.js.map → _page.svelte-DNmC-yjw.js.map} +1 -1
  108. package/build/server/chunks/_server.ts-BBDD0W6t.js +167 -0
  109. package/build/server/chunks/_server.ts-BBDD0W6t.js.map +1 -0
  110. package/build/server/chunks/_server.ts-BkOJmVFg.js +101 -0
  111. package/build/server/chunks/_server.ts-BkOJmVFg.js.map +1 -0
  112. package/build/server/chunks/{_server.ts-C8Fe0kql.js → _server.ts-BkcLO56D.js} +2 -2
  113. package/build/server/chunks/{_server.ts-C8Fe0kql.js.map → _server.ts-BkcLO56D.js.map} +1 -1
  114. package/build/server/chunks/{_server.ts-DsbQ4b7x.js → _server.ts-C2WpZqPW.js} +4 -4
  115. package/build/server/chunks/{_server.ts-DsbQ4b7x.js.map → _server.ts-C2WpZqPW.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-D1Ja2hnG.js → _server.ts-CKn8ym8s.js} +2 -2
  117. package/build/server/chunks/{_server.ts-D1Ja2hnG.js.map → _server.ts-CKn8ym8s.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-BjPyYUki.js → _server.ts-CaVH9FSD.js} +4 -4
  119. package/build/server/chunks/{_server.ts-BjPyYUki.js.map → _server.ts-CaVH9FSD.js.map} +1 -1
  120. package/build/server/chunks/_server.ts-D7iLlRbM.js +337 -0
  121. package/build/server/chunks/_server.ts-D7iLlRbM.js.map +1 -0
  122. package/build/server/chunks/_server.ts-DPqZOGG_.js +18 -0
  123. package/build/server/chunks/_server.ts-DPqZOGG_.js.map +1 -0
  124. package/build/server/chunks/{_server.ts-B7znNtap.js → _server.ts-Dz9oKgWc.js} +5 -5
  125. package/build/server/chunks/{_server.ts-B7znNtap.js.map → _server.ts-Dz9oKgWc.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-hEGlXjuB.js → _server.ts-fVP0SuTW.js} +2 -2
  127. package/build/server/chunks/{_server.ts-hEGlXjuB.js.map → _server.ts-fVP0SuTW.js.map} +1 -1
  128. package/build/server/chunks/{client-h6Frgnzt.js → client-CydontyB.js} +2 -2
  129. package/build/server/chunks/{client-h6Frgnzt.js.map → client-CydontyB.js.map} +1 -1
  130. package/build/server/chunks/{doctorSummary-FyoWuR3R.js → doctorSummary-BOtGdd9z.js} +3 -3
  131. package/build/server/chunks/{doctorSummary-FyoWuR3R.js.map → doctorSummary-BOtGdd9z.js.map} +1 -1
  132. package/build/server/chunks/{error.svelte-DYzh-S9t.js → error.svelte-_CDx8UPv.js} +3 -3
  133. package/build/server/chunks/{error.svelte-DYzh-S9t.js.map → error.svelte-_CDx8UPv.js.map} +1 -1
  134. package/build/server/chunks/{hooks.server-BKavEpqC.js → hooks.server-Dva4z7fv.js} +35 -1
  135. package/build/server/chunks/hooks.server-Dva4z7fv.js.map +1 -0
  136. package/build/server/chunks/{internal-Dz8-ksla.js → internal-DyPeC3rk.js} +3 -3
  137. package/build/server/chunks/{internal-Dz8-ksla.js.map → internal-DyPeC3rk.js.map} +1 -1
  138. package/build/server/chunks/{marketingSeo-6Ec8IVzY.js → marketingSeo-CugwK52J.js} +2 -2
  139. package/build/server/chunks/{marketingSeo-6Ec8IVzY.js.map → marketingSeo-CugwK52J.js.map} +1 -1
  140. package/build/server/chunks/migrationReport-f6NoxAVZ.js +40 -0
  141. package/build/server/chunks/migrationReport-f6NoxAVZ.js.map +1 -0
  142. package/build/server/chunks/{profileApiHelpers-CUuQdn1G.js → profileApiHelpers-DCoI7zMU.js} +3 -3
  143. package/build/server/chunks/{profileApiHelpers-CUuQdn1G.js.map → profileApiHelpers-DCoI7zMU.js.map} +1 -1
  144. package/build/server/chunks/{projectContext-fk5wtjwg.js → projectContext-B1D-bieW.js} +1370 -17
  145. package/build/server/chunks/projectContext-B1D-bieW.js.map +1 -0
  146. package/build/server/chunks/{src2-BFardyAd.js → src2-BtraGDB1.js} +2 -2
  147. package/build/server/chunks/src2-BtraGDB1.js.map +1 -0
  148. package/build/server/chunks/{src3-vKD2iyNK.js → src3-BXch_OaJ.js} +219 -14
  149. package/build/server/chunks/src3-BXch_OaJ.js.map +1 -0
  150. package/build/server/chunks/{tokenStore-DQfTa-N3.js → tokenStore-CTHhmHsk.js} +30 -2
  151. package/build/server/chunks/tokenStore-CTHhmHsk.js.map +1 -0
  152. package/build/server/index.js +1 -1
  153. package/build/server/manifest.js +58 -22
  154. package/build/server/manifest.js.map +1 -1
  155. package/package.json +3 -3
  156. package/build/client/_app/immutable/chunks/4FiW6_9u.js +0 -1
  157. package/build/client/_app/immutable/chunks/4FiW6_9u.js.br +0 -2
  158. package/build/client/_app/immutable/chunks/4FiW6_9u.js.gz +0 -0
  159. package/build/client/_app/immutable/chunks/CF39CcoQ.js +0 -3
  160. package/build/client/_app/immutable/chunks/CF39CcoQ.js.br +0 -0
  161. package/build/client/_app/immutable/chunks/CF39CcoQ.js.gz +0 -0
  162. package/build/client/_app/immutable/chunks/CRcOA4L4.js.br +0 -0
  163. package/build/client/_app/immutable/chunks/CRcOA4L4.js.gz +0 -0
  164. package/build/client/_app/immutable/chunks/Cc9Av3g9.js +0 -2
  165. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.br +0 -0
  166. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.gz +0 -0
  167. package/build/client/_app/immutable/chunks/DUEBfJ-c.js +0 -1
  168. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.br +0 -4
  169. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.gz +0 -0
  170. package/build/client/_app/immutable/chunks/DvNNrklS.js +0 -1
  171. package/build/client/_app/immutable/chunks/DvNNrklS.js.br +0 -2
  172. package/build/client/_app/immutable/chunks/DvNNrklS.js.gz +0 -0
  173. package/build/client/_app/immutable/entry/app.ZULfIbKE.js +0 -2
  174. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.br +0 -0
  175. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.gz +0 -0
  176. package/build/client/_app/immutable/entry/start.XwZvWTgq.js +0 -1
  177. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.br +0 -0
  178. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.gz +0 -0
  179. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js +0 -1
  180. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.br +0 -0
  181. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.gz +0 -0
  182. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js +0 -1
  183. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.br +0 -0
  184. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.gz +0 -0
  185. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.br +0 -0
  186. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.gz +0 -0
  187. package/build/client/_app/immutable/nodes/11.B5APptAv.js +0 -1
  188. package/build/client/_app/immutable/nodes/11.B5APptAv.js.br +0 -0
  189. package/build/client/_app/immutable/nodes/11.B5APptAv.js.gz +0 -0
  190. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.br +0 -0
  191. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.gz +0 -0
  192. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js +0 -2
  193. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.br +0 -0
  194. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.gz +0 -0
  195. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js +0 -4
  196. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.br +0 -0
  197. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js +0 -2
  199. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.br +0 -0
  200. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js +0 -5
  202. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.br +0 -0
  203. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.gz +0 -0
  204. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js +0 -4
  205. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.br +0 -0
  206. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.gz +0 -0
  207. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js +0 -1
  208. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.br +0 -0
  209. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.gz +0 -0
  210. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js +0 -3
  211. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.br +0 -0
  212. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.gz +0 -0
  213. package/build/server/chunks/1--R3gZqoU.js +0 -9
  214. package/build/server/chunks/10-B2v4GVik.js +0 -9
  215. package/build/server/chunks/10-B2v4GVik.js.map +0 -1
  216. package/build/server/chunks/5-CqBVRlNU.js +0 -9
  217. package/build/server/chunks/8-BbviFV5J.js +0 -9
  218. package/build/server/chunks/9-kCTRECfO.js.map +0 -1
  219. package/build/server/chunks/_layout.svelte-CQM4xaaq.js.map +0 -1
  220. package/build/server/chunks/hooks.server-BKavEpqC.js.map +0 -1
  221. package/build/server/chunks/projectContext-fk5wtjwg.js.map +0 -1
  222. package/build/server/chunks/src2-BFardyAd.js.map +0 -1
  223. package/build/server/chunks/src3-vKD2iyNK.js.map +0 -1
  224. package/build/server/chunks/tokenStore-DQfTa-N3.js.map +0 -1
  225. /package/build/client/_app/immutable/assets/{9.BsbC-D7w.css → 10.BsbC-D7w.css} +0 -0
  226. /package/build/client/_app/immutable/assets/{9.BsbC-D7w.css.br → 10.BsbC-D7w.css.br} +0 -0
  227. /package/build/client/_app/immutable/assets/{9.BsbC-D7w.css.gz → 10.BsbC-D7w.css.gz} +0 -0
  228. /package/build/client/_app/immutable/chunks/{I8rQr1kY.js → CP97kCR3.js} +0 -0
  229. /package/build/client/_app/immutable/chunks/{I8rQr1kY.js.br → CP97kCR3.js.br} +0 -0
  230. /package/build/client/_app/immutable/chunks/{I8rQr1kY.js.gz → CP97kCR3.js.gz} +0 -0
  231. /package/build/client/_app/immutable/chunks/{BFYQcBYR.js → O6-aNYLC.js} +0 -0
  232. /package/build/client/_app/immutable/chunks/{BFYQcBYR.js.br → O6-aNYLC.js.br} +0 -0
  233. /package/build/client/_app/immutable/chunks/{BFYQcBYR.js.gz → O6-aNYLC.js.gz} +0 -0
@@ -0,0 +1,167 @@
1
+ import { r as resolveProjectRoot, w as readRegionAwareFile, x as redactIfSecretLike, P as PHASE_14_SUPPORTED_PATHS, y as PHASE_14_SCAN_DIRS } from './projectContext-B1D-bieW.js';
2
+ import { j as json } from './index-CLnuRv4X.js';
3
+ import 'node:fs/promises';
4
+ import 'process';
5
+ import 'buffer';
6
+ import 'node:util';
7
+ import 'node:path';
8
+ import 'node:crypto';
9
+ import './index-DBqjc0Yf.js';
10
+
11
+ //#region src/lib/server/markdownSanitizer.ts
12
+ var FORBIDDEN_TAGS = [
13
+ "script",
14
+ "iframe",
15
+ "object",
16
+ "embed",
17
+ "link",
18
+ "style",
19
+ "meta",
20
+ "base",
21
+ "applet",
22
+ "form",
23
+ "input",
24
+ "button",
25
+ "textarea",
26
+ "frame",
27
+ "frameset",
28
+ "svg",
29
+ "math"
30
+ ];
31
+ function buildPairedTagPattern(tag) {
32
+ return new RegExp(`<${tag}\\b[^>]*>[\\s\\S]*?</${tag}\\s*>`, "giu");
33
+ }
34
+ function buildLooseTagPattern(tag) {
35
+ return new RegExp(`</?${tag}\\b[^>]*/?>`, "giu");
36
+ }
37
+ var ON_HANDLER_PATTERN = /\son[a-z]+\s*=\s*("[^"]*"|'[^']*'|[^\s>]*)/giu;
38
+ var DANGEROUS_URL_PATTERN = /(href|src|xlink:href|action|formaction|poster|background|cite|data|srcset|ping)\s*=\s*(["'])\s*(?:javascript|data|vbscript|file)\s*(?::|%3a)[\s\S]*?\2/giu;
39
+ var REMOTE_RESOURCE_PATTERN = /(src|href|srcset|action|formaction|poster|background|data)\s*=\s*(["'])\s*https?:\/\/[\s\S]*?\2/giu;
40
+ function sanitizeMarkdownForPreview(input, options = {}) {
41
+ const mode = options.mode ?? "escape";
42
+ let working = typeof input === "string" ? input : bufferToUtf8(input);
43
+ for (const tag of FORBIDDEN_TAGS) working = working.replace(buildPairedTagPattern(tag), "");
44
+ for (const tag of FORBIDDEN_TAGS) working = working.replace(buildLooseTagPattern(tag), "");
45
+ working = working.replace(ON_HANDLER_PATTERN, "");
46
+ working = working.replace(DANGEROUS_URL_PATTERN, (_match, attr, quote) => {
47
+ return `${attr}=${quote}#blocked-by-sanitizer${quote}`;
48
+ });
49
+ working = working.replace(REMOTE_RESOURCE_PATTERN, (_match, attr, quote) => {
50
+ return `${attr}=${quote}#blocked-by-sanitizer${quote}`;
51
+ });
52
+ if (mode === "escape") return escapeHtml(working);
53
+ return working;
54
+ }
55
+ function escapeHtml(value) {
56
+ return value.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;").replace(/"/gu, "&quot;").replace(/'/gu, "&#39;");
57
+ }
58
+ function bufferToUtf8(input) {
59
+ return Buffer.from(input).toString("utf8");
60
+ }
61
+ //#endregion
62
+ //#region src/lib/server/migrationPreview.ts
63
+ var DISALLOWED_NAMES = [
64
+ ".env",
65
+ ".env.local",
66
+ ".env.production",
67
+ ".env.development",
68
+ ".env.test"
69
+ ];
70
+ var PREVIEW_CAP_BYTES = 64 * 1024;
71
+ async function readMigrationPreview(rootDir, relativePath) {
72
+ if (DISALLOWED_NAMES.includes(relativePath)) return {
73
+ ok: false,
74
+ reason: "denied_secret_path",
75
+ path: relativePath,
76
+ notes: ["preview refused: secret-like filename on deny list"]
77
+ };
78
+ const classification = classifyPath(relativePath);
79
+ if (!classification) return {
80
+ ok: false,
81
+ reason: "unsupported_path",
82
+ path: relativePath,
83
+ notes: ["preview refused: not a Phase 14 supported instruction, skill, or subagent path"]
84
+ };
85
+ if (classification.isLocalRuntime) return {
86
+ ok: false,
87
+ reason: "metadata_only",
88
+ path: relativePath,
89
+ notes: ["local runtime file; UI shows metadata only — raw content is not previewable"]
90
+ };
91
+ const read = await readRegionAwareFile(rootDir, relativePath);
92
+ if (read.refused) return {
93
+ ok: false,
94
+ reason: "symlinked",
95
+ path: relativePath,
96
+ notes: ["preview refused: symlinked target"]
97
+ };
98
+ if (!read.bytes) return {
99
+ ok: false,
100
+ reason: "not_found",
101
+ path: relativePath,
102
+ notes: ["file not found"]
103
+ };
104
+ const buffer = Buffer.from(read.bytes);
105
+ const truncated = buffer.length > PREVIEW_CAP_BYTES;
106
+ const head = truncated ? buffer.subarray(0, PREVIEW_CAP_BYTES) : buffer;
107
+ const sanitizedText = classification.kind === "markdown" ? sanitizeMarkdownForPreview(head) : escapeCodeText(redactIfSecretLike(head.toString("utf8")));
108
+ return {
109
+ ok: true,
110
+ path: relativePath,
111
+ kind: classification.kind,
112
+ sanitizedText,
113
+ truncated,
114
+ byteLength: buffer.length,
115
+ notes: truncated ? [`preview truncated to ${PREVIEW_CAP_BYTES} bytes`] : []
116
+ };
117
+ }
118
+ function classifyPath(relativePath) {
119
+ const supported = PHASE_14_SUPPORTED_PATHS.find((entry) => entry.path === relativePath);
120
+ if (supported) return {
121
+ kind: kindFromExtension(supported.path),
122
+ isLocalRuntime: supported.isLocalRuntime
123
+ };
124
+ const scanDir = PHASE_14_SCAN_DIRS.find((dir) => relativePath.startsWith(`${dir.root}/`));
125
+ if (scanDir && scanDir.fileFilter(relativePath)) {
126
+ if (!scanDir.recursive) {
127
+ if (relativePath.slice(scanDir.root.length + 1).includes("/")) return null;
128
+ }
129
+ return {
130
+ kind: kindFromExtension(relativePath),
131
+ isLocalRuntime: false
132
+ };
133
+ }
134
+ return null;
135
+ }
136
+ function kindFromExtension(p) {
137
+ if (p.endsWith(".md")) return "markdown";
138
+ if (p.endsWith(".json")) return "json";
139
+ if (p.endsWith(".toml")) return "toml";
140
+ return "text";
141
+ }
142
+ function escapeCodeText(text) {
143
+ return text.replace(/&/gu, "&amp;").replace(/</gu, "&lt;").replace(/>/gu, "&gt;");
144
+ }
145
+ //#endregion
146
+ //#region src/routes/api/migration/preview/+server.ts
147
+ var GET = async ({ url }) => {
148
+ const requested = url.searchParams.get("path");
149
+ if (!requested) return json({
150
+ error: "invalid_request",
151
+ message: "Missing required `path` query parameter."
152
+ }, { status: 400 });
153
+ if (requested.length > 256) return json({
154
+ error: "invalid_request",
155
+ message: "path is too long."
156
+ }, { status: 400 });
157
+ if (requested.includes("..") || requested.startsWith("/") || /[\x00-\x1f]/u.test(requested)) return json({
158
+ error: "invalid_request",
159
+ message: "path contains disallowed characters."
160
+ }, { status: 400 });
161
+ const preview = await readMigrationPreview(resolveProjectRoot(), requested);
162
+ if (!preview.ok) return json(preview, { status: preview.reason === "denied_secret_path" ? 403 : preview.reason === "unsupported_path" ? 400 : preview.reason === "symlinked" ? 422 : preview.reason === "metadata_only" ? 200 : 404 });
163
+ return json(preview);
164
+ };
165
+
166
+ export { GET };
167
+ //# sourceMappingURL=_server.ts-BBDD0W6t.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BBDD0W6t.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/migration/preview/_server.ts.js"],"sourcesContent":["import { a as PHASE_14_SCAN_DIRS, d as readRegionAwareFile, n as redactIfSecretLike, o as PHASE_14_SUPPORTED_PATHS, r as resolveProjectRoot } from \"../../../../../chunks/projectContext.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/lib/server/markdownSanitizer.ts\nvar FORBIDDEN_TAGS = [\n\t\"script\",\n\t\"iframe\",\n\t\"object\",\n\t\"embed\",\n\t\"link\",\n\t\"style\",\n\t\"meta\",\n\t\"base\",\n\t\"applet\",\n\t\"form\",\n\t\"input\",\n\t\"button\",\n\t\"textarea\",\n\t\"frame\",\n\t\"frameset\",\n\t\"svg\",\n\t\"math\"\n];\nfunction buildPairedTagPattern(tag) {\n\treturn new RegExp(`<${tag}\\\\b[^>]*>[\\\\s\\\\S]*?</${tag}\\\\s*>`, \"giu\");\n}\nfunction buildLooseTagPattern(tag) {\n\treturn new RegExp(`</?${tag}\\\\b[^>]*/?>`, \"giu\");\n}\nvar ON_HANDLER_PATTERN = /\\son[a-z]+\\s*=\\s*(\"[^\"]*\"|'[^']*'|[^\\s>]*)/giu;\nvar DANGEROUS_URL_PATTERN = /(href|src|xlink:href|action|formaction|poster|background|cite|data|srcset|ping)\\s*=\\s*([\"'])\\s*(?:javascript|data|vbscript|file)\\s*(?::|%3a)[\\s\\S]*?\\2/giu;\nvar REMOTE_RESOURCE_PATTERN = /(src|href|srcset|action|formaction|poster|background|data)\\s*=\\s*([\"'])\\s*https?:\\/\\/[\\s\\S]*?\\2/giu;\nfunction sanitizeMarkdownForPreview(input, options = {}) {\n\tconst mode = options.mode ?? \"escape\";\n\tlet working = typeof input === \"string\" ? input : bufferToUtf8(input);\n\tfor (const tag of FORBIDDEN_TAGS) working = working.replace(buildPairedTagPattern(tag), \"\");\n\tfor (const tag of FORBIDDEN_TAGS) working = working.replace(buildLooseTagPattern(tag), \"\");\n\tworking = working.replace(ON_HANDLER_PATTERN, \"\");\n\tworking = working.replace(DANGEROUS_URL_PATTERN, (_match, attr, quote) => {\n\t\treturn `${attr}=${quote}#blocked-by-sanitizer${quote}`;\n\t});\n\tworking = working.replace(REMOTE_RESOURCE_PATTERN, (_match, attr, quote) => {\n\t\treturn `${attr}=${quote}#blocked-by-sanitizer${quote}`;\n\t});\n\tif (mode === \"escape\") return escapeHtml(working);\n\treturn working;\n}\nfunction escapeHtml(value) {\n\treturn value.replace(/&/gu, \"&amp;\").replace(/</gu, \"&lt;\").replace(/>/gu, \"&gt;\").replace(/\"/gu, \"&quot;\").replace(/'/gu, \"&#39;\");\n}\nfunction bufferToUtf8(input) {\n\treturn Buffer.from(input).toString(\"utf8\");\n}\n//#endregion\n//#region src/lib/server/migrationPreview.ts\nvar DISALLOWED_NAMES = [\n\t\".env\",\n\t\".env.local\",\n\t\".env.production\",\n\t\".env.development\",\n\t\".env.test\"\n];\nvar PREVIEW_CAP_BYTES = 64 * 1024;\nasync function readMigrationPreview(rootDir, relativePath) {\n\tif (DISALLOWED_NAMES.includes(relativePath)) return {\n\t\tok: false,\n\t\treason: \"denied_secret_path\",\n\t\tpath: relativePath,\n\t\tnotes: [\"preview refused: secret-like filename on deny list\"]\n\t};\n\tconst classification = classifyPath(relativePath);\n\tif (!classification) return {\n\t\tok: false,\n\t\treason: \"unsupported_path\",\n\t\tpath: relativePath,\n\t\tnotes: [\"preview refused: not a Phase 14 supported instruction, skill, or subagent path\"]\n\t};\n\tif (classification.isLocalRuntime) return {\n\t\tok: false,\n\t\treason: \"metadata_only\",\n\t\tpath: relativePath,\n\t\tnotes: [\"local runtime file; UI shows metadata only — raw content is not previewable\"]\n\t};\n\tconst read = await readRegionAwareFile(rootDir, relativePath);\n\tif (read.refused) return {\n\t\tok: false,\n\t\treason: \"symlinked\",\n\t\tpath: relativePath,\n\t\tnotes: [\"preview refused: symlinked target\"]\n\t};\n\tif (!read.bytes) return {\n\t\tok: false,\n\t\treason: \"not_found\",\n\t\tpath: relativePath,\n\t\tnotes: [\"file not found\"]\n\t};\n\tconst buffer = Buffer.from(read.bytes);\n\tconst truncated = buffer.length > PREVIEW_CAP_BYTES;\n\tconst head = truncated ? buffer.subarray(0, PREVIEW_CAP_BYTES) : buffer;\n\tconst sanitizedText = classification.kind === \"markdown\" ? sanitizeMarkdownForPreview(head) : escapeCodeText(redactIfSecretLike(head.toString(\"utf8\")));\n\treturn {\n\t\tok: true,\n\t\tpath: relativePath,\n\t\tkind: classification.kind,\n\t\tsanitizedText,\n\t\ttruncated,\n\t\tbyteLength: buffer.length,\n\t\tnotes: truncated ? [`preview truncated to ${PREVIEW_CAP_BYTES} bytes`] : []\n\t};\n}\nfunction classifyPath(relativePath) {\n\tconst supported = PHASE_14_SUPPORTED_PATHS.find((entry) => entry.path === relativePath);\n\tif (supported) return {\n\t\tkind: kindFromExtension(supported.path),\n\t\tisLocalRuntime: supported.isLocalRuntime\n\t};\n\tconst scanDir = PHASE_14_SCAN_DIRS.find((dir) => relativePath.startsWith(`${dir.root}/`));\n\tif (scanDir && scanDir.fileFilter(relativePath)) {\n\t\tif (!scanDir.recursive) {\n\t\t\tif (relativePath.slice(scanDir.root.length + 1).includes(\"/\")) return null;\n\t\t}\n\t\treturn {\n\t\t\tkind: kindFromExtension(relativePath),\n\t\t\tisLocalRuntime: false\n\t\t};\n\t}\n\treturn null;\n}\nfunction kindFromExtension(p) {\n\tif (p.endsWith(\".md\")) return \"markdown\";\n\tif (p.endsWith(\".json\")) return \"json\";\n\tif (p.endsWith(\".toml\")) return \"toml\";\n\treturn \"text\";\n}\nfunction escapeCodeText(text) {\n\treturn text.replace(/&/gu, \"&amp;\").replace(/</gu, \"&lt;\").replace(/>/gu, \"&gt;\");\n}\n//#endregion\n//#region src/routes/api/migration/preview/+server.ts\nvar GET = async ({ url }) => {\n\tconst requested = url.searchParams.get(\"path\");\n\tif (!requested) return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"Missing required `path` query parameter.\"\n\t}, { status: 400 });\n\tif (requested.length > 256) return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"path is too long.\"\n\t}, { status: 400 });\n\tif (requested.includes(\"..\") || requested.startsWith(\"/\") || /[\\x00-\\x1f]/u.test(requested)) return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"path contains disallowed characters.\"\n\t}, { status: 400 });\n\tconst preview = await readMigrationPreview(resolveProjectRoot(), requested);\n\tif (!preview.ok) return json(preview, { status: preview.reason === \"denied_secret_path\" ? 403 : preview.reason === \"unsupported_path\" ? 400 : preview.reason === \"symlinked\" ? 422 : preview.reason === \"metadata_only\" ? 200 : 404 });\n\treturn json(preview);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ import { r as resolveProjectRoot, a as applyWritePlan } from './projectContext-B1D-bieW.js';
2
+ import { r as runDoctor } from './src3-BXch_OaJ.js';
3
+ import { r as readJsonRequestBody } from './profileApiHelpers-DCoI7zMU.js';
4
+ import { v as verifyCsrfToken, l as lookupMigrationPlan, c as consumeMigrationPlan } from './tokenStore-CTHhmHsk.js';
5
+ import { j as json } from './index-CLnuRv4X.js';
6
+ import 'node:fs/promises';
7
+ import 'process';
8
+ import 'buffer';
9
+ import 'node:util';
10
+ import 'node:path';
11
+ import 'node:crypto';
12
+ import 'diff';
13
+ import './index-DBqjc0Yf.js';
14
+
15
+ //#region src/routes/api/migration/apply/+server.ts
16
+ var POST = async ({ request }) => {
17
+ if (!verifyCsrfToken(request.headers.get("x-csrf-token"))) return json({ error: "csrf_failed" }, { status: 403 });
18
+ if (!(request.headers.get("content-type") ?? "").includes("application/json")) return json({ error: "unsupported_media_type" }, { status: 415 });
19
+ const parsed = await readJsonRequestBody(request);
20
+ if (!parsed.ok) return json({
21
+ error: parsed.error,
22
+ message: parsed.message
23
+ }, { status: parsed.status });
24
+ const body = parsed.body;
25
+ if (!isRecord(body) || typeof body.planToken !== "string") return json({
26
+ error: "invalid_request",
27
+ message: "Missing `planToken`."
28
+ }, { status: 400 });
29
+ const peeked = lookupMigrationPlan(body.planToken);
30
+ if (!peeked) return json({
31
+ error: "plan_expired",
32
+ message: "Migration plan token has expired or is unknown."
33
+ }, { status: 410 });
34
+ if (peeked.requiresReplaceConfirmation && body.confirmReplace !== true) return json({
35
+ error: "confirm_replace_required",
36
+ message: "This plan touches generated-owned files. Re-issue apply with confirmReplace:true."
37
+ }, { status: 412 });
38
+ const entry = consumeMigrationPlan(body.planToken);
39
+ if (!entry) return json({
40
+ error: "plan_expired",
41
+ message: "Migration plan token expired while applying."
42
+ }, { status: 410 });
43
+ let serialized;
44
+ try {
45
+ serialized = JSON.parse(entry.serializedPlan);
46
+ } catch {
47
+ return json({
48
+ error: "plan_corrupted",
49
+ message: "Stored plan could not be decoded."
50
+ }, { status: 500 });
51
+ }
52
+ if (!serialized || !Array.isArray(serialized.writes)) return json({
53
+ error: "plan_corrupted",
54
+ message: "Stored plan has no writes."
55
+ }, { status: 500 });
56
+ const writes = serialized.writes.map((w) => ({
57
+ path: w.path,
58
+ bytes: Buffer.from(w.bytesBase64, "base64")
59
+ }));
60
+ const rootDir = resolveProjectRoot();
61
+ let writeResult;
62
+ try {
63
+ writeResult = await applyWritePlan({
64
+ rootDir,
65
+ writes
66
+ });
67
+ } catch (err) {
68
+ return json({
69
+ error: "write_failed",
70
+ message: err instanceof Error ? err.message : "unknown write error"
71
+ }, { status: 422 });
72
+ }
73
+ let doctor;
74
+ try {
75
+ doctor = await runDoctor({ rootDir });
76
+ } catch (err) {
77
+ return json({
78
+ counts: writeResult.counts,
79
+ writes: writeResult.actions,
80
+ doctor: {
81
+ ok: false,
82
+ message: err instanceof Error ? err.message : "doctor failed"
83
+ }
84
+ }, { status: 200 });
85
+ }
86
+ return json({
87
+ counts: writeResult.counts,
88
+ writes: writeResult.actions,
89
+ doctor: {
90
+ ok: true,
91
+ status: doctor.status,
92
+ issues: doctor.issues
93
+ }
94
+ });
95
+ };
96
+ function isRecord(v) {
97
+ return typeof v === "object" && v !== null && !Array.isArray(v);
98
+ }
99
+
100
+ export { POST };
101
+ //# sourceMappingURL=_server.ts-BkOJmVFg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_server.ts-BkOJmVFg.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/migration/apply/_server.ts.js"],"sourcesContent":["import { p as applyWritePlan, r as resolveProjectRoot } from \"../../../../../chunks/projectContext.js\";\nimport { t as runDoctor } from \"../../../../../chunks/src3.js\";\nimport { r as readJsonRequestBody } from \"../../../../../chunks/profileApiHelpers.js\";\nimport { i as lookupMigrationPlan, s as verifyCsrfToken, t as consumeMigrationPlan } from \"../../../../../chunks/tokenStore.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/migration/apply/+server.ts\nvar POST = async ({ request }) => {\n\tif (!verifyCsrfToken(request.headers.get(\"x-csrf-token\"))) return json({ error: \"csrf_failed\" }, { status: 403 });\n\tif (!(request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) return json({ error: \"unsupported_media_type\" }, { status: 415 });\n\tconst parsed = await readJsonRequestBody(request);\n\tif (!parsed.ok) return json({\n\t\terror: parsed.error,\n\t\tmessage: parsed.message\n\t}, { status: parsed.status });\n\tconst body = parsed.body;\n\tif (!isRecord(body) || typeof body.planToken !== \"string\") return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"Missing `planToken`.\"\n\t}, { status: 400 });\n\tconst peeked = lookupMigrationPlan(body.planToken);\n\tif (!peeked) return json({\n\t\terror: \"plan_expired\",\n\t\tmessage: \"Migration plan token has expired or is unknown.\"\n\t}, { status: 410 });\n\tif (peeked.requiresReplaceConfirmation && body.confirmReplace !== true) return json({\n\t\terror: \"confirm_replace_required\",\n\t\tmessage: \"This plan touches generated-owned files. Re-issue apply with confirmReplace:true.\"\n\t}, { status: 412 });\n\tconst entry = consumeMigrationPlan(body.planToken);\n\tif (!entry) return json({\n\t\terror: \"plan_expired\",\n\t\tmessage: \"Migration plan token expired while applying.\"\n\t}, { status: 410 });\n\tlet serialized;\n\ttry {\n\t\tserialized = JSON.parse(entry.serializedPlan);\n\t} catch {\n\t\treturn json({\n\t\t\terror: \"plan_corrupted\",\n\t\t\tmessage: \"Stored plan could not be decoded.\"\n\t\t}, { status: 500 });\n\t}\n\tif (!serialized || !Array.isArray(serialized.writes)) return json({\n\t\terror: \"plan_corrupted\",\n\t\tmessage: \"Stored plan has no writes.\"\n\t}, { status: 500 });\n\tconst writes = serialized.writes.map((w) => ({\n\t\tpath: w.path,\n\t\tbytes: Buffer.from(w.bytesBase64, \"base64\")\n\t}));\n\tconst rootDir = resolveProjectRoot();\n\tlet writeResult;\n\ttry {\n\t\twriteResult = await applyWritePlan({\n\t\t\trootDir,\n\t\t\twrites\n\t\t});\n\t} catch (err) {\n\t\treturn json({\n\t\t\terror: \"write_failed\",\n\t\t\tmessage: err instanceof Error ? err.message : \"unknown write error\"\n\t\t}, { status: 422 });\n\t}\n\tlet doctor;\n\ttry {\n\t\tdoctor = await runDoctor({ rootDir });\n\t} catch (err) {\n\t\treturn json({\n\t\t\tcounts: writeResult.counts,\n\t\t\twrites: writeResult.actions,\n\t\t\tdoctor: {\n\t\t\t\tok: false,\n\t\t\t\tmessage: err instanceof Error ? err.message : \"doctor failed\"\n\t\t\t}\n\t\t}, { status: 200 });\n\t}\n\treturn json({\n\t\tcounts: writeResult.counts,\n\t\twrites: writeResult.actions,\n\t\tdoctor: {\n\t\t\tok: true,\n\t\t\tstatus: doctor.status,\n\t\t\tissues: doctor.issues\n\t\t}\n\t});\n};\nfunction isRecord(v) {\n\treturn typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { a as buildRobotsTxt } from './marketingSeo-6Ec8IVzY.js';
1
+ import { a as buildRobotsTxt } from './marketingSeo-CugwK52J.js';
2
2
 
3
3
  //#region src/routes/robots.txt/+server.ts
4
4
  var prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === "1";
5
5
  var GET = () => new Response(buildRobotsTxt(), { headers: { "content-type": "text/plain; charset=utf-8" } });
6
6
 
7
7
  export { GET, prerender };
8
- //# sourceMappingURL=_server.ts-C8Fe0kql.js.map
8
+ //# sourceMappingURL=_server.ts-BkcLO56D.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-C8Fe0kql.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/robots.txt/_server.ts.js"],"sourcesContent":["import { n as buildRobotsTxt } from \"../../../chunks/marketingSeo.js\";\n//#region src/routes/robots.txt/+server.ts\nvar prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === \"1\";\nvar GET = () => new Response(buildRobotsTxt(), { headers: { \"content-type\": \"text/plain; charset=utf-8\" } });\n//#endregion\nexport { GET, prerender };\n"],"names":[],"mappings":";;AACA;AACG,IAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK;AAC3D,IAAC,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;;;;"}
1
+ {"version":3,"file":"_server.ts-BkcLO56D.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/robots.txt/_server.ts.js"],"sourcesContent":["import { n as buildRobotsTxt } from \"../../../chunks/marketingSeo.js\";\n//#region src/routes/robots.txt/+server.ts\nvar prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === \"1\";\nvar GET = () => new Response(buildRobotsTxt(), { headers: { \"content-type\": \"text/plain; charset=utf-8\" } });\n//#endregion\nexport { GET, prerender };\n"],"names":[],"mappings":";;AACA;AACG,IAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK;AAC3D,IAAC,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,cAAc,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;;;;"}
@@ -1,6 +1,6 @@
1
- import { l as loadProjectContext } from './projectContext-fk5wtjwg.js';
2
- import { r as readDiskProfile } from './profileApiHelpers-CUuQdn1G.js';
3
- import { i as issueCsrfToken } from './tokenStore-DQfTa-N3.js';
1
+ import { z as loadProjectContext } from './projectContext-B1D-bieW.js';
2
+ import { a as readDiskProfile } from './profileApiHelpers-DCoI7zMU.js';
3
+ import { i as issueCsrfToken } from './tokenStore-CTHhmHsk.js';
4
4
  import { j as json } from './index-CLnuRv4X.js';
5
5
  import 'node:fs/promises';
6
6
  import 'process';
@@ -40,4 +40,4 @@ var GET = async () => {
40
40
  };
41
41
 
42
42
  export { GET };
43
- //# sourceMappingURL=_server.ts-DsbQ4b7x.js.map
43
+ //# sourceMappingURL=_server.ts-C2WpZqPW.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-DsbQ4b7x.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/profile/_server.ts.js"],"sourcesContent":["import { t as loadProjectContext } from \"../../../../chunks/projectContext.js\";\nimport { n as readDiskProfile } from \"../../../../chunks/profileApiHelpers.js\";\nimport { n as issueCsrfToken } from \"../../../../chunks/tokenStore.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/profile/+server.ts\nvar GET = async () => {\n\tconst disk = await readDiskProfile((await loadProjectContext()).rootDir);\n\tconst csrfToken = issueCsrfToken();\n\tif (!disk.ok) {\n\t\tif (disk.reason === \"not_found\") return json({\n\t\t\terror: \"file_not_found\",\n\t\t\tmessage: \"ai-profile.yaml not found; run agent-profile init --write.\"\n\t\t}, { status: 404 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: disk.issues,\n\t\t\tunsupportedEditing: disk.unsupportedEditing,\n\t\t\tetag: disk.etag ?? null,\n\t\t\tcsrfToken\n\t\t}, { status: 422 });\n\t}\n\treturn json({\n\t\tprofile: disk.profile,\n\t\tsafety: disk.safety,\n\t\teffectivePermissions: disk.effectivePermissions,\n\t\tbytes: disk.bytes.length,\n\t\tetag: disk.etag,\n\t\tcsrfToken,\n\t\tprofilePath: \"ai-profile.yaml\"\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,CAAC,MAAM,kBAAkB,EAAE,EAAE,OAAO,CAAC;AACzE,CAAC,MAAM,SAAS,GAAG,cAAc,EAAE;AACnC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,OAAO,IAAI,CAAC;AAC/C,GAAG,KAAK,EAAE,gBAAgB;AAC1B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,KAAK,EAAE,iBAAiB;AAC3B,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,GAAG,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC9C,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;AAC1B,GAAG;AACH,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;AACvB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;AACrB,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AACjD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAC1B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;AACjB,EAAE,SAAS;AACX,EAAE,WAAW,EAAE;AACf,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-C2WpZqPW.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/profile/_server.ts.js"],"sourcesContent":["import { t as loadProjectContext } from \"../../../../chunks/projectContext.js\";\nimport { n as readDiskProfile } from \"../../../../chunks/profileApiHelpers.js\";\nimport { r as issueCsrfToken } from \"../../../../chunks/tokenStore.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/profile/+server.ts\nvar GET = async () => {\n\tconst disk = await readDiskProfile((await loadProjectContext()).rootDir);\n\tconst csrfToken = issueCsrfToken();\n\tif (!disk.ok) {\n\t\tif (disk.reason === \"not_found\") return json({\n\t\t\terror: \"file_not_found\",\n\t\t\tmessage: \"ai-profile.yaml not found; run agent-profile init --write.\"\n\t\t}, { status: 404 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: disk.issues,\n\t\t\tunsupportedEditing: disk.unsupportedEditing,\n\t\t\tetag: disk.etag ?? null,\n\t\t\tcsrfToken\n\t\t}, { status: 422 });\n\t}\n\treturn json({\n\t\tprofile: disk.profile,\n\t\tsafety: disk.safety,\n\t\teffectivePermissions: disk.effectivePermissions,\n\t\tbytes: disk.bytes.length,\n\t\tetag: disk.etag,\n\t\tcsrfToken,\n\t\tprofilePath: \"ai-profile.yaml\"\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;AAIA;AACG,IAAC,GAAG,GAAG,YAAY;AACtB,CAAC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,CAAC,MAAM,kBAAkB,EAAE,EAAE,OAAO,CAAC;AACzE,CAAC,MAAM,SAAS,GAAG,cAAc,EAAE;AACnC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE;AACf,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,OAAO,IAAI,CAAC;AAC/C,GAAG,KAAK,EAAE,gBAAgB;AAC1B,GAAG,OAAO,EAAE;AACZ,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,EAAE,OAAO,IAAI,CAAC;AACd,GAAG,KAAK,EAAE,iBAAiB;AAC3B,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM;AACtB,GAAG,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;AAC9C,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;AAC1B,GAAG;AACH,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AACD,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO;AACvB,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM;AACrB,EAAE,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;AACjD,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;AAC1B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI;AACjB,EAAE,SAAS;AACX,EAAE,WAAW,EAAE;AACf,EAAE,CAAC;AACH;;;;"}
@@ -1,8 +1,8 @@
1
- import { b as buildLlmsTxt } from './marketingSeo-6Ec8IVzY.js';
1
+ import { b as buildLlmsTxt } from './marketingSeo-CugwK52J.js';
2
2
 
3
3
  //#region src/routes/llms.txt/+server.ts
4
4
  var prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === "1";
5
5
  var GET = () => new Response(buildLlmsTxt(), { headers: { "content-type": "text/plain; charset=utf-8" } });
6
6
 
7
7
  export { GET, prerender };
8
- //# sourceMappingURL=_server.ts-D1Ja2hnG.js.map
8
+ //# sourceMappingURL=_server.ts-CKn8ym8s.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-D1Ja2hnG.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/llms.txt/_server.ts.js"],"sourcesContent":["import { t as buildLlmsTxt } from \"../../../chunks/marketingSeo.js\";\n//#region src/routes/llms.txt/+server.ts\nvar prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === \"1\";\nvar GET = () => new Response(buildLlmsTxt(), { headers: { \"content-type\": \"text/plain; charset=utf-8\" } });\n//#endregion\nexport { GET, prerender };\n"],"names":[],"mappings":";;AACA;AACG,IAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK;AAC3D,IAAC,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;;;;"}
1
+ {"version":3,"file":"_server.ts-CKn8ym8s.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/llms.txt/_server.ts.js"],"sourcesContent":["import { t as buildLlmsTxt } from \"../../../chunks/marketingSeo.js\";\n//#region src/routes/llms.txt/+server.ts\nvar prerender = process.env.AGENT_PROFILE_MARKETING_BUILD === \"1\";\nvar GET = () => new Response(buildLlmsTxt(), { headers: { \"content-type\": \"text/plain; charset=utf-8\" } });\n//#endregion\nexport { GET, prerender };\n"],"names":[],"mappings":";;AACA;AACG,IAAC,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,KAAK;AAC3D,IAAC,GAAG,GAAG,MAAM,IAAI,QAAQ,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,2BAA2B,EAAE,EAAE;;;;"}
@@ -1,6 +1,6 @@
1
- import { l as loadProjectContext } from './projectContext-fk5wtjwg.js';
2
- import { a as readJsonRequestBody, r as readDiskProfile, v as validateCandidate, c as computeProfileDiff } from './profileApiHelpers-CUuQdn1G.js';
3
- import { v as verifyCsrfToken, s as storePlan } from './tokenStore-DQfTa-N3.js';
1
+ import { z as loadProjectContext } from './projectContext-B1D-bieW.js';
2
+ import { r as readJsonRequestBody, a as readDiskProfile, v as validateCandidate, c as computeProfileDiff } from './profileApiHelpers-DCoI7zMU.js';
3
+ import { v as verifyCsrfToken, b as storePlan } from './tokenStore-CTHhmHsk.js';
4
4
  import { j as json } from './index-CLnuRv4X.js';
5
5
  import 'node:fs/promises';
6
6
  import 'process';
@@ -82,4 +82,4 @@ function isRecord(v) {
82
82
  }
83
83
 
84
84
  export { POST };
85
- //# sourceMappingURL=_server.ts-BjPyYUki.js.map
85
+ //# sourceMappingURL=_server.ts-CaVH9FSD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-BjPyYUki.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/profile/plan/_server.ts.js"],"sourcesContent":["import { t as loadProjectContext } from \"../../../../../chunks/projectContext.js\";\nimport { i as validateCandidate, n as readDiskProfile, r as readJsonRequestBody, t as computeProfileDiff } from \"../../../../../chunks/profileApiHelpers.js\";\nimport { i as verifyCsrfToken, r as storePlan } from \"../../../../../chunks/tokenStore.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/profile/plan/+server.ts\nvar POST = async ({ request }) => {\n\tif (!verifyCsrfToken(request.headers.get(\"x-csrf-token\"))) return json({ error: \"csrf_failed\" }, { status: 403 });\n\tif (!(request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) return json({ error: \"unsupported_media_type\" }, { status: 415 });\n\tconst parsedBody = await readJsonRequestBody(request);\n\tif (!parsedBody.ok) return json({\n\t\terror: parsedBody.error,\n\t\tmessage: parsedBody.message\n\t}, { status: parsedBody.status });\n\tconst body = parsedBody.body;\n\tif (!isRecord(body) || !body.candidate || typeof body.baseEtag !== \"string\") return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"Missing candidate or baseEtag.\"\n\t}, { status: 400 });\n\tconst disk = await readDiskProfile((await loadProjectContext()).rootDir);\n\tif (!disk.ok) {\n\t\tif (disk.reason === \"not_found\") return json({ error: \"file_not_found\" }, { status: 404 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: disk.issues,\n\t\t\tunsupportedEditing: disk.unsupportedEditing\n\t\t}, { status: 422 });\n\t}\n\tif (disk.etag !== body.baseEtag) return json({\n\t\terror: \"stale_profile\",\n\t\tmessage: \"Profile changed since form was loaded; reload and retry.\"\n\t}, { status: 409 });\n\tconst candidateValidation = validateCandidate(body.candidate);\n\tif (!candidateValidation.ok) {\n\t\tif (candidateValidation.reason === \"secret_like\") return json({\n\t\t\terror: \"secret_like_value\",\n\t\t\tpaths: candidateValidation.paths\n\t\t}, { status: 422 });\n\t\tif (candidateValidation.reason === \"invalid_encoding\") return json({\n\t\t\terror: \"invalid_encoding\",\n\t\t\tpaths: candidateValidation.paths\n\t\t}, { status: 422 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: candidateValidation.issues\n\t\t}, { status: 422 });\n\t}\n\tconst diffResult = computeProfileDiff(disk.source, candidateValidation.yaml);\n\tconst action = diffResult.changed ? \"change\" : \"unchanged\";\n\tconst expiresAt = new Date(Date.now() + 6e4).toISOString();\n\tconst planToken = storePlan({\n\t\tetag: disk.etag,\n\t\tcandidateYaml: candidateValidation.yaml,\n\t\tcandidateEtag: candidateValidation.etag\n\t});\n\treturn json({\n\t\tdiff: {\n\t\t\tformat: \"unified\",\n\t\t\ttext: diffResult.text,\n\t\t\tcounts: {\n\t\t\t\tadded: diffResult.added,\n\t\t\t\tremoved: diffResult.removed\n\t\t\t}\n\t\t},\n\t\taction,\n\t\tcandidateBytes: Buffer.byteLength(candidateValidation.yaml, \"utf8\"),\n\t\tplanToken,\n\t\texpiresAt,\n\t\tetag: disk.etag\n\t});\n};\nfunction isRecord(v) {\n\treturn typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-CaVH9FSD.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/profile/plan/_server.ts.js"],"sourcesContent":["import { t as loadProjectContext } from \"../../../../../chunks/projectContext.js\";\nimport { i as validateCandidate, n as readDiskProfile, r as readJsonRequestBody, t as computeProfileDiff } from \"../../../../../chunks/profileApiHelpers.js\";\nimport { o as storePlan, s as verifyCsrfToken } from \"../../../../../chunks/tokenStore.js\";\nimport { json } from \"@sveltejs/kit\";\n//#region src/routes/api/profile/plan/+server.ts\nvar POST = async ({ request }) => {\n\tif (!verifyCsrfToken(request.headers.get(\"x-csrf-token\"))) return json({ error: \"csrf_failed\" }, { status: 403 });\n\tif (!(request.headers.get(\"content-type\") ?? \"\").includes(\"application/json\")) return json({ error: \"unsupported_media_type\" }, { status: 415 });\n\tconst parsedBody = await readJsonRequestBody(request);\n\tif (!parsedBody.ok) return json({\n\t\terror: parsedBody.error,\n\t\tmessage: parsedBody.message\n\t}, { status: parsedBody.status });\n\tconst body = parsedBody.body;\n\tif (!isRecord(body) || !body.candidate || typeof body.baseEtag !== \"string\") return json({\n\t\terror: \"invalid_request\",\n\t\tmessage: \"Missing candidate or baseEtag.\"\n\t}, { status: 400 });\n\tconst disk = await readDiskProfile((await loadProjectContext()).rootDir);\n\tif (!disk.ok) {\n\t\tif (disk.reason === \"not_found\") return json({ error: \"file_not_found\" }, { status: 404 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: disk.issues,\n\t\t\tunsupportedEditing: disk.unsupportedEditing\n\t\t}, { status: 422 });\n\t}\n\tif (disk.etag !== body.baseEtag) return json({\n\t\terror: \"stale_profile\",\n\t\tmessage: \"Profile changed since form was loaded; reload and retry.\"\n\t}, { status: 409 });\n\tconst candidateValidation = validateCandidate(body.candidate);\n\tif (!candidateValidation.ok) {\n\t\tif (candidateValidation.reason === \"secret_like\") return json({\n\t\t\terror: \"secret_like_value\",\n\t\t\tpaths: candidateValidation.paths\n\t\t}, { status: 422 });\n\t\tif (candidateValidation.reason === \"invalid_encoding\") return json({\n\t\t\terror: \"invalid_encoding\",\n\t\t\tpaths: candidateValidation.paths\n\t\t}, { status: 422 });\n\t\treturn json({\n\t\t\terror: \"invalid_profile\",\n\t\t\tissues: candidateValidation.issues\n\t\t}, { status: 422 });\n\t}\n\tconst diffResult = computeProfileDiff(disk.source, candidateValidation.yaml);\n\tconst action = diffResult.changed ? \"change\" : \"unchanged\";\n\tconst expiresAt = new Date(Date.now() + 6e4).toISOString();\n\tconst planToken = storePlan({\n\t\tetag: disk.etag,\n\t\tcandidateYaml: candidateValidation.yaml,\n\t\tcandidateEtag: candidateValidation.etag\n\t});\n\treturn json({\n\t\tdiff: {\n\t\t\tformat: \"unified\",\n\t\t\ttext: diffResult.text,\n\t\t\tcounts: {\n\t\t\t\tadded: diffResult.added,\n\t\t\t\tremoved: diffResult.removed\n\t\t\t}\n\t\t},\n\t\taction,\n\t\tcandidateBytes: Buffer.byteLength(candidateValidation.yaml, \"utf8\"),\n\t\tplanToken,\n\t\texpiresAt,\n\t\tetag: disk.etag\n\t});\n};\nfunction isRecord(v) {\n\treturn typeof v === \"object\" && v !== null && !Array.isArray(v);\n}\n//#endregion\nexport { POST };\n"],"names":[],"mappings":"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"}