@agent-profile/web 0.1.3 → 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 (250) hide show
  1. package/README.md +70 -29
  2. package/build/client/_app/immutable/assets/{0.BG6jUcBX.css → 0.8hVtEx5X.css} +1 -1
  3. package/build/client/_app/immutable/assets/0.8hVtEx5X.css.br +0 -0
  4. package/build/client/_app/immutable/assets/0.8hVtEx5X.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/9.BsbC-D7w.css +1 -0
  6. package/build/client/_app/immutable/assets/9.BsbC-D7w.css.br +0 -0
  7. package/build/client/_app/immutable/assets/9.BsbC-D7w.css.gz +0 -0
  8. package/build/client/_app/immutable/chunks/4FiW6_9u.js +1 -0
  9. package/build/client/_app/immutable/chunks/4FiW6_9u.js.br +2 -0
  10. package/build/client/_app/immutable/chunks/4FiW6_9u.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/CF39CcoQ.js +3 -0
  12. package/build/client/_app/immutable/chunks/CF39CcoQ.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/CF39CcoQ.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/CRcOA4L4.js +3 -0
  15. package/build/client/_app/immutable/chunks/CRcOA4L4.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/CRcOA4L4.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/Cc9Av3g9.js +2 -0
  18. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.br +0 -0
  19. package/build/client/_app/immutable/chunks/Cc9Av3g9.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/DUEBfJ-c.js +1 -0
  21. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.br +4 -0
  22. package/build/client/_app/immutable/chunks/DUEBfJ-c.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/DvNNrklS.js +1 -0
  24. package/build/client/_app/immutable/chunks/DvNNrklS.js.br +2 -0
  25. package/build/client/_app/immutable/chunks/DvNNrklS.js.gz +0 -0
  26. package/build/client/_app/immutable/entry/app.ZULfIbKE.js +2 -0
  27. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.br +0 -0
  28. package/build/client/_app/immutable/entry/app.ZULfIbKE.js.gz +0 -0
  29. package/build/client/_app/immutable/entry/start.XwZvWTgq.js +1 -0
  30. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.br +0 -0
  31. package/build/client/_app/immutable/entry/start.XwZvWTgq.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js +1 -0
  33. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/0.BTaKrNnR.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js +1 -0
  36. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/1.B4GcuHvH.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{10.BOQgahuX.js → 10.IHQDAuDz.js} +2 -2
  39. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/10.IHQDAuDz.js.gz +0 -0
  41. package/build/client/_app/immutable/nodes/11.B5APptAv.js +1 -0
  42. package/build/client/_app/immutable/nodes/11.B5APptAv.js.br +0 -0
  43. package/build/client/_app/immutable/nodes/11.B5APptAv.js.gz +0 -0
  44. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js +10 -0
  45. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.br +0 -0
  46. package/build/client/_app/immutable/nodes/2.BHUaWFMZ.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js +2 -0
  48. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/3.DIhh3cSh.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js +4 -0
  51. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.br +0 -0
  52. package/build/client/_app/immutable/nodes/4.DjkBBmOF.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js +2 -0
  54. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/5.BPcSAYs6.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js +5 -0
  57. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/6.DZa-5yoH.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js +4 -0
  60. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/7.v6t5o5IK.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js +1 -0
  63. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/8.UWqOmBTc.js.gz +0 -0
  65. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js +3 -0
  66. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.br +0 -0
  67. package/build/client/_app/immutable/nodes/9.xVCOCMfn.js.gz +0 -0
  68. package/build/client/_app/version.json +1 -1
  69. package/build/client/_app/version.json.br +0 -0
  70. package/build/client/_app/version.json.gz +0 -0
  71. package/build/client/marketing.js +105 -0
  72. package/build/client/marketing.js.br +0 -0
  73. package/build/client/marketing.js.gz +0 -0
  74. package/build/server/chunks/{0-aBAedq2p.js → 0-IAeZ4YD5.js} +17 -11
  75. package/build/server/chunks/0-IAeZ4YD5.js.map +1 -0
  76. package/build/server/chunks/{1-7SwLsXP7.js → 1--R3gZqoU.js} +3 -3
  77. package/build/server/chunks/{1-7SwLsXP7.js.map → 1--R3gZqoU.js.map} +1 -1
  78. package/build/server/chunks/10-B2v4GVik.js +9 -0
  79. package/build/server/chunks/{10-B1aX7ZZ8.js.map → 10-B2v4GVik.js.map} +1 -1
  80. package/build/server/chunks/{11-4z6b2WB8.js → 11-DbxvesJH.js} +6 -6
  81. package/build/server/chunks/{11-4z6b2WB8.js.map → 11-DbxvesJH.js.map} +1 -1
  82. package/build/server/chunks/2-CHviyPyI.js +21 -0
  83. package/build/server/chunks/2-CHviyPyI.js.map +1 -0
  84. package/build/server/chunks/3-CdNRNP5d.js +9 -0
  85. package/build/server/chunks/{3-CLWhM7Et.js.map → 3-CdNRNP5d.js.map} +1 -1
  86. package/build/server/chunks/{4-BehBrXcu.js → 4-CCj_Mhpz.js} +6 -6
  87. package/build/server/chunks/{4-BehBrXcu.js.map → 4-CCj_Mhpz.js.map} +1 -1
  88. package/build/server/chunks/5-CqBVRlNU.js +9 -0
  89. package/build/server/chunks/{5-C1YtO2Ru.js.map → 5-CqBVRlNU.js.map} +1 -1
  90. package/build/server/chunks/{6-DJ03bQJy.js → 6-BHxeFzUE.js} +3 -3
  91. package/build/server/chunks/{6-DJ03bQJy.js.map → 6-BHxeFzUE.js.map} +1 -1
  92. package/build/server/chunks/{7-BHefj3jR.js → 7-BUFOaHdC.js} +8 -8
  93. package/build/server/chunks/{7-BHefj3jR.js.map → 7-BUFOaHdC.js.map} +1 -1
  94. package/build/server/chunks/8-BbviFV5J.js +9 -0
  95. package/build/server/chunks/{8-BNb36pCU.js.map → 8-BbviFV5J.js.map} +1 -1
  96. package/build/server/chunks/9-kCTRECfO.js +67 -0
  97. package/build/server/chunks/9-kCTRECfO.js.map +1 -0
  98. package/build/server/chunks/{Badge-BrV_lIru.js → Badge-DCQxSQCS.js} +2 -2
  99. package/build/server/chunks/{Badge-BrV_lIru.js.map → Badge-DCQxSQCS.js.map} +1 -1
  100. package/build/server/chunks/{SafetyBadge-BSDbVVMY.js → SafetyBadge-BxEGojgX.js} +2 -2
  101. package/build/server/chunks/{SafetyBadge-BSDbVVMY.js.map → SafetyBadge-BxEGojgX.js.map} +1 -1
  102. package/build/server/chunks/{_layout.svelte-C6Ru_7YV.js → _layout.svelte-CQM4xaaq.js} +8 -8
  103. package/build/server/chunks/_layout.svelte-CQM4xaaq.js.map +1 -0
  104. package/build/server/chunks/{_page.svelte-Bv-w7cKm.js → _page.svelte-1wUrXGW-.js} +3 -3
  105. package/build/server/chunks/{_page.svelte-Bv-w7cKm.js.map → _page.svelte-1wUrXGW-.js.map} +1 -1
  106. package/build/server/chunks/{_page.svelte-BS9xpx67.js → _page.svelte-2W3EhlSt.js} +141 -60
  107. package/build/server/chunks/_page.svelte-2W3EhlSt.js.map +1 -0
  108. package/build/server/chunks/{_page.svelte-C8HqSRYY.js → _page.svelte-B3CasgD8.js} +2 -2
  109. package/build/server/chunks/{_page.svelte-C8HqSRYY.js.map → _page.svelte-B3CasgD8.js.map} +1 -1
  110. package/build/server/chunks/{_page.svelte-QyOMa9Ce.js → _page.svelte-B6d3qwTm.js} +5 -5
  111. package/build/server/chunks/{_page.svelte-QyOMa9Ce.js.map → _page.svelte-B6d3qwTm.js.map} +1 -1
  112. package/build/server/chunks/{_page.svelte-DRj4L7XZ.js → _page.svelte-BikYFdJv.js} +4 -4
  113. package/build/server/chunks/{_page.svelte-DRj4L7XZ.js.map → _page.svelte-BikYFdJv.js.map} +1 -1
  114. package/build/server/chunks/{_page.svelte-r2AHAn4f.js → _page.svelte-D8ffqrO3.js} +3 -3
  115. package/build/server/chunks/{_page.svelte-r2AHAn4f.js.map → _page.svelte-D8ffqrO3.js.map} +1 -1
  116. package/build/server/chunks/_page.svelte-DfUc4h7g.js +435 -0
  117. package/build/server/chunks/_page.svelte-DfUc4h7g.js.map +1 -0
  118. package/build/server/chunks/{_page.svelte-DYBnVmA8.js → _page.svelte-sygmDxbg.js} +6 -6
  119. package/build/server/chunks/{_page.svelte-DYBnVmA8.js.map → _page.svelte-sygmDxbg.js.map} +1 -1
  120. package/build/server/chunks/{_page.svelte-DyYKrY-D.js → _page.svelte-wL3fdD1l.js} +4 -4
  121. package/build/server/chunks/{_page.svelte-DyYKrY-D.js.map → _page.svelte-wL3fdD1l.js.map} +1 -1
  122. package/build/server/chunks/{_page.svelte-DuJcNgye.js → _page.svelte-xTZOj1o8.js} +3 -3
  123. package/build/server/chunks/{_page.svelte-DuJcNgye.js.map → _page.svelte-xTZOj1o8.js.map} +1 -1
  124. package/build/server/chunks/_server.ts-B7znNtap.js +100 -0
  125. package/build/server/chunks/_server.ts-B7znNtap.js.map +1 -0
  126. package/build/server/chunks/_server.ts-BjPyYUki.js +85 -0
  127. package/build/server/chunks/_server.ts-BjPyYUki.js.map +1 -0
  128. package/build/server/chunks/_server.ts-C8Fe0kql.js +8 -0
  129. package/build/server/chunks/_server.ts-C8Fe0kql.js.map +1 -0
  130. package/build/server/chunks/_server.ts-D1Ja2hnG.js +8 -0
  131. package/build/server/chunks/_server.ts-D1Ja2hnG.js.map +1 -0
  132. package/build/server/chunks/_server.ts-DsbQ4b7x.js +43 -0
  133. package/build/server/chunks/_server.ts-DsbQ4b7x.js.map +1 -0
  134. package/build/server/chunks/_server.ts-hEGlXjuB.js +8 -0
  135. package/build/server/chunks/_server.ts-hEGlXjuB.js.map +1 -0
  136. package/build/server/chunks/{client-CBew73li.js → client-h6Frgnzt.js} +3 -3
  137. package/build/server/chunks/{client-CBew73li.js.map → client-h6Frgnzt.js.map} +1 -1
  138. package/build/server/chunks/{dev-CrqJ3ZR3.js → dev-BdIdjvaY.js} +216 -82
  139. package/build/server/chunks/dev-BdIdjvaY.js.map +1 -0
  140. package/build/server/chunks/{doctorSummary-CGjSiyKU.js → doctorSummary-FyoWuR3R.js} +3 -3
  141. package/build/server/chunks/{doctorSummary-CGjSiyKU.js.map → doctorSummary-FyoWuR3R.js.map} +1 -1
  142. package/build/server/chunks/{error.svelte-C78Jl1J5.js → error.svelte-DYzh-S9t.js} +5 -5
  143. package/build/server/chunks/{error.svelte-C78Jl1J5.js.map → error.svelte-DYzh-S9t.js.map} +1 -1
  144. package/build/server/chunks/hooks.server-BKavEpqC.js +81 -0
  145. package/build/server/chunks/hooks.server-BKavEpqC.js.map +1 -0
  146. package/build/server/chunks/index-CLnuRv4X.js +134 -0
  147. package/build/server/chunks/index-CLnuRv4X.js.map +1 -0
  148. package/build/server/chunks/index-DBqjc0Yf.js +77 -0
  149. package/build/server/chunks/index-DBqjc0Yf.js.map +1 -0
  150. package/build/server/chunks/{internal-WBaPpipk.js → internal-Dz8-ksla.js} +23 -93
  151. package/build/server/chunks/internal-Dz8-ksla.js.map +1 -0
  152. package/build/server/chunks/marketingSeo-6Ec8IVzY.js +132 -0
  153. package/build/server/chunks/marketingSeo-6Ec8IVzY.js.map +1 -0
  154. package/build/server/chunks/profileApiHelpers-CUuQdn1G.js +180 -0
  155. package/build/server/chunks/profileApiHelpers-CUuQdn1G.js.map +1 -0
  156. package/build/server/chunks/{projectContext-C4-xYqFg.js → projectContext-fk5wtjwg.js} +1393 -69
  157. package/build/server/chunks/projectContext-fk5wtjwg.js.map +1 -0
  158. package/build/server/chunks/src2-BFardyAd.js +12 -0
  159. package/build/server/chunks/src2-BFardyAd.js.map +1 -0
  160. package/build/server/chunks/{dist--t-UlYlZ.js → src3-vKD2iyNK.js} +135 -3
  161. package/build/server/chunks/src3-vKD2iyNK.js.map +1 -0
  162. package/build/server/chunks/tokenStore-DQfTa-N3.js +57 -0
  163. package/build/server/chunks/tokenStore-DQfTa-N3.js.map +1 -0
  164. package/build/server/index.js +4592 -4
  165. package/build/server/index.js.map +1 -1
  166. package/build/server/manifest.js +57 -15
  167. package/build/server/manifest.js.map +1 -1
  168. package/package.json +12 -9
  169. package/build/client/_app/immutable/assets/0.BG6jUcBX.css.br +0 -0
  170. package/build/client/_app/immutable/assets/0.BG6jUcBX.css.gz +0 -0
  171. package/build/client/_app/immutable/chunks/B-io8J2C.js +0 -1
  172. package/build/client/_app/immutable/chunks/B-io8J2C.js.br +0 -2
  173. package/build/client/_app/immutable/chunks/B-io8J2C.js.gz +0 -0
  174. package/build/client/_app/immutable/chunks/BWDgWdtq.js +0 -3
  175. package/build/client/_app/immutable/chunks/BWDgWdtq.js.br +0 -0
  176. package/build/client/_app/immutable/chunks/BWDgWdtq.js.gz +0 -0
  177. package/build/client/_app/immutable/chunks/CBvCQPh1.js +0 -1
  178. package/build/client/_app/immutable/chunks/CBvCQPh1.js.br +0 -2
  179. package/build/client/_app/immutable/chunks/CBvCQPh1.js.gz +0 -0
  180. package/build/client/_app/immutable/chunks/DAWBIq3g.js +0 -2
  181. package/build/client/_app/immutable/chunks/DAWBIq3g.js.br +0 -0
  182. package/build/client/_app/immutable/chunks/DAWBIq3g.js.gz +0 -0
  183. package/build/client/_app/immutable/chunks/DCJP-V9E.js +0 -3
  184. package/build/client/_app/immutable/chunks/DCJP-V9E.js.br +0 -0
  185. package/build/client/_app/immutable/chunks/DCJP-V9E.js.gz +0 -0
  186. package/build/client/_app/immutable/chunks/SOrpfga1.js +0 -1
  187. package/build/client/_app/immutable/chunks/SOrpfga1.js.br +0 -0
  188. package/build/client/_app/immutable/chunks/SOrpfga1.js.gz +0 -0
  189. package/build/client/_app/immutable/entry/app.CvfSMy7S.js +0 -2
  190. package/build/client/_app/immutable/entry/app.CvfSMy7S.js.br +0 -0
  191. package/build/client/_app/immutable/entry/app.CvfSMy7S.js.gz +0 -0
  192. package/build/client/_app/immutable/entry/start.nKIgWfXU.js +0 -1
  193. package/build/client/_app/immutable/entry/start.nKIgWfXU.js.br +0 -0
  194. package/build/client/_app/immutable/entry/start.nKIgWfXU.js.gz +0 -0
  195. package/build/client/_app/immutable/nodes/0.l1JjQQQj.js +0 -1
  196. package/build/client/_app/immutable/nodes/0.l1JjQQQj.js.br +0 -0
  197. package/build/client/_app/immutable/nodes/0.l1JjQQQj.js.gz +0 -0
  198. package/build/client/_app/immutable/nodes/1.BzbldZDH.js +0 -1
  199. package/build/client/_app/immutable/nodes/1.BzbldZDH.js.br +0 -4
  200. package/build/client/_app/immutable/nodes/1.BzbldZDH.js.gz +0 -0
  201. package/build/client/_app/immutable/nodes/10.BOQgahuX.js.br +0 -0
  202. package/build/client/_app/immutable/nodes/10.BOQgahuX.js.gz +0 -0
  203. package/build/client/_app/immutable/nodes/11.BjwWla8T.js +0 -1
  204. package/build/client/_app/immutable/nodes/11.BjwWla8T.js.br +0 -0
  205. package/build/client/_app/immutable/nodes/11.BjwWla8T.js.gz +0 -0
  206. package/build/client/_app/immutable/nodes/2.BDMGSS6l.js +0 -9
  207. package/build/client/_app/immutable/nodes/2.BDMGSS6l.js.br +0 -0
  208. package/build/client/_app/immutable/nodes/2.BDMGSS6l.js.gz +0 -0
  209. package/build/client/_app/immutable/nodes/3.NnDkXnSG.js +0 -2
  210. package/build/client/_app/immutable/nodes/3.NnDkXnSG.js.br +0 -0
  211. package/build/client/_app/immutable/nodes/3.NnDkXnSG.js.gz +0 -0
  212. package/build/client/_app/immutable/nodes/4.8sZ5zCiS.js +0 -4
  213. package/build/client/_app/immutable/nodes/4.8sZ5zCiS.js.br +0 -0
  214. package/build/client/_app/immutable/nodes/4.8sZ5zCiS.js.gz +0 -0
  215. package/build/client/_app/immutable/nodes/5.CSOalQ9R.js +0 -2
  216. package/build/client/_app/immutable/nodes/5.CSOalQ9R.js.br +0 -0
  217. package/build/client/_app/immutable/nodes/5.CSOalQ9R.js.gz +0 -0
  218. package/build/client/_app/immutable/nodes/6.BMBuGW7y.js +0 -5
  219. package/build/client/_app/immutable/nodes/6.BMBuGW7y.js.br +0 -0
  220. package/build/client/_app/immutable/nodes/6.BMBuGW7y.js.gz +0 -0
  221. package/build/client/_app/immutable/nodes/7.CKFnFT6B.js +0 -4
  222. package/build/client/_app/immutable/nodes/7.CKFnFT6B.js.br +0 -0
  223. package/build/client/_app/immutable/nodes/7.CKFnFT6B.js.gz +0 -0
  224. package/build/client/_app/immutable/nodes/8.Dw5huUXy.js +0 -1
  225. package/build/client/_app/immutable/nodes/8.Dw5huUXy.js.br +0 -0
  226. package/build/client/_app/immutable/nodes/8.Dw5huUXy.js.gz +0 -0
  227. package/build/client/_app/immutable/nodes/9.CnkwRoxn.js +0 -5
  228. package/build/client/_app/immutable/nodes/9.CnkwRoxn.js.br +0 -0
  229. package/build/client/_app/immutable/nodes/9.CnkwRoxn.js.gz +0 -0
  230. package/build/server/chunks/0-aBAedq2p.js.map +0 -1
  231. package/build/server/chunks/10-B1aX7ZZ8.js +0 -9
  232. package/build/server/chunks/2-BT3hDge_.js +0 -9
  233. package/build/server/chunks/2-BT3hDge_.js.map +0 -1
  234. package/build/server/chunks/3-CLWhM7Et.js +0 -9
  235. package/build/server/chunks/5-C1YtO2Ru.js +0 -9
  236. package/build/server/chunks/8-BNb36pCU.js +0 -9
  237. package/build/server/chunks/9-LeS-ldcl.js +0 -57
  238. package/build/server/chunks/9-LeS-ldcl.js.map +0 -1
  239. package/build/server/chunks/_layout.svelte-C6Ru_7YV.js.map +0 -1
  240. package/build/server/chunks/_page.svelte-BS9xpx67.js.map +0 -1
  241. package/build/server/chunks/_page.svelte-IYyXbXcB.js +0 -424
  242. package/build/server/chunks/_page.svelte-IYyXbXcB.js.map +0 -1
  243. package/build/server/chunks/dev-CrqJ3ZR3.js.map +0 -1
  244. package/build/server/chunks/dist--t-UlYlZ.js.map +0 -1
  245. package/build/server/chunks/hooks.server-BU12K8IL.js +0 -38
  246. package/build/server/chunks/hooks.server-BU12K8IL.js.map +0 -1
  247. package/build/server/chunks/index-CNsiSQmW.js +0 -4727
  248. package/build/server/chunks/index-CNsiSQmW.js.map +0 -1
  249. package/build/server/chunks/internal-WBaPpipk.js.map +0 -1
  250. package/build/server/chunks/projectContext-C4-xYqFg.js.map +0 -1
@@ -0,0 +1,180 @@
1
+ import { f as computeFileEtag, p as parseProfileYaml, d as deriveEffectivePermissions, n as normalizeSafety, h as validateProfileValue, j as renderProfileYaml, a as containsSecretLikeLiteral } from './projectContext-fk5wtjwg.js';
2
+ import { readFile } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { diffLines, createTwoFilesPatch } from 'diff';
5
+
6
+ //#region src/lib/server/profileApiHelpers.ts
7
+ /**
8
+ * Shared helpers for the Phase 8 profile API routes:
9
+ * GET /api/profile
10
+ * POST /api/profile/plan
11
+ * POST /api/profile/apply
12
+ */
13
+ var PROFILE_FILENAME = "ai-profile.yaml";
14
+ var MAX_PAYLOAD_BYTES = 128 * 1024;
15
+ var UTF8_DECODER = new TextDecoder("utf-8", { fatal: true });
16
+ async function readDiskProfile(rootDir) {
17
+ const profilePath = path.join(rootDir, PROFILE_FILENAME);
18
+ let bytes;
19
+ try {
20
+ bytes = await readFile(profilePath);
21
+ } catch (err) {
22
+ if (isNodeError(err) && err.code === "ENOENT") return {
23
+ ok: false,
24
+ reason: "not_found",
25
+ issues: [],
26
+ unsupportedEditing: false
27
+ };
28
+ throw err;
29
+ }
30
+ const source = bytes.toString("utf8");
31
+ const etag = computeFileEtag(bytes);
32
+ const result = parseProfileYaml(source, { sourcePath: PROFILE_FILENAME });
33
+ if (!result.ok) {
34
+ const hasUnknown = result.issues.some((i) => i.code === "schema_validation_error" && i.expected === "no additional properties");
35
+ return {
36
+ ok: false,
37
+ reason: "invalid",
38
+ issues: result.issues,
39
+ unsupportedEditing: hasUnknown,
40
+ etag
41
+ };
42
+ }
43
+ return {
44
+ ok: true,
45
+ bytes,
46
+ etag,
47
+ source,
48
+ profile: result.profile,
49
+ safety: normalizeSafety(result.profile),
50
+ effectivePermissions: deriveEffectivePermissions(result.profile),
51
+ unsupportedEditing: false
52
+ };
53
+ }
54
+ async function readJsonRequestBody(request, maxBytes = MAX_PAYLOAD_BYTES) {
55
+ const contentLengthHeader = request.headers.get("content-length");
56
+ if (contentLengthHeader !== null) {
57
+ const contentLength = Number(contentLengthHeader);
58
+ if (!Number.isFinite(contentLength) || contentLength < 0) return {
59
+ ok: false,
60
+ status: 400,
61
+ error: "invalid_request",
62
+ message: "Invalid content-length header."
63
+ };
64
+ if (contentLength > maxBytes) return {
65
+ ok: false,
66
+ status: 413,
67
+ error: "payload_too_large"
68
+ };
69
+ }
70
+ const bytes = new Uint8Array(await request.arrayBuffer());
71
+ if (bytes.byteLength > maxBytes) return {
72
+ ok: false,
73
+ status: 413,
74
+ error: "payload_too_large"
75
+ };
76
+ if (bytes.includes(0)) return {
77
+ ok: false,
78
+ status: 400,
79
+ error: "invalid_encoding",
80
+ message: "Request body contains a NUL byte."
81
+ };
82
+ let text;
83
+ try {
84
+ text = UTF8_DECODER.decode(bytes);
85
+ } catch {
86
+ return {
87
+ ok: false,
88
+ status: 400,
89
+ error: "invalid_encoding",
90
+ message: "Request body is not valid UTF-8."
91
+ };
92
+ }
93
+ try {
94
+ return {
95
+ ok: true,
96
+ body: JSON.parse(text)
97
+ };
98
+ } catch {
99
+ return {
100
+ ok: false,
101
+ status: 400,
102
+ error: "invalid_request",
103
+ message: "Body is not valid JSON."
104
+ };
105
+ }
106
+ }
107
+ function validateCandidate(candidate) {
108
+ const result = validateProfileValue(candidate);
109
+ if (!result.ok) return {
110
+ ok: false,
111
+ reason: "invalid",
112
+ issues: result.issues
113
+ };
114
+ const nulPaths = findNulStringPaths(result.profile);
115
+ if (nulPaths.length > 0) return {
116
+ ok: false,
117
+ reason: "invalid_encoding",
118
+ paths: nulPaths
119
+ };
120
+ const secretPaths = findSecretLikePaths(result.profile);
121
+ if (secretPaths.length > 0) return {
122
+ ok: false,
123
+ reason: "secret_like",
124
+ paths: secretPaths
125
+ };
126
+ const yaml = renderProfileYaml(result.profile);
127
+ return {
128
+ ok: true,
129
+ yaml,
130
+ etag: computeFileEtag(Buffer.from(yaml, "utf8"))
131
+ };
132
+ }
133
+ function findNulStringPaths(profile) {
134
+ const paths = [];
135
+ if (profile.profile.name.includes("\0")) paths.push("/profile/name");
136
+ if (profile.profile.description.includes("\0")) paths.push("/profile/description");
137
+ for (const [i, lang] of profile.stack.languages.entries()) if (lang.includes("\0")) paths.push(`/stack/languages/${i}`);
138
+ for (const [i, fw] of profile.stack.frameworks.entries()) if (fw.includes("\0")) paths.push(`/stack/frameworks/${i}`);
139
+ for (const [i, pm] of profile.stack.packageManagers.entries()) if (pm.includes("\0")) paths.push(`/stack/packageManagers/${i}`);
140
+ for (const [i, t] of profile.stack.testing.entries()) if (t.includes("\0")) paths.push(`/stack/testing/${i}`);
141
+ return paths;
142
+ }
143
+ function findSecretLikePaths(profile) {
144
+ const paths = [];
145
+ if (containsSecretLikeLiteral(profile.profile.name)) paths.push("/profile/name");
146
+ if (containsSecretLikeLiteral(profile.profile.description)) paths.push("/profile/description");
147
+ for (const [i, lang] of profile.stack.languages.entries()) if (containsSecretLikeLiteral(lang)) paths.push(`/stack/languages/${i}`);
148
+ for (const [i, fw] of profile.stack.frameworks.entries()) if (containsSecretLikeLiteral(fw)) paths.push(`/stack/frameworks/${i}`);
149
+ for (const [i, pm] of profile.stack.packageManagers.entries()) if (containsSecretLikeLiteral(pm)) paths.push(`/stack/packageManagers/${i}`);
150
+ for (const [i, t] of profile.stack.testing.entries()) if (containsSecretLikeLiteral(t)) paths.push(`/stack/testing/${i}`);
151
+ return paths;
152
+ }
153
+ function computeProfileDiff(oldText, newText) {
154
+ if (oldText === newText) return {
155
+ text: "",
156
+ added: 0,
157
+ removed: 0,
158
+ changed: false
159
+ };
160
+ let added = 0;
161
+ let removed = 0;
162
+ for (const change of diffLines(oldText, newText)) if (change.added) added += change.count ?? countLines(change.value);
163
+ else if (change.removed) removed += change.count ?? countLines(change.value);
164
+ return {
165
+ text: createTwoFilesPatch(PROFILE_FILENAME, PROFILE_FILENAME, oldText, newText, "", "", { context: 3 }),
166
+ added,
167
+ removed,
168
+ changed: true
169
+ };
170
+ }
171
+ function countLines(value) {
172
+ if (value.length === 0) return 0;
173
+ return value.endsWith("\n") ? value.slice(0, -1).split("\n").length : value.split("\n").length;
174
+ }
175
+ function isNodeError(err) {
176
+ return err instanceof Error && "code" in err;
177
+ }
178
+
179
+ export { readJsonRequestBody as a, computeProfileDiff as c, readDiskProfile as r, validateCandidate as v };
180
+ //# sourceMappingURL=profileApiHelpers-CUuQdn1G.js.map
@@ -0,0 +1 @@
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":"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"}