@jpkme/diff-review 0.1.13 → 0.1.14

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 (95) hide show
  1. package/bin/diff-review.mjs +72 -53
  2. package/lib/prompt.mjs +8 -6
  3. package/package.json +1 -1
  4. package/web/build/client/_app/immutable/assets/2.C4whE4xz.css +1 -0
  5. package/web/build/client/_app/immutable/assets/2.C4whE4xz.css.br +0 -0
  6. package/web/build/client/_app/immutable/assets/2.C4whE4xz.css.gz +0 -0
  7. package/web/build/client/_app/immutable/assets/storage.C8XGESwn.css +1 -0
  8. package/web/build/client/_app/immutable/assets/storage.C8XGESwn.css.br +0 -0
  9. package/web/build/client/_app/immutable/assets/storage.C8XGESwn.css.gz +0 -0
  10. package/web/build/client/_app/immutable/chunks/C0hrdiUt.js +2 -0
  11. package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.br +0 -0
  12. package/web/build/client/_app/immutable/chunks/C0hrdiUt.js.gz +0 -0
  13. package/web/build/client/_app/immutable/chunks/{BXUWMim4.js → CpeIO6nz.js} +6 -9
  14. package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.br +0 -0
  15. package/web/build/client/_app/immutable/chunks/CpeIO6nz.js.gz +0 -0
  16. package/web/build/client/_app/immutable/chunks/{Bu1mm6Oz.js → FOc6rgIW.js} +1 -1
  17. package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.br +2 -0
  18. package/web/build/client/_app/immutable/chunks/FOc6rgIW.js.gz +0 -0
  19. package/web/build/client/_app/immutable/entry/{app.CTgiuiU1.js → app.DcAtSJ3n.js} +2 -2
  20. package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.br +0 -0
  21. package/web/build/client/_app/immutable/entry/app.DcAtSJ3n.js.gz +0 -0
  22. package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js +1 -0
  23. package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.br +0 -0
  24. package/web/build/client/_app/immutable/entry/start.CO5l0Zbx.js.gz +0 -0
  25. package/web/build/client/_app/immutable/nodes/{1.0PQZpSbJ.js → 1.E-Hs7ura.js} +1 -1
  26. package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.br +4 -0
  27. package/web/build/client/_app/immutable/nodes/1.E-Hs7ura.js.gz +0 -0
  28. package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js +10 -0
  29. package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.br +0 -0
  30. package/web/build/client/_app/immutable/nodes/2.s1_irV1Q.js.gz +0 -0
  31. package/web/build/client/_app/immutable/nodes/{3.AciugOtL.js → 3.pgwe-_5b.js} +1 -1
  32. package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.br +0 -0
  33. package/web/build/client/_app/immutable/nodes/3.pgwe-_5b.js.gz +0 -0
  34. package/web/build/client/_app/version.json +1 -1
  35. package/web/build/client/_app/version.json.br +0 -0
  36. package/web/build/client/_app/version.json.gz +0 -0
  37. package/web/build/handler.js +3 -3
  38. package/web/build/index.js +3 -3
  39. package/web/build/server/chunks/1-BFhhV5JB.js +7 -0
  40. package/web/build/server/chunks/{1-C2qlInYk.js.map → 1-BFhhV5JB.js.map} +1 -1
  41. package/web/build/server/chunks/2-BZ_MVqj8.js +7 -0
  42. package/web/build/server/chunks/2-BZ_MVqj8.js.map +1 -0
  43. package/web/build/server/chunks/3-BV-TIUp1.js +7 -0
  44. package/web/build/server/chunks/{3-SO3atuWO.js.map → 3-BV-TIUp1.js.map} +1 -1
  45. package/web/build/server/chunks/{_server.ts-CRNhzL2a.js → _server.ts-CdFoXw36.js} +4 -4
  46. package/web/build/server/chunks/{_server.ts-CRNhzL2a.js.map → _server.ts-CdFoXw36.js.map} +1 -1
  47. package/web/build/server/chunks/{agent-sessions-kcUaLhK5.js → agent-sessions-D0WwtWgR.js} +56 -15
  48. package/web/build/server/chunks/agent-sessions-D0WwtWgR.js.map +1 -0
  49. package/web/build/server/chunks/{git-review-CXKcjYgZ.js → git-review-CgcBIbvM.js} +7 -7
  50. package/web/build/server/chunks/{git-review-CXKcjYgZ.js.map → git-review-CgcBIbvM.js.map} +1 -1
  51. package/web/build/server/chunks/{handler-_E0NucKN.js → handler-DbxjtK9M.js} +3 -3
  52. package/web/build/server/chunks/{handler-_E0NucKN.js.map → handler-DbxjtK9M.js.map} +1 -1
  53. package/web/build/server/chunks/{hooks.server-D7yPODoc.js → hooks.server-Dg6gYUqs.js} +3 -3
  54. package/web/build/server/chunks/{hooks.server-D7yPODoc.js.map → hooks.server-Dg6gYUqs.js.map} +1 -1
  55. package/web/build/server/chunks/{index.js-lMtDM8ZQ.js → index.js-NNne-njN.js} +876 -879
  56. package/web/build/server/chunks/index.js-NNne-njN.js.map +1 -0
  57. package/web/build/server/chunks/{manifest.js-BIm6jot5.js → manifest.js-V8ViI5bl.js} +8 -8
  58. package/web/build/server/chunks/{manifest.js-BIm6jot5.js.map → manifest.js-V8ViI5bl.js.map} +1 -1
  59. package/web/build/server/chunks/{remote-1g4ayag-DmqxwUIz.js → remote-1g4ayag-CCsG2QXw.js} +4 -4
  60. package/web/build/server/chunks/{remote-1g4ayag-DmqxwUIz.js.map → remote-1g4ayag-CCsG2QXw.js.map} +1 -1
  61. package/web/build/server/chunks/{remote-wh6t6j-DZk0W9Pp.js → remote-wh6t6j-BCvmX37z.js} +5 -5
  62. package/web/build/server/chunks/{remote-wh6t6j-DZk0W9Pp.js.map → remote-wh6t6j-BCvmX37z.js.map} +1 -1
  63. package/web/build/server/chunks/{validate-BsTKyhsq.js → validate-CAQ31C7k.js} +2 -2
  64. package/web/build/server/chunks/{validate-BsTKyhsq.js.map → validate-CAQ31C7k.js.map} +1 -1
  65. package/web/build/client/_app/immutable/assets/2.tqrMRTM0.css +0 -1
  66. package/web/build/client/_app/immutable/assets/2.tqrMRTM0.css.br +0 -0
  67. package/web/build/client/_app/immutable/assets/2.tqrMRTM0.css.gz +0 -0
  68. package/web/build/client/_app/immutable/assets/storage.DqYH0w6R.css +0 -1
  69. package/web/build/client/_app/immutable/assets/storage.DqYH0w6R.css.br +0 -0
  70. package/web/build/client/_app/immutable/assets/storage.DqYH0w6R.css.gz +0 -0
  71. package/web/build/client/_app/immutable/chunks/BXUWMim4.js.br +0 -0
  72. package/web/build/client/_app/immutable/chunks/BXUWMim4.js.gz +0 -0
  73. package/web/build/client/_app/immutable/chunks/Bu1mm6Oz.js.br +0 -0
  74. package/web/build/client/_app/immutable/chunks/Bu1mm6Oz.js.gz +0 -0
  75. package/web/build/client/_app/immutable/chunks/DPfXzQnm.js +0 -2
  76. package/web/build/client/_app/immutable/chunks/DPfXzQnm.js.br +0 -0
  77. package/web/build/client/_app/immutable/chunks/DPfXzQnm.js.gz +0 -0
  78. package/web/build/client/_app/immutable/entry/app.CTgiuiU1.js.br +0 -0
  79. package/web/build/client/_app/immutable/entry/app.CTgiuiU1.js.gz +0 -0
  80. package/web/build/client/_app/immutable/entry/start.CFSl0kht.js +0 -1
  81. package/web/build/client/_app/immutable/entry/start.CFSl0kht.js.br +0 -0
  82. package/web/build/client/_app/immutable/entry/start.CFSl0kht.js.gz +0 -0
  83. package/web/build/client/_app/immutable/nodes/1.0PQZpSbJ.js.br +0 -2
  84. package/web/build/client/_app/immutable/nodes/1.0PQZpSbJ.js.gz +0 -0
  85. package/web/build/client/_app/immutable/nodes/2.DQaoQoy4.js +0 -10
  86. package/web/build/client/_app/immutable/nodes/2.DQaoQoy4.js.br +0 -0
  87. package/web/build/client/_app/immutable/nodes/2.DQaoQoy4.js.gz +0 -0
  88. package/web/build/client/_app/immutable/nodes/3.AciugOtL.js.br +0 -0
  89. package/web/build/client/_app/immutable/nodes/3.AciugOtL.js.gz +0 -0
  90. package/web/build/server/chunks/1-C2qlInYk.js +0 -7
  91. package/web/build/server/chunks/2-DyE177MK.js +0 -7
  92. package/web/build/server/chunks/2-DyE177MK.js.map +0 -1
  93. package/web/build/server/chunks/3-SO3atuWO.js +0 -7
  94. package/web/build/server/chunks/agent-sessions-kcUaLhK5.js.map +0 -1
  95. package/web/build/server/chunks/index.js-lMtDM8ZQ.js.map +0 -1
@@ -201,12 +201,15 @@ function defaultBase(listed, branch) {
201
201
  return listed.branches.find((b) => b !== branch) || preferred || '';
202
202
  }
203
203
 
204
- function branchOptions(listed) {
205
- return listed.branches.map((b) => ({
206
- value: b,
207
- label: b,
208
- hint: b === listed.current ? 'actual' : b === listed.defaultBase ? 'base típica' : undefined
209
- }));
204
+ function branchOptions(listed, exclude = '') {
205
+ const skip = String(exclude || '').trim();
206
+ return listed.branches
207
+ .filter((b) => !skip || b !== skip)
208
+ .map((b) => ({
209
+ value: b,
210
+ label: b,
211
+ hint: b === listed.current ? 'actual' : b === listed.defaultBase ? 'base típica' : undefined
212
+ }));
210
213
  }
211
214
 
212
215
  /** Selects solo con terminal interactiva. (`p.isTTY` de Clack es una función, no un booleano.) */
@@ -270,12 +273,18 @@ async function resolveBranchBase(launch, opts) {
270
273
  p.log.step(`Branch: ${branch}`);
271
274
  }
272
275
 
276
+ const baseOptions = branchOptions(launch.listed, branch);
277
+ if (!baseOptions.length) {
278
+ p.cancel(`No hay otra base disponible distinta de \`${branch}\`.`);
279
+ process.exit(1);
280
+ }
281
+
273
282
  let base = flagBase;
274
283
  if (!base) {
275
284
  base = ensureValue(
276
285
  await autocompleteEs({
277
286
  message: 'Base (merge-base)',
278
- options,
287
+ options: baseOptions,
279
288
  initialValue: defaultBase(launch.listed, branch) || undefined,
280
289
  maxItems: 12
281
290
  }),
@@ -290,7 +299,7 @@ async function resolveBranchBase(launch, opts) {
290
299
  base = ensureValue(
291
300
  await autocompleteEs({
292
301
  message: 'Elegí otra base',
293
- options,
302
+ options: baseOptions,
294
303
  initialValue: defaultBase(launch.listed, branch) || undefined,
295
304
  maxItems: 12
296
305
  }),
@@ -317,6 +326,49 @@ function buildOutputFilename(repo, branch, base) {
317
326
  }
318
327
  }
319
328
 
329
+ /**
330
+ * Precomputa el diff en CLI (spinner si hay Clack). Si el resultado no tiene archivos, sale con error.
331
+ * @returns {ReturnType<typeof prepareReviewPromptOpts>}
332
+ */
333
+ function prepareContextOrFail(launch, branch, base, outputFilename, { useClack }) {
334
+ const spin = useClack ? p.spinner() : null;
335
+ if (!useClack) console.log('Preparando el contexto…');
336
+ spin?.start('Preparando el contexto…');
337
+
338
+ /** @type {ReturnType<typeof prepareReviewPromptOpts>} */
339
+ let promptOpts = { outputFilename };
340
+ try {
341
+ promptOpts = prepareReviewPromptOpts({
342
+ repo: launch.repo,
343
+ branch,
344
+ base,
345
+ outputFilename
346
+ });
347
+ } catch (err) {
348
+ const msg = err instanceof Error ? err.message : String(err);
349
+ spin?.stop('No pude precomputar el diff');
350
+ if (useClack) p.log.warn(`No pude precomputar el diff: ${msg}`);
351
+ else console.warn('No pude precomputar el diff:', msg);
352
+ ensureReviewDir(launch.repo);
353
+ writeDiffCache(launch.repo, outputFilename, { branch, base });
354
+ return promptOpts;
355
+ }
356
+
357
+ const n = Array.isArray(promptOpts.files) ? promptOpts.files.length : 0;
358
+ if (n === 0) {
359
+ spin?.stop('Diff vacío');
360
+ const msg = `El diff entre \`${branch}\` y \`${base}\` está vacío: no hay nada que revisar.`;
361
+ if (useClack) p.cancel(msg);
362
+ else console.error(msg);
363
+ process.exit(1);
364
+ }
365
+
366
+ const done = `Contexto listo · ${n} archivo${n === 1 ? '' : 's'}`;
367
+ spin?.stop(done);
368
+ if (!useClack) console.log(done);
369
+ return promptOpts;
370
+ }
371
+
320
372
  function copyPromptOrWarn(prompt) {
321
373
  if (copyTextToClipboard(prompt)) return true;
322
374
  p.log.warn(
@@ -622,22 +674,9 @@ async function runUiMode(opts, launch, launchCwd) {
622
674
  if (launch) {
623
675
  console.log(`Repo: ${launch.repo}`);
624
676
  console.log(`Branch: ${branch} (base: ${base})`);
625
- let promptOpts = { outputFilename };
626
- try {
627
- promptOpts = prepareReviewPromptOpts({
628
- repo: launch.repo,
629
- branch,
630
- base,
631
- outputFilename
632
- });
633
- } catch (err) {
634
- console.warn(
635
- 'No pude precomputar el diff:',
636
- err instanceof Error ? err.message : err
637
- );
638
- ensureReviewDir(launch.repo);
639
- writeDiffCache(launch.repo, outputFilename, { branch, base });
640
- }
677
+ const promptOpts = prepareContextOrFail(launch, branch, base, outputFilename, {
678
+ useClack: false
679
+ });
641
680
  const prompt = buildPrompt(
642
681
  {
643
682
  source: 'local',
@@ -698,38 +737,13 @@ async function main() {
698
737
  const { branch, base, prompted } = await resolveBranchBase(launch, opts);
699
738
 
700
739
  if (branch === base) {
701
- // Ambos flags iguales / sin TTY: no se puede corregir en selects.
702
- console.log(
703
- `Branch y base son iguales (${branch}): el diff estaría vacío.\nAbro la UI para que elijas otra combinación.`
704
- );
705
- await startServer({
706
- host: opts.host,
707
- port: opts.port,
708
- open: opts.open,
709
- launchCwd,
710
- openPath: '/'
711
- });
712
- return;
740
+ const msg = `Branch y base son iguales (${branch}): no hay diff que revisar.`;
741
+ if (prompted) p.cancel(msg);
742
+ else console.error(msg);
743
+ process.exit(1);
713
744
  }
714
745
 
715
746
  const outputFilename = buildOutputFilename(launch.repo, branch, base);
716
- // El agente escribe en .diff-review/ (que se ignora sola) y lee de ahí el diff ya calculado.
717
- let promptOpts = { outputFilename };
718
- try {
719
- promptOpts = prepareReviewPromptOpts({
720
- repo: launch.repo,
721
- branch,
722
- base,
723
- outputFilename
724
- });
725
- } catch (err) {
726
- const msg = err instanceof Error ? err.message : String(err);
727
- if (prompted) p.log.warn(`No pude precomputar el diff: ${msg}`);
728
- else console.warn('No pude precomputar el diff:', msg);
729
- ensureReviewDir(launch.repo);
730
- writeDiffCache(launch.repo, outputFilename, { branch, base });
731
- }
732
-
733
747
  if (!prompted) {
734
748
  console.log(`Repo: ${launch.repo}`);
735
749
  console.log(`Branch: ${branch} (base: ${base})`);
@@ -737,6 +751,11 @@ async function main() {
737
751
  p.note(`${branch} → ${base}\n${outputRelPath(outputFilename)}`, 'Review');
738
752
  }
739
753
 
754
+ // El agente escribe en .diff-review/ (que se ignora sola) y lee de ahí el diff ya calculado.
755
+ const promptOpts = prepareContextOrFail(launch, branch, base, outputFilename, {
756
+ useClack: prompted || isInteractive()
757
+ });
758
+
740
759
  const prompt = buildPrompt(
741
760
  {
742
761
  source: 'local',
package/lib/prompt.mjs CHANGED
@@ -91,7 +91,7 @@ const RULES = `- Ids: themes use \`t1\`, \`t2\`, …; findings use \`f1\`, \`f2\
91
91
  function workflowLocal(base, branch, ctx = {}) {
92
92
  if (ctx.hasDiff) {
93
93
  return `Workflow:
94
- 1. Read the three-dot diff from the path given in "Precomputed git context" below. Do not re-run \`git diff\` unless that file is missing.
94
+ 1. The host already computed the three-dot diff and wrote it to disk (see "Precomputed git context"). Read that file with your file tools. Do not run \`git diff\`, \`git merge-base\`, or rebuild the patch yourself unless that file is missing.
95
95
  2. Read enough surrounding code (types, callers, tests) to judge behavior, not only the hunk lines.
96
96
  3. Emit the JSON file. Do not modify the repo.
97
97
  4. Validate it with the command in the output section. If it prints INVALID, follow "How to continue" and re-run until it prints OK.`;
@@ -115,7 +115,7 @@ function workflowUrl(base, branch, ctx = {}) {
115
115
  if (ctx.hasDiff) {
116
116
  return `Workflow:
117
117
  1. If the repo is not local, clone it (or use whatever access you have). Do not modify it.
118
- 2. Read the three-dot diff from the path given in "Precomputed git context" below. Do not re-run \`git diff\` unless that file is missing.
118
+ 2. The host already computed the three-dot diff and wrote it to disk (see "Precomputed git context"). Read that file with your file tools. Do not run \`git diff\`, \`git merge-base\`, or rebuild the patch yourself unless that file is missing.
119
119
  3. Read enough surrounding code (types, callers, tests) to judge behavior, not only the hunk lines.
120
120
  4. Emit the JSON file.
121
121
  5. Validate it with the command in the output section. If it prints INVALID, follow "How to continue" and re-run until it prints OK.`;
@@ -133,7 +133,7 @@ function workflowUrl(base, branch, ctx = {}) {
133
133
  function workflowLocalAcp(ctx = {}) {
134
134
  if (ctx.hasDiff) {
135
135
  return `Workflow:
136
- 1. Read the three-dot diff from the path given in "Precomputed git context" below. Do not re-run \`git diff\` unless that file is missing.
136
+ 1. The host already computed the three-dot diff and wrote it to disk (see "Precomputed git context"). Read that file with your file tools. Do not run \`git diff\`, \`git merge-base\`, or rebuild the patch yourself unless that file is missing.
137
137
  2. Read enough surrounding code (types, callers, tests) to judge behavior, not only the hunk lines.
138
138
  3. Write the JSON with your file Write/Edit tool (never shell redirection). Do not modify other repo files. The host validates when your turn ends — do not run the validate CLI.`;
139
139
  }
@@ -147,7 +147,7 @@ function workflowUrlAcp(ctx = {}) {
147
147
  if (ctx.hasDiff) {
148
148
  return `Workflow:
149
149
  1. If the repo is not local, clone it (or use whatever access you have). Do not modify it.
150
- 2. Read the three-dot diff from the path given in "Precomputed git context" below. Do not re-run \`git diff\` unless that file is missing.
150
+ 2. The host already computed the three-dot diff and wrote it to disk (see "Precomputed git context"). Read that file with your file tools. Do not run \`git diff\`, \`git merge-base\`, or rebuild the patch yourself unless that file is missing.
151
151
  3. Read enough surrounding code (types, callers, tests) to judge behavior, not only the hunk lines.
152
152
  4. Write the JSON with your file Write/Edit tool (never shell redirection). The host validates when your turn ends — do not run the validate CLI.`;
153
153
  }
@@ -197,13 +197,15 @@ export function outputSchemaBlock(meta) {
197
197
  * }} ctx
198
198
  */
199
199
  function formatPrecomputedContext(ctx) {
200
- const lines = ["Precomputed git context (do not rediscover):"];
200
+ const lines = [
201
+ "Precomputed git context (provided by the host — do not rediscover or recompute):",
202
+ ];
201
203
  if (ctx.mergeBase) lines.push(`- Merge-base SHA: \`${ctx.mergeBase}\``);
202
204
  if (ctx.branchSha) lines.push(`- Branch tip SHA: \`${ctx.branchSha}\``);
203
205
  if (ctx.baseSha) lines.push(`- Base tip SHA: \`${ctx.baseSha}\``);
204
206
  if (ctx.diffRelPath) {
205
207
  lines.push(
206
- `- Diff file (relative to repo root): \`${ctx.diffRelPath}\` — read this file; do not re-run \`git diff\` unless it is missing.`
208
+ `- Diff file (relative to repo root): \`${ctx.diffRelPath}\` — Read this file for the full patch. Do not run \`git diff\` / \`git merge-base\` to rebuild it unless the file is missing.`
207
209
  );
208
210
  }
209
211
  const files = Array.isArray(ctx.files) ? ctx.files : [];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jpkme/diff-review",
3
- "version": "0.1.13",
3
+ "version": "0.1.14",
4
4
  "description": "Local UI to prompt a coding agent for a branch review and browse the result.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1 @@
1
+ .live.svelte-18urbyr{background:radial-gradient(900px 420px at 8% -8%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), var(--bg);flex-direction:column;flex:1;min-height:0;display:flex}.bar.svelte-18urbyr{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg-elev) 90%, transparent);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.brand.svelte-18urbyr{align-items:center;gap:10px;min-width:0;font-size:14px;display:flex}.dot.svelte-18urbyr{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);border-radius:50%;flex:none}.pill.svelte-18urbyr{letter-spacing:.02em;border:1px solid var(--border);color:var(--text-dim);background:var(--bg-card);text-transform:lowercase;border-radius:0;padding:3px 9px;font-size:11px;font-weight:500}.pill.busy.svelte-18urbyr{border-color:color-mix(in srgb, var(--accent) 45%, var(--border));color:var(--accent);background:var(--accent-soft)}.pill.error.svelte-18urbyr{border-color:var(--danger-border,var(--danger));color:var(--danger);background:var(--danger-bg,transparent)}.pill.gone.svelte-18urbyr{color:var(--text-faint)}.actions.svelte-18urbyr{flex:none;align-items:center;gap:8px;display:flex}.ghost.svelte-18urbyr{border:1px solid var(--border);color:var(--text);font:inherit;cursor:pointer;background:0 0;padding:6px 11px;font-size:13px}.ghost.svelte-18urbyr:hover{border-color:var(--accent)}.body.svelte-18urbyr{flex:1;grid-template-columns:minmax(280px,320px) 1fr;gap:20px;min-height:0;padding:20px 24px 24px;display:grid}.card.svelte-18urbyr{border:1px solid var(--border);background:var(--bg-elev);border-radius:0;align-self:start;padding:16px 16px 14px}.fields.svelte-18urbyr{flex-direction:column;gap:14px;margin:0;display:flex}.fields.svelte-18urbyr dt:where(.svelte-18urbyr){text-transform:uppercase;letter-spacing:.04em;color:var(--text-faint);margin:0 0 3px;font-size:11px}.fields.svelte-18urbyr dd:where(.svelte-18urbyr){font-size:13px;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;color:var(--text);margin:0;overflow:hidden}.branch.svelte-18urbyr{color:var(--accent);font-weight:600}.arrow.svelte-18urbyr{color:var(--text-faint);margin:0 2px}.card-note.svelte-18urbyr{border-top:1px solid var(--border-soft,var(--border));color:var(--text-faint);margin:16px 0 0;padding-top:12px;font-size:12.5px;line-height:1.4}.stage.svelte-18urbyr{border:1px solid var(--border);background:var(--bg-elev);border-radius:0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.center.svelte-18urbyr{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:8px;padding:40px 24px;display:flex}.center.fail.svelte-18urbyr .title:where(.svelte-18urbyr){color:var(--danger)}.auth-actions.svelte-18urbyr{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:12px;display:flex}.primary.svelte-18urbyr{border:1px solid color-mix(in srgb, var(--accent) 55%, var(--border));background:var(--accent-soft);color:var(--accent);font:inherit;cursor:pointer;border-radius:0;padding:7px 14px;font-size:13px;font-weight:600}.primary.svelte-18urbyr:hover:not(:disabled){border-color:var(--accent)}.primary.svelte-18urbyr:disabled{opacity:.6;cursor:default}.auth-note.svelte-18urbyr{max-width:28rem;color:var(--text-dim);margin:10px 0 0;font-size:13px}.auth-err.svelte-18urbyr{max-width:28rem;color:var(--danger);margin:8px 0 0;font-size:13px}.spinner.svelte-18urbyr{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin-bottom:6px;animation:.8s linear infinite svelte-18urbyr-spin}@keyframes svelte-18urbyr-spin{to{transform:rotate(360deg)}}.title.svelte-18urbyr{margin:0;font-size:17px;font-weight:600}.detail.svelte-18urbyr{color:var(--text-dim);max-width:28rem;margin:0;font-size:14px}.hint.svelte-18urbyr{max-width:32rem;color:var(--text-faint);margin:6px 0 0;font-size:13px}.stage-header.svelte-18urbyr{border-bottom:1px solid var(--border);border-radius:0;flex:none;align-items:center;gap:8px;min-width:0;padding:10px 14px;display:flex}.stage-header.svelte-18urbyr strong:where(.svelte-18urbyr){font-size:13.5px;font-weight:650}.stage-header.svelte-18urbyr small:where(.svelte-18urbyr){font-family:var(--mono);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11.5px;overflow:hidden}.log-wrap.svelte-18urbyr{border-radius:0;flex-direction:column;flex:1;gap:10px;min-height:0;padding:12px 14px;display:flex}.log-wrap.svelte-18urbyr .log{flex:1;min-height:0}.stage-footer.svelte-18urbyr{border-top:1px solid var(--border);border-radius:0;flex-wrap:wrap;flex:none;align-items:center;gap:10px;min-width:0;margin-top:auto;padding-top:10px;display:flex}.stage-footer.svelte-18urbyr .trust{flex:0 auto;width:auto;min-width:0;max-width:100%}.footer-spacer.svelte-18urbyr{flex:8px;min-width:8px}.stage-footer.svelte-18urbyr .perm-actions{flex:none}.launch-banner.svelte-18urbyr{border:1px solid var(--border);background:color-mix(in srgb, var(--accent-soft) 70%, var(--bg-card));border-radius:0;align-items:flex-start;gap:12px;padding:10px 12px;display:flex}.launch-banner.svelte-18urbyr .title:where(.svelte-18urbyr){font-size:14px}.launch-banner.svelte-18urbyr .detail:where(.svelte-18urbyr){margin-top:2px;font-size:12.5px}.spinner.sm.svelte-18urbyr{flex:none;width:18px;height:18px;margin:2px 0 0}@media (width<=800px){.body.svelte-18urbyr{grid-template-rows:auto 1fr;grid-template-columns:1fr;gap:14px;padding:16px}.card.svelte-18urbyr{align-self:stretch}.stage.svelte-18urbyr{min-height:280px}}@media (width<=480px){.bar.svelte-18urbyr{flex-wrap:wrap;padding:10px 14px}.pill.svelte-18urbyr{font-size:10px}}.page.svelte-1uha8ag{flex-direction:column;min-height:100vh;display:flex}.page.live.svelte-1uha8ag{height:100vh;min-height:100vh;overflow:hidden}.diff-spinner.svelte-1uha8ag{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:0 auto;animation:.7s linear infinite svelte-1uha8ag-diff-spin}.cli-wait.svelte-1uha8ag{text-align:center;background:var(--bg);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:0;padding:32px 24px;display:flex}.cli-wait-title.svelte-1uha8ag{color:var(--text);margin:0;font-size:15px}.cli-wait-detail.svelte-1uha8ag{color:var(--text-faint);margin:0;font-size:13px}.cli-wait.svelte-1uha8ag .ghost:where(.svelte-1uha8ag){border:1px solid var(--border);color:var(--text-dim);cursor:pointer;background:0 0;margin-top:8px;padding:6px 12px;font-size:13px}@keyframes svelte-1uha8ag-diff-spin{to{transform:rotate(360deg)}}.toast.svelte-1uha8ag{z-index:50;border:1px solid var(--border);background:var(--bg-card);color:var(--text);padding:10px 16px;font-size:13px;position:fixed;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000029}.topbar.svelte-1uha8ag{border-bottom:1px solid var(--border);background:var(--header-bg);z-index:5;justify-content:space-between;align-items:center;gap:12px;padding:16px 28px;display:flex;position:sticky;top:0}.brand.svelte-1uha8ag{color:var(--text);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-dot.svelte-1uha8ag{background:linear-gradient(135deg,#6ea8fe,#c9a5ff);border-radius:50%;flex-shrink:0;width:9px;height:9px;box-shadow:0 0 12px #6ea8fe88}.title-block.svelte-1uha8ag{text-align:left;flex-direction:column;line-height:1.25;display:flex}.title-block.svelte-1uha8ag span:where(.svelte-1uha8ag):first-child{font-size:15px;font-weight:700}.title-block.svelte-1uha8ag small:where(.svelte-1uha8ag){color:var(--text-faint);font-size:11.5px;font-weight:400}.workspace.svelte-1uha8ag{flex:1;grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:start;gap:28px;width:100%;max-width:1280px;margin:0 auto;padding:22px 28px 40px;display:grid;overflow:auto}.setup.svelte-1uha8ag{min-width:0}h2.svelte-1uha8ag{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);margin:0 0 4px;font-size:13px;font-weight:600}.result-head.svelte-1uha8ag{margin-top:24px}.section-head.svelte-1uha8ag{justify-content:space-between;align-items:baseline;margin-top:22px;display:flex}.hint-text.svelte-1uha8ag{color:var(--text-dim);margin:0 0 12px;font-size:12.5px;line-height:1.5}.hint-text.svelte-1uha8ag code:where(.svelte-1uha8ag){font-family:var(--mono);color:var(--text);font-size:12px}.detect-banner.svelte-1uha8ag,.detect-wait.svelte-1uha8ag{color:var(--text-dim);margin:0 0 10px;font-size:13px}button.file-link.svelte-1uha8ag{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.error-line.svelte-1uha8ag{color:var(--danger);margin:0 0 10px;font-size:12px}.ok-line.svelte-1uha8ag{color:var(--ok);margin:0 0 10px;font-size:12px}.row.svelte-1uha8ag{flex-wrap:wrap;gap:8px;display:flex}.repo-setup.svelte-1uha8ag{flex-direction:column;gap:10px;display:flex}.field.svelte-1uha8ag{flex-direction:column;flex:1;gap:4px;min-width:180px;display:flex}.repo-field.svelte-1uha8ag{flex:none;width:100%;min-width:0}.branches-row.svelte-1uha8ag .field:where(.svelte-1uha8ag){flex:1;min-width:160px}.field.svelte-1uha8ag span:where(.svelte-1uha8ag){color:var(--text-faint);font-size:11px}.repo-row.svelte-1uha8ag{gap:6px;min-width:0;display:flex}.repo-row.svelte-1uha8ag input[type=text]:where(.svelte-1uha8ag){flex:1;min-width:0}.repo-row.svelte-1uha8ag button:where(.svelte-1uha8ag){flex-shrink:0}.source-toggle.svelte-1uha8ag{margin-bottom:10px}input[type=text].svelte-1uha8ag,select.svelte-1uha8ag{background:var(--bg-card);border:1px solid var(--border);flex:1;min-width:0;padding:9px 12px}button.svelte-1uha8ag{background:var(--bg-card);border:1px solid var(--border);color:var(--text);padding:9px 12px;font-size:12.5px}button.svelte-1uha8ag:hover:not(:disabled){border-color:var(--accent)}button.svelte-1uha8ag:disabled{opacity:.5;cursor:not-allowed}.mode-toggle.svelte-1uha8ag{border:1px solid var(--border);width:fit-content;margin-bottom:10px;display:flex;overflow:hidden}.mode-toggle.svelte-1uha8ag button:where(.svelte-1uha8ag){background:0 0;border:0;padding:6px 12px;font-size:12px}.mode-toggle.svelte-1uha8ag button:where(.svelte-1uha8ag)+button:where(.svelte-1uha8ag){border-left:1px solid var(--border)}.mode-toggle.svelte-1uha8ag button.on:where(.svelte-1uha8ag){background:var(--accent-soft)}textarea.svelte-1uha8ag{resize:vertical;background:var(--bg);border:1px solid var(--border);width:100%;height:220px;font-family:var(--mono);color:var(--text);padding:12px;font-size:12px;line-height:1.5}.loading-models.svelte-1uha8ag{color:var(--text-faint);font-weight:400}.models-error.svelte-1uha8ag{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}button.linkish.svelte-1uha8ag{color:var(--accent,#3b82f6);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.actions.svelte-1uha8ag{gap:8px;margin-top:10px;display:flex}button.primary.svelte-1uha8ag{background:var(--btn-primary-bg);border-color:var(--btn-primary-border);color:var(--btn-primary-text);font-weight:600}.coverage-box.svelte-1uha8ag{border:1px solid var(--border);border-left:3px solid var(--sev-med);background:var(--bg-card);flex-direction:column;gap:10px;margin-top:12px;padding:12px 14px;display:flex}.coverage-head.svelte-1uha8ag{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.coverage-head.svelte-1uha8ag strong:where(.svelte-1uha8ag){color:var(--sev-med);font-size:13px}.coverage-head.svelte-1uha8ag span:where(.svelte-1uha8ag){color:var(--text-faint);font-size:11.5px}.coverage-box.svelte-1uha8ag summary:where(.svelte-1uha8ag){color:var(--text-dim);cursor:pointer;font-size:12px}.coverage-list.svelte-1uha8ag{max-height:180px;font-family:var(--mono);color:var(--text-faint);margin:8px 0 0;padding-left:18px;font-size:11px;overflow:auto}.coverage-box.svelte-1uha8ag textarea:where(.svelte-1uha8ag){resize:vertical;background:var(--bg);border:1px solid var(--border);width:100%;font-family:var(--mono);color:var(--text);padding:10px;font-size:11.5px;line-height:1.5}.coverage-actions.svelte-1uha8ag{flex-wrap:wrap;gap:8px;display:flex}.dropzone.svelte-1uha8ag{border:1.5px dashed var(--border);text-align:center;background:var(--bg-elev);padding:26px;transition:background .15s,border-color .15s}.dropzone.drag.svelte-1uha8ag{border-color:var(--accent);background:var(--accent-soft)}.dropzone.busy.svelte-1uha8ag{opacity:.7}.dropzone.svelte-1uha8ag p:where(.svelte-1uha8ag){color:var(--text-dim);margin:0 0 6px;font-size:14px}.visually-hidden.svelte-1uha8ag{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.drop-errors.svelte-1uha8ag{background:var(--danger-bg);color:var(--danger);margin-top:10px;padding:10px 12px;font-size:12.5px}.drop-errors.svelte-1uha8ag strong:where(.svelte-1uha8ag){margin-bottom:4px;display:block}.drop-errors.svelte-1uha8ag ul:where(.svelte-1uha8ag){margin:0;padding-left:18px;line-height:1.6}.reports-col.svelte-1uha8ag{min-width:0;max-height:calc(100vh - 110px);position:sticky;top:88px;overflow:auto}.report-list.svelte-1uha8ag{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.report-item.svelte-1uha8ag{border:1px solid var(--border);background:var(--bg-card);align-items:stretch;display:flex;position:relative;overflow:visible}.report-item.svelte-1uha8ag:hover{background:var(--bg-card-hover);border-color:#33507a}.report-card.svelte-1uha8ag{min-width:0;color:var(--text);flex:1;padding:12px 8px 12px 14px;text-decoration:none;display:block}.report-actions.svelte-1uha8ag{flex-shrink:0;padding:8px 8px 0 0;position:relative}.kebab.svelte-1uha8ag{width:26px;height:26px;color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:0;display:inline-flex}.kebab.svelte-1uha8ag:hover{border-color:var(--border);color:var(--text);background:var(--bg)}.report-menu.svelte-1uha8ag{z-index:40;border:1px solid var(--border);background:var(--bg-card);width:148px;padding:4px;position:fixed;box-shadow:0 8px 24px #0000002e}.report-menu.svelte-1uha8ag .menu-item:where(.svelte-1uha8ag){width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:8px 10px;font-size:12.5px;display:block}.report-menu.svelte-1uha8ag .menu-item:where(.svelte-1uha8ag):hover{background:var(--accent-soft)}.report-menu.svelte-1uha8ag .menu-item.danger:where(.svelte-1uha8ag){color:var(--danger)}.report-top.svelte-1uha8ag{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.report-top.svelte-1uha8ag strong:where(.svelte-1uha8ag){font-size:14px}.report-prov.svelte-1uha8ag{min-width:0;color:var(--text-dim);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.report-prov.svelte-1uha8ag .prov-agent:where(.svelte-1uha8ag){text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.report-prov.svelte-1uha8ag .prov-sep:where(.svelte-1uha8ag){color:var(--text-faint);flex-shrink:0}.report-prov.svelte-1uha8ag .prov-model:where(.svelte-1uha8ag){min-width:0;font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:11.5px;overflow:hidden}.when.svelte-1uha8ag{color:var(--text-dim);font-size:12px}.report-meta.svelte-1uha8ag{color:var(--text-dim);justify-content:space-between;align-items:baseline;gap:12px;margin-top:6px;font-size:12px;display:flex}.report-base.svelte-1uha8ag{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.base-arrow.svelte-1uha8ag{color:var(--text-faint)}.report-counts.svelte-1uha8ag{flex-shrink:0;align-items:baseline;gap:8px;display:flex}.pill.svelte-1uha8ag{font-family:var(--mono);font-size:11px}.pill.bad.svelte-1uha8ag{color:var(--danger)}.report-intent.svelte-1uha8ag{color:var(--text-dim);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:8px 0 0;font-size:12.5px;line-height:1.45;display:-webkit-box;overflow:hidden}@media (width<=960px){.workspace.svelte-1uha8ag{grid-template-columns:1fr}.reports-col.svelte-1uha8ag{max-height:none;position:static}}
@@ -0,0 +1 @@
1
+ .agent-icon.svelte-1o6iyhy{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.agent-icon.svelte-1o6iyhy svg:where(.svelte-1o6iyhy){width:100%;height:100%;display:block}.agent-select.svelte-grhxa3{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-grhxa3{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.trigger.svelte-grhxa3:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-grhxa3:disabled{opacity:.5;cursor:not-allowed}.label.svelte-grhxa3{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.label.muted.svelte-grhxa3{color:var(--text-faint)}.caret.svelte-grhxa3{opacity:.7;color:var(--text-dim);flex-shrink:0}.agent-select.open.svelte-grhxa3 .caret:where(.svelte-grhxa3){transform:rotate(180deg)}.menu.svelte-grhxa3{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;gap:0;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 8px 24px #0000002e}.option.svelte-grhxa3{width:100%;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:8px;padding:8px 10px;display:flex}.option.svelte-grhxa3:hover,.option.selected.svelte-grhxa3{background:var(--accent-soft)}.theme-toggle.svelte-lu0t34{background:var(--bg-card);border:1px solid var(--border);width:30px;height:30px;color:var(--text-dim);flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:14px;display:flex}.theme-toggle.svelte-lu0t34:hover{border-color:var(--accent);color:var(--text)}.md.svelte-cxb0dt{color:var(--text);overflow-wrap:anywhere}.md.svelte-cxb0dt>:first-child{margin-top:0}.md.svelte-cxb0dt>:last-child{margin-bottom:0}.md.svelte-cxb0dt p,.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol,.md.svelte-cxb0dt pre,.md.svelte-cxb0dt blockquote{margin:.45em 0}.md.svelte-cxb0dt ul,.md.svelte-cxb0dt ol{padding-left:1.35em}.md.svelte-cxb0dt li{margin:.15em 0}.md.svelte-cxb0dt h1,.md.svelte-cxb0dt h2,.md.svelte-cxb0dt h3,.md.svelte-cxb0dt h4{margin:.7em 0 .35em;font-size:1em;font-weight:650;line-height:1.35}.md.svelte-cxb0dt h1{font-size:1.15em}.md.svelte-cxb0dt h2{font-size:1.08em}.md.svelte-cxb0dt a{color:var(--accent)}.md.svelte-cxb0dt code{font-family:var(--mono);background:var(--bg-card);border:1px solid var(--border-soft,var(--border));border-radius:4px;padding:.1em .35em;font-size:.92em}.md.svelte-cxb0dt pre{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:8px 10px;overflow-x:auto}.md.svelte-cxb0dt pre code{background:0 0;border:none;padding:0;font-size:12px;line-height:1.45}.md.svelte-cxb0dt blockquote{border-left:3px solid var(--border);color:var(--text-dim);padding-left:10px}.md.svelte-cxb0dt hr{border:none;border-top:1px solid var(--border);margin:.75em 0}.md.svelte-cxb0dt table{border-collapse:collapse;width:100%;font-size:12.5px}.md.svelte-cxb0dt th,.md.svelte-cxb0dt td{border:1px solid var(--border);text-align:left;padding:4px 8px}.md.svelte-cxb0dt th{background:var(--bg-card);font-weight:600}.perm-actions.svelte-1l4yk48{flex-wrap:wrap;gap:8px;display:flex}.perm-actions.svelte-1l4yk48 button:where(.svelte-1l4yk48){border:1px solid var(--border);background:var(--bg-elev);color:var(--text);border-radius:0;padding:5px 10px;font-size:12px}.perm-actions.svelte-1l4yk48 .allow:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .allow-all:where(.svelte-1l4yk48){background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.perm-actions.svelte-1l4yk48 .deny:where(.svelte-1l4yk48),.perm-actions.svelte-1l4yk48 .deny-all:where(.svelte-1l4yk48){background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.log.svelte-18syxl5{flex-direction:column;gap:6px;min-height:0;font-size:13px;line-height:1.45;display:flex;overflow-y:auto}p.svelte-18syxl5{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.user.svelte-18syxl5{background:var(--accent-soft);border:1px solid var(--btn-primary-border);border-radius:0;align-self:flex-end;max-width:90%;padding:6px 10px}.tag.svelte-18syxl5{text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:10px;display:block}.message.svelte-18syxl5{color:var(--text);max-width:100%}.thought.svelte-18syxl5{color:var(--text-faint);font-size:12px}.thought.svelte-18syxl5 summary:where(.svelte-18syxl5){cursor:pointer;font-style:italic}.thought.svelte-18syxl5 p:where(.svelte-18syxl5){max-height:200px;margin-top:4px;overflow-y:auto}.tool.svelte-18syxl5{font-family:var(--mono);color:var(--text-dim);gap:6px;font-size:12px;display:flex}.tool.svelte-18syxl5 .mark:where(.svelte-18syxl5){width:12px;color:var(--ok);flex:none}.tool.failed.svelte-18syxl5 .mark:where(.svelte-18syxl5),.tool.failed.svelte-18syxl5 .title:where(.svelte-18syxl5){color:var(--danger)}.tool.svelte-18syxl5 .title:where(.svelte-18syxl5){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.permission.svelte-18syxl5{color:var(--warn);font-size:12px}.permission.allowed.svelte-18syxl5{color:var(--ok)}.permission.pending.svelte-18syxl5{border:1px solid var(--warn);background:var(--bg-card);color:var(--text);border-radius:0;padding:8px 10px}.perm-head.svelte-18syxl5{text-transform:uppercase;letter-spacing:.05em;color:var(--warn);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;display:flex}.perm-head.svelte-18syxl5 .kind:where(.svelte-18syxl5){color:var(--text-faint);font-family:var(--mono);text-transform:none;letter-spacing:0}.perm-head.svelte-18syxl5 .counter:where(.svelte-18syxl5){font-variant-numeric:tabular-nums;color:var(--text-dim);text-transform:none;letter-spacing:0;font-family:var(--mono);margin-left:auto}.perm-head.svelte-18syxl5 .nav:where(.svelte-18syxl5){gap:2px;display:flex}.nav-btn.svelte-18syxl5{border:1px solid var(--border);background:var(--bg-elev);color:var(--text-dim);border-radius:0;padding:2px 6px;font-size:11px;line-height:1.2}.perm-subtitle.svelte-18syxl5{color:var(--text-faint);margin:4px 0 0;font-size:11.5px}.perm-title.svelte-18syxl5{font-family:var(--mono);margin:4px 0 0;font-size:12px}.perm-command.svelte-18syxl5{font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;background:var(--bg-elev);border:1px solid var(--border);border-radius:0;max-width:100%;margin:6px 0 0;padding:8px 10px;font-size:11.5px;line-height:1.4}.perm-command.collapsed.svelte-18syxl5{max-height:10.5em;overflow:hidden}.perm-expand.svelte-18syxl5{color:var(--accent);cursor:pointer;background:0 0;border:none;border-radius:0;margin:4px 0 0;padding:0;font-size:11.5px;text-decoration:underline}.perm-expand.svelte-18syxl5:hover{color:var(--text)}.perm-reason.svelte-18syxl5{color:var(--text-faint);margin:2px 0 0;font-size:11.5px}.permission.pending.svelte-18syxl5 .perm-actions{margin-top:8px}.permission.svelte-18syxl5 span:where(.svelte-18syxl5){color:var(--text-faint)}.plan.svelte-18syxl5{color:var(--text-dim);margin:0;padding-left:18px;font-size:12px}.plan.svelte-18syxl5 li.done:where(.svelte-18syxl5){color:var(--text-faint);text-decoration:line-through}.review.svelte-18syxl5{border-radius:0;padding:6px 10px;font-size:12px}.review.ok.svelte-18syxl5{background:var(--ok-bg);color:var(--ok)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5){border:1px solid var(--danger-border);background:var(--bg-elev);color:var(--text);cursor:pointer;border-radius:0;margin-top:8px;padding:5px 12px;font-size:12px}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):hover:not(:disabled){border-color:var(--accent)}.review.bad.svelte-18syxl5 .retry:where(.svelte-18syxl5):disabled{opacity:.55;cursor:default}.review.bad.svelte-18syxl5,.error.svelte-18syxl5{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--danger);border-radius:0;padding:6px 10px;font-size:12px}.review.svelte-18syxl5 ul:where(.svelte-18syxl5){margin:4px 0 0;padding-left:16px}.note.svelte-18syxl5{color:var(--text-faint);font-size:12px}.working.svelte-18syxl5{gap:4px;padding:4px 0;display:flex}.working.svelte-18syxl5 span:where(.svelte-18syxl5){background:var(--text-faint);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite svelte-18syxl5-blink}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(2){animation-delay:.2s}.working.svelte-18syxl5 span:where(.svelte-18syxl5):nth-child(3){animation-delay:.4s}@keyframes svelte-18syxl5-blink{0%,80%,to{opacity:.2}40%{opacity:1}}.trust.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-card);text-align:left;cursor:pointer;-webkit-user-select:none;user-select:none;width:100%;font:inherit;border-radius:0;flex:none;align-items:center;gap:8px;padding:5px 8px;display:flex}.trust.inline.svelte-3jjxns{width:auto;max-width:100%;padding:4px 8px}.trust.on.svelte-3jjxns{border-color:color-mix(in srgb, var(--ok) 45%, var(--border));background:var(--ok-bg)}.trust.svelte-3jjxns:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.switch.svelte-3jjxns{border:1px solid var(--border);background:var(--bg-elev);border-radius:999px;flex:none;width:30px;height:16px;transition:background .15s,border-color .15s;position:relative}.trust.on.svelte-3jjxns .switch:where(.svelte-3jjxns){background:var(--ok);border-color:var(--ok)}.knob.svelte-3jjxns{background:var(--text);opacity:.55;border-radius:50%;width:12px;height:12px;transition:transform .15s,background .15s,opacity .15s;position:absolute;top:1px;left:1px}.trust.on.svelte-3jjxns .knob:where(.svelte-3jjxns){background:var(--bg-card);opacity:1;transform:translate(14px)}.trust-text.svelte-3jjxns{flex-wrap:wrap;align-items:baseline;gap:4px;min-width:0;line-height:1.2;display:flex}.trust-text.svelte-3jjxns strong:where(.svelte-3jjxns){color:var(--text);font-size:12px;font-weight:600}.trust-text.svelte-3jjxns small:where(.svelte-3jjxns){color:var(--text-faint);font-size:11px}.model-select.svelte-9wkprr{flex:1;width:100%;min-width:0;position:relative}.trigger.svelte-9wkprr{box-sizing:border-box;background:var(--bg-card);border:1px solid var(--border);width:100%;min-width:0;min-height:38px;color:var(--text);font:inherit;font-size:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:9px 12px;display:flex}.trigger.svelte-9wkprr:hover:not(:disabled){border-color:var(--accent)}.trigger.svelte-9wkprr:disabled{opacity:.5;cursor:not-allowed}.title.svelte-9wkprr{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.title.muted.svelte-9wkprr{color:var(--text-faint)}.badges.svelte-9wkprr{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;gap:4px;max-width:45%;display:flex}.badge.svelte-9wkprr{border:1px solid var(--border);background:var(--bg-elev,var(--bg-card));color:var(--text-dim,var(--text-faint));font-size:10px;line-height:1.35;font-family:var(--mono,ui-monospace, monospace);white-space:nowrap;border-radius:0;padding:0 5px}.hint.svelte-9wkprr{color:var(--text-faint);font-size:10px;font-family:var(--mono,ui-monospace, monospace);flex-shrink:0}.caret.svelte-9wkprr{opacity:.7;color:var(--text-dim);flex-shrink:0}.model-select.open.svelte-9wkprr .caret:where(.svelte-9wkprr){transform:rotate(180deg)}.menu.svelte-9wkprr{z-index:40;border:1px solid var(--border);background:var(--bg-card);flex-direction:column;max-height:min(360px,50vh);padding:4px;display:flex;position:absolute;inset:calc(100% + 4px) 0 auto;overflow:auto;box-shadow:0 8px 24px #0000002e}.model-select.drop-up.svelte-9wkprr .menu:where(.svelte-9wkprr){top:auto;bottom:calc(100% + 4px);box-shadow:0 -8px 24px #0000002e}.option.svelte-9wkprr{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:2px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.option.svelte-9wkprr:hover,.option.selected.svelte-9wkprr{background:var(--accent-soft)}
@@ -0,0 +1,2 @@
1
+ import{F as e,J as t,M as n,N as r,P as i,et as a,n as o,q as s,t as c}from"./D8WOD_eS.js";var l=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},u=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},d=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function f(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function p(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function m(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function h({href:e}){return e.split(`#`)[0]}function g(){}function _(e){let t=!1,n;return()=>t?n:(t=!0,n=e())}function v(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}var ee=new TextEncoder;function te(e){let t=``;for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return btoa(t)}function y(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var ne=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&b.delete(ae(e)),ne(e,t));var b=new Map;function re(e,t){let n=ae(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=y(e));let i=r.getAttribute(`data-ttl`);return i&&b.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function ie(e,t,n){if(b.size>0){let t=ae(e,n),r=b.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);b.delete(t)}}return window.fetch(t,n)}function ae(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${v(...e)}"]`}return n}var oe=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,se=/^\/\((?:[^)]+)\)$/;function ce(e){let t=[];return{pattern:e===`/`||se.test(e)?/^\/$/:RegExp(`^${ue(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return fe(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return fe(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=oe.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return fe(e)}).join(``)}).join(``)}/?$`),params:t}}function le(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ue(e){return e.slice(1).split(`/`).filter(le)}function de(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function fe(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}var pe=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function me(e,t){let n=ue(e),r=e!=`/`&&e.endsWith(`/`);return`/`+n.map(n=>n.replace(pe,(n,r,i,a)=>{let o=t[a];if(!o){if(r||i&&o!==void 0)return``;throw Error(`Missing parameter '${a}' in route ${e}`)}if(o.startsWith(`/`)||o.endsWith(`/`))throw Error(`Parameter '${a}' in route ${e} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return o})).filter(Boolean).join(`/`)+(r?`/`:``)}function he({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=ce(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return de(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function ge(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function _e(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var x=globalThis.__sveltekit_14zvmq9?.base??``,ve=globalThis.__sveltekit_14zvmq9?.assets??x??``,ye=`_app`,be=``;function xe(...e){if(!e[0].startsWith(`/`))throw Error(`Cannot use \`resolve(...)\` with a non-absolute pathname or route ID (got "${e[0]}"). \`resolve\` is only for internal pathnames and route IDs; external URLs should be used directly.`);return x+be+me(e[0],e[1])}var Se=`1792444085246`,Ce=`sveltekit:snapshot`,we=`sveltekit:scroll`,Te=`sveltekit:states`,Ee=`sveltekit:pageurl`,S=`sveltekit:history`,C=`sveltekit:navigation`,w={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},T=location.origin;function De(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function E(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var Oe={...w,"":w.hover};function ke(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ae(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=ke(e)}}function je(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||Ie(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===T&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function Me(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,`preload-code`)),i===null&&(i=D(s,`preload-data`)),t===null&&(t=D(s,`keepfocus`)),n===null&&(n=D(s,`noscroll`)),a===null&&(a=D(s,`reload`)),o===null&&(o=D(s,`replacestate`)),s=ke(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:Oe[r??`off`],preload_data:Oe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Ne(e){let t=a(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:r,set:i,subscribe:o}}var Pe={v:g};function Fe(){let{set:e,subscribe:t}=a(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${ve}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==Se;return n&&(e(!0),Pe.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function Ie(e,t,n){return e.origin!==T||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Le(e){}var Re=2**32-1,ze=Re-1,O=class extends Error{constructor(e,t,n,r){super(e),this.name=`DevalueError`,this.path=t.join(``),this.value=n,this.root=r}},Be=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Ve(e){let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===Be}function He(e){return Object.prototype.toString.call(e).slice(8,-1)}function Ue(e){switch(e){case`"`:return`\\"`;case`<`:return`\\u003C`;case`\\`:return`\\\\`;case`
2
+ `:return`\\n`;case`\r`:return`\\r`;case` `:return`\\t`;case`\b`:return`\\b`;case`\f`:return`\\f`;case`\u2028`:return`\\u2028`;case`\u2029`:return`\\u2029`;default:return e<` `?`\\u${e.charCodeAt(0).toString(16).padStart(4,`0`)}`:``}}function k(e){let t=``,n=0,r=e.length;for(let i=0;i<r;i+=1){let r=e[i],a=Ue(r);a&&(t+=e.slice(n,i)+a,n=i+1)}return`"${n===0?e:t+e.slice(n)}"`}function We(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.getOwnPropertyDescriptor(e,t).enumerable)}var Ge=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/;function Ke(e){return Ge.test(e)?`.`+e:`[`+JSON.stringify(e)+`]`}function qe(e){return!(!Number.isInteger(e)||e<0||e>ze)}function Je(e){return!(!Number.isInteger(e)||e<0||e>Re)}function Ye(e){if(e.length===0||e.length>1&&e.charCodeAt(0)===48)return!1;for(let t=0;t<e.length;t++){let n=e.charCodeAt(t);if(n<48||n>57)return!1}return qe(+e)}function Xe(e){for(var t=e.length-1;t>=0&&!Ye(e[t]);t--);return t+1}function Ze(e){let t=Object.keys(e);return t.length=Xe(t),t}function Qe(e){return new Uint8Array(e).toBase64()}function $e(e){return Uint8Array.fromBase64(e).buffer}function et(e){return Buffer.from(e).toString(`base64`)}function tt(e){return Uint8Array.from(Buffer.from(e,`base64`)).buffer}function nt(e){let t=new Uint8Array(e),n=``,r=32768;for(let e=0;e<t.length;e+=r){let i=t.subarray(e,e+r);n+=String.fromCharCode.apply(null,i)}return btoa(n)}function rt(e){let t=atob(e),n=t.length,r=new Uint8Array(n);for(let e=0;e<n;e++)r[e]=t.charCodeAt(e);return r.buffer}var it=typeof Uint8Array.fromBase64==`function`,at=typeof process==`object`&&process.versions?.node!==void 0,ot=it?Qe:at?et:nt,st=it?$e:at?tt:rt;function ct(e,t){if(!t)return e;let n={};for(let r of Object.keys(e))n[r]=t[r]??e[r];return n}var lt=Object.freeze({kind:`not-plain`}),ut=Object.freeze({kind:`symbol-keys`}),dt=Object.freeze({identify:e=>e,typeOf:e=>e===null?`null`:typeof e,toPrimitive:e=>e,tagOf:e=>He(e),isThenable:e=>typeof e.then==`function`,toPromise:e=>Promise.resolve(e),unbox:e=>e.valueOf(),toISOString:e=>isNaN(e.getDate())?``:e.toISOString(),toStringValue:e=>e.toString(),regExpInfo:e=>({source:e.source,flags:e.flags}),valuesOf:e=>e,entriesOf:e=>e,viewInfo:e=>({buffer:e.buffer,byteOffset:e.byteOffset,byteLength:e.byteLength,length:e.length,bufferByteLength:e.buffer.byteLength}),toArrayBuffer:e=>e,lengthOf:e=>e.length,hasOwn:(e,t)=>Object.hasOwn(e,t),indicesOf:e=>Ze(e),shapeOf:e=>Ve(e)?We(e).length>0?ut:{kind:Object.getPrototypeOf(e)===null?`null-proto`:`plain`,keys:Object.keys(e)}:lt,get:(e,t)=>e[t]}),ft=Object.freeze({fromPrimitive:e=>e,fromISOString:e=>new Date(e),fromStringValue:(e,t)=>e===`URL`?new URL(t):e===`URLSearchParams`?new URLSearchParams(t):Temporal[e.slice(9)].from(t),fromArrayBuffer:e=>e,fromRegExpInfo:(e,t)=>new RegExp(e,t),fromViewInfo:(e,t,n,r)=>{let i=globalThis[e];return n===void 0?new i(t):new i(t,n,r)},box:e=>Object(e),createArray:e=>Array(e),createSparseArray:e=>{let t=[];return t[ze]=void 0,delete t[ze],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,n)=>{e[t]=n},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,n)=>{e.set(t,n)}});function pt(e,t,n){let r=ht(!1,e,t,n);return typeof r==`string`?r:`[${r.join(`,`)}]`}async function mt(e,t,n){let r=ht(!0,e,t,n);if(typeof r==`string`)return r;let i=`[`;for(let e=0;e<r.length;e+=1){let t=r[e];if(typeof t!=`string`&&(await t,t=r[e],e===0&&t<0))return`${t}`;i+=t,e<r.length-1&&(i+=`,`)}return i+=`]`,i}function ht(e,t,n,r){let i=ct(dt,r?.operations),a=[],o=new Map,s=[];if(n)for(let e of Object.getOwnPropertyNames(n))s.push({key:e,fn:n[e]});let c=[],l=0;function u(n,r){let d=i.typeOf(n);if(d===`undefined`)return-1;let f;if(d===`number`){if(f=i.toPrimitive(n),Number.isNaN(f))return-3;if(f===1/0)return-4;if(f===-1/0)return-5;if(f===0&&1/f<0)return-6}let p=i.identify(n);if(o.has(p))return o.get(p);r??=l++,o.set(p,r);for(let{key:e,fn:t}of s){let i=t(n);if(i)return a[r]=`["${e}",${u(i)}]`,r}if(d===`function`)throw new O(`Cannot stringify a function`,c,n,t);if(d===`symbol`)throw new O(`Cannot stringify a Symbol primitive`,c,n,t);let m=``;if(d!==`object`)m=gt(d===`number`?f:i.toPrimitive(n));else if(i.isThenable(n)){if(!e)throw new O(`Cannot stringify a Promise or thenable — use stringifyAsync instead`,c,n,t);m=i.toPromise(n).then(e=>{let t=u(e,r);t<0&&(a[r]=t)})}else{let e=i.tagOf(n);switch(e){case`Number`:case`String`:case`Boolean`:case`BigInt`:m=`["Object",${u(i.unbox(n))}]`;break;case`Date`:m=`["Date","${i.toISOString(n)}"]`;break;case`URL`:m=`["URL",${k(i.toStringValue(n))}]`;break;case`URLSearchParams`:m=`["URLSearchParams",${k(i.toStringValue(n))}]`;break;case`RegExp`:let{source:r,flags:a}=i.regExpInfo(n);m=a?`["RegExp",${k(r)},"${a}"]`:`["RegExp",${k(r)}]`;break;case`Array`:{let e=!1,t=i.lengthOf(n);m=`[`;for(let r=0;r<t;r+=1)if(r>0&&(m+=`,`),i.hasOwn(n,r))c.push(`[${r}]`),m+=u(i.get(n,r)),c.pop();else if(e)m+=-2;else{let r=i.indicesOf(n),a=r.length,o=String(t).length;if((t-a)*3>4+o+a*(o+1)){m=`[-7,`+t;for(let e=0;e<r.length;e++){let t=r[e];c.push(`[${t}]`),m+=`,`+t+`,`+u(i.get(n,t)),c.pop()}break}else e=!0,m+=-2}m+=`]`;break}case`Set`:m=`["Set"`;for(let e of i.valuesOf(n))m+=`,${u(e)}`;m+=`]`;break;case`Map`:m=`["Map"`;for(let[e,t]of i.entriesOf(n)){let n=i.typeOf(e),r=n!==`object`&&n!==`function`&&n!==`symbol`;c.push(`.get(${r?gt(i.toPrimitive(e)):`...`})`),m+=`,${u(e)},${u(t)}`,c.pop()}m+=`]`;break;case`Int8Array`:case`Uint8Array`:case`Uint8ClampedArray`:case`Int16Array`:case`Uint16Array`:case`Float16Array`:case`Int32Array`:case`Uint32Array`:case`Float32Array`:case`Float64Array`:case`BigInt64Array`:case`BigUint64Array`:{let t=i.viewInfo(n);m=`["`+e+`",`+u(t.buffer),t.byteLength!==t.bufferByteLength&&(m+=`,${t.byteOffset},${t.length}`),m+=`]`;break}case`DataView`:{let t=i.viewInfo(n);m=`["`+e+`",`+u(t.buffer),t.byteLength!==t.bufferByteLength&&(m+=`,${t.byteOffset},${t.byteLength}`),m+=`]`;break}case`ArrayBuffer`:m=`["ArrayBuffer","${ot(i.toArrayBuffer(n))}"]`;break;case`Temporal.Duration`:case`Temporal.Instant`:case`Temporal.PlainDate`:case`Temporal.PlainTime`:case`Temporal.PlainDateTime`:case`Temporal.PlainMonthDay`:case`Temporal.PlainYearMonth`:case`Temporal.ZonedDateTime`:m=`["${e}",${k(i.toStringValue(n))}]`;break;default:{let e=i.shapeOf(n);if(e.kind===`not-plain`)throw new O(`Cannot stringify arbitrary non-POJOs`,c,n,t);if(e.kind===`symbol-keys`)throw new O(`Cannot stringify POJOs with symbolic keys`,c,n,t);if(e.kind===`null-proto`){m=`["null"`;for(let r of e.keys){if(r===`__proto__`)throw new O(`Cannot stringify objects with __proto__ keys`,c,n,t);c.push(Ke(r)),m+=`,${k(r)},${u(i.get(n,r))}`,c.pop()}m+=`]`}else{m=`{`;let r=!1;for(let a of e.keys){if(a===`__proto__`)throw new O(`Cannot stringify objects with __proto__ keys`,c,n,t);r&&(m+=`,`),r=!0,c.push(Ke(a)),m+=`${k(a)}:${u(i.get(n,a))}`,c.pop()}m+=`}`}}}}return a[r]=m,r}let d=u(t);return d<0?`${d}`:a}function gt(e){let t=typeof e;return t===`string`?k(e):e===void 0?`-1`:e===0&&1/e<0?`-6`:t===`bigint`?`["BigInt","${e}"]`:String(e)}var _t=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[..._t],[...new Set([..._t])];function vt(e){return e.filter(e=>e!=null)}var yt=Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function bt(e){if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||Object.getPrototypeOf(t)===null||Object.getOwnPropertyNames(t).sort().join(`\0`)===yt}function xt(e,t){let n=Object.getPrototypeOf(e)===null?Object.create(null):{};t.set(e,n),Object.defineProperty(n,Ot,{value:!0});for(let r of Object.keys(e).sort()){let i=e[r];Object.defineProperty(n,r,{value:t.get(i)??i,enumerable:!0,configurable:!0,writable:!0})}return n}var St=`__skrao`,Ct=`__skram`,wt=`__skras`,Tt=`__skraf`,Et=`__skrap`,Dt=`__skrag`,Ot=Symbol(St);function kt(e,t,n){let r={[Dt]:e=>{if(e instanceof RegExp)throw Error(`Regular expressions are not valid remote function arguments`)}};t&&(r[Ct]=e=>{if(!(e instanceof Map))return;let t=[];for(let[n,r]of e)t.push([a(n),a(r)]);return t.sort(([e,t],[n,r])=>e<n?-1:e>n?1:t<r?-1:+(t>r))},r[wt]=e=>{if(!(e instanceof Set))return;let t=[];for(let n of e)t.push(a(n));return t.sort(),t},r[St]=e=>{if(bt(e)&&!Object.hasOwn(e,Ot))return n.has(e)?n.get(e):xt(e,n)});let i={...Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t.encode])),...r},a=e=>pt(e,i);return i}function At(e,t){return e===void 0?``:Mt(pt(e,kt(t,!0,new Map)))}async function jt(e,t){if(e===void 0)return``;let n=kt(t,!1,new Map),r=new Set;return n[Tt]=e=>{if(e instanceof File){let t=e.arrayBuffer().then(t=>({data:t,lastModified:e.lastModified,name:e.name,size:e.size,type:e.type}));return r.add(t),t}},n[Et]=e=>{if(e instanceof Promise&&!r.has(e))throw Error(`Promises are not valid remote function arguments`)},Mt(await mt(e,n))}function Mt(e){return te(ee.encode(e)).replaceAll(`=`,``).replaceAll(`+`,`-`).replaceAll(`/`,`_`)}function A(e,t){return e+`/`+t}function Nt(e){let t=e.lastIndexOf(`/`);if(t===-1)throw Error(`Invalid remote key: ${e}`);return{id:e.slice(0,t),payload:e.slice(t+1)}}function Pt(e){return e instanceof l||e instanceof d?e.status:500}function Ft(e){return e instanceof d?e.text:`Internal Error`}var j,M,It,Lt=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.toString()),Rt=`a:`;Lt?(j={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Rt)},M={current:null},It={current:!1}):(j=new class{#e=t({});get data(){return n(this.#e)}set data(e){s(this.#e,e)}#t=t(null);get form(){return n(this.#t)}set form(e){s(this.#t,e)}#n=t(null);get error(){return n(this.#n)}set error(e){s(this.#n,e)}#r=t({});get params(){return n(this.#r)}set params(e){s(this.#r,e)}#i=t({id:null});get route(){return n(this.#i)}set route(e){s(this.#i,e)}#a=t({});get state(){return n(this.#a)}set state(e){s(this.#a,e)}#o=t(-1);get status(){return n(this.#o)}set status(e){s(this.#o,e)}#s=t(new URL(Rt));get url(){return n(this.#s)}set url(e){s(this.#s,e)}},M=new class{#e=t(null);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},It=new class{#e=t(!1);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},Pe.v=()=>It.current=!0);function zt(e){Object.assign(j,e)}var{onMount:Bt,tick:Vt}=c,Ht=e??(e=>e()),Ut=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),N=null,P=ge(`sveltekit:scroll`)??{},F=ge(`sveltekit:snapshot`)??{},I={url:Ne({}),page:Ne({}),navigating:a(null),updated:Fe()};function Wt(e){P[e]=E()}function Gt(e,t){let n=e+1;for(;P[n];)delete P[n],n+=1;for(n=t+1;F[n];)delete F[n],n+=1}function L(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(g)}async function Kt(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(x||`/`);e&&await e.update()}}var qt,Jt,R,z,Yt,B,V={},Xt={},Zt=[],Qt=[],H=null;function $t(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var en=new Map,tn=new Set,nn=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},rn=!1,an=!1,on=!0,G=!1,K=!1,sn=!1,cn=!1,ln,q,J,Y,un=new Set,dn=new Map,fn=new Map;async function pn(e,t,n){if(globalThis.__sveltekit_14zvmq9.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_14zvmq9.data;for(let t in e)V[t]=e[t];for(let e in n)V[e]=n[e];for(let e in r)V[e]=r[e];for(let e in t)Xt[e]=t[e]}document.URL!==location.href&&(location.href=location.href),B=e,await e.hooks.init?.(),qt=he(e),z=document.documentElement,Yt=t,Jt=e.nodes[0],R=e.nodes[1],Jt(),R(),q=history.state?.[S],J=history.state?.[C],q||(q=J=Date.now(),history.replaceState({...history.state,[S]:q,[C]:J},``));let r=P[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await Hn(Yt,n)):(await Z({type:`enter`,url:De(B.hash?Jn(new URL(location.href)):location.href),replace_state:!0}),i()),Vn()}function mn(){Zt.length=0,cn=!1}function hn(e){Qt.some(e=>e?.snapshot)&&(F[e]=Qt.map(e=>e?.snapshot?.capture()))}function gn(e){F[e]?.forEach((e,t)=>{Qt[t]?.snapshot?.restore(e)})}function _n(){Wt(q),_e(we,P),hn(J),_e(Ce,F)}async function vn(e,t,n,r){let a,o;t.invalidateAll&&$t(),await Z({type:`goto`,url:De(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{if(t.invalidateAll){cn=!0,a=new Set;for(let[e,t]of dn)for(let[n,r]of t)r.resource?.reset(),a.add(A(e,n));o=new Set;for(let[e,t]of fn)for(let n of t.keys())o.add(A(e,n))}t.invalidate&&t.invalidate.forEach(zn)}}),t.invalidateAll&&i().then(i).then(()=>{for(let[e,t]of dn)for(let[n,{resource:r}]of t)a?.has(A(e,n))&&r.start();for(let[e,t]of fn)for(let[n,{resource:r}]of t)o?.has(A(e,n))&&r.reconnect()})}async function yn(e){if(e.id!==H?.id){$t();let t={};un.add(t),H={id:e.id,token:t,promise:kn({...e,preload:t}).then(e=>(un.delete(t),e.type===`loaded`&&e.state.error&&$t(),e)),fork:null}}return H.promise}async function bn(e){let t=(await Nn(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function xn(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},zt(e.props.page),ln=new B.root({target:t,props:{...e.props,stores:I,components:Qt},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:P[q]??E()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}gn(J),an=!0}async function Sn({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(x&&(e.pathname===x||e.pathname===x+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=f(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:vt(n).map(e=>e.node.component),page:qn(j)}};s!==void 0&&(l.props.form=s);let u={},d=!j,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(d=!0),t&&(u={...u,...t.data},d&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==j.form||d)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:d?u:j.data}),l}async function Cn({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function wn(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:an?ie(r,i.href,t):re(r,t)}}function Tn(e,t,n,r,i,a){if(cn)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(Zt.some(t=>t(new URL(e))))return!0;return!1}function En(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Dn(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function On({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:qn(j),constructors:[]}}}async function kn({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return un.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:c}=i,d=[...s,c];o.forEach(e=>e?.().catch(g)),d.forEach(e=>e?.[1]().catch(g));let f=W.url?e!==X(W.url):!1,p=W.route?i.id!==W.route.id:!1,m=Dn(W.url,n),h=!1,_=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!Tn(h,p,f,m,a.universal?.uses,r)?a:(h=!0,Cn({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await _[n])?.data);return e},server_data_node:En(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of _)e.catch(g);let v=[];for(let e=0;e<d.length;e+=1)if(d[e])try{v.push(await _[e])}catch(t){if(t instanceof u)return{type:`redirect`,location:t.location};if(a&&un.has(a))return On({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=Pt(t),c;if(t instanceof l)c=t.body;else{if(await I.updated.check())return await Kt(),await L(n);c=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await An(e,v,o);return d?Sn({url:n,params:r,branch:v.slice(0,d.idx).concat(d.node),errors:o,status:s,error:c,route:i}):await In(n,{id:i.id},c,s)}else v.push(void 0);return Sn({url:n,params:r,branch:v,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function An(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function jn({status:e,error:t,url:n,route:r}){let i={};try{return Sn({url:n,params:i,branch:[await Cn({loader:Jt,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:En(null)}),{node:await R(),loader:R,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof u){await vn(new URL(t.location,location.href),{},0);return}let a=await B.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Mn(e){let t=e.href;if(en.has(t))return en.get(t);let n;try{let r=(async()=>{let t=await B.hooks.reroute({url:new URL(e),fetch:async(t,n)=>wn(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);B.hash?n.hash=t:n.pathname=t,t=n}return t})();en.set(t,r),n=await r}catch{en.delete(t);return}return n}async function Nn(e,t){if(e&&!Ie(e,x,B.hash)){let n=await Mn(e);if(!n)return;let r=Pn(n);for(let n of qt){let i=n.exec(r);if(i)return{id:X(e),invalidating:t,route:n,params:m(i),url:e}}}}function Pn(e){return p(B.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(x.length))||`/`}function X(e){return(B.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function Fn({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Kn(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||tn.forEach(e=>e(c)),o?null:s}async function Z({type:e,url:t,popped:n,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:u={},accept:f=g,block:p=g,event:m}){let h=Y;Y=u;let _=await Nn(t,!1),v=e===`enter`?Kn(W,_,t,e):Fn({url:t,type:e,delta:n?.delta,intent:_,scroll:n?.scroll,event:m});if(!v){p(),Y===u&&(Y=h);return}let ee=q,te=J;f(),G=!0,an&&v.navigation.type!==`enter`&&I.navigating.set(M.current=v.navigation);let y=_&&await kn(_);if(!y){if(Ie(t,x,B.hash))return await L(t,s);y=await In(t,{id:null},await $(new d(404,`Not Found`,`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,s)}if(t=_?.url||t,Y!==u){v.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:e,url:new URL(y.location,t),popped:n,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:u}),v.fulfil(void 0);return}if(y=await jn({status:500,error:await $(Error(`Redirect loop`),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await I.updated.check())return await Kt(),await L(t,s);if(mn(),Wt(ee),hn(te),y.props.page.url.pathname!==t.pathname&&(t.pathname=y.props.page.url.pathname),c=n?n.state:c,!n){let e=+!s,n={[S]:q+=e,[C]:J+=e,[Te]:c};(s?history.replaceState:history.pushState).call(history,n,``,t),s||Gt(q,J)}let ne=_&&H?.id===_.id?H.fork:null;H?.fork&&!ne?$t():(H=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let b;if(an){let e=(await Promise.all(Array.from(nn,e=>e(v.navigation)))).filter(e=>typeof e==`function`);if(e.length>0){function t(){e.forEach(e=>{U.delete(e)})}e.push(t),e.forEach(e=>{U.add(e)})}let n=v.navigation.to;W={...y.state,nav:{params:n.params,route:n.route,url:n.url}},y.props.page&&(y.props.page.url=t),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=ne&&await ne;i?b=i.commit():(N=null,ln.$set(y.props),N&&Object.assign(y.props.page,N),zt(y.props.page),b=r?.()),sn=!0}else await xn(y,Yt,!1);let{activeElement:re}=document;if(await b,await i(),await i(),Y!==u){v.reject(Error(`navigation aborted`));return}y.props.page&&N&&Object.assign(y.props.page,N);let ie=null;if(on){let e=n?n.scroll:o?E():null;e?scrollTo(e.x,e.y):(ie=t.hash&&document.getElementById(Yn(t)))?ie.scrollIntoView():scrollTo(0,0)}let ae=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ae&&Gn(t,!ie),on=!0,G=!1,v.fulfil(void 0),v.navigation.to&&(v.navigation.to.scroll=E()),U.forEach(e=>e(v.navigation)),e===`popstate`&&gn(J),I.navigating.set(M.current=null)}async function In(e,t,n,r,i){return e.origin===T&&e.pathname===location.pathname&&!rn?await jn({status:r,error:n,url:e,route:t}):await L(e,i)}var Q={element:void 0,href:void 0};function Ln(){let e,t;z.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,w.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],w.tap)}z.addEventListener(`mousedown`,n),z.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(bn(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ae(e,z),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=je(r,x,B.hash);if(o||s)return;let c=Me(r),l=a&&X(W.url)===X(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=w.tap;let e=await Nn(a,!1);if(!e)return;yn(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,bn(a))}function a(){r.disconnect();for(let e of z.querySelectorAll(`a`)){let{url:t,external:n,download:i}=je(e,x,B.hash);if(n||i)continue;let a=Me(e);a.reload||(a.preload_code===w.viewport&&r.observe(e),a.preload_code===w.eager&&bn(t))}}U.add(a),a()}function $(e,t){if(e instanceof l)return e.body;let n=Pt(e),r=Ft(e);return B.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Rn(e,t={}){return e=new URL(De(e)),e.origin===T?vn(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function zn(e){if(typeof e==`function`)Zt.push(e);else{let{href:t}=new URL(e,location.href);Zt.push(e=>e.href===t)}}function Bn(e,t){let n={[S]:q,[C]:J,[Ee]:j.url.href,[Te]:t};history.replaceState(n,``,De(e)),j.state=t,ln.$set({page:Ht(()=>qn(j))})}function Vn(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(_n(),!G){let e=Kn(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};tn.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&_n()}),navigator.connection?.saveData||Ln(),z.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ae(t.composedPath()[0],z);if(!n)return;let{url:r,external:i,target:a,download:o}=je(n,x,B.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=Me(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(B.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===h(location);if(i||s.reload&&(!u||!l)){Fn({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,Wt(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),z.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(Ie(r,x,!1))return;let i=e.target,a=Me(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Wn)if(t.state?.[`sveltekit:history`]){let n=t.state[S];if(Y={},n===q)return;let r=P[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[C],s=W.url?h(location)===h(W.url):!1;if(o===J&&(sn||s)){i!==j.state&&(j.state=i),e(a),P[q]=E(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),B.hash&&location.reload())}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[S]:++q,[C]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Ut.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&I.navigating.set(M.current=null)});function e(e){W.url=j.url=e,I.page.set(qn(j)),I.page.notify()}}async function Hn(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){rn=!0;let l=new URL(location.href),d;({params:i={},route:a={id:null}}=await Nn(l,!1)||{}),d=qt.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Un(r.uses)),Cn({loader:B.nodes[t],url:l,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:En(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await Sn({url:l,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof u)return await L(new URL(t.location,location.href));f=await jn({status:Pt(t),error:await $(t,{url:l,params:i,route:a}),url:l,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await xn(f,e,p))}function Un(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Wn=!1;function Gn(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Yn(e);if(n&&document.getElementById(n)){let{x:r,y:i}=E();setTimeout(()=>{let a=history.state;Wn=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Wn=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Kn(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(g),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:E()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function qn(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Jn(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Yn(e){let t;if(B.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{x as C,l as E,ye as S,_ as T,qe as _,V as a,Se as b,M as c,Nt as d,jt as f,st as g,ct as h,dn as i,j as l,ft as m,Rn as n,Bn as o,At as p,fn as r,pn as s,B as t,A as u,Je as v,g as w,xe as x,Le as y};