@agent-profile/web 0.3.5 → 0.4.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 (305) hide show
  1. package/build/client/_app/immutable/chunks/Bjy-W4x2.js +81 -0
  2. package/build/client/_app/immutable/chunks/Bjy-W4x2.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/Bjy-W4x2.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{BcMnim1Z.js → BmxQso7w.js} +1 -1
  5. package/build/client/_app/immutable/chunks/BmxQso7w.js.br +3 -0
  6. package/build/client/_app/immutable/chunks/BmxQso7w.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/CY-inT3H.js +3 -0
  8. package/build/client/_app/immutable/chunks/CY-inT3H.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/CY-inT3H.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{DTBN031P.js → CyEm9M8C.js} +1 -1
  11. package/build/client/_app/immutable/chunks/CyEm9M8C.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/CyEm9M8C.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/DYl5dUZ5.js +1 -0
  14. package/build/client/_app/immutable/chunks/DYl5dUZ5.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/DYl5dUZ5.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/RwRNRscK.js +2 -0
  17. package/build/client/_app/immutable/chunks/RwRNRscK.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/RwRNRscK.js.gz +0 -0
  19. package/build/client/_app/immutable/chunks/{D5fBh0I2.js → YBkAuHc6.js} +1 -1
  20. package/build/client/_app/immutable/chunks/YBkAuHc6.js.br +0 -0
  21. package/build/client/_app/immutable/chunks/YBkAuHc6.js.gz +0 -0
  22. package/build/client/_app/immutable/chunks/jSRqCab7.js +1 -0
  23. package/build/client/_app/immutable/chunks/jSRqCab7.js.br +2 -0
  24. package/build/client/_app/immutable/chunks/jSRqCab7.js.gz +0 -0
  25. package/build/client/_app/immutable/entry/app.WDp3PboB.js +2 -0
  26. package/build/client/_app/immutable/entry/app.WDp3PboB.js.br +0 -0
  27. package/build/client/_app/immutable/entry/app.WDp3PboB.js.gz +0 -0
  28. package/build/client/_app/immutable/entry/start.Rh_k7Qxe.js +1 -0
  29. package/build/client/_app/immutable/entry/start.Rh_k7Qxe.js.br +0 -0
  30. package/build/client/_app/immutable/entry/start.Rh_k7Qxe.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/0.-RAEeCLa.js +1 -0
  32. package/build/client/_app/immutable/nodes/0.-RAEeCLa.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/0.-RAEeCLa.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/1.34MuZTH7.js +1 -0
  35. package/build/client/_app/immutable/nodes/1.34MuZTH7.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/1.34MuZTH7.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/10.DplzwNzq.js +3 -0
  38. package/build/client/_app/immutable/nodes/10.DplzwNzq.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/10.DplzwNzq.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{11.3lkgWYOd.js → 11.DvcCox6n.js} +1 -1
  41. package/build/client/_app/immutable/nodes/11.DvcCox6n.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/11.DvcCox6n.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{12.p6ol8gkx.js → 12.Cb49Qjng.js} +1 -1
  44. package/build/client/_app/immutable/nodes/12.Cb49Qjng.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/12.Cb49Qjng.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{2.Clary1Ks.js → 2.DNGHCEWB.js} +2 -2
  47. package/build/client/_app/immutable/nodes/2.DNGHCEWB.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/2.DNGHCEWB.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{3.BBvN4Erf.js → 3.BEdWeod6.js} +1 -1
  50. package/build/client/_app/immutable/nodes/3.BEdWeod6.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/3.BEdWeod6.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{4.3VL8fZOS.js → 4.C4b1rN7s.js} +1 -1
  53. package/build/client/_app/immutable/nodes/4.C4b1rN7s.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/4.C4b1rN7s.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/5.DrqRX385.js +2 -0
  56. package/build/client/_app/immutable/nodes/5.DrqRX385.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/5.DrqRX385.js.gz +0 -0
  58. package/build/client/_app/immutable/nodes/{6.BRCCYakl.js → 6.BiWHXice.js} +1 -1
  59. package/build/client/_app/immutable/nodes/6.BiWHXice.js.br +0 -0
  60. package/build/client/_app/immutable/nodes/6.BiWHXice.js.gz +0 -0
  61. package/build/client/_app/immutable/nodes/{7._DA-s9Iz.js → 7.BNVGtd7p.js} +1 -1
  62. package/build/client/_app/immutable/nodes/7.BNVGtd7p.js.br +0 -0
  63. package/build/client/_app/immutable/nodes/7.BNVGtd7p.js.gz +0 -0
  64. package/build/client/_app/immutable/nodes/8.jIClO5FX.js +1 -0
  65. package/build/client/_app/immutable/nodes/8.jIClO5FX.js.br +0 -0
  66. package/build/client/_app/immutable/nodes/8.jIClO5FX.js.gz +0 -0
  67. package/build/client/_app/immutable/nodes/9.B7GOogsh.js +9 -0
  68. package/build/client/_app/immutable/nodes/9.B7GOogsh.js.br +0 -0
  69. package/build/client/_app/immutable/nodes/9.B7GOogsh.js.gz +0 -0
  70. package/build/client/_app/version.json +1 -1
  71. package/build/client/_app/version.json.br +0 -0
  72. package/build/client/_app/version.json.gz +0 -0
  73. package/build/env.js +9 -33
  74. package/build/env.js.map +1 -0
  75. package/build/handler.js +15 -1493
  76. package/build/handler.js.map +1 -0
  77. package/build/index.js +25 -231
  78. package/build/index.js.map +1 -0
  79. package/build/server/chunks/{0--J8MXU0r.js → 0-B6UIl8X0.js} +8 -8
  80. package/build/server/chunks/0-B6UIl8X0.js.map +1 -0
  81. package/build/server/chunks/1-Dq90EpGp.js +9 -0
  82. package/build/server/chunks/1-Dq90EpGp.js.map +1 -0
  83. package/build/server/chunks/{10-CX1ex2mH.js → 10-BM8QtjX8.js} +5 -4
  84. package/build/server/chunks/10-BM8QtjX8.js.map +1 -0
  85. package/build/server/chunks/11-FZmITmkZ.js +9 -0
  86. package/build/server/chunks/11-FZmITmkZ.js.map +1 -0
  87. package/build/server/chunks/{12-Dw1Y6Xen.js → 12-BlqEGyqp.js} +4 -4
  88. package/build/server/chunks/12-BlqEGyqp.js.map +1 -0
  89. package/build/server/chunks/{2-iIDfIUc5.js → 2-D9wmJrmC.js} +3 -3
  90. package/build/server/chunks/2-D9wmJrmC.js.map +1 -0
  91. package/build/server/chunks/3-C7b_e-a7.js +9 -0
  92. package/build/server/chunks/3-C7b_e-a7.js.map +1 -0
  93. package/build/server/chunks/{4-CKQYCTZo.js → 4-DC34JtHj.js} +6 -6
  94. package/build/server/chunks/4-DC34JtHj.js.map +1 -0
  95. package/build/server/chunks/5-vZTj2V8e.js +9 -0
  96. package/build/server/chunks/5-vZTj2V8e.js.map +1 -0
  97. package/build/server/chunks/6-ClsuiYR1.js +9 -0
  98. package/build/server/chunks/6-ClsuiYR1.js.map +1 -0
  99. package/build/server/chunks/{7-DT_D0EX1.js → 7-CdnU-whk.js} +6 -6
  100. package/build/server/chunks/7-CdnU-whk.js.map +1 -0
  101. package/build/server/chunks/8-DGCxm3TB.js +9 -0
  102. package/build/server/chunks/8-DGCxm3TB.js.map +1 -0
  103. package/build/server/chunks/{9-BVttRALh.js → 9-BcuWrd-q.js} +5 -5
  104. package/build/server/chunks/9-BcuWrd-q.js.map +1 -0
  105. package/build/server/chunks/{Badge-DCQxSQCS.js → Badge-C73znQSJ.js} +2 -2
  106. package/build/server/chunks/Badge-C73znQSJ.js.map +1 -0
  107. package/build/server/chunks/{SafetyBadge-BxEGojgX.js → SafetyBadge-DbpkfzSa.js} +2 -2
  108. package/build/server/chunks/SafetyBadge-DbpkfzSa.js.map +1 -0
  109. package/build/server/chunks/{_layout.svelte-BPfWfi5Y.js → _layout.svelte-1xu00yiw.js} +4 -6
  110. package/build/server/chunks/{_layout.svelte-BPfWfi5Y.js.map → _layout.svelte-1xu00yiw.js.map} +1 -1
  111. package/build/server/chunks/{_page.svelte-xTZOj1o8.js → _page.svelte-4Xfcj342.js} +3 -3
  112. package/build/server/chunks/_page.svelte-4Xfcj342.js.map +1 -0
  113. package/build/server/chunks/{_page.svelte-qnfxKUje.js → _page.svelte-8auIN7Qo.js} +24 -21
  114. package/build/server/chunks/_page.svelte-8auIN7Qo.js.map +1 -0
  115. package/build/server/chunks/{_page.svelte-wL3fdD1l.js → _page.svelte-BXtL3d0f.js} +4 -4
  116. package/build/server/chunks/_page.svelte-BXtL3d0f.js.map +1 -0
  117. package/build/server/chunks/{_page.svelte-B8jThscg.js → _page.svelte-BaxiAFdk.js} +4 -6
  118. package/build/server/chunks/_page.svelte-BaxiAFdk.js.map +1 -0
  119. package/build/server/chunks/{_page.svelte-D9DhnmQr.js → _page.svelte-BhsBxk6l.js} +3 -5
  120. package/build/server/chunks/_page.svelte-BhsBxk6l.js.map +1 -0
  121. package/build/server/chunks/{_page.svelte-1wUrXGW-.js → _page.svelte-Br7nreH-.js} +4 -5
  122. package/build/server/chunks/_page.svelte-Br7nreH-.js.map +1 -0
  123. package/build/server/chunks/{_page.svelte-B1i4IP2u.js → _page.svelte-C1ssMQqB.js} +4 -6
  124. package/build/server/chunks/_page.svelte-C1ssMQqB.js.map +1 -0
  125. package/build/server/chunks/{_page.svelte-D8ffqrO3.js → _page.svelte-CZMhLclS.js} +5 -7
  126. package/build/server/chunks/_page.svelte-CZMhLclS.js.map +1 -0
  127. package/build/server/chunks/{_page.svelte-NwgcXZfI.js → _page.svelte-DMwgbUjH.js} +6 -7
  128. package/build/server/chunks/_page.svelte-DMwgbUjH.js.map +1 -0
  129. package/build/server/chunks/{_page.svelte-B3CasgD8.js → _page.svelte-iNuDNlPL.js} +3 -3
  130. package/build/server/chunks/_page.svelte-iNuDNlPL.js.map +1 -0
  131. package/build/server/chunks/{_page.svelte-BikYFdJv.js → _page.svelte-pVxceXG3.js} +5 -5
  132. package/build/server/chunks/_page.svelte-pVxceXG3.js.map +1 -0
  133. package/build/server/chunks/{_server.ts-D7iLlRbM.js → _server.ts-B6p7ukMz.js} +4 -5
  134. package/build/server/chunks/_server.ts-B6p7ukMz.js.map +1 -0
  135. package/build/server/chunks/{_server.ts-C49ZrV0a.js → _server.ts-BRZfMXBh.js} +2 -2
  136. package/build/server/chunks/_server.ts-BRZfMXBh.js.map +1 -0
  137. package/build/server/chunks/{_server.ts-BBDD0W6t.js → _server.ts-CCCiUW1c.js} +3 -4
  138. package/build/server/chunks/_server.ts-CCCiUW1c.js.map +1 -0
  139. package/build/server/chunks/{_server.ts-BkOJmVFg.js → _server.ts-CXojCxes.js} +5 -6
  140. package/build/server/chunks/_server.ts-CXojCxes.js.map +1 -0
  141. package/build/server/chunks/{_server.ts-rJ_Ubi9D.js → _server.ts-CqIWzdWh.js} +2 -2
  142. package/build/server/chunks/_server.ts-CqIWzdWh.js.map +1 -0
  143. package/build/server/chunks/{_server.ts-CaVH9FSD.js → _server.ts-DAqw6tHI.js} +4 -5
  144. package/build/server/chunks/_server.ts-DAqw6tHI.js.map +1 -0
  145. package/build/server/chunks/{_server.ts-Dz9oKgWc.js → _server.ts-DFARp0QA.js} +5 -6
  146. package/build/server/chunks/_server.ts-DFARp0QA.js.map +1 -0
  147. package/build/server/chunks/{_server.ts-Dwe99x74.js → _server.ts-DcfqVMUN.js} +2 -2
  148. package/build/server/chunks/_server.ts-DcfqVMUN.js.map +1 -0
  149. package/build/server/chunks/{_server.ts-DPqZOGG_.js → _server.ts-DqBabNbA.js} +4 -5
  150. package/build/server/chunks/_server.ts-DqBabNbA.js.map +1 -0
  151. package/build/server/chunks/{_server.ts-C2WpZqPW.js → _server.ts-DrY2Ctqv.js} +4 -5
  152. package/build/server/chunks/_server.ts-DrY2Ctqv.js.map +1 -0
  153. package/build/server/chunks/client-C6wXHlmK.js +24 -0
  154. package/build/server/chunks/client-C6wXHlmK.js.map +1 -0
  155. package/build/server/chunks/{doctorSummary-BOtGdd9z.js → doctorSummary-De2PTQoD.js} +3 -3
  156. package/build/server/chunks/doctorSummary-De2PTQoD.js.map +1 -0
  157. package/build/server/chunks/{error.svelte-DWPum81Y.js → error.svelte-CcYVAQ1W.js} +3 -5
  158. package/build/server/chunks/error.svelte-CcYVAQ1W.js.map +1 -0
  159. package/build/server/chunks/handler-Hnwc-LvR.js +1473 -0
  160. package/build/server/chunks/handler-Hnwc-LvR.js.map +1 -0
  161. package/build/server/chunks/{hooks.server-Dva4z7fv.js → hooks.server-CB4nMIz1.js} +4 -5
  162. package/build/server/chunks/hooks.server-CB4nMIz1.js.map +1 -0
  163. package/build/server/chunks/index.js-BISNf3Ne.js +11542 -0
  164. package/build/server/chunks/index.js-BISNf3Ne.js.map +1 -0
  165. package/build/server/{manifest.js → chunks/manifest.js-C1tyaqvp.js} +26 -30
  166. package/build/server/chunks/manifest.js-C1tyaqvp.js.map +1 -0
  167. package/build/server/chunks/{marketingSeo-DqH0vHQa.js → marketingSeo-D0c8diM4.js} +2 -2
  168. package/build/server/chunks/marketingSeo-D0c8diM4.js.map +1 -0
  169. package/build/server/chunks/{migrationReport-f6NoxAVZ.js → migrationReport-BfHleN7g.js} +2 -2
  170. package/build/server/chunks/migrationReport-BfHleN7g.js.map +1 -0
  171. package/build/server/chunks/{profileApiHelpers-DCoI7zMU.js → profileApiHelpers-CKY0z-TD.js} +2 -2
  172. package/build/server/chunks/profileApiHelpers-CKY0z-TD.js.map +1 -0
  173. package/build/server/chunks/{projectContext-B1D-bieW.js → projectContext-BtPm3MFR.js} +1098 -53
  174. package/build/server/chunks/projectContext-BtPm3MFR.js.map +1 -0
  175. package/build/server/chunks/{src2-BtraGDB1.js → src2-DwXcz8UE.js} +2 -2
  176. package/build/server/chunks/src2-DwXcz8UE.js.map +1 -0
  177. package/build/server/chunks/{src3-BXch_OaJ.js → src3-DeQh3O0_.js} +379 -6
  178. package/build/server/chunks/src3-DeQh3O0_.js.map +1 -0
  179. package/build/server/chunks/tokenStore-CTHhmHsk.js.map +1 -1
  180. package/build/shims.js +1 -0
  181. package/build/shims.js.map +1 -0
  182. package/package.json +6 -6
  183. package/build/client/_app/immutable/chunks/BcMnim1Z.js.br +0 -0
  184. package/build/client/_app/immutable/chunks/BcMnim1Z.js.gz +0 -0
  185. package/build/client/_app/immutable/chunks/BqIBYAbW.js +0 -3
  186. package/build/client/_app/immutable/chunks/BqIBYAbW.js.br +0 -0
  187. package/build/client/_app/immutable/chunks/BqIBYAbW.js.gz +0 -0
  188. package/build/client/_app/immutable/chunks/CC808Z2X.js +0 -1
  189. package/build/client/_app/immutable/chunks/CC808Z2X.js.br +0 -2
  190. package/build/client/_app/immutable/chunks/CC808Z2X.js.gz +0 -0
  191. package/build/client/_app/immutable/chunks/D5fBh0I2.js.br +0 -2
  192. package/build/client/_app/immutable/chunks/D5fBh0I2.js.gz +0 -0
  193. package/build/client/_app/immutable/chunks/DJ5W1vn7.js +0 -3
  194. package/build/client/_app/immutable/chunks/DJ5W1vn7.js.br +0 -0
  195. package/build/client/_app/immutable/chunks/DJ5W1vn7.js.gz +0 -0
  196. package/build/client/_app/immutable/chunks/DTBN031P.js.br +0 -2
  197. package/build/client/_app/immutable/chunks/DTBN031P.js.gz +0 -0
  198. package/build/client/_app/immutable/chunks/O6-aNYLC.js +0 -1
  199. package/build/client/_app/immutable/chunks/O6-aNYLC.js.br +0 -0
  200. package/build/client/_app/immutable/chunks/O6-aNYLC.js.gz +0 -0
  201. package/build/client/_app/immutable/entry/app.Drm5SkSR.js +0 -2
  202. package/build/client/_app/immutable/entry/app.Drm5SkSR.js.br +0 -0
  203. package/build/client/_app/immutable/entry/app.Drm5SkSR.js.gz +0 -0
  204. package/build/client/_app/immutable/entry/start.BbRC1ryX.js +0 -1
  205. package/build/client/_app/immutable/entry/start.BbRC1ryX.js.br +0 -0
  206. package/build/client/_app/immutable/entry/start.BbRC1ryX.js.gz +0 -0
  207. package/build/client/_app/immutable/nodes/0.BP1kFxFY.js +0 -1
  208. package/build/client/_app/immutable/nodes/0.BP1kFxFY.js.br +0 -0
  209. package/build/client/_app/immutable/nodes/0.BP1kFxFY.js.gz +0 -0
  210. package/build/client/_app/immutable/nodes/1.CSvicVYN.js +0 -1
  211. package/build/client/_app/immutable/nodes/1.CSvicVYN.js.br +0 -0
  212. package/build/client/_app/immutable/nodes/1.CSvicVYN.js.gz +0 -0
  213. package/build/client/_app/immutable/nodes/10.LJrHMplF.js +0 -3
  214. package/build/client/_app/immutable/nodes/10.LJrHMplF.js.br +0 -0
  215. package/build/client/_app/immutable/nodes/10.LJrHMplF.js.gz +0 -0
  216. package/build/client/_app/immutable/nodes/11.3lkgWYOd.js.br +0 -0
  217. package/build/client/_app/immutable/nodes/11.3lkgWYOd.js.gz +0 -0
  218. package/build/client/_app/immutable/nodes/12.p6ol8gkx.js.br +0 -0
  219. package/build/client/_app/immutable/nodes/12.p6ol8gkx.js.gz +0 -0
  220. package/build/client/_app/immutable/nodes/2.Clary1Ks.js.br +0 -0
  221. package/build/client/_app/immutable/nodes/2.Clary1Ks.js.gz +0 -0
  222. package/build/client/_app/immutable/nodes/3.BBvN4Erf.js.br +0 -0
  223. package/build/client/_app/immutable/nodes/3.BBvN4Erf.js.gz +0 -0
  224. package/build/client/_app/immutable/nodes/4.3VL8fZOS.js.br +0 -0
  225. package/build/client/_app/immutable/nodes/4.3VL8fZOS.js.gz +0 -0
  226. package/build/client/_app/immutable/nodes/5.CiNtblYV.js +0 -2
  227. package/build/client/_app/immutable/nodes/5.CiNtblYV.js.br +0 -0
  228. package/build/client/_app/immutable/nodes/5.CiNtblYV.js.gz +0 -0
  229. package/build/client/_app/immutable/nodes/6.BRCCYakl.js.br +0 -0
  230. package/build/client/_app/immutable/nodes/6.BRCCYakl.js.gz +0 -0
  231. package/build/client/_app/immutable/nodes/7._DA-s9Iz.js.br +0 -0
  232. package/build/client/_app/immutable/nodes/7._DA-s9Iz.js.gz +0 -0
  233. package/build/client/_app/immutable/nodes/8.D0vCT-mT.js +0 -1
  234. package/build/client/_app/immutable/nodes/8.D0vCT-mT.js.br +0 -2
  235. package/build/client/_app/immutable/nodes/8.D0vCT-mT.js.gz +0 -0
  236. package/build/client/_app/immutable/nodes/9.DTFYsfKM.js +0 -9
  237. package/build/client/_app/immutable/nodes/9.DTFYsfKM.js.br +0 -0
  238. package/build/client/_app/immutable/nodes/9.DTFYsfKM.js.gz +0 -0
  239. package/build/server/chunks/0--J8MXU0r.js.map +0 -1
  240. package/build/server/chunks/1-BImzM_Nb.js +0 -9
  241. package/build/server/chunks/1-BImzM_Nb.js.map +0 -1
  242. package/build/server/chunks/10-CX1ex2mH.js.map +0 -1
  243. package/build/server/chunks/11-mzYblRmm.js +0 -9
  244. package/build/server/chunks/11-mzYblRmm.js.map +0 -1
  245. package/build/server/chunks/12-Dw1Y6Xen.js.map +0 -1
  246. package/build/server/chunks/2-iIDfIUc5.js.map +0 -1
  247. package/build/server/chunks/3-DjAsck26.js +0 -9
  248. package/build/server/chunks/3-DjAsck26.js.map +0 -1
  249. package/build/server/chunks/4-CKQYCTZo.js.map +0 -1
  250. package/build/server/chunks/5-BDp1sX0Q.js +0 -9
  251. package/build/server/chunks/5-BDp1sX0Q.js.map +0 -1
  252. package/build/server/chunks/6-CUIuzy6O.js +0 -9
  253. package/build/server/chunks/6-CUIuzy6O.js.map +0 -1
  254. package/build/server/chunks/7-DT_D0EX1.js.map +0 -1
  255. package/build/server/chunks/8-DK1BCf-b.js +0 -9
  256. package/build/server/chunks/8-DK1BCf-b.js.map +0 -1
  257. package/build/server/chunks/9-BVttRALh.js.map +0 -1
  258. package/build/server/chunks/Badge-DCQxSQCS.js.map +0 -1
  259. package/build/server/chunks/SafetyBadge-BxEGojgX.js.map +0 -1
  260. package/build/server/chunks/_page.svelte-1wUrXGW-.js.map +0 -1
  261. package/build/server/chunks/_page.svelte-B1i4IP2u.js.map +0 -1
  262. package/build/server/chunks/_page.svelte-B3CasgD8.js.map +0 -1
  263. package/build/server/chunks/_page.svelte-B8jThscg.js.map +0 -1
  264. package/build/server/chunks/_page.svelte-BikYFdJv.js.map +0 -1
  265. package/build/server/chunks/_page.svelte-D8ffqrO3.js.map +0 -1
  266. package/build/server/chunks/_page.svelte-D9DhnmQr.js.map +0 -1
  267. package/build/server/chunks/_page.svelte-NwgcXZfI.js.map +0 -1
  268. package/build/server/chunks/_page.svelte-qnfxKUje.js.map +0 -1
  269. package/build/server/chunks/_page.svelte-wL3fdD1l.js.map +0 -1
  270. package/build/server/chunks/_page.svelte-xTZOj1o8.js.map +0 -1
  271. package/build/server/chunks/_server.ts-BBDD0W6t.js.map +0 -1
  272. package/build/server/chunks/_server.ts-BkOJmVFg.js.map +0 -1
  273. package/build/server/chunks/_server.ts-C2WpZqPW.js.map +0 -1
  274. package/build/server/chunks/_server.ts-C49ZrV0a.js.map +0 -1
  275. package/build/server/chunks/_server.ts-CaVH9FSD.js.map +0 -1
  276. package/build/server/chunks/_server.ts-D7iLlRbM.js.map +0 -1
  277. package/build/server/chunks/_server.ts-DPqZOGG_.js.map +0 -1
  278. package/build/server/chunks/_server.ts-Dwe99x74.js.map +0 -1
  279. package/build/server/chunks/_server.ts-Dz9oKgWc.js.map +0 -1
  280. package/build/server/chunks/_server.ts-rJ_Ubi9D.js.map +0 -1
  281. package/build/server/chunks/client-BagBHERz.js +0 -23
  282. package/build/server/chunks/client-BagBHERz.js.map +0 -1
  283. package/build/server/chunks/dev-BdIdjvaY.js +0 -4692
  284. package/build/server/chunks/dev-BdIdjvaY.js.map +0 -1
  285. package/build/server/chunks/doctorSummary-BOtGdd9z.js.map +0 -1
  286. package/build/server/chunks/error.svelte-DWPum81Y.js.map +0 -1
  287. package/build/server/chunks/hooks.server-Dva4z7fv.js.map +0 -1
  288. package/build/server/chunks/index-CLnuRv4X.js +0 -134
  289. package/build/server/chunks/index-CLnuRv4X.js.map +0 -1
  290. package/build/server/chunks/index-DBqjc0Yf.js +0 -77
  291. package/build/server/chunks/index-DBqjc0Yf.js.map +0 -1
  292. package/build/server/chunks/internal-sR_8mnoa.js +0 -1998
  293. package/build/server/chunks/internal-sR_8mnoa.js.map +0 -1
  294. package/build/server/chunks/marketingSeo-DqH0vHQa.js.map +0 -1
  295. package/build/server/chunks/migrationReport-f6NoxAVZ.js.map +0 -1
  296. package/build/server/chunks/profileApiHelpers-DCoI7zMU.js.map +0 -1
  297. package/build/server/chunks/projectContext-B1D-bieW.js.map +0 -1
  298. package/build/server/chunks/src2-BtraGDB1.js.map +0 -1
  299. package/build/server/chunks/src3-BXch_OaJ.js.map +0 -1
  300. package/build/server/index.js +0 -4593
  301. package/build/server/index.js.map +0 -1
  302. package/build/server/manifest.js.map +0 -1
  303. /package/build/client/_app/immutable/chunks/{CP97kCR3.js → xihTtKlq.js} +0 -0
  304. /package/build/client/_app/immutable/chunks/{CP97kCR3.js.br → xihTtKlq.js.br} +0 -0
  305. /package/build/client/_app/immutable/chunks/{CP97kCR3.js.gz → xihTtKlq.js.gz} +0 -0
@@ -1,4 +1,4 @@
1
- import { p as parseProfileYaml } from './projectContext-B1D-bieW.js';
1
+ import { p as parseProfileYaml } from './projectContext-BtPm3MFR.js';
2
2
  import 'node:fs/promises';
3
3
  import 'process';
4
4
  import 'buffer';
@@ -9,4 +9,4 @@ import 'node:crypto';
9
9
 
10
10
 
11
11
  export { parseProfileYaml };
12
- //# sourceMappingURL=src2-BtraGDB1.js.map
12
+ //# sourceMappingURL=src2-DwXcz8UE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"src2-DwXcz8UE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -1,7 +1,143 @@
1
- import { p as parseProfileYaml, c as compileProfile, t as toLockfileV2View, d as deriveEffectivePermissions, s as safeOutputPath, e as containsSecretLikeLiteral, v as validateLockfileText, h as hasAllRegionMarkers, f as hasAnyRegionMarker, g as parseMixedFile, i as hasLegacyGeneratedMarker, j as createLockfileFile, k as sha256Hex, n as normalizeSafety, l as getEnabledSubagents, m as isSubagentBuiltinNameCollision } from './projectContext-B1D-bieW.js';
1
+ import { p as parseProfileYaml, c as compileProfile, t as toLockfileV2View, d as deriveEffectivePermissions, s as safeOutputPath, e as containsSecretLikeLiteral, i as isLoopSkillId, v as validateLockfileText, h as hasAllRegionMarkers, f as hasAnyRegionMarker, g as parseMixedFile, j as hasLegacyGeneratedMarker, k as createLockfileFile, l as sha256Hex, n as normalizeSafety, m as getEnabledSubagents, o as isSubagentBuiltinNameCollision, q as getSelectedAdvisoryHookRoles, u as getAdvisoryHookTemplate, V as VERIFIED_CLAUDE_HOOK_EVENTS, w as VERIFIED_CODEX_HOOK_EVENTS } from './projectContext-BtPm3MFR.js';
2
2
  import { lstat, readFile, readdir } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
 
5
+ //#region ../../packages/doctor/src/mcpSuggestions.ts
6
+ var BASELINE_KNOWN_AS_OF = "2026-07-04";
7
+ var KNOWLEDGE_BASELINES = [
8
+ baseline("react", "19.2.7"),
9
+ baseline("react-dom", "19.2.7"),
10
+ baseline("next", "16.2.10"),
11
+ baseline("vue", "3.5.39"),
12
+ baseline("@angular/core", "22.0.5"),
13
+ baseline("svelte", "5.56.4"),
14
+ baseline("typescript", "6.0.3"),
15
+ baseline("vite", "8.1.3"),
16
+ baseline("express", "5.2.1")
17
+ ];
18
+ function baseline(packageName, knownVersion) {
19
+ return {
20
+ packageName,
21
+ ecosystem: "npm",
22
+ knownVersion,
23
+ knownAsOf: BASELINE_KNOWN_AS_OF,
24
+ candidateIds: ["docs-current-frameworks"],
25
+ riskCode: "new_framework_version"
26
+ };
27
+ }
28
+ var EXACT_STABLE_SEMVER = /^(\d+)\.(\d+)\.(\d+)$/u;
29
+ var PRERELEASE_OR_BUILD = /^\d+\.\d+\.\d+[-+]/u;
30
+ var PARTIAL_VERSION = /^\d+(?:\.\d+)?(?:\.(?:x|\*))?$/u;
31
+ var URL_LIKE_PREFIX = /^(?:git\+|git:|github:|file:|link:|portal:|npm:|https?:)/u;
32
+ function evaluateDependencyVersion(detected, knownVersion) {
33
+ const value = detected.trim();
34
+ if (value.startsWith("workspace:")) return {
35
+ kind: "not-comparable",
36
+ reason: "workspace-alias"
37
+ };
38
+ if (URL_LIKE_PREFIX.test(value) || value.includes("://")) return {
39
+ kind: "not-comparable",
40
+ reason: "git-or-url"
41
+ };
42
+ const exact = EXACT_STABLE_SEMVER.exec(value);
43
+ if (exact) {
44
+ const detectedParts = toVersionParts(exact);
45
+ const knownExact = EXACT_STABLE_SEMVER.exec(knownVersion);
46
+ if (!knownExact) return {
47
+ kind: "not-comparable",
48
+ reason: "non-semver"
49
+ };
50
+ return compareVersionParts(detectedParts, toVersionParts(knownExact)) > 0 ? {
51
+ kind: "newer",
52
+ detectedVersion: detectedParts.join(".")
53
+ } : { kind: "not-newer" };
54
+ }
55
+ if (PRERELEASE_OR_BUILD.test(value)) return {
56
+ kind: "not-comparable",
57
+ reason: "prerelease"
58
+ };
59
+ if (isRangeDeclaration(value)) return {
60
+ kind: "not-comparable",
61
+ reason: "range"
62
+ };
63
+ return {
64
+ kind: "not-comparable",
65
+ reason: "non-semver"
66
+ };
67
+ }
68
+ function isRangeDeclaration(value) {
69
+ if (value === "*" || value === "x" || value === "latest") return true;
70
+ if (/^[\^~><=]/u.test(value) || value.includes("||")) return true;
71
+ return PARTIAL_VERSION.test(value);
72
+ }
73
+ function toVersionParts(match) {
74
+ return [
75
+ Number(match[1]),
76
+ Number(match[2]),
77
+ Number(match[3])
78
+ ];
79
+ }
80
+ function compareVersionParts(left, right) {
81
+ for (let index = 0; index < 3; index += 1) {
82
+ const difference = (left[index] ?? 0) - (right[index] ?? 0);
83
+ if (difference !== 0) return difference;
84
+ }
85
+ return 0;
86
+ }
87
+ var DEPENDENCY_SECTIONS = ["dependencies", "devDependencies"];
88
+ async function scanMcpSuggestions(rootDir) {
89
+ const manifest = await readPackageManifest(rootDir);
90
+ if (!manifest) return [];
91
+ const issues = [];
92
+ const baselinesByName = new Map(KNOWLEDGE_BASELINES.filter((entry) => entry.ecosystem === "npm").map((entry) => [entry.packageName, entry]));
93
+ for (const section of DEPENDENCY_SECTIONS) {
94
+ const declarations = getStringRecord(manifest[section]);
95
+ for (const packageName of Object.keys(declarations).sort()) {
96
+ const matched = baselinesByName.get(packageName);
97
+ if (!matched) continue;
98
+ const evaluation = evaluateDependencyVersion(declarations[packageName] ?? "", matched.knownVersion);
99
+ const issuePath = `package.json/${section}/${packageName}`;
100
+ if (evaluation.kind === "newer") issues.push({
101
+ code: "MCP-SUGGEST-NEW-FRAMEWORK",
102
+ severity: "info",
103
+ path: issuePath,
104
+ expected: `baseline ${matched.knownVersion} or older (as of ${matched.knownAsOf})`,
105
+ actual: evaluation.detectedVersion,
106
+ message: `${packageName} ${evaluation.detectedVersion} is newer than APC's pinned baseline ${matched.knownVersion} (as of ${matched.knownAsOf}); current docs may help.`,
107
+ guidance: `Consider curated MCP candidate ids: ${matched.candidateIds.join(", ")}. APC recommends only; install and configuration are deferred to the user.`
108
+ });
109
+ else if (evaluation.kind === "not-comparable") issues.push({
110
+ code: "MCP-SUGGEST-UNCOMPARABLE",
111
+ severity: "info",
112
+ path: issuePath,
113
+ expected: "exact stable semver version",
114
+ actual: evaluation.reason,
115
+ message: `${packageName} version declaration is not comparable (${evaluation.reason}); no staleness claim is made.`,
116
+ guidance: "Pin an exact stable version to enable baseline comparison; APC makes no staleness claim for non-comparable declarations."
117
+ });
118
+ }
119
+ }
120
+ return issues;
121
+ }
122
+ async function readPackageManifest(rootDir) {
123
+ let text;
124
+ try {
125
+ text = await readFile(path.join(rootDir, "package.json"), "utf8");
126
+ } catch {
127
+ return;
128
+ }
129
+ try {
130
+ const parsed = JSON.parse(text);
131
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) return parsed;
132
+ } catch {}
133
+ }
134
+ function getStringRecord(value) {
135
+ if (typeof value !== "object" || value === null || Array.isArray(value)) return {};
136
+ const result = {};
137
+ for (const [key, entry] of Object.entries(value)) if (typeof entry === "string") result[key] = entry;
138
+ return result;
139
+ }
140
+ //#endregion
5
141
  //#region ../../packages/doctor/src/doctor.ts
6
142
  var PROFILE_PATH = "ai-profile.yaml";
7
143
  var LOCKFILE_PATH = "ai-profile.lock";
@@ -14,6 +150,7 @@ var SEVERITY_ORDER = {
14
150
  async function runDoctor(request = {}) {
15
151
  const rootDir = path.resolve(request.rootDir ?? ".");
16
152
  const issues = [];
153
+ if (request.mcpSuggestions) issues.push(...await scanMcpSuggestions(rootDir));
17
154
  const profileBytes = await readKnownFile(rootDir, PROFILE_PATH);
18
155
  if (!profileBytes.ok) {
19
156
  issues.push(issue("LINT-STRUCT-001", "error", PROFILE_PATH, "readable profile file", "missing", "ai-profile.yaml was not found.", "Create ai-profile.yaml at the repository root before running doctor."));
@@ -24,6 +161,7 @@ async function runDoctor(request = {}) {
24
161
  for (const profileIssue of profileResult.issues) issues.push(issue("LINT-STRUCT-002", "error", profileIssue.path, profileIssue.expected, profileIssue.actual, profileIssue.message, "Fix ai-profile.yaml before running compiler or doctor checks."));
25
162
  return toResult(issues);
26
163
  }
164
+ checkUnknownLanguageFallback(profileResult.profile, issues);
27
165
  const compileResult = compileProfile({ profile: profileResult.profile });
28
166
  if (!compileResult.ok) {
29
167
  for (const compileIssue of compileResult.issues) issues.push(issue("LINT-STRUCT-002", "error", compileIssue.path, compileIssue.expected, compileIssue.actual, compileIssue.message, "Fix ai-profile.yaml client and target settings before running doctor."));
@@ -32,6 +170,8 @@ async function runDoctor(request = {}) {
32
170
  await checkGeneratedArtifactsExist(rootDir, compileResult.files, issues);
33
171
  await checkGeneratedArtifactSecurity(rootDir, compileResult.files, issues);
34
172
  await checkSkillFiles(rootDir, issues);
173
+ await checkSkillPackArtifacts(rootDir, compileResult.files, issues);
174
+ await checkLoopSkillStructure(rootDir, compileResult.files, issues);
35
175
  await checkSemanticWarnings(rootDir, compileResult.files, issues);
36
176
  await checkGitignoreSecretHygiene(rootDir, issues);
37
177
  const lockfile = await readAndValidateLockfile(rootDir, issues);
@@ -56,8 +196,177 @@ async function runDoctor(request = {}) {
56
196
  });
57
197
  await checkLocalRuntimeGitignore(rootDir, issues);
58
198
  await checkForeignSkillAndSubagentCollisions(rootDir, compileResult.files, lockfileV2, issues);
199
+ await checkAdvisoryHookArtifacts(rootDir, profileResult.profile, issues);
200
+ await checkRuntimeArtifactStructure(rootDir, issues);
59
201
  return toResult(issues);
60
202
  }
203
+ var LEDGER_STATES = /* @__PURE__ */ new Set([
204
+ "ready",
205
+ "blocked",
206
+ "sequenced",
207
+ "parallel-safe",
208
+ "human-gate",
209
+ "in-progress",
210
+ "done"
211
+ ]);
212
+ async function checkRuntimeArtifactStructure(rootDir, issues) {
213
+ await checkTaskLedgerStructure(rootDir, issues);
214
+ await checkContextGlossaryStructure(rootDir, issues);
215
+ }
216
+ async function checkTaskLedgerStructure(rootDir, issues) {
217
+ const file = await readKnownFile(rootDir, "TASKS.md");
218
+ if (!file.ok) return;
219
+ const lines = decodeUtf8(file.bytes).split("\n");
220
+ let inTableBody = false;
221
+ for (const line of lines) {
222
+ const trimmed = line.trim();
223
+ if (!trimmed.startsWith("|")) {
224
+ inTableBody = false;
225
+ continue;
226
+ }
227
+ if (isTableSeparatorRow(trimmed)) {
228
+ inTableBody = true;
229
+ continue;
230
+ }
231
+ if (!inTableBody) continue;
232
+ const hasKnownState = tableCells(trimmed).some((cell) => LEDGER_STATES.has(firstToken(cell.replace(/`/gu, ""))));
233
+ const hasBriefLink = /\[[^\]]+\]\([^)]+\)/u.test(trimmed);
234
+ if (!hasKnownState) issues.push(issue("LINT-LEDGER-001", "info", "TASKS.md", "ledger row state in the closed set `ready | blocked | sequenced | parallel-safe | human-gate | in-progress | done`", `unrecognized state in row: ${trimmed}`, "A TASKS.md ledger row uses a state outside the closed set.", "APC does not own TASKS.md; if this is a task row, set its state to a known value."));
235
+ if (!hasBriefLink) issues.push(issue("LINT-LEDGER-002", "info", "TASKS.md", "each ledger row links to an issue brief", `no brief link in row: ${trimmed}`, "A TASKS.md ledger row does not link to an issue brief.", "APC does not own TASKS.md; if this is a task row, add a markdown link to its brief."));
236
+ }
237
+ }
238
+ async function checkContextGlossaryStructure(rootDir, issues) {
239
+ const file = await readKnownFile(rootDir, "CONTEXT.md");
240
+ if (!file.ok) return;
241
+ const marker = findNonGlossaryMarker(decodeUtf8(file.bytes));
242
+ if (marker === void 0) return;
243
+ issues.push(issue("LINT-CONTEXT-001", "info", "CONTEXT.md", "glossary-only content (term definitions and `Avoid:` lines)", marker, "CONTEXT.md appears to contain non-glossary content; it is meant to be a glossary only.", "APC does not own CONTEXT.md; move implementation details or decisions out of the glossary."));
244
+ }
245
+ function findNonGlossaryMarker(text) {
246
+ if (/^```/mu.test(text)) return "fenced code block";
247
+ const heading = text.split("\n").map((line) => line.trim()).find((line) => /^#{1,6}\s+(decision|implementation|architecture|rationale|adr|design)\b/iu.test(line));
248
+ return heading === void 0 ? void 0 : `non-glossary heading: ${heading}`;
249
+ }
250
+ function isTableSeparatorRow(row) {
251
+ return /^\|?[\s:|-]+\|?$/u.test(row) && row.includes("-");
252
+ }
253
+ function tableCells(row) {
254
+ return row.replace(/^\|/u, "").replace(/\|$/u, "").split("|").map((cell) => cell.trim());
255
+ }
256
+ function firstToken(value) {
257
+ return value.trim().split(/\s+/u)[0] ?? "";
258
+ }
259
+ var VERIFIED_CLAUDE_HOOK_EVENT_SET = new Set(VERIFIED_CLAUDE_HOOK_EVENTS);
260
+ var VERIFIED_CODEX_HOOK_EVENT_SET = new Set(VERIFIED_CODEX_HOOK_EVENTS);
261
+ async function checkAdvisoryHookArtifacts(rootDir, profile, issues) {
262
+ const selectedRoles = getSelectedAdvisoryHookRoles(profile);
263
+ if (profile.clients.claude.enabled) await checkHooksArtifact({
264
+ rootDir,
265
+ issues,
266
+ path: ".claude/settings.json",
267
+ selectedRoles,
268
+ verifiedEvents: VERIFIED_CLAUDE_HOOK_EVENT_SET,
269
+ target: "claude",
270
+ extractHooks: (parsed) => isJsonRecord(parsed) && isJsonRecord(parsed["hooks"]) ? parsed["hooks"] : void 0,
271
+ toPinnedHandler: (template) => ({
272
+ type: "command",
273
+ command: template.claudeCommand
274
+ })
275
+ });
276
+ if (profile.clients.codex.enabled) {
277
+ await checkCodexConfigHookSurface(rootDir, issues);
278
+ if (selectedRoles.length > 0) await checkHooksArtifact({
279
+ rootDir,
280
+ issues,
281
+ path: ".codex/hooks.json",
282
+ selectedRoles,
283
+ verifiedEvents: VERIFIED_CODEX_HOOK_EVENT_SET,
284
+ target: "codex",
285
+ extractHooks: (parsed) => isJsonRecord(parsed) && isJsonRecord(parsed["hooks"]) ? parsed["hooks"] : void 0,
286
+ toPinnedHandler: (template) => ({
287
+ type: "command",
288
+ command: template.codexCommand,
289
+ commandWindows: template.codexCommandWindows
290
+ })
291
+ });
292
+ }
293
+ }
294
+ async function checkHooksArtifact(input) {
295
+ const file = await readKnownFile(input.rootDir, input.path);
296
+ if (!file.ok) return;
297
+ let parsed;
298
+ try {
299
+ parsed = JSON.parse(decodeUtf8(file.bytes));
300
+ } catch {
301
+ return;
302
+ }
303
+ const hooks = input.extractHooks(parsed);
304
+ if (!hooks) return;
305
+ const pinnedByEvent = /* @__PURE__ */ new Map();
306
+ for (const role of input.selectedRoles) {
307
+ const template = getAdvisoryHookTemplate(role);
308
+ for (const event of template.events) {
309
+ const handlers = pinnedByEvent.get(event) ?? [];
310
+ handlers.push(input.toPinnedHandler(template));
311
+ pinnedByEvent.set(event, handlers);
312
+ }
313
+ }
314
+ for (const [event, entries] of Object.entries(hooks)) {
315
+ if (!input.verifiedEvents.has(event)) input.issues.push(issue("LINT-HOOK-003", "error", input.path, `hook event from the verified ${input.target} event list`, event, `${input.path} declares a hook for unverified event ${event}.`, "Remove the unverified hook event; new events require re-verified official docs and an approved spec."));
316
+ const pinned = pinnedByEvent.get(event) ?? [];
317
+ for (const violation of collectNonPinnedHookHandlers(entries, pinned)) input.issues.push(issue("LINT-HOOK-008", "error", input.path, "pinned advisory hook command for a selected role", violation, `${input.path} contains a hook entry for ${event} that does not match the pinned advisory template.`, `Regenerate ${input.path} from ai-profile.yaml; slice 1 emits only pinned advisory commands for selected roles.`));
318
+ }
319
+ }
320
+ function collectNonPinnedHookHandlers(entries, pinnedHandlers) {
321
+ if (!Array.isArray(entries)) return ["non-array hook event value"];
322
+ const violations = [];
323
+ for (const entry of entries) {
324
+ if (!isJsonRecord(entry) || !Array.isArray(entry["hooks"])) {
325
+ violations.push("malformed hook entry");
326
+ continue;
327
+ }
328
+ for (const item of entry["hooks"]) if (!(isJsonRecord(item) && pinnedHandlers.some((handler) => handlerEquals(item, handler)))) violations.push(isJsonRecord(item) && typeof item["command"] === "string" ? "non-pinned hook command" : "malformed hook entry");
329
+ }
330
+ return violations;
331
+ }
332
+ function handlerEquals(item, pinned) {
333
+ const pinnedKeys = Object.keys(pinned);
334
+ return Object.keys(item).length === pinnedKeys.length && pinnedKeys.every((key) => item[key] === pinned[key]);
335
+ }
336
+ async function checkCodexConfigHookSurface(rootDir, issues) {
337
+ const file = await readKnownFile(rootDir, ".codex/config.toml");
338
+ if (!file.ok) return;
339
+ if (codexConfigDeclaresInlineHooks(decodeUtf8(file.bytes))) issues.push(issue("LINT-HOOK-005", "error", ".codex/config.toml", "no hook surface outside the generated .codex/hooks.json", "inline hooks section present", ".codex/config.toml contains an inline hooks surface; APC generates Codex hooks only in .codex/hooks.json.", "Remove the inline hooks table from the generated config.toml; declare hook intent through capabilities.hooks instead."));
340
+ }
341
+ /**
342
+ * Detect an inline hook surface in config.toml: a `[hooks]` / `[hooks.*]` /
343
+ * `[[hooks.*]]` table header, or a root-level `hooks` key. A `hooks` key
344
+ * inside another table (for example the documented `[features]`
345
+ * `hooks = false` feature flag) is not a hook definition and must not be
346
+ * flagged.
347
+ */
348
+ function codexConfigDeclaresInlineHooks(text) {
349
+ let inRootTable = true;
350
+ for (const rawLine of text.split(/\r?\n/u)) {
351
+ const line = rawLine.trim();
352
+ const header = /^\[\[?\s*([^\]\s]+)\s*\]?\]/u.exec(line);
353
+ if (header) {
354
+ const tablePath = header[1] ?? "";
355
+ if (tablePath === "hooks" || tablePath.startsWith("hooks.")) return true;
356
+ inRootTable = false;
357
+ continue;
358
+ }
359
+ if (inRootTable && /^hooks\s*[.=]/u.test(line)) return true;
360
+ }
361
+ return false;
362
+ }
363
+ function isJsonRecord(value) {
364
+ return typeof value === "object" && value !== null && !Array.isArray(value);
365
+ }
366
+ function checkUnknownLanguageFallback(profile, issues) {
367
+ if (!profile.stack.languages.includes("unknown")) return;
368
+ issues.push(issue("LINT-SEM-003", "warning", "/stack/languages", "known language slugs", "unknown", "stack.languages contains the temporary unknown fallback.", "Replace unknown with the real language slug when it is known."));
369
+ }
61
370
  async function checkGeneratedArtifactsExist(rootDir, files, issues) {
62
371
  for (const file of files) if (!(await readKnownFile(rootDir, file.path)).ok) issues.push(issue("LINT-STRUCT-003", "error", file.path, `generated artifact for ${file.target}`, "missing", `${file.path} is missing for enabled target ${file.target}.`, "Run the compiler after reviewing enabled targets."));
63
372
  }
@@ -94,6 +403,70 @@ async function checkSkillFiles(rootDir, issues) {
94
403
  if (duplicatesGenericProjectFacts(text)) issues.push(issue("LINT-SKILL-003", "warning", skillPath, "task-specific skill content", "generic project facts duplicated", `${skillPath} appears to duplicate generic project facts.`, "Keep stack and project facts in generated project instructions rather than every skill."));
95
404
  }
96
405
  }
406
+ async function checkSkillPackArtifacts(rootDir, generatedFiles, issues) {
407
+ const expectedPaths = new Set(generatedFiles.filter((file) => file.target === "codex-workflow-skills" || file.target === "claude-workflow-skills").map((file) => file.path));
408
+ const actualPaths = await collectSkillFiles(rootDir);
409
+ for (const skillPath of actualPaths) {
410
+ const file = await readKnownFile(rootDir, skillPath);
411
+ if (!file.ok) continue;
412
+ const text = decodeUtf8(file.bytes);
413
+ if (text.includes(GENERATED_HEADER_MARKER) && !expectedPaths.has(skillPath)) issues.push(issue("LINT-SKILL-PACK-001", "warning", skillPath, "skill accounted for by selected packs or workflow flags", "orphan generated skill", `${skillPath} carries the generated-file header but is not selected by the current profile.`, "Remove the orphan generated skill or restore the matching pack or workflow intent."));
414
+ if (!expectedPaths.has(skillPath)) continue;
415
+ const root = SKILL_ROOTS.find((candidate) => skillPath.startsWith(`${candidate}/`));
416
+ if (root === void 0) continue;
417
+ for (const match of text.matchAll(/\brun\s+`([a-z0-9][a-z0-9-]*)`/gu)) {
418
+ const referencedSkill = match[1];
419
+ if (referencedSkill === void 0) continue;
420
+ const referencedPath = `${root}/${referencedSkill}/SKILL.md`;
421
+ if (!expectedPaths.has(referencedPath)) issues.push(issue("LINT-SKILL-REF-001", "error", skillPath, "references only to skills generated for this target", `dangling skill reference ${referencedSkill}`, `${skillPath} references a skill that is not generated for the same target.`, "Select the pack that provides the referenced skill or remove the dangling reference."));
422
+ }
423
+ }
424
+ for (const expectedPath of expectedPaths) if (!(await readKnownFile(rootDir, expectedPath)).ok) issues.push(issue("LINT-SKILL-PACK-002", "error", expectedPath, "skill generated by selected packs or workflow flags", "missing", `${expectedPath} is selected by the current profile but missing from disk.`, "Regenerate project artifacts after reviewing the selected skill packs."));
425
+ }
426
+ var REQUIRED_LOOP_SECTIONS = [
427
+ "Max Iterations",
428
+ "Stop Conditions",
429
+ "Approval Gate"
430
+ ];
431
+ function loopSkillNameFromPath(skillPath) {
432
+ return skillPath.match(/^(?:\.agents|\.claude)\/skills\/([a-z0-9][a-z0-9-]*)\/SKILL\.md$/u)?.[1];
433
+ }
434
+ function extractMarkdownSection(text, heading) {
435
+ const lines = text.split("\n");
436
+ const headingLine = `## ${heading}`;
437
+ const start = lines.findIndex((line) => line.trim() === headingLine);
438
+ if (start === -1) return void 0;
439
+ const body = [];
440
+ for (let index = start + 1; index < lines.length; index += 1) {
441
+ const line = lines[index] ?? "";
442
+ if (/^#{1,6}\s/u.test(line)) break;
443
+ body.push(line);
444
+ }
445
+ return body.join("\n").trim();
446
+ }
447
+ async function checkLoopSkillStructure(rootDir, generatedFiles, issues) {
448
+ const loopPaths = generatedFiles.filter((file) => file.target === "codex-workflow-skills" || file.target === "claude-workflow-skills").map((file) => file.path).filter((skillPath) => {
449
+ const name = loopSkillNameFromPath(skillPath);
450
+ return name !== void 0 && isLoopSkillId(name);
451
+ });
452
+ for (const skillPath of loopPaths) {
453
+ const file = await readKnownFile(rootDir, skillPath);
454
+ if (!file.ok) continue;
455
+ const text = decodeUtf8(file.bytes);
456
+ for (const heading of REQUIRED_LOOP_SECTIONS) {
457
+ const body = extractMarkdownSection(text, heading);
458
+ if (body === void 0) {
459
+ issues.push(issue("LINT-SKILL-LOOP-001", "error", skillPath, `## ${heading} section present`, "missing", `${skillPath} is a loop skill but is missing the "## ${heading}" section.`, "Regenerate the automation loop skills; every loop skill must contain the Max Iterations, Stop Conditions, and Approval Gate sections."));
460
+ continue;
461
+ }
462
+ if (body === "") {
463
+ issues.push(issue("LINT-SKILL-LOOP-001", "error", skillPath, `non-empty "## ${heading}" section`, "empty", `${skillPath} has an empty "## ${heading}" section.`, "Regenerate the automation loop skills so each required section has content."));
464
+ continue;
465
+ }
466
+ if (heading === "Max Iterations" && !/\d/u.test(body)) issues.push(issue("LINT-SKILL-LOOP-001", "error", skillPath, "hard-coded integer iteration bound", "no integer bound", `${skillPath} does not state a hard-coded integer iteration bound in "## Max Iterations".`, "Regenerate the automation loop skills so the iteration bound is a hard-coded integer."));
467
+ }
468
+ }
469
+ }
97
470
  async function checkSemanticWarnings(rootDir, files, issues) {
98
471
  for (const file of files) {
99
472
  const current = await readKnownFile(rootDir, file.path);
@@ -288,7 +661,7 @@ function mergeRecords(left, right) {
288
661
  const result = { ...left };
289
662
  for (const [key, value] of Object.entries(right)) {
290
663
  const previous = result[key];
291
- if (Array.isArray(previous) && Array.isArray(value)) result[key] = Array.from(new Set([...previous, ...value]));
664
+ if (Array.isArray(previous) && Array.isArray(value)) result[key] = Array.from(/* @__PURE__ */ new Set([...previous, ...value]));
292
665
  else if (getRecord(previous) && getRecord(value)) result[key] = mergeRecords(previous, value);
293
666
  else result[key] = value;
294
667
  }
@@ -433,7 +806,7 @@ var SUBAGENT_ROOTS = [
433
806
  ".tabnine/agent/agents"
434
807
  ];
435
808
  var GENERATED_HEADER_MARKER = "Generated by Agent Profile Compiler";
436
- var TABNINE_UNSAFE_TOOL_NAMES = new Set([
809
+ var TABNINE_UNSAFE_TOOL_NAMES = /* @__PURE__ */ new Set([
437
810
  "run_shell_command",
438
811
  "write_file",
439
812
  "browser_agent",
@@ -443,7 +816,7 @@ var TABNINE_UNSAFE_TOOL_NAMES = new Set([
443
816
  "http_request",
444
817
  "network"
445
818
  ]);
446
- var CLAUDE_WRITE_TOOLS = new Set([
819
+ var CLAUDE_WRITE_TOOLS = /* @__PURE__ */ new Set([
447
820
  "Edit",
448
821
  "Write",
449
822
  "NotebookEdit"
@@ -468,7 +841,7 @@ async function checkSubagentArtifacts(input) {
468
841
  if (isGenerated && !generatedSubagentPaths.has(relativePath) && !lockfileSubagentPaths.has(relativePath)) issues.push(issue("LINT-SUBAGENT-006", "warning", relativePath, "claimed by current compile output or lockfile", "orphan generated subagent", `${relativePath} carries the generated-file header but is not produced by the current profile and not recorded in ai-profile.lock.`, "Remove the orphan generated subagent file or restore the matching profile intent."));
469
842
  }
470
843
  }
471
- if (profile.clients.tabnine.enabled && enabled.some((agent) => agent.toolScope === "read-only")) issues.push(issue("LINT-SUBAGENT-008", "info", ".tabnine/agent/settings.json", "experimental.enableAgents verifiable", "not verifiable", "Tabnine experimental.enableAgents cannot be verified because Agent Profile Compiler does not write .tabnine/agent/settings.json.", "Manually enable experimental.enableAgents in .tabnine/agent/settings.json to use the generated Tabnine subagent files."));
844
+ if (profile.clients.tabnine.enabled && Array.from(generatedSubagentPaths).some((subagentPath) => subagentPath.startsWith(".tabnine/agent/agents/"))) issues.push(issue("LINT-SUBAGENT-008", "info", ".tabnine/agent/settings.json", "experimental.enableAgents verifiable", "not verifiable", "Tabnine experimental.enableAgents cannot be verified because Agent Profile Compiler does not write .tabnine/agent/settings.json.", "Manually enable experimental.enableAgents in .tabnine/agent/settings.json to use the generated Tabnine subagent files."));
472
845
  }
473
846
  function checkCodexSubagentFile(relativePath, text, effective, issues) {
474
847
  const sandboxMode = /^\s*sandbox_mode\s*=\s*"([^"]+)"/mu.exec(text)?.[1];
@@ -866,4 +1239,4 @@ function parseSkillOrSubagentName(text) {
866
1239
  }
867
1240
 
868
1241
  export { runDoctor as r };
869
- //# sourceMappingURL=src3-BXch_OaJ.js.map
1242
+ //# sourceMappingURL=src3-DeQh3O0_.js.map