@sentropic/h2a 0.85.25 → 0.86.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 (287) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/bin.js +51 -2
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli-command-map.d.ts +119 -0
  6. package/dist/cli-command-map.d.ts.map +1 -0
  7. package/dist/cli-command-map.js +396 -0
  8. package/dist/cli-command-map.js.map +1 -0
  9. package/dist/cli-contract.d.ts.map +1 -1
  10. package/dist/cli-contract.js +38 -0
  11. package/dist/cli-contract.js.map +1 -1
  12. package/dist/cli.d.ts +25 -1
  13. package/dist/cli.d.ts.map +1 -1
  14. package/dist/cli.js +356 -7
  15. package/dist/cli.js.map +1 -1
  16. package/dist/identity.d.ts +37 -3
  17. package/dist/identity.d.ts.map +1 -1
  18. package/dist/identity.js +0 -0
  19. package/dist/identity.js.map +1 -1
  20. package/dist/index.d.ts +7 -2
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +9 -2
  23. package/dist/index.js.map +1 -1
  24. package/dist/runtime/enrollment/ceremony.d.ts +542 -0
  25. package/dist/runtime/enrollment/ceremony.d.ts.map +1 -0
  26. package/dist/runtime/enrollment/ceremony.js +777 -0
  27. package/dist/runtime/enrollment/ceremony.js.map +1 -0
  28. package/dist/runtime/enrollment/index.d.ts +16 -0
  29. package/dist/runtime/enrollment/index.d.ts.map +1 -0
  30. package/dist/runtime/enrollment/index.js +16 -0
  31. package/dist/runtime/enrollment/index.js.map +1 -0
  32. package/dist/runtime/feed/descriptors.d.ts +261 -0
  33. package/dist/runtime/feed/descriptors.d.ts.map +1 -0
  34. package/dist/runtime/feed/descriptors.js +425 -0
  35. package/dist/runtime/feed/descriptors.js.map +1 -0
  36. package/dist/runtime/feed/index.d.ts +12 -0
  37. package/dist/runtime/feed/index.d.ts.map +1 -0
  38. package/dist/runtime/feed/index.js +12 -0
  39. package/dist/runtime/feed/index.js.map +1 -0
  40. package/dist/runtime/identity/index.d.ts +3 -3
  41. package/dist/runtime/identity/index.d.ts.map +1 -1
  42. package/dist/runtime/identity/index.js +2 -2
  43. package/dist/runtime/identity/index.js.map +1 -1
  44. package/dist/runtime/identity/live.d.ts +68 -0
  45. package/dist/runtime/identity/live.d.ts.map +1 -1
  46. package/dist/runtime/identity/live.js +78 -2
  47. package/dist/runtime/identity/live.js.map +1 -1
  48. package/dist/runtime/identity/readers.d.ts +89 -5
  49. package/dist/runtime/identity/readers.d.ts.map +1 -1
  50. package/dist/runtime/identity/readers.js +242 -33
  51. package/dist/runtime/identity/readers.js.map +1 -1
  52. package/dist/runtime/local-files/presence.d.ts +16 -1
  53. package/dist/runtime/local-files/presence.d.ts.map +1 -1
  54. package/dist/runtime/local-files/presence.js +32 -20
  55. package/dist/runtime/local-files/presence.js.map +1 -1
  56. package/dist/runtime/loop/index.d.ts +5 -0
  57. package/dist/runtime/loop/index.d.ts.map +1 -1
  58. package/dist/runtime/loop/index.js +48 -5
  59. package/dist/runtime/loop/index.js.map +1 -1
  60. package/dist/runtime/mcp/agent-launch.d.ts +15 -1
  61. package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
  62. package/dist/runtime/mcp/agent-launch.js +45 -4
  63. package/dist/runtime/mcp/agent-launch.js.map +1 -1
  64. package/dist/runtime/mcp/index.d.ts +1 -1
  65. package/dist/runtime/mcp/index.d.ts.map +1 -1
  66. package/dist/runtime/mcp/index.js +1 -1
  67. package/dist/runtime/mcp/index.js.map +1 -1
  68. package/dist/runtime/mcp/server.d.ts +3 -1
  69. package/dist/runtime/mcp/server.d.ts.map +1 -1
  70. package/dist/runtime/mcp/server.js +7 -2
  71. package/dist/runtime/mcp/server.js.map +1 -1
  72. package/dist/runtime/mcp/sessions.d.ts +19 -0
  73. package/dist/runtime/mcp/sessions.d.ts.map +1 -1
  74. package/dist/runtime/mcp/sessions.js +44 -2
  75. package/dist/runtime/mcp/sessions.js.map +1 -1
  76. package/dist/runtime/mcp/stdio.d.ts +8 -0
  77. package/dist/runtime/mcp/stdio.d.ts.map +1 -1
  78. package/dist/runtime/mcp/stdio.js +42 -0
  79. package/dist/runtime/mcp/stdio.js.map +1 -1
  80. package/dist/runtime/mcp-registry/broker.d.ts +175 -0
  81. package/dist/runtime/mcp-registry/broker.d.ts.map +1 -0
  82. package/dist/runtime/mcp-registry/broker.js +203 -0
  83. package/dist/runtime/mcp-registry/broker.js.map +1 -0
  84. package/dist/runtime/mcp-registry/broker.typecheck.d.ts +2 -0
  85. package/dist/runtime/mcp-registry/broker.typecheck.d.ts.map +1 -0
  86. package/dist/runtime/mcp-registry/broker.typecheck.js +48 -0
  87. package/dist/runtime/mcp-registry/broker.typecheck.js.map +1 -0
  88. package/dist/runtime/mirror/accept.d.ts +43 -5
  89. package/dist/runtime/mirror/accept.d.ts.map +1 -1
  90. package/dist/runtime/mirror/accept.js +55 -7
  91. package/dist/runtime/mirror/accept.js.map +1 -1
  92. package/dist/runtime/mirror/build.d.ts +23 -4
  93. package/dist/runtime/mirror/build.d.ts.map +1 -1
  94. package/dist/runtime/mirror/build.js +34 -4
  95. package/dist/runtime/mirror/build.js.map +1 -1
  96. package/dist/runtime/mirror/index.d.ts +3 -0
  97. package/dist/runtime/mirror/index.d.ts.map +1 -1
  98. package/dist/runtime/mirror/index.js +3 -0
  99. package/dist/runtime/mirror/index.js.map +1 -1
  100. package/dist/runtime/mirror/ingest.d.ts +109 -0
  101. package/dist/runtime/mirror/ingest.d.ts.map +1 -0
  102. package/dist/runtime/mirror/ingest.js +117 -0
  103. package/dist/runtime/mirror/ingest.js.map +1 -0
  104. package/dist/runtime/mirror/push-daemon.d.ts +376 -0
  105. package/dist/runtime/mirror/push-daemon.d.ts.map +1 -0
  106. package/dist/runtime/mirror/push-daemon.js +644 -0
  107. package/dist/runtime/mirror/push-daemon.js.map +1 -0
  108. package/dist/runtime/mirror/sanitize.d.ts +477 -0
  109. package/dist/runtime/mirror/sanitize.d.ts.map +1 -0
  110. package/dist/runtime/mirror/sanitize.js +625 -0
  111. package/dist/runtime/mirror/sanitize.js.map +1 -0
  112. package/dist/runtime/mirror/serve.d.ts.map +1 -1
  113. package/dist/runtime/mirror/serve.js +104 -24
  114. package/dist/runtime/mirror/serve.js.map +1 -1
  115. package/dist/runtime/reporting/report-ai.d.ts.map +1 -1
  116. package/dist/runtime/reporting/report-ai.js +1 -0
  117. package/dist/runtime/reporting/report-ai.js.map +1 -1
  118. package/dist/runtime/reporting/stdin.d.ts +2 -0
  119. package/dist/runtime/reporting/stdin.d.ts.map +1 -0
  120. package/dist/runtime/reporting/stdin.js +8 -0
  121. package/dist/runtime/reporting/stdin.js.map +1 -0
  122. package/dist/status-surface.d.ts +167 -0
  123. package/dist/status-surface.d.ts.map +1 -0
  124. package/dist/status-surface.js +670 -0
  125. package/dist/status-surface.js.map +1 -0
  126. package/dist/types.d.ts +17 -0
  127. package/dist/types.d.ts.map +1 -1
  128. package/dist/types.js +3 -0
  129. package/dist/types.js.map +1 -1
  130. package/focus-app/client/_app/immutable/assets/{0.BdzHFb9q.css → 0.CgEVz9YW.css} +1 -1
  131. package/focus-app/client/_app/immutable/assets/0.CgEVz9YW.css.br +0 -0
  132. package/focus-app/client/_app/immutable/assets/0.CgEVz9YW.css.gz +0 -0
  133. package/focus-app/client/_app/immutable/assets/2.DaTmt6o7.css +1 -0
  134. package/focus-app/client/_app/immutable/assets/2.DaTmt6o7.css.br +0 -0
  135. package/focus-app/client/_app/immutable/assets/2.DaTmt6o7.css.gz +0 -0
  136. package/focus-app/client/_app/immutable/assets/3.vWQUAHjz.css +1 -0
  137. package/focus-app/client/_app/immutable/assets/3.vWQUAHjz.css.br +0 -0
  138. package/focus-app/client/_app/immutable/assets/3.vWQUAHjz.css.gz +0 -0
  139. package/focus-app/client/_app/immutable/assets/AppShell.CDPwj3zU.css +1 -0
  140. package/focus-app/client/_app/immutable/assets/AppShell.CDPwj3zU.css.br +0 -0
  141. package/focus-app/client/_app/immutable/assets/AppShell.CDPwj3zU.css.gz +0 -0
  142. package/focus-app/client/_app/immutable/chunks/{Cj6wo28J.js → 1NK_OeRJ.js} +1 -1
  143. package/focus-app/client/_app/immutable/chunks/1NK_OeRJ.js.br +0 -0
  144. package/focus-app/client/_app/immutable/chunks/1NK_OeRJ.js.gz +0 -0
  145. package/focus-app/client/_app/immutable/chunks/{Bs3f1UbD.js → B1veta3r.js} +2 -2
  146. package/focus-app/client/_app/immutable/chunks/B1veta3r.js.br +0 -0
  147. package/focus-app/client/_app/immutable/chunks/B1veta3r.js.gz +0 -0
  148. package/focus-app/client/_app/immutable/chunks/{DEmooz0s.js → BZ4lcC0v.js} +1 -1
  149. package/focus-app/client/_app/immutable/chunks/BZ4lcC0v.js.br +0 -0
  150. package/focus-app/client/_app/immutable/chunks/BZ4lcC0v.js.gz +0 -0
  151. package/focus-app/client/_app/immutable/chunks/Bu7F9NOv.js +2 -0
  152. package/focus-app/client/_app/immutable/chunks/Bu7F9NOv.js.br +0 -0
  153. package/focus-app/client/_app/immutable/chunks/Bu7F9NOv.js.gz +0 -0
  154. package/focus-app/client/_app/immutable/chunks/C6KhNEX3.js +1 -0
  155. package/focus-app/client/_app/immutable/chunks/C6KhNEX3.js.br +0 -0
  156. package/focus-app/client/_app/immutable/chunks/C6KhNEX3.js.gz +0 -0
  157. package/focus-app/client/_app/immutable/chunks/DIljKPJN.js +1 -0
  158. package/focus-app/client/_app/immutable/chunks/DIljKPJN.js.br +0 -0
  159. package/focus-app/client/_app/immutable/chunks/DIljKPJN.js.gz +0 -0
  160. package/focus-app/client/_app/immutable/chunks/iXQate3J.js +2 -0
  161. package/focus-app/client/_app/immutable/chunks/iXQate3J.js.br +0 -0
  162. package/focus-app/client/_app/immutable/chunks/iXQate3J.js.gz +0 -0
  163. package/focus-app/client/_app/immutable/chunks/{ZxFklh9T.js → kCE9wz0g.js} +1 -1
  164. package/focus-app/client/_app/immutable/chunks/kCE9wz0g.js.br +0 -0
  165. package/focus-app/client/_app/immutable/chunks/kCE9wz0g.js.gz +0 -0
  166. package/focus-app/client/_app/immutable/chunks/x-hq5fDG.js +1 -0
  167. package/focus-app/client/_app/immutable/chunks/x-hq5fDG.js.br +0 -0
  168. package/focus-app/client/_app/immutable/chunks/x-hq5fDG.js.gz +0 -0
  169. package/focus-app/client/_app/immutable/entry/app.C1sDdCg5.js +2 -0
  170. package/focus-app/client/_app/immutable/entry/app.C1sDdCg5.js.br +0 -0
  171. package/focus-app/client/_app/immutable/entry/app.C1sDdCg5.js.gz +0 -0
  172. package/focus-app/client/_app/immutable/entry/start.X3j_A5RN.js +1 -0
  173. package/focus-app/client/_app/immutable/entry/start.X3j_A5RN.js.br +2 -0
  174. package/focus-app/client/_app/immutable/entry/start.X3j_A5RN.js.gz +0 -0
  175. package/focus-app/client/_app/immutable/nodes/0.gLl44WzG.js +5 -0
  176. package/focus-app/client/_app/immutable/nodes/0.gLl44WzG.js.br +0 -0
  177. package/focus-app/client/_app/immutable/nodes/0.gLl44WzG.js.gz +0 -0
  178. package/focus-app/client/_app/immutable/nodes/1.DUrghq2x.js +1 -0
  179. package/focus-app/client/_app/immutable/nodes/1.DUrghq2x.js.br +0 -0
  180. package/focus-app/client/_app/immutable/nodes/1.DUrghq2x.js.gz +0 -0
  181. package/focus-app/client/_app/immutable/nodes/2.Bp7JE7Pz.js +1 -0
  182. package/focus-app/client/_app/immutable/nodes/2.Bp7JE7Pz.js.br +0 -0
  183. package/focus-app/client/_app/immutable/nodes/2.Bp7JE7Pz.js.gz +0 -0
  184. package/focus-app/client/_app/immutable/nodes/3.Cml8enOG.js +12 -0
  185. package/focus-app/client/_app/immutable/nodes/3.Cml8enOG.js.br +0 -0
  186. package/focus-app/client/_app/immutable/nodes/3.Cml8enOG.js.gz +0 -0
  187. package/focus-app/client/_app/version.json +1 -1
  188. package/focus-app/client/_app/version.json.br +0 -0
  189. package/focus-app/client/_app/version.json.gz +0 -0
  190. package/focus-app/h2a-focus.json +108 -80
  191. package/focus-app/handler.js +7 -7
  192. package/focus-app/index.js +7 -7
  193. package/focus-app/server/chunks/chunks/AppShell.js-6Pi87dO0.js +1353 -0
  194. package/focus-app/server/chunks/chunks/AppShell.js-6Pi87dO0.js.map +1 -0
  195. package/focus-app/server/chunks/chunks/agent-memory-dossier.js-nmFG_rgx.js +1036 -0
  196. package/focus-app/server/chunks/chunks/agent-memory-dossier.js-nmFG_rgx.js.map +1 -0
  197. package/focus-app/server/chunks/chunks/{exports.js-DUTkELZq.js → exports.js-CdqPbjm1.js} +3 -3
  198. package/focus-app/server/chunks/chunks/{exports.js-DUTkELZq.js.map → exports.js-CdqPbjm1.js.map} +1 -1
  199. package/focus-app/server/chunks/chunks/h2a-bus.js-bLEJ_Adi.js +233 -0
  200. package/focus-app/server/chunks/chunks/h2a-bus.js-bLEJ_Adi.js.map +1 -0
  201. package/focus-app/server/chunks/chunks/{index.js-Di21TltP.js → index.js-laGHLarB.js} +5 -2
  202. package/focus-app/server/chunks/chunks/index.js-laGHLarB.js.map +1 -0
  203. package/focus-app/server/chunks/chunks/{internal.js-33vbd70h.js → internal.js-C6T8nHkl.js} +4 -4
  204. package/focus-app/server/chunks/chunks/{internal.js-33vbd70h.js.map → internal.js-C6T8nHkl.js.map} +1 -1
  205. package/focus-app/server/chunks/chunks/{root.js-DO1m-gJA.js → root.js-CtVQOgDw.js} +2 -2
  206. package/focus-app/server/chunks/chunks/{root.js-DO1m-gJA.js.map → root.js-CtVQOgDw.js.map} +1 -1
  207. package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/{_server.ts.js-j0NNcOSZ.js → _server.ts.js-hrbMnsV0.js} +13 -42
  208. package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/_server.ts.js-hrbMnsV0.js.map +1 -0
  209. package/focus-app/server/chunks/entries/endpoints/api/dossiers/agent-memory/include/_server.ts.js-Dw4odGdV.js +138 -0
  210. package/focus-app/server/chunks/entries/endpoints/api/dossiers/agent-memory/include/_server.ts.js-Dw4odGdV.js.map +1 -0
  211. package/focus-app/server/chunks/entries/endpoints/api/h2a/targets/_server.ts.js-BLjYv7vg.js +41 -0
  212. package/focus-app/server/chunks/entries/endpoints/api/h2a/targets/_server.ts.js-BLjYv7vg.js.map +1 -0
  213. package/focus-app/server/chunks/entries/fallbacks/{error.svelte.js-Dj3sETSX.js → error.svelte.js-RbeaNF5a.js} +4 -4
  214. package/focus-app/server/chunks/entries/fallbacks/{error.svelte.js-Dj3sETSX.js.map → error.svelte.js-RbeaNF5a.js.map} +1 -1
  215. package/focus-app/server/chunks/entries/pages/{_layout.svelte.js-BoLsbuC2.js → _layout.svelte.js-e1E_I04z.js} +2 -2
  216. package/focus-app/server/chunks/entries/pages/{_layout.svelte.js-BoLsbuC2.js.map → _layout.svelte.js-e1E_I04z.js.map} +1 -1
  217. package/focus-app/server/chunks/entries/pages/{_page.svelte.js-QDldMYhk.js → _page.svelte.js-DbaEG23x.js} +31 -1373
  218. package/focus-app/server/chunks/entries/pages/_page.svelte.js-DbaEG23x.js.map +1 -0
  219. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/_page.server.ts.js-CFC-wn6U.js +88 -0
  220. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/_page.server.ts.js-CFC-wn6U.js.map +1 -0
  221. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/_page.svelte.js-BpR26NMa.js +1574 -0
  222. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/_page.svelte.js-BpR26NMa.js.map +1 -0
  223. package/focus-app/server/chunks/{handler-Cp_5hLyY.js → handler-Be3dyNi0.js} +3 -3
  224. package/focus-app/server/chunks/{handler-Cp_5hLyY.js.map → handler-Be3dyNi0.js.map} +1 -1
  225. package/focus-app/server/chunks/{index.js-CBh7Wjqp.js → index.js-siUxMMnK.js} +3 -3
  226. package/focus-app/server/chunks/{index.js-CBh7Wjqp.js.map → index.js-siUxMMnK.js.map} +1 -1
  227. package/focus-app/server/chunks/manifest.js-CXJqSHHn.js +78 -0
  228. package/focus-app/server/chunks/manifest.js-CXJqSHHn.js.map +1 -0
  229. package/focus-app/server/chunks/nodes/0.js-leU6sfRR.js +9 -0
  230. package/focus-app/server/chunks/nodes/{0.js-4wlmdsk8.js.map → 0.js-leU6sfRR.js.map} +1 -1
  231. package/focus-app/server/chunks/nodes/1.js-os6QXm6B.js +9 -0
  232. package/focus-app/server/chunks/nodes/{1.js-B-LpY-lC.js.map → 1.js-os6QXm6B.js.map} +1 -1
  233. package/focus-app/server/chunks/nodes/2.js-DAaLjh93.js +19 -0
  234. package/focus-app/server/chunks/nodes/2.js-DAaLjh93.js.map +1 -0
  235. package/focus-app/server/chunks/nodes/3.js-Cmgi6Uy0.js +18 -0
  236. package/focus-app/server/chunks/nodes/3.js-Cmgi6Uy0.js.map +1 -0
  237. package/package.json +2 -2
  238. package/skills/h2a-run/SKILL.md +100 -0
  239. package/focus-app/client/_app/immutable/assets/0.BdzHFb9q.css.br +0 -2
  240. package/focus-app/client/_app/immutable/assets/0.BdzHFb9q.css.gz +0 -0
  241. package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css +0 -1
  242. package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css.br +0 -0
  243. package/focus-app/client/_app/immutable/assets/2.Ddxq02y4.css.gz +0 -0
  244. package/focus-app/client/_app/immutable/chunks/Bs3f1UbD.js.br +0 -0
  245. package/focus-app/client/_app/immutable/chunks/Bs3f1UbD.js.gz +0 -0
  246. package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js +0 -1
  247. package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js.br +0 -0
  248. package/focus-app/client/_app/immutable/chunks/Bv8OL8ib.js.gz +0 -0
  249. package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js +0 -2
  250. package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js.br +0 -0
  251. package/focus-app/client/_app/immutable/chunks/CVq_IFFr.js.gz +0 -0
  252. package/focus-app/client/_app/immutable/chunks/Cj6wo28J.js.br +0 -0
  253. package/focus-app/client/_app/immutable/chunks/Cj6wo28J.js.gz +0 -0
  254. package/focus-app/client/_app/immutable/chunks/DEmooz0s.js.br +0 -0
  255. package/focus-app/client/_app/immutable/chunks/DEmooz0s.js.gz +0 -0
  256. package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js +0 -2
  257. package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js.br +0 -0
  258. package/focus-app/client/_app/immutable/chunks/DQIRXgdC.js.gz +0 -0
  259. package/focus-app/client/_app/immutable/chunks/ZxFklh9T.js.br +0 -0
  260. package/focus-app/client/_app/immutable/chunks/ZxFklh9T.js.gz +0 -0
  261. package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js +0 -1
  262. package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js.br +0 -0
  263. package/focus-app/client/_app/immutable/chunks/_wRuVGPs.js.gz +0 -0
  264. package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js +0 -2
  265. package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js.br +0 -0
  266. package/focus-app/client/_app/immutable/entry/app.6DKouWRt.js.gz +0 -0
  267. package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js +0 -1
  268. package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js.br +0 -2
  269. package/focus-app/client/_app/immutable/entry/start.DlLmkUb7.js.gz +0 -0
  270. package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js +0 -5
  271. package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js.br +0 -0
  272. package/focus-app/client/_app/immutable/nodes/0.CuSOF0Of.js.gz +0 -0
  273. package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js +0 -1
  274. package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js.br +0 -0
  275. package/focus-app/client/_app/immutable/nodes/1.D39jdnqm.js.gz +0 -0
  276. package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js +0 -1
  277. package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js.br +0 -0
  278. package/focus-app/client/_app/immutable/nodes/2.CnU8ifRl.js.gz +0 -0
  279. package/focus-app/server/chunks/chunks/index.js-Di21TltP.js.map +0 -1
  280. package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/_server.ts.js-j0NNcOSZ.js.map +0 -1
  281. package/focus-app/server/chunks/entries/pages/_page.svelte.js-QDldMYhk.js.map +0 -1
  282. package/focus-app/server/chunks/manifest.js-Cm6cC7mC.js +0 -56
  283. package/focus-app/server/chunks/manifest.js-Cm6cC7mC.js.map +0 -1
  284. package/focus-app/server/chunks/nodes/0.js-4wlmdsk8.js +0 -9
  285. package/focus-app/server/chunks/nodes/1.js-B-LpY-lC.js +0 -9
  286. package/focus-app/server/chunks/nodes/2.js-F6jp5eD9.js +0 -19
  287. package/focus-app/server/chunks/nodes/2.js-F6jp5eD9.js.map +0 -1
@@ -0,0 +1,1574 @@
1
+ import { a2 as head, a4 as escape_html, Z as derived, ab as spread_props, ae as attr_style, a3 as attr, a9 as ensure_array_like, a8 as attributes, a7 as clsx, a6 as attr_class, ag as stringify, aa as bind_props } from '../../../../chunks/index.js-laGHLarB.js';
2
+ import { A as AppShell, C as Container, F as Flex, c as Badge, a as Alert, b as Card, B as Button } from '../../../../chunks/AppShell.js-6Pi87dO0.js';
3
+ import '../../../../chunks/utils.js-C_3_iViC.js';
4
+ import '../../../../chunks/utils2.js-BQzn9ikS.js';
5
+
6
+ function ProgressBar($$renderer, $$props) {
7
+ $$renderer.component(($$renderer2) => {
8
+ let {
9
+ label,
10
+ helperText,
11
+ value = 0,
12
+ max = 100,
13
+ indeterminate = false,
14
+ tone = "neutral",
15
+ size = "md",
16
+ showValue = false,
17
+ valueText,
18
+ class: className,
19
+ $$slots,
20
+ $$events,
21
+ ...rest
22
+ } = $$props;
23
+ const wrapperClasses = () => ["st-progressBar", className].filter(Boolean).join(" ");
24
+ const trackClasses = () => [
25
+ "st-progressBar__track",
26
+ `st-progressBar__track--${size}`,
27
+ `st-progressBar__track--${tone}`,
28
+ indeterminate ? "st-progressBar__track--indeterminate" : null
29
+ ].filter(Boolean).join(" ");
30
+ const clampedValue = () => {
31
+ if (max <= 0) return 0;
32
+ if (value < 0) return 0;
33
+ if (value > max) return max;
34
+ return value;
35
+ };
36
+ const percent = () => indeterminate ? 0 : clampedValue() / max * 100;
37
+ const displayValue = () => {
38
+ if (valueText) return valueText;
39
+ if (indeterminate) return "";
40
+ return `${Math.round(percent())}%`;
41
+ };
42
+ $$renderer2.push(`<div${attributes({ ...rest, class: clsx(wrapperClasses()) }, "svelte-1d165yb")}>`);
43
+ if (label || showValue && !indeterminate) {
44
+ $$renderer2.push("<!--[0-->");
45
+ $$renderer2.push(`<div class="st-progressBar__header svelte-1d165yb">`);
46
+ if (label) {
47
+ $$renderer2.push("<!--[0-->");
48
+ $$renderer2.push(`<span class="st-progressBar__label svelte-1d165yb">${escape_html(label)}</span>`);
49
+ } else {
50
+ $$renderer2.push("<!--[-1-->");
51
+ }
52
+ $$renderer2.push(`<!--]--> `);
53
+ if (showValue && !indeterminate) {
54
+ $$renderer2.push("<!--[0-->");
55
+ $$renderer2.push(`<span class="st-progressBar__value svelte-1d165yb" aria-hidden="true">${escape_html(displayValue())}</span>`);
56
+ } else {
57
+ $$renderer2.push("<!--[-1-->");
58
+ }
59
+ $$renderer2.push(`<!--]--></div>`);
60
+ } else {
61
+ $$renderer2.push("<!--[-1-->");
62
+ }
63
+ $$renderer2.push(`<!--]--> <div${attr_class(clsx(trackClasses()), "svelte-1d165yb")} role="progressbar"${attr("aria-valuemin", indeterminate ? void 0 : 0)}${attr("aria-valuemax", indeterminate ? void 0 : max)}${attr("aria-valuenow", indeterminate ? void 0 : clampedValue())}${attr("aria-valuetext", indeterminate ? void 0 : displayValue())}${attr("aria-label", label)}><div class="st-progressBar__fill svelte-1d165yb"${attr_style(`--st-progressBar-pct: ${stringify(percent())}%`)}></div></div> `);
64
+ if (helperText) {
65
+ $$renderer2.push("<!--[0-->");
66
+ $$renderer2.push(`<span class="st-progressBar__help svelte-1d165yb">${escape_html(helperText)}</span>`);
67
+ } else {
68
+ $$renderer2.push("<!--[-1-->");
69
+ }
70
+ $$renderer2.push(`<!--]--></div>`);
71
+ });
72
+ }
73
+ function SlideIndicator($$renderer, $$props) {
74
+ $$renderer.component(($$renderer2) => {
75
+ let {
76
+ count,
77
+ current = 0,
78
+ onChange,
79
+ size = "md",
80
+ variant = "dots",
81
+ label = "Diapositive",
82
+ class: className,
83
+ $$slots,
84
+ $$events,
85
+ ...rest
86
+ } = $$props;
87
+ const classes = derived(() => [
88
+ "st-slideIndicator",
89
+ `st-slideIndicator--${size}`,
90
+ `st-slideIndicator--${variant}`,
91
+ className
92
+ ].filter(Boolean).join(" "));
93
+ const items = derived(() => Array.from({ length: Math.max(0, count) }, (_, i) => i));
94
+ $$renderer2.push(`<div${attributes(
95
+ {
96
+ ...rest,
97
+ class: clsx(classes()),
98
+ role: "group",
99
+ "aria-label": label
100
+ },
101
+ "svelte-60hp0l"
102
+ )}><!--[-->`);
103
+ const each_array = ensure_array_like(items());
104
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
105
+ let index = each_array[$$index];
106
+ $$renderer2.push(`<button type="button"${attr_class("st-slideIndicator__dot svelte-60hp0l", void 0, { "st-slideIndicator__dot--current": index === current })}${attr("aria-current", index === current ? "true" : void 0)}${attr("aria-label", `${label} ${index + 1}`)}${attr("tabindex", index === current ? 0 : -1)}></button>`);
107
+ }
108
+ $$renderer2.push(`<!--]--></div>`);
109
+ });
110
+ }
111
+ function Stack($$renderer, $$props) {
112
+ $$renderer.component(($$renderer2) => {
113
+ let {
114
+ gap,
115
+ align,
116
+ justify,
117
+ as = "div",
118
+ class: className,
119
+ children,
120
+ $$slots,
121
+ $$events,
122
+ ...rest
123
+ } = $$props;
124
+ const classes = derived(() => ["st-stack", className].filter(Boolean).join(" "));
125
+ Flex($$renderer2, spread_props([
126
+ rest,
127
+ {
128
+ as,
129
+ gap,
130
+ align,
131
+ justify,
132
+ direction: "column",
133
+ class: classes(),
134
+ children: ($$renderer3) => {
135
+ children?.($$renderer3);
136
+ $$renderer3.push(`<!---->`);
137
+ },
138
+ $$slots: { default: true }
139
+ }
140
+ ]));
141
+ });
142
+ }
143
+ function Table($$renderer, $$props) {
144
+ $$renderer.component(($$renderer2) => {
145
+ let {
146
+ columns,
147
+ rows,
148
+ caption,
149
+ class: className,
150
+ $$slots,
151
+ $$events,
152
+ ...rest
153
+ } = $$props;
154
+ const classes = () => ["st-table", className].filter(Boolean).join(" ");
155
+ const cellValue = (row, key) => String(row[key] ?? "");
156
+ $$renderer2.push(`<div class="st-table-wrap svelte-310erb"><table${attributes({ ...rest, class: clsx(classes()) }, "svelte-310erb")}>`);
157
+ if (caption) {
158
+ $$renderer2.push("<!--[0-->");
159
+ $$renderer2.push(`<caption class="svelte-310erb">${escape_html(caption)}</caption>`);
160
+ } else {
161
+ $$renderer2.push("<!--[-1-->");
162
+ }
163
+ $$renderer2.push(`<!--]--><thead><tr><!--[-->`);
164
+ const each_array = ensure_array_like(columns);
165
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
166
+ let column = each_array[$$index];
167
+ $$renderer2.push(`<th scope="col"${attr_class("svelte-310erb", void 0, {
168
+ "st-table__cell--right": column.align === "right",
169
+ "st-table__cell--center": column.align === "center"
170
+ })}>${escape_html(column.label)}</th>`);
171
+ }
172
+ $$renderer2.push(`<!--]--></tr></thead><tbody class="svelte-310erb"><!--[-->`);
173
+ const each_array_1 = ensure_array_like(rows);
174
+ for (let $$index_2 = 0, $$length = each_array_1.length; $$index_2 < $$length; $$index_2++) {
175
+ let row = each_array_1[$$index_2];
176
+ $$renderer2.push(`<tr class="svelte-310erb"><!--[-->`);
177
+ const each_array_2 = ensure_array_like(columns);
178
+ for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
179
+ let column = each_array_2[$$index_1];
180
+ $$renderer2.push(`<td${attr_class("svelte-310erb", void 0, {
181
+ "st-table__cell--right": column.align === "right",
182
+ "st-table__cell--center": column.align === "center"
183
+ })}>${escape_html(cellValue(row, column.key))}</td>`);
184
+ }
185
+ $$renderer2.push(`<!--]--></tr>`);
186
+ }
187
+ $$renderer2.push(`<!--]--></tbody></table></div>`);
188
+ });
189
+ }
190
+ function Textarea($$renderer, $$props) {
191
+ $$renderer.component(($$renderer2) => {
192
+ let {
193
+ label,
194
+ helperText,
195
+ errorText,
196
+ invalid = false,
197
+ value = "",
198
+ class: className,
199
+ $$slots,
200
+ $$events,
201
+ ...rest
202
+ } = $$props;
203
+ const fieldClasses = () => ["st-field", className].filter(Boolean).join(" ");
204
+ const isInvalid = () => invalid || Boolean(errorText);
205
+ $$renderer2.push(`<div${attr_class(clsx(fieldClasses()), "svelte-zb6qyp")}><label class="st-field__control svelte-zb6qyp">`);
206
+ if (label) {
207
+ $$renderer2.push("<!--[0-->");
208
+ $$renderer2.push(`<span class="st-field__label svelte-zb6qyp">${escape_html(label)}</span>`);
209
+ } else {
210
+ $$renderer2.push("<!--[-1-->");
211
+ }
212
+ $$renderer2.push(`<!--]--> <textarea${attributes(
213
+ {
214
+ ...rest,
215
+ class: "st-textarea",
216
+ "aria-invalid": isInvalid() ? "true" : void 0
217
+ },
218
+ "svelte-zb6qyp"
219
+ )}>`);
220
+ const $$body = escape_html(value);
221
+ if ($$body) {
222
+ $$renderer2.push(`${$$body}`);
223
+ }
224
+ $$renderer2.push(`</textarea></label> `);
225
+ if (errorText) {
226
+ $$renderer2.push("<!--[0-->");
227
+ $$renderer2.push(`<span class="st-field__error svelte-zb6qyp">${escape_html(errorText)}</span>`);
228
+ } else if (helperText) {
229
+ $$renderer2.push("<!--[1-->");
230
+ $$renderer2.push(`<span class="st-field__help svelte-zb6qyp">${escape_html(helperText)}</span>`);
231
+ } else {
232
+ $$renderer2.push("<!--[-1-->");
233
+ }
234
+ $$renderer2.push(`<!--]--></div>`);
235
+ bind_props($$props, { value });
236
+ });
237
+ }
238
+ function Tile($$renderer, $$props) {
239
+ $$renderer.component(($$renderer2) => {
240
+ let {
241
+ variant = "static",
242
+ href,
243
+ selected = false,
244
+ disabled = false,
245
+ title,
246
+ description,
247
+ class: className,
248
+ onclick,
249
+ onselect,
250
+ children,
251
+ $$slots,
252
+ $$events,
253
+ ...rest
254
+ } = $$props;
255
+ const classes = () => [
256
+ "st-tile",
257
+ `st-tile--${variant}`,
258
+ variant === "selectable" && selected ? "st-tile--selected" : null,
259
+ disabled ? "st-tile--disabled" : null,
260
+ className
261
+ ].filter(Boolean).join(" ");
262
+ function body($$renderer3) {
263
+ if (children) {
264
+ $$renderer3.push("<!--[0-->");
265
+ children($$renderer3);
266
+ $$renderer3.push(`<!---->`);
267
+ } else {
268
+ $$renderer3.push("<!--[-1-->");
269
+ if (title) {
270
+ $$renderer3.push("<!--[0-->");
271
+ $$renderer3.push(`<span class="st-tile__title svelte-1vcfi3">${escape_html(title)}</span>`);
272
+ } else {
273
+ $$renderer3.push("<!--[-1-->");
274
+ }
275
+ $$renderer3.push(`<!--]--> `);
276
+ if (description) {
277
+ $$renderer3.push("<!--[0-->");
278
+ $$renderer3.push(`<span class="st-tile__description svelte-1vcfi3">${escape_html(description)}</span>`);
279
+ } else {
280
+ $$renderer3.push("<!--[-1-->");
281
+ }
282
+ $$renderer3.push(`<!--]-->`);
283
+ }
284
+ $$renderer3.push(`<!--]-->`);
285
+ }
286
+ if (variant === "clickable" && href) {
287
+ $$renderer2.push("<!--[0-->");
288
+ $$renderer2.push(`<a${attributes(
289
+ {
290
+ ...rest,
291
+ class: clsx(classes()),
292
+ href,
293
+ "aria-disabled": disabled
294
+ },
295
+ "svelte-1vcfi3"
296
+ )}><span class="st-tile__content svelte-1vcfi3">`);
297
+ body($$renderer2);
298
+ $$renderer2.push(`<!----></span></a>`);
299
+ } else if (variant === "clickable") {
300
+ $$renderer2.push("<!--[1-->");
301
+ $$renderer2.push(`<button${attributes({ ...rest, type: "button", class: clsx(classes()), disabled }, "svelte-1vcfi3")}><span class="st-tile__content svelte-1vcfi3">`);
302
+ body($$renderer2);
303
+ $$renderer2.push(`<!----></span></button>`);
304
+ } else if (variant === "selectable") {
305
+ $$renderer2.push("<!--[2-->");
306
+ $$renderer2.push(`<label${attr_class(clsx(classes()), "svelte-1vcfi3")}><input type="checkbox" class="st-tile__input svelte-1vcfi3"${attr("checked", selected, true)}${attr("disabled", disabled, true)}/> <span class="st-tile__content svelte-1vcfi3">`);
307
+ body($$renderer2);
308
+ $$renderer2.push(`<!----></span></label>`);
309
+ } else {
310
+ $$renderer2.push("<!--[-1-->");
311
+ $$renderer2.push(`<div${attributes({ ...rest, class: clsx(classes()) }, "svelte-1vcfi3")}><span class="st-tile__content svelte-1vcfi3">`);
312
+ body($$renderer2);
313
+ $$renderer2.push(`<!----></span></div>`);
314
+ }
315
+ $$renderer2.push(`<!--]-->`);
316
+ bind_props($$props, { selected });
317
+ });
318
+ }
319
+ function projectAnswerSet(answerSet, decisions, dossierRevision) {
320
+ if (!answerSet || !answerSet.answers) return null;
321
+ const selections = {};
322
+ const notes = {};
323
+ const applied = [];
324
+ const missingDecisions = [];
325
+ const staleOptions = [];
326
+ for (const [key, entry] of Object.entries(answerSet.answers)) {
327
+ const decision = decisions.find((candidate) => candidate.key === key);
328
+ if (!decision) {
329
+ missingDecisions.push(key);
330
+ continue;
331
+ }
332
+ if (entry.option) {
333
+ if (decision.options.some((option) => option.key === entry.option)) {
334
+ selections[key] = entry.option;
335
+ } else {
336
+ staleOptions.push(`${key} → ${entry.option}`);
337
+ }
338
+ }
339
+ if (typeof entry.note === "string" && entry.note.length > 0) notes[key] = entry.note;
340
+ applied.push(key);
341
+ }
342
+ const unanswered = decisions.filter((decision) => {
343
+ const entry = answerSet.answers[decision.key];
344
+ return !entry || !entry.option && (entry.note ?? "").length === 0;
345
+ }).map((decision) => decision.key);
346
+ return {
347
+ state: { selections, notes },
348
+ report: {
349
+ applied,
350
+ missingDecisions,
351
+ staleOptions,
352
+ unanswered,
353
+ revisionMismatch: answerSet.revision !== dossierRevision
354
+ }
355
+ };
356
+ }
357
+ function collectAnswers(state, decisions) {
358
+ return decisions.map((decision) => ({
359
+ decisionKey: decision.key,
360
+ optionKey: state.selections[decision.key] ?? null,
361
+ note: (state.notes[decision.key] ?? "").trim()
362
+ }));
363
+ }
364
+ function collectAnsweredOnly(state, decisions) {
365
+ return collectAnswers(state, decisions).filter((a) => a.optionKey || a.note.length > 0);
366
+ }
367
+ function _page($$renderer, $$props) {
368
+ $$renderer.component(($$renderer2) => {
369
+ let { data } = $$props;
370
+ const dossier = derived(() => data.dossier);
371
+ const matrix = derived(() => data.matrix);
372
+ const answerSet = derived(() => data.answerSet);
373
+ const committed = projectAnswerSet(data.answerSet, data.dossier.decisions, data.dossier.revision);
374
+ const decisionsTotal = derived(() => dossier().decisions.length);
375
+ const slidesTotal = derived(() => decisionsTotal() + 1);
376
+ const storageKey = derived(() => `focus:dossier-agent-memory:${dossier().revision}:choix`);
377
+ const notesKey = derived(() => `focus:dossier-agent-memory:${dossier().revision}:notes`);
378
+ let current = 0;
379
+ let selections = { ...committed?.state.selections ?? {} };
380
+ let notes = { ...committed?.state.notes ?? {} };
381
+ let exportState = "idle";
382
+ const divergences = derived(() => []);
383
+ const divergentKeys = derived(() => new Set(divergences().map((d) => d.key)));
384
+ const answerOrigin = derived(() => !committed ? "empty" : divergences().length > 0 ? "draft" : "committed");
385
+ function previous() {
386
+ current = Math.max(0, current - 1);
387
+ }
388
+ function next() {
389
+ current = Math.min(slidesTotal() - 1, current + 1);
390
+ }
391
+ function selectOption(decisionKey, optionKey) {
392
+ selections = { ...selections, [decisionKey]: optionKey };
393
+ }
394
+ function setNote(decisionKey, value) {
395
+ notes = { ...notes, [decisionKey]: value };
396
+ exportState = "idle";
397
+ }
398
+ function useCommitted() {
399
+ if (!committed) return;
400
+ selections = { ...committed.state.selections };
401
+ notes = { ...committed.state.notes };
402
+ exportState = "idle";
403
+ try {
404
+ window.localStorage.removeItem(storageKey());
405
+ window.localStorage.removeItem(notesKey());
406
+ } catch {
407
+ }
408
+ }
409
+ function buildSummary() {
410
+ const lines = [
411
+ `# ${dossier().title}`,
412
+ "",
413
+ `Révision : ${dossier().revision}`,
414
+ ""
415
+ ];
416
+ for (const decision of dossier().decisions) {
417
+ const selected = decision.options.find((option) => option.key === selections[decision.key]);
418
+ const note = notes[decision.key]?.trim();
419
+ lines.push(`## ${decision.key} — ${decision.question}`);
420
+ lines.push(`- Option retenue : ${selected ? selected.title : "(aucune)"}`);
421
+ lines.push(`- Note : ${note ? note : "(aucune)"}`);
422
+ lines.push("");
423
+ }
424
+ return lines.join("\n");
425
+ }
426
+ async function copySummary() {
427
+ try {
428
+ await navigator.clipboard.writeText(buildSummary());
429
+ exportState = "copied";
430
+ } catch {
431
+ exportState = "failed";
432
+ }
433
+ }
434
+ function buildAnswerSetJson() {
435
+ const answers = {};
436
+ for (const decision of dossier().decisions) {
437
+ answers[decision.key] = {
438
+ option: selections[decision.key] ?? null,
439
+ note: notes[decision.key]?.trim() ?? ""
440
+ };
441
+ }
442
+ return `${JSON.stringify(
443
+ {
444
+ dossier: "agent-memory",
445
+ revision: dossier().revision,
446
+ capturedAt: (/* @__PURE__ */ new Date()).toISOString().slice(0, 10),
447
+ capturedFrom: "focus, dossier /dossier/agent-memory",
448
+ answers
449
+ },
450
+ null,
451
+ 2
452
+ )}
453
+ `;
454
+ }
455
+ async function copyAnswerSetJson() {
456
+ try {
457
+ await navigator.clipboard.writeText(buildAnswerSetJson());
458
+ exportState = "copied-json";
459
+ } catch {
460
+ exportState = "failed";
461
+ }
462
+ }
463
+ const committedReport = derived(() => committed ? committed.report : null);
464
+ const revisionMismatch = derived(() => Boolean(answerSet()) && answerSet().revision !== dossier().revision);
465
+ let including = null;
466
+ let includeResult = {};
467
+ let h2aTarget = data.h2a.target;
468
+ let h2aLive = data.h2a.live;
469
+ let h2aReason = data.h2a.reason;
470
+ let h2aRemedy = data.h2a.remedy;
471
+ let h2aAmbiguous = data.h2a.ambiguous;
472
+ let showTargets = false;
473
+ let refreshingTargets = false;
474
+ async function refreshTargets() {
475
+ refreshingTargets = true;
476
+ try {
477
+ const res = await fetch("/api/h2a/targets");
478
+ const body = await res.json();
479
+ if (body?.ok) {
480
+ h2aLive = body.live ?? [];
481
+ h2aReason = body.reason;
482
+ h2aRemedy = body.remedy ?? null;
483
+ h2aAmbiguous = Boolean(body.ambiguous);
484
+ if (!h2aTarget || !h2aLive.some((s) => s.instance === h2aTarget)) {
485
+ h2aTarget = body.target ?? null;
486
+ }
487
+ }
488
+ } catch {
489
+ } finally {
490
+ refreshingTargets = false;
491
+ }
492
+ }
493
+ function chooseTarget(instance) {
494
+ h2aTarget = instance;
495
+ showTargets = false;
496
+ }
497
+ function hasSomethingToInclude(decisionKey) {
498
+ return Boolean(selections[decisionKey] || notes[decisionKey]?.trim());
499
+ }
500
+ async function includeChoice(decisionKey) {
501
+ including = decisionKey;
502
+ try {
503
+ const res = await fetch("/api/dossiers/agent-memory/include", {
504
+ method: "POST",
505
+ headers: { "content-type": "application/json" },
506
+ body: JSON.stringify({
507
+ decisionKey,
508
+ optionKey: selections[decisionKey] ?? null,
509
+ note: notes[decisionKey] ?? "",
510
+ target: h2aTarget
511
+ })
512
+ });
513
+ includeResult = { ...includeResult, [decisionKey]: await res.json() };
514
+ } catch (e) {
515
+ includeResult = {
516
+ ...includeResult,
517
+ [decisionKey]: {
518
+ ok: false,
519
+ error: `Appel impossible : ${e instanceof Error ? e.message : String(e)}`
520
+ }
521
+ };
522
+ } finally {
523
+ including = null;
524
+ }
525
+ }
526
+ let sendingAll = false;
527
+ let sendAllResult = null;
528
+ async function sendAll() {
529
+ sendingAll = true;
530
+ sendAllResult = null;
531
+ try {
532
+ const answers = collectAnsweredOnly({ selections, notes }, dossier().decisions);
533
+ const res = await fetch("/api/dossiers/agent-memory/include", {
534
+ method: "POST",
535
+ headers: { "content-type": "application/json" },
536
+ body: JSON.stringify({ answers, target: h2aTarget })
537
+ });
538
+ sendAllResult = await res.json();
539
+ } catch (e) {
540
+ sendAllResult = {
541
+ ok: false,
542
+ error: `Appel impossible : ${e instanceof Error ? e.message : String(e)}`
543
+ };
544
+ } finally {
545
+ sendingAll = false;
546
+ }
547
+ }
548
+ const answeredCount = derived(() => dossier().decisions.filter((decision) => selections[decision.key] || notes[decision.key]?.trim()).length);
549
+ head("e74176", $$renderer2, ($$renderer3) => {
550
+ $$renderer3.title(($$renderer4) => {
551
+ $$renderer4.push(`<title>${escape_html(dossier().title)}</title>`);
552
+ });
553
+ });
554
+ {
555
+ let main = function($$renderer3) {
556
+ Container($$renderer3, {
557
+ size: "md",
558
+ padding: true,
559
+ children: ($$renderer4) => {
560
+ $$renderer4.push(`<main class="dossier svelte-e74176" aria-labelledby="dossier-title">`);
561
+ Stack($$renderer4, {
562
+ gap: 4,
563
+ children: ($$renderer5) => {
564
+ $$renderer5.push(`<header>`);
565
+ Stack($$renderer5, {
566
+ gap: 2,
567
+ children: ($$renderer6) => {
568
+ Flex($$renderer6, {
569
+ align: "center",
570
+ justify: "between",
571
+ wrap: true,
572
+ gap: 2,
573
+ children: ($$renderer7) => {
574
+ Badge($$renderer7, {
575
+ tone: "info",
576
+ children: ($$renderer8) => {
577
+ $$renderer8.push(`<!---->Dossier décisionnel`);
578
+ },
579
+ $$slots: { default: true }
580
+ });
581
+ $$renderer7.push(`<!----> `);
582
+ if (current === 0) {
583
+ $$renderer7.push("<!--[0-->");
584
+ Badge($$renderer7, {
585
+ tone: "neutral",
586
+ children: ($$renderer8) => {
587
+ $$renderer8.push(`<!---->État de l’art — aucune décision`);
588
+ },
589
+ $$slots: { default: true }
590
+ });
591
+ } else {
592
+ $$renderer7.push("<!--[-1-->");
593
+ Badge($$renderer7, {
594
+ tone: "neutral",
595
+ children: ($$renderer8) => {
596
+ $$renderer8.push(`<!---->Décision ${escape_html(current)} / ${escape_html(decisionsTotal())}`);
597
+ },
598
+ $$slots: { default: true }
599
+ });
600
+ }
601
+ $$renderer7.push(`<!--]-->`);
602
+ },
603
+ $$slots: { default: true }
604
+ });
605
+ $$renderer6.push(`<!----> <h1 id="dossier-title">${escape_html(dossier().title)}</h1> <p>${escape_html(dossier().context)}</p> `);
606
+ ProgressBar($$renderer6, {
607
+ label: "Progression du dossier",
608
+ value: current + 1,
609
+ max: slidesTotal(),
610
+ valueText: current === 0 ? "État de l’art" : `Décision ${current} / ${decisionsTotal()}`,
611
+ showValue: true
612
+ });
613
+ $$renderer6.push(`<!---->`);
614
+ },
615
+ $$slots: { default: true }
616
+ });
617
+ $$renderer5.push(`<!----></header> `);
618
+ Alert($$renderer5, {
619
+ tone: "info",
620
+ title: "Support de décision neutre",
621
+ message: "Ce dossier ne préconise aucune option. La première carte présente l'état de l'art, ne demande rien, et liste les corrections apportées à la révision précédente ; viennent ensuite les décisions, chacune avec ses alternatives, leur comportement, leur conséquence, les faits de mécanisme qui les éclairent avec leur source, et ce que la recherche n'a PAS pu établir. Le champ « critère à trancher » nomme ce qu'il faut peser, jamais un choix. Les cartes marquées « nouvelle carte » découlent de vos propres réponses du premier passage, citées verbatim. Vos réponses commitées sont chargées depuis le dépôt : « Transmettre à la CLI » les remet à une session h2a live du projet, le presse-papier reste disponible en repli."
622
+ });
623
+ $$renderer5.push(`<!----> `);
624
+ if (!answerSet()) {
625
+ $$renderer5.push("<!--[0-->");
626
+ Alert($$renderer5, {
627
+ tone: "warning",
628
+ title: "Jeu de réponses commité introuvable",
629
+ message: "Le fichier docs/decisions/2026-07-25-agent-memory-owner-answers.json n'est pas atteignable depuis ce service. Rien n'a été inventé : le dossier s'ouvre vide, et vos réponses commitées ne sont pas perdues pour autant — elles sont dans le dépôt."
630
+ });
631
+ } else if (answerOrigin() === "committed") {
632
+ $$renderer5.push("<!--[1-->");
633
+ Alert($$renderer5, {
634
+ tone: "info",
635
+ title: `Réponses commitées chargées (${Object.keys(committed?.state.notes ?? {}).length} note(s), ${Object.keys(committed?.state.selections ?? {}).length} sélection(s))`,
636
+ message: `Chargées côté serveur depuis ${answerSet().source} — aucun état de navigateur n'est nécessaire pour les voir. Vos modifications restent locales tant qu'elles ne sont pas commitées, et cette bannière vous dira si elles s'écartent du jeu commité.`
637
+ });
638
+ } else {
639
+ $$renderer5.push("<!--[-1-->");
640
+ Alert($$renderer5, {
641
+ tone: "warning",
642
+ title: `Brouillon local différent du jeu commité sur ${divergences().length} décision(s) : ${divergences().map((d) => d.key).join(", ")}`,
643
+ message: "Ce qui est affiché ci-dessous est votre brouillon local (non commité). Le jeu commité dans le dépôt, lui, est intact. Le détail des écarts est plus bas, avec le retour au jeu commité en un clic."
644
+ });
645
+ }
646
+ $$renderer5.push(`<!--]--> <div class="swipe-viewport svelte-e74176" role="group" aria-label="Cartes du dossier : l’état de l’art puis les décisions. Faites glisser horizontalement ou utilisez les boutons."${attr_style(void 0)}><div class="swipe-track svelte-e74176"${attr_style(`transform: translateX(-${current * 100}%);`)}><section class="swipe-slide svelte-e74176"${attr("aria-hidden", current !== 0)}${attr("inert", current !== 0, true)}>`);
647
+ Card($$renderer5, {
648
+ children: ($$renderer6) => {
649
+ Stack($$renderer6, {
650
+ gap: 4,
651
+ children: ($$renderer7) => {
652
+ Flex($$renderer7, {
653
+ align: "center",
654
+ justify: "between",
655
+ wrap: true,
656
+ gap: 2,
657
+ children: ($$renderer8) => {
658
+ Badge($$renderer8, {
659
+ tone: "info",
660
+ children: ($$renderer9) => {
661
+ $$renderer9.push(`<!---->État de l’art`);
662
+ },
663
+ $$slots: { default: true }
664
+ });
665
+ $$renderer8.push(`<!----> <span>Carte 1 sur ${escape_html(slidesTotal())} — aucune décision ici</span>`);
666
+ },
667
+ $$slots: { default: true }
668
+ });
669
+ $$renderer7.push(`<!----> `);
670
+ Stack($$renderer7, {
671
+ gap: 2,
672
+ children: ($$renderer8) => {
673
+ $$renderer8.push(`<h2 id="matrix-title">Matrice de comparaison</h2> <p>Dix-neuf approches du benchmark, comparées sur le stockage, la récupération, la
674
+ réconciliation, le mode d’écriture, le partage multi-CLI, l’auto-hébergement/RAM, la
675
+ licence et l’adéquation à la cible (agent persistant, multi-CLI, local-first). Faites
676
+ défiler horizontalement pour voir toutes les colonnes.</p>`);
677
+ },
678
+ $$slots: { default: true }
679
+ });
680
+ $$renderer7.push(`<!----> <div class="matrix-scroll svelte-e74176" role="presentation">`);
681
+ Table($$renderer7, {
682
+ caption: matrix().caption,
683
+ columns: matrix().columns,
684
+ rows: matrix().rows
685
+ });
686
+ $$renderer7.push(`<!----></div> <p class="matrix-legend svelte-e74176">${escape_html(matrix().legend)}</p> `);
687
+ if (dossier().corrections?.length) {
688
+ $$renderer7.push("<!--[0-->");
689
+ $$renderer7.push(`<section aria-labelledby="corrections-title">`);
690
+ Stack($$renderer7, {
691
+ gap: 2,
692
+ children: ($$renderer8) => {
693
+ $$renderer8.push(`<h2 id="corrections-title">Corrections à la révision précédente (${escape_html(dossier().corrections.length)})</h2> <p>La recherche de mécanismes a démenti des affirmations que la révision <strong>${escape_html(dossier().previousRevision)}</strong> présentait comme des faits. Elles sont
694
+ listées ici, et les cellules concernées de la matrice ci-dessus ont été réécrites.</p> <ul class="corrections svelte-e74176"><!--[-->`);
695
+ const each_array = ensure_array_like(dossier().corrections);
696
+ for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {
697
+ let correction = each_array[$$index];
698
+ $$renderer8.push(`<li class="svelte-e74176">`);
699
+ Stack($$renderer8, {
700
+ gap: 1,
701
+ children: ($$renderer9) => {
702
+ $$renderer9.push(`<strong>${escape_html(correction.subject)}</strong> <p class="was-stated svelte-e74176"><em>Était affirmé :</em> ${escape_html(correction.wasStated)}</p> <p><strong>En réalité :</strong> ${escape_html(correction.actually)}</p> <p class="fact-source svelte-e74176">${escape_html(correction.source)}</p>`);
703
+ },
704
+ $$slots: { default: true }
705
+ });
706
+ $$renderer8.push(`<!----></li>`);
707
+ }
708
+ $$renderer8.push(`<!--]--></ul>`);
709
+ },
710
+ $$slots: { default: true }
711
+ });
712
+ $$renderer7.push(`<!----></section>`);
713
+ } else {
714
+ $$renderer7.push("<!--[-1-->");
715
+ }
716
+ $$renderer7.push(`<!--]--> `);
717
+ Alert($$renderer7, {
718
+ tone: "info",
719
+ title: "Rien à trancher sur cette carte",
720
+ message: "Passez à la carte suivante pour entrer dans les décisions."
721
+ });
722
+ $$renderer7.push(`<!---->`);
723
+ },
724
+ $$slots: { default: true }
725
+ });
726
+ },
727
+ $$slots: { default: true }
728
+ });
729
+ $$renderer5.push(`<!----></section> <!--[-->`);
730
+ const each_array_1 = ensure_array_like(dossier().decisions);
731
+ for (let index = 0, $$length = each_array_1.length; index < $$length; index++) {
732
+ let decision = each_array_1[index];
733
+ const slide = index + 1;
734
+ $$renderer5.push(`<section class="swipe-slide svelte-e74176"${attr("aria-hidden", current !== slide)}${attr("inert", current !== slide, true)}>`);
735
+ Card($$renderer5, {
736
+ children: ($$renderer6) => {
737
+ Stack($$renderer6, {
738
+ gap: 4,
739
+ children: ($$renderer7) => {
740
+ Flex($$renderer7, {
741
+ align: "center",
742
+ justify: "between",
743
+ wrap: true,
744
+ gap: 2,
745
+ children: ($$renderer8) => {
746
+ Flex($$renderer8, {
747
+ align: "center",
748
+ wrap: true,
749
+ gap: 2,
750
+ children: ($$renderer9) => {
751
+ Badge($$renderer9, {
752
+ tone: "info",
753
+ children: ($$renderer10) => {
754
+ $$renderer10.push(`<!---->${escape_html(decision.key)}`);
755
+ },
756
+ $$slots: { default: true }
757
+ });
758
+ $$renderer9.push(`<!----> `);
759
+ if (decision.addedInRevision) {
760
+ $$renderer9.push("<!--[0-->");
761
+ Badge($$renderer9, {
762
+ tone: "neutral",
763
+ size: "sm",
764
+ children: ($$renderer10) => {
765
+ $$renderer10.push(`<!---->Nouvelle carte (révision 2)`);
766
+ },
767
+ $$slots: { default: true }
768
+ });
769
+ } else {
770
+ $$renderer9.push("<!--[-1-->");
771
+ }
772
+ $$renderer9.push(`<!--]--> `);
773
+ if (divergentKeys().has(decision.key)) {
774
+ $$renderer9.push("<!--[0-->");
775
+ Badge($$renderer9, {
776
+ tone: "warning",
777
+ size: "sm",
778
+ children: ($$renderer10) => {
779
+ $$renderer10.push(`<!---->Brouillon ≠ jeu commité`);
780
+ },
781
+ $$slots: { default: true }
782
+ });
783
+ } else {
784
+ $$renderer9.push("<!--[-1-->");
785
+ }
786
+ $$renderer9.push(`<!--]-->`);
787
+ },
788
+ $$slots: { default: true }
789
+ });
790
+ $$renderer8.push(`<!----> <span>Décision ${escape_html(slide)} sur ${escape_html(decisionsTotal())}</span>`);
791
+ },
792
+ $$slots: { default: true }
793
+ });
794
+ $$renderer7.push(`<!----> `);
795
+ Stack($$renderer7, {
796
+ gap: 2,
797
+ children: ($$renderer8) => {
798
+ $$renderer8.push(`<h2>${escape_html(decision.question)}</h2> <p>${escape_html(decision.whyNow)}</p>`);
799
+ },
800
+ $$slots: { default: true }
801
+ });
802
+ $$renderer7.push(`<!----> `);
803
+ if (decision.fromAnswer) {
804
+ $$renderer7.push("<!--[0-->");
805
+ $$renderer7.push(`<section class="from-answer svelte-e74176"${attr("aria-labelledby", `from-answer-${decision.key}`)}>`);
806
+ Stack($$renderer7, {
807
+ gap: 1,
808
+ children: ($$renderer8) => {
809
+ $$renderer8.push(`<h3${attr("id", `from-answer-${decision.key}`)}>Découle de votre réponse${escape_html(decision.parent?.length ? ` à ${decision.parent.join(" et ")}` : "")}</h3> <blockquote class="svelte-e74176">${escape_html(decision.fromAnswer)}</blockquote>`);
810
+ },
811
+ $$slots: { default: true }
812
+ });
813
+ $$renderer7.push(`<!----></section>`);
814
+ } else {
815
+ $$renderer7.push("<!--[-1-->");
816
+ }
817
+ $$renderer7.push(`<!--]--> <section${attr("aria-labelledby", `options-${decision.key}`)}>`);
818
+ Stack($$renderer7, {
819
+ gap: 2,
820
+ children: ($$renderer8) => {
821
+ $$renderer8.push(`<h3${attr("id", `options-${decision.key}`)}>Alternatives</h3> <p>Aucune option n’est recommandée par défaut. La sélection est facultative.</p> `);
822
+ Stack($$renderer8, {
823
+ gap: 2,
824
+ children: ($$renderer9) => {
825
+ $$renderer9.push(`<!--[-->`);
826
+ const each_array_2 = ensure_array_like(decision.options);
827
+ for (let $$index_1 = 0, $$length2 = each_array_2.length; $$index_1 < $$length2; $$index_1++) {
828
+ let option = each_array_2[$$index_1];
829
+ $$renderer9.push(`<div role="presentation">`);
830
+ Tile($$renderer9, {
831
+ variant: "selectable",
832
+ selected: selections[decision.key] === option.key,
833
+ onselect: () => selectOption(decision.key, option.key),
834
+ children: ($$renderer10) => {
835
+ Stack($$renderer10, {
836
+ gap: 2,
837
+ children: ($$renderer11) => {
838
+ Flex($$renderer11, {
839
+ align: "center",
840
+ justify: "between",
841
+ wrap: true,
842
+ gap: 2,
843
+ children: ($$renderer12) => {
844
+ $$renderer12.push(`<strong>${escape_html(option.title)}</strong> `);
845
+ if (option.recommended) {
846
+ $$renderer12.push("<!--[0-->");
847
+ Badge($$renderer12, {
848
+ tone: "success",
849
+ size: "sm",
850
+ children: ($$renderer13) => {
851
+ $$renderer13.push(`<!---->Recommandée`);
852
+ },
853
+ $$slots: { default: true }
854
+ });
855
+ } else {
856
+ $$renderer12.push("<!--[-1-->");
857
+ }
858
+ $$renderer12.push(`<!--]--> `);
859
+ if (selections[decision.key] === option.key) {
860
+ $$renderer12.push("<!--[0-->");
861
+ Badge($$renderer12, {
862
+ tone: "info",
863
+ size: "sm",
864
+ children: ($$renderer13) => {
865
+ $$renderer13.push(`<!---->Sélectionnée`);
866
+ },
867
+ $$slots: { default: true }
868
+ });
869
+ } else {
870
+ $$renderer12.push("<!--[-1-->");
871
+ }
872
+ $$renderer12.push(`<!--]-->`);
873
+ },
874
+ $$slots: { default: true }
875
+ });
876
+ $$renderer11.push(`<!----> <p>${escape_html(option.behavior)}</p> <p><strong>Conséquence :</strong> ${escape_html(option.consequence)}</p>`);
877
+ },
878
+ $$slots: { default: true }
879
+ });
880
+ },
881
+ $$slots: { default: true }
882
+ });
883
+ $$renderer9.push(`<!----></div>`);
884
+ }
885
+ $$renderer9.push(`<!--]-->`);
886
+ },
887
+ $$slots: { default: true }
888
+ });
889
+ $$renderer8.push(`<!---->`);
890
+ },
891
+ $$slots: { default: true }
892
+ });
893
+ $$renderer7.push(`<!----></section> `);
894
+ if (decision.mechanisms?.length) {
895
+ $$renderer7.push("<!--[0-->");
896
+ $$renderer7.push(`<section${attr("aria-labelledby", `mechanisms-${decision.key}`)}>`);
897
+ Stack($$renderer7, {
898
+ gap: 2,
899
+ children: ($$renderer8) => {
900
+ $$renderer8.push(`<h3${attr("id", `mechanisms-${decision.key}`)}>Comment ça marche réellement (${escape_html(decision.mechanisms.length)})</h3> <ul class="mechanisms svelte-e74176"><!--[-->`);
901
+ const each_array_3 = ensure_array_like(decision.mechanisms);
902
+ for (let $$index_2 = 0, $$length2 = each_array_3.length; $$index_2 < $$length2; $$index_2++) {
903
+ let mechanism = each_array_3[$$index_2];
904
+ $$renderer8.push(`<li class="svelte-e74176">`);
905
+ Stack($$renderer8, {
906
+ gap: 1,
907
+ children: ($$renderer9) => {
908
+ Flex($$renderer9, {
909
+ align: "center",
910
+ wrap: true,
911
+ gap: 2,
912
+ children: ($$renderer10) => {
913
+ $$renderer10.push(`<strong>${escape_html(mechanism.system)}</strong> `);
914
+ if (mechanism.status === "unverified") {
915
+ $$renderer10.push("<!--[0-->");
916
+ Badge($$renderer10, {
917
+ tone: "warning",
918
+ size: "sm",
919
+ children: ($$renderer11) => {
920
+ $$renderer11.push(`<!---->Non vérifié`);
921
+ },
922
+ $$slots: { default: true }
923
+ });
924
+ } else {
925
+ $$renderer10.push("<!--[-1-->");
926
+ }
927
+ $$renderer10.push(`<!--]-->`);
928
+ },
929
+ $$slots: { default: true }
930
+ });
931
+ $$renderer9.push(`<!----> <p>${escape_html(mechanism.fact)}</p> <p class="fact-source svelte-e74176">${escape_html(mechanism.source)}</p>`);
932
+ },
933
+ $$slots: { default: true }
934
+ });
935
+ $$renderer8.push(`<!----></li>`);
936
+ }
937
+ $$renderer8.push(`<!--]--></ul>`);
938
+ },
939
+ $$slots: { default: true }
940
+ });
941
+ $$renderer7.push(`<!----></section>`);
942
+ } else {
943
+ $$renderer7.push("<!--[-1-->");
944
+ }
945
+ $$renderer7.push(`<!--]--> `);
946
+ if (decision.unknowns?.length) {
947
+ $$renderer7.push("<!--[0-->");
948
+ $$renderer7.push(`<section class="unknowns svelte-e74176"${attr("aria-labelledby", `unknowns-${decision.key}`)}>`);
949
+ Stack($$renderer7, {
950
+ gap: 2,
951
+ children: ($$renderer8) => {
952
+ Flex($$renderer8, {
953
+ align: "center",
954
+ wrap: true,
955
+ gap: 2,
956
+ children: ($$renderer9) => {
957
+ $$renderer9.push(`<h3${attr("id", `unknowns-${decision.key}`)}>Ce que nous n’avons pas pu établir</h3> `);
958
+ Badge($$renderer9, {
959
+ tone: "warning",
960
+ size: "sm",
961
+ children: ($$renderer10) => {
962
+ $$renderer10.push(`<!---->${escape_html(decision.unknowns.length)}`);
963
+ },
964
+ $$slots: { default: true }
965
+ });
966
+ $$renderer9.push(`<!---->`);
967
+ },
968
+ $$slots: { default: true }
969
+ });
970
+ $$renderer8.push(`<!----> <ul class="svelte-e74176"><!--[-->`);
971
+ const each_array_4 = ensure_array_like(decision.unknowns);
972
+ for (let unknownIndex = 0, $$length2 = each_array_4.length; unknownIndex < $$length2; unknownIndex++) {
973
+ let unknown = each_array_4[unknownIndex];
974
+ $$renderer8.push(`<li class="svelte-e74176">${escape_html(unknown)}</li>`);
975
+ }
976
+ $$renderer8.push(`<!--]--></ul>`);
977
+ },
978
+ $$slots: { default: true }
979
+ });
980
+ $$renderer7.push(`<!----></section>`);
981
+ } else {
982
+ $$renderer7.push("<!--[-1-->");
983
+ }
984
+ $$renderer7.push(`<!--]--> `);
985
+ Alert($$renderer7, {
986
+ tone: "info",
987
+ title: "Critère à trancher (neutre)",
988
+ message: decision.recommendation
989
+ });
990
+ $$renderer7.push(`<!----> <div class="note-field svelte-e74176" role="presentation">`);
991
+ Textarea($$renderer7, {
992
+ label: "Votre note",
993
+ helperText: "Pourquoi ce choix, ce qui manque, ce qu'il faut vérifier. Enregistrée dans votre navigateur au fil de la frappe.",
994
+ rows: 4,
995
+ value: notes[decision.key] ?? "",
996
+ oninput: (event) => setNote(decision.key, event.currentTarget.value)
997
+ });
998
+ $$renderer7.push(`<!----></div> `);
999
+ Stack($$renderer7, {
1000
+ gap: 2,
1001
+ children: ($$renderer8) => {
1002
+ Flex($$renderer8, {
1003
+ align: "center",
1004
+ justify: "between",
1005
+ wrap: true,
1006
+ gap: 2,
1007
+ children: ($$renderer9) => {
1008
+ $$renderer9.push(`<span class="include-hint svelte-e74176">${escape_html(hasSomethingToInclude(decision.key) ? `Votre option et votre note partent ensemble${h2aTarget ? ` vers ${h2aTarget}` : ""}.` : "Sélectionnez une option ou écrivez une note pour pouvoir la transmettre.")}</span> `);
1009
+ Button($$renderer9, {
1010
+ variant: "primary",
1011
+ onclick: () => includeChoice(decision.key),
1012
+ disabled: including === decision.key || !hasSomethingToInclude(decision.key),
1013
+ children: ($$renderer10) => {
1014
+ $$renderer10.push(`<!---->${escape_html(including === decision.key ? "Transmission…" : "Transmettre à la CLI (h2a)")}`);
1015
+ },
1016
+ $$slots: { default: true }
1017
+ });
1018
+ $$renderer9.push(`<!---->`);
1019
+ },
1020
+ $$slots: { default: true }
1021
+ });
1022
+ $$renderer8.push(`<!----> `);
1023
+ if (includeResult[decision.key]) {
1024
+ $$renderer8.push("<!--[0-->");
1025
+ const result = includeResult[decision.key];
1026
+ if (result.ok && result.delivered) {
1027
+ $$renderer8.push("<!--[0-->");
1028
+ Alert($$renderer8, {
1029
+ tone: "success",
1030
+ title: `Transmis à ${result.target}`,
1031
+ message: result.note ?? ""
1032
+ });
1033
+ } else if (result.ok) {
1034
+ $$renderer8.push("<!--[1-->");
1035
+ Alert($$renderer8, {
1036
+ tone: "warning",
1037
+ title: "Non remis — et voici ce qui le permettrait",
1038
+ message: result.note ?? ""
1039
+ });
1040
+ } else {
1041
+ $$renderer8.push("<!--[-1-->");
1042
+ Alert($$renderer8, {
1043
+ tone: "error",
1044
+ title: "Échec de la transmission",
1045
+ message: result.error ?? "Erreur inconnue."
1046
+ });
1047
+ }
1048
+ $$renderer8.push(`<!--]-->`);
1049
+ } else {
1050
+ $$renderer8.push("<!--[-1-->");
1051
+ }
1052
+ $$renderer8.push(`<!--]-->`);
1053
+ },
1054
+ $$slots: { default: true }
1055
+ });
1056
+ $$renderer7.push(`<!----> `);
1057
+ Stack($$renderer7, {
1058
+ gap: 2,
1059
+ children: ($$renderer8) => {
1060
+ $$renderer8.push(`<h3>Prochain travail</h3> <p>${escape_html(decision.nextWork)}</p>`);
1061
+ },
1062
+ $$slots: { default: true }
1063
+ });
1064
+ $$renderer7.push(`<!---->`);
1065
+ },
1066
+ $$slots: { default: true }
1067
+ });
1068
+ },
1069
+ $$slots: { default: true }
1070
+ });
1071
+ $$renderer5.push(`<!----></section>`);
1072
+ }
1073
+ $$renderer5.push(`<!--]--></div></div> `);
1074
+ Flex($$renderer5, {
1075
+ align: "center",
1076
+ justify: "between",
1077
+ wrap: true,
1078
+ gap: 3,
1079
+ children: ($$renderer6) => {
1080
+ Button($$renderer6, {
1081
+ variant: "secondary",
1082
+ onclick: previous,
1083
+ disabled: current === 0,
1084
+ "aria-label": "Carte précédente",
1085
+ children: ($$renderer7) => {
1086
+ $$renderer7.push(`<!---->Précédente`);
1087
+ },
1088
+ $$slots: { default: true }
1089
+ });
1090
+ $$renderer6.push(`<!----> `);
1091
+ SlideIndicator($$renderer6, {
1092
+ count: slidesTotal(),
1093
+ current,
1094
+ onChange: (index) => current = index,
1095
+ label: "Accéder à une carte",
1096
+ variant: "bars"
1097
+ });
1098
+ $$renderer6.push(`<!----> `);
1099
+ Button($$renderer6, {
1100
+ variant: "primary",
1101
+ onclick: next,
1102
+ disabled: current === slidesTotal() - 1,
1103
+ "aria-label": "Carte suivante",
1104
+ children: ($$renderer7) => {
1105
+ $$renderer7.push(`<!---->Suivante`);
1106
+ },
1107
+ $$slots: { default: true }
1108
+ });
1109
+ $$renderer6.push(`<!---->`);
1110
+ },
1111
+ $$slots: { default: true }
1112
+ });
1113
+ $$renderer5.push(`<!----> <section aria-labelledby="handoff-title">`);
1114
+ Stack($$renderer5, {
1115
+ gap: 3,
1116
+ children: ($$renderer6) => {
1117
+ $$renderer6.push(`<h2 id="handoff-title">Transmettre vos réponses</h2> `);
1118
+ Stack($$renderer6, {
1119
+ gap: 2,
1120
+ children: ($$renderer7) => {
1121
+ Flex($$renderer7, {
1122
+ align: "center",
1123
+ justify: "between",
1124
+ wrap: true,
1125
+ gap: 2,
1126
+ children: ($$renderer8) => {
1127
+ $$renderer8.push(`<span class="include-hint svelte-e74176">`);
1128
+ if (h2aTarget) {
1129
+ $$renderer8.push("<!--[0-->");
1130
+ $$renderer8.push(`Destinataire : <strong>${escape_html(h2aTarget)}</strong> `);
1131
+ if (h2aReason === "workspace") {
1132
+ $$renderer8.push("<!--[0-->");
1133
+ $$renderer8.push(`(résolu sur le chemin du checkout)`);
1134
+ } else if (h2aReason === "emitter") {
1135
+ $$renderer8.push("<!--[1-->");
1136
+ $$renderer8.push(`(la session qui sert ce focus)`);
1137
+ } else if (h2aReason === "requested") {
1138
+ $$renderer8.push("<!--[2-->");
1139
+ $$renderer8.push(`(choisi par vous)`);
1140
+ } else if (h2aReason === "configured") {
1141
+ $$renderer8.push("<!--[3-->");
1142
+ $$renderer8.push(`(épinglé par FOCUS_H2A_TARGET)`);
1143
+ } else if (h2aReason === "sole") {
1144
+ $$renderer8.push("<!--[4-->");
1145
+ $$renderer8.push(`(seule session live)`);
1146
+ } else if (h2aReason === "name") {
1147
+ $$renderer8.push("<!--[5-->");
1148
+ $$renderer8.push(`(résolu sur le nom de session)`);
1149
+ } else {
1150
+ $$renderer8.push("<!--[-1-->");
1151
+ }
1152
+ $$renderer8.push(`<!--]-->`);
1153
+ } else {
1154
+ $$renderer8.push("<!--[-1-->");
1155
+ $$renderer8.push(`Aucun destinataire résolu pour l'instant.`);
1156
+ }
1157
+ $$renderer8.push(`<!--]--></span> `);
1158
+ Flex($$renderer8, {
1159
+ align: "center",
1160
+ wrap: true,
1161
+ gap: 2,
1162
+ children: ($$renderer9) => {
1163
+ Button($$renderer9, {
1164
+ variant: "secondary",
1165
+ onclick: () => showTargets = !showTargets,
1166
+ children: ($$renderer10) => {
1167
+ $$renderer10.push(`<!---->${escape_html(showTargets ? "Masquer les sessions" : "Changer de destinataire")}`);
1168
+ },
1169
+ $$slots: { default: true }
1170
+ });
1171
+ $$renderer9.push(`<!----> `);
1172
+ Button($$renderer9, {
1173
+ variant: "secondary",
1174
+ onclick: refreshTargets,
1175
+ disabled: refreshingTargets,
1176
+ children: ($$renderer10) => {
1177
+ $$renderer10.push(`<!---->${escape_html(refreshingTargets ? "Actualisation…" : "Actualiser")}`);
1178
+ },
1179
+ $$slots: { default: true }
1180
+ });
1181
+ $$renderer9.push(`<!---->`);
1182
+ },
1183
+ $$slots: { default: true }
1184
+ });
1185
+ $$renderer8.push(`<!---->`);
1186
+ },
1187
+ $$slots: { default: true }
1188
+ });
1189
+ $$renderer7.push(`<!----> `);
1190
+ if (!h2aTarget && h2aRemedy) {
1191
+ $$renderer7.push("<!--[0-->");
1192
+ Alert($$renderer7, {
1193
+ tone: "warning",
1194
+ title: "Rien à qui remettre — pour l'instant",
1195
+ message: h2aRemedy
1196
+ });
1197
+ } else {
1198
+ $$renderer7.push("<!--[-1-->");
1199
+ }
1200
+ $$renderer7.push(`<!--]--> `);
1201
+ if (h2aAmbiguous) {
1202
+ $$renderer7.push("<!--[0-->");
1203
+ Alert($$renderer7, {
1204
+ tone: "warning",
1205
+ title: "Plusieurs sessions live répondent pour ce dépôt",
1206
+ message: `Le destinataire retenu est ${h2aTarget}. Les autres sessions live de ce dépôt ne le recevront pas — si ce n'est pas la bonne, choisissez-la ci-dessus avant de transmettre. Les sessions peuvent vivre sur des racines h2a différentes, qui ne se voient pas entre elles.`
1207
+ });
1208
+ } else {
1209
+ $$renderer7.push("<!--[-1-->");
1210
+ }
1211
+ $$renderer7.push(`<!--]--> `);
1212
+ if (showTargets) {
1213
+ $$renderer7.push("<!--[0-->");
1214
+ Stack($$renderer7, {
1215
+ gap: 2,
1216
+ children: ($$renderer8) => {
1217
+ if (h2aLive.length === 0) {
1218
+ $$renderer8.push("<!--[0-->");
1219
+ Alert($$renderer8, {
1220
+ tone: "warning",
1221
+ title: "Aucune session h2a live",
1222
+ message: h2aRemedy ?? "Le registre ne contient aucune session live, pour aucun projet. Ouvrez une CLI h2a, puis « Actualiser »."
1223
+ });
1224
+ } else {
1225
+ $$renderer8.push("<!--[-1-->");
1226
+ $$renderer8.push(`<!--[-->`);
1227
+ const each_array_5 = ensure_array_like(h2aLive);
1228
+ for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {
1229
+ let session = each_array_5[$$index_5];
1230
+ $$renderer8.push(`<div role="presentation">`);
1231
+ Tile($$renderer8, {
1232
+ variant: "selectable",
1233
+ selected: h2aTarget === session.instance,
1234
+ onselect: () => chooseTarget(session.instance),
1235
+ children: ($$renderer9) => {
1236
+ Stack($$renderer9, {
1237
+ gap: 1,
1238
+ children: ($$renderer10) => {
1239
+ Flex($$renderer10, {
1240
+ align: "center",
1241
+ justify: "between",
1242
+ wrap: true,
1243
+ gap: 2,
1244
+ children: ($$renderer11) => {
1245
+ $$renderer11.push(`<strong>${escape_html(session.name ?? session.instance)}</strong> `);
1246
+ if (session.matchesRepo) {
1247
+ $$renderer11.push("<!--[0-->");
1248
+ Badge($$renderer11, {
1249
+ tone: "success",
1250
+ size: "sm",
1251
+ children: ($$renderer12) => {
1252
+ $$renderer12.push(`<!---->Ce dépôt`);
1253
+ },
1254
+ $$slots: { default: true }
1255
+ });
1256
+ } else {
1257
+ $$renderer11.push("<!--[-1-->");
1258
+ }
1259
+ $$renderer11.push(`<!--]-->`);
1260
+ },
1261
+ $$slots: { default: true }
1262
+ });
1263
+ $$renderer10.push(`<!----> <p class="fact-source svelte-e74176">${escape_html(session.instance)}</p> `);
1264
+ if (session.workspace) {
1265
+ $$renderer10.push("<!--[0-->");
1266
+ $$renderer10.push(`<p class="fact-source svelte-e74176">${escape_html(session.workspace)}</p>`);
1267
+ } else {
1268
+ $$renderer10.push("<!--[-1-->");
1269
+ }
1270
+ $$renderer10.push(`<!--]--> `);
1271
+ if (session.root) {
1272
+ $$renderer10.push("<!--[0-->");
1273
+ $$renderer10.push(`<p class="fact-source svelte-e74176">racine h2a : ${escape_html(session.root)}</p>`);
1274
+ } else {
1275
+ $$renderer10.push("<!--[-1-->");
1276
+ }
1277
+ $$renderer10.push(`<!--]-->`);
1278
+ },
1279
+ $$slots: { default: true }
1280
+ });
1281
+ },
1282
+ $$slots: { default: true }
1283
+ });
1284
+ $$renderer8.push(`<!----></div>`);
1285
+ }
1286
+ $$renderer8.push(`<!--]-->`);
1287
+ }
1288
+ $$renderer8.push(`<!--]-->`);
1289
+ },
1290
+ $$slots: { default: true }
1291
+ });
1292
+ } else {
1293
+ $$renderer7.push("<!--[-1-->");
1294
+ }
1295
+ $$renderer7.push(`<!--]--> `);
1296
+ Flex($$renderer7, {
1297
+ align: "center",
1298
+ justify: "between",
1299
+ wrap: true,
1300
+ gap: 2,
1301
+ children: ($$renderer8) => {
1302
+ $$renderer8.push(`<span class="include-hint svelte-e74176">${escape_html(answeredCount() > 0 ? `${answeredCount()} réponse(s) partiraient en un seul envoi, options ET notes.` : "Aucune réponse à transmettre pour le moment.")}</span> `);
1303
+ Button($$renderer8, {
1304
+ variant: "primary",
1305
+ onclick: sendAll,
1306
+ disabled: sendingAll || answeredCount() === 0,
1307
+ children: ($$renderer9) => {
1308
+ $$renderer9.push(`<!---->${escape_html(sendingAll ? "Transmission…" : "Transmettre toutes mes réponses à la CLI")}`);
1309
+ },
1310
+ $$slots: { default: true }
1311
+ });
1312
+ $$renderer8.push(`<!---->`);
1313
+ },
1314
+ $$slots: { default: true }
1315
+ });
1316
+ $$renderer7.push(`<!----> `);
1317
+ if (sendAllResult) {
1318
+ $$renderer7.push("<!--[0-->");
1319
+ if (sendAllResult.ok && sendAllResult.delivered) {
1320
+ $$renderer7.push("<!--[0-->");
1321
+ Alert($$renderer7, {
1322
+ tone: "success",
1323
+ title: `Transmis à ${sendAllResult.target}`,
1324
+ message: sendAllResult.note ?? ""
1325
+ });
1326
+ } else if (sendAllResult.ok) {
1327
+ $$renderer7.push("<!--[1-->");
1328
+ Alert($$renderer7, {
1329
+ tone: "warning",
1330
+ title: "Non remis — et voici ce qui le permettrait",
1331
+ message: sendAllResult.note ?? ""
1332
+ });
1333
+ } else {
1334
+ $$renderer7.push("<!--[-1-->");
1335
+ Alert($$renderer7, {
1336
+ tone: "error",
1337
+ title: "Échec de la transmission",
1338
+ message: sendAllResult.error ?? "Erreur inconnue."
1339
+ });
1340
+ }
1341
+ $$renderer7.push(`<!--]-->`);
1342
+ } else {
1343
+ $$renderer7.push("<!--[-1-->");
1344
+ }
1345
+ $$renderer7.push(`<!--]-->`);
1346
+ },
1347
+ $$slots: { default: true }
1348
+ });
1349
+ $$renderer6.push(`<!---->`);
1350
+ },
1351
+ $$slots: { default: true }
1352
+ });
1353
+ $$renderer5.push(`<!----></section> <section aria-labelledby="summary-title">`);
1354
+ Stack($$renderer5, {
1355
+ gap: 2,
1356
+ children: ($$renderer6) => {
1357
+ $$renderer6.push(`<h2 id="summary-title">Vos notes (repli presse-papier)</h2> `);
1358
+ Flex($$renderer6, {
1359
+ align: "center",
1360
+ justify: "between",
1361
+ wrap: true,
1362
+ gap: 2,
1363
+ children: ($$renderer7) => {
1364
+ $$renderer7.push(`<span>${escape_html(answeredCount())} décision(s) sur ${escape_html(decisionsTotal())} annotée(s) ou sélectionnée(s).</span> `);
1365
+ Flex($$renderer7, {
1366
+ align: "center",
1367
+ wrap: true,
1368
+ gap: 2,
1369
+ children: ($$renderer8) => {
1370
+ Button($$renderer8, {
1371
+ variant: "secondary",
1372
+ onclick: copySummary,
1373
+ children: ($$renderer9) => {
1374
+ $$renderer9.push(`<!---->Copier ma synthèse`);
1375
+ },
1376
+ $$slots: { default: true }
1377
+ });
1378
+ $$renderer8.push(`<!----> `);
1379
+ Button($$renderer8, {
1380
+ variant: "secondary",
1381
+ onclick: copyAnswerSetJson,
1382
+ children: ($$renderer9) => {
1383
+ $$renderer9.push(`<!---->Copier le jeu de réponses (JSON)`);
1384
+ },
1385
+ $$slots: { default: true }
1386
+ });
1387
+ $$renderer8.push(`<!---->`);
1388
+ },
1389
+ $$slots: { default: true }
1390
+ });
1391
+ $$renderer7.push(`<!---->`);
1392
+ },
1393
+ $$slots: { default: true }
1394
+ });
1395
+ $$renderer6.push(`<!----> `);
1396
+ if (exportState === "copied") {
1397
+ $$renderer6.push("<!--[0-->");
1398
+ Alert($$renderer6, {
1399
+ tone: "success",
1400
+ title: "Synthèse copiée",
1401
+ message: "Vos sélections et vos notes sont dans le presse-papier, en markdown. Collez-les où vous voulez : une CLI, un ticket, un message."
1402
+ });
1403
+ } else if (exportState === "copied-json") {
1404
+ $$renderer6.push("<!--[1-->");
1405
+ Alert($$renderer6, {
1406
+ tone: "success",
1407
+ title: "Jeu de réponses copié (JSON)",
1408
+ message: "Même forme que le jeu enregistré : il peut être commité puis rejoué tel quel dans ce dossier, sans retouche à la main."
1409
+ });
1410
+ } else if (exportState === "failed") {
1411
+ $$renderer6.push("<!--[2-->");
1412
+ Alert($$renderer6, {
1413
+ tone: "error",
1414
+ title: "Copie refusée par le navigateur",
1415
+ message: "Le presse-papier n'est pas accessible ici. Vos notes restent enregistrées dans ce navigateur ; sélectionnez-les à la main dans les cartes."
1416
+ });
1417
+ } else {
1418
+ $$renderer6.push("<!--[-1-->");
1419
+ }
1420
+ $$renderer6.push(`<!--]-->`);
1421
+ },
1422
+ $$slots: { default: true }
1423
+ });
1424
+ $$renderer5.push(`<!----></section> <section aria-labelledby="replay-title">`);
1425
+ Stack($$renderer5, {
1426
+ gap: 2,
1427
+ children: ($$renderer6) => {
1428
+ $$renderer6.push(`<h2 id="replay-title">Jeu de réponses commité</h2> `);
1429
+ if (!answerSet()) {
1430
+ $$renderer6.push("<!--[0-->");
1431
+ Alert($$renderer6, {
1432
+ tone: "warning",
1433
+ title: "Jeu commité indisponible",
1434
+ message: "Le jeu de réponses commité n'est pas atteignable depuis ce service (docs/decisions/2026-07-25-agent-memory-owner-answers.json). Rien n'a été inventé : vos réponses locales sont intactes."
1435
+ });
1436
+ } else {
1437
+ $$renderer6.push("<!--[-1-->");
1438
+ $$renderer6.push(`<p>Jeu commité : <code>${escape_html(answerSet().source)}</code> — révision <strong>${escape_html(answerSet().revision)}</strong>${escape_html(answerSet().capturedAt ? `, capturé le ${answerSet().capturedAt}` : "")}${escape_html(answerSet().status ? ` (${answerSet().status})` : "")}. Il est chargé <strong>par défaut</strong>, côté serveur, sélections <strong>et</strong> notes, telles
1439
+ qu'elles ont été écrites — aucun état de navigateur n'est requis pour le voir.</p> `);
1440
+ if (dossier().carryOver) {
1441
+ $$renderer6.push("<!--[0-->");
1442
+ Alert($$renderer6, {
1443
+ tone: "info",
1444
+ title: `Report depuis « ${dossier().carryOver.from} » : ${dossier().carryOver.carried.length} décisions conservées, ${dossier().carryOver.added.length} ajoutées`,
1445
+ message: dossier().carryOver.statement
1446
+ });
1447
+ } else {
1448
+ $$renderer6.push("<!--[-1-->");
1449
+ }
1450
+ $$renderer6.push(`<!--]--> `);
1451
+ if (revisionMismatch()) {
1452
+ $$renderer6.push("<!--[0-->");
1453
+ Alert($$renderer6, {
1454
+ tone: "warning",
1455
+ title: "Révision différente",
1456
+ message: `Ces réponses ont été capturées sur « ${answerSet().revision} », or ce dossier est en « ${dossier().revision} ». Ce qui retombe sur cette révision est chargé ; ce qui n'y retombe plus et ce que ce jeu ne couvre pas sont nommés ci-dessous.`
1457
+ });
1458
+ } else {
1459
+ $$renderer6.push("<!--[-1-->");
1460
+ }
1461
+ $$renderer6.push(`<!--]--> `);
1462
+ if (committedReport()) {
1463
+ $$renderer6.push("<!--[0-->");
1464
+ if (committedReport().missingDecisions.length) {
1465
+ $$renderer6.push("<!--[0-->");
1466
+ Alert($$renderer6, {
1467
+ tone: "error",
1468
+ title: "Réponses non chargeables : décision disparue",
1469
+ message: `Ces clés n'existent plus dans la révision « ${dossier().revision} » et n'ont donc pas pu être chargées : ${committedReport().missingDecisions.join(", ")}. Leurs notes sont toujours dans le jeu commité, pas dans cette page.`
1470
+ });
1471
+ } else {
1472
+ $$renderer6.push("<!--[-1-->");
1473
+ }
1474
+ $$renderer6.push(`<!--]--> `);
1475
+ if (committedReport().staleOptions.length) {
1476
+ $$renderer6.push("<!--[0-->");
1477
+ Alert($$renderer6, {
1478
+ tone: "warning",
1479
+ title: "Options disparues : note chargée, sélection non",
1480
+ message: `Ces options n'existent plus pour leur décision : ${committedReport().staleOptions.join(", ")}. La note a été chargée, la sélection est restée vide — à vous de la reprendre.`
1481
+ });
1482
+ } else {
1483
+ $$renderer6.push("<!--[-1-->");
1484
+ }
1485
+ $$renderer6.push(`<!--]--> `);
1486
+ if (committedReport().unanswered.length) {
1487
+ $$renderer6.push("<!--[0-->");
1488
+ Alert($$renderer6, {
1489
+ tone: "info",
1490
+ title: `${committedReport().unanswered.length} décision(s) sans réponse dans ce jeu`,
1491
+ message: `Ce jeu commité ne couvre pas : ${committedReport().unanswered.join(", ")}. Ce ne sont pas des réponses perdues — ce sont les cartes ajoutées depuis, qui attendent la vôtre.`
1492
+ });
1493
+ } else {
1494
+ $$renderer6.push("<!--[-1-->");
1495
+ }
1496
+ $$renderer6.push(`<!--]-->`);
1497
+ } else {
1498
+ $$renderer6.push("<!--[-1-->");
1499
+ }
1500
+ $$renderer6.push(`<!--]--> `);
1501
+ if (divergences().length > 0) {
1502
+ $$renderer6.push("<!--[0-->");
1503
+ $$renderer6.push(`<section aria-labelledby="divergence-title">`);
1504
+ Stack($$renderer6, {
1505
+ gap: 2,
1506
+ children: ($$renderer7) => {
1507
+ $$renderer7.push(`<h3 id="divergence-title">Deux versions de vos réponses (${escape_html(divergences().length)} écart(s))</h3> <p>La page affiche votre <strong>brouillon local</strong>. Le jeu commité du dépôt dit
1508
+ autre chose sur ces décisions. Choisissez laquelle garder — rien n'est remplacé
1509
+ tant que vous n'avez pas choisi.</p> <ul class="divergences svelte-e74176"><!--[-->`);
1510
+ const each_array_6 = ensure_array_like(divergences());
1511
+ for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {
1512
+ let divergence = each_array_6[$$index_6];
1513
+ $$renderer7.push(`<li class="svelte-e74176">`);
1514
+ Stack($$renderer7, {
1515
+ gap: 1,
1516
+ children: ($$renderer8) => {
1517
+ $$renderer8.push(`<strong>${escape_html(divergence.key)}</strong> <p><em>Jeu commité :</em> ${escape_html(divergence.committedOption ?? "(aucune option)")} —
1518
+ ${escape_html(divergence.committedNote ? divergence.committedNote : "(aucune note)")}</p> <p><em>Votre brouillon (affiché) :</em> ${escape_html(divergence.draftOption ?? "(aucune option)")} —
1519
+ ${escape_html(divergence.draftNote ? divergence.draftNote : "(aucune note)")}</p>`);
1520
+ },
1521
+ $$slots: { default: true }
1522
+ });
1523
+ $$renderer7.push(`<!----></li>`);
1524
+ }
1525
+ $$renderer7.push(`<!--]--></ul> `);
1526
+ Flex($$renderer7, {
1527
+ align: "center",
1528
+ justify: "between",
1529
+ wrap: true,
1530
+ gap: 2,
1531
+ children: ($$renderer8) => {
1532
+ $$renderer8.push(`<span class="include-hint svelte-e74176">Garder votre brouillon ne demande aucune action : il est déjà à l'écran.</span> `);
1533
+ Button($$renderer8, {
1534
+ variant: "secondary",
1535
+ onclick: useCommitted,
1536
+ children: ($$renderer9) => {
1537
+ $$renderer9.push(`<!---->Utiliser le jeu commité du dépôt`);
1538
+ },
1539
+ $$slots: { default: true }
1540
+ });
1541
+ $$renderer8.push(`<!---->`);
1542
+ },
1543
+ $$slots: { default: true }
1544
+ });
1545
+ $$renderer7.push(`<!---->`);
1546
+ },
1547
+ $$slots: { default: true }
1548
+ });
1549
+ $$renderer6.push(`<!----></section>`);
1550
+ } else {
1551
+ $$renderer6.push("<!--[-1-->");
1552
+ }
1553
+ $$renderer6.push(`<!--]-->`);
1554
+ }
1555
+ $$renderer6.push(`<!--]-->`);
1556
+ },
1557
+ $$slots: { default: true }
1558
+ });
1559
+ $$renderer5.push(`<!----></section>`);
1560
+ },
1561
+ $$slots: { default: true }
1562
+ });
1563
+ $$renderer4.push(`<!----></main>`);
1564
+ },
1565
+ $$slots: { default: true }
1566
+ });
1567
+ };
1568
+ AppShell($$renderer2, { variant: "workspace", main });
1569
+ }
1570
+ });
1571
+ }
1572
+
1573
+ export { _page as default };
1574
+ //# sourceMappingURL=_page.svelte.js-BpR26NMa.js.map