@sentropic/h2a 0.98.1 → 0.98.3

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 (93) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/cli-command-map.d.ts.map +1 -1
  4. package/dist/cli-command-map.js +1 -0
  5. package/dist/cli-command-map.js.map +1 -1
  6. package/dist/cli-contract.d.ts.map +1 -1
  7. package/dist/cli-contract.js +8 -0
  8. package/dist/cli-contract.js.map +1 -1
  9. package/dist/cli.d.ts.map +1 -1
  10. package/dist/cli.js +79 -12
  11. package/dist/cli.js.map +1 -1
  12. package/dist/hosts/plugin.d.ts +2 -2
  13. package/dist/hosts/plugin.d.ts.map +1 -1
  14. package/dist/hosts/plugin.js +16 -1
  15. package/dist/hosts/plugin.js.map +1 -1
  16. package/dist/hosts/vibe.d.ts +15 -0
  17. package/dist/hosts/vibe.d.ts.map +1 -0
  18. package/dist/hosts/vibe.js +40 -0
  19. package/dist/hosts/vibe.js.map +1 -0
  20. package/dist/index.d.ts +2 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +2 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/runtime/identity/bindings.d.ts.map +1 -1
  25. package/dist/runtime/identity/bindings.js +13 -3
  26. package/dist/runtime/identity/bindings.js.map +1 -1
  27. package/dist/runtime/identity/migration.d.ts +2 -0
  28. package/dist/runtime/identity/migration.d.ts.map +1 -1
  29. package/dist/runtime/identity/migration.js +19 -3
  30. package/dist/runtime/identity/migration.js.map +1 -1
  31. package/dist/runtime/local-files/launch-index.d.ts +14 -0
  32. package/dist/runtime/local-files/launch-index.d.ts.map +1 -0
  33. package/dist/runtime/local-files/launch-index.js +279 -0
  34. package/dist/runtime/local-files/launch-index.js.map +1 -0
  35. package/dist/runtime/local-files/store.d.ts.map +1 -1
  36. package/dist/runtime/local-files/store.js +29 -15
  37. package/dist/runtime/local-files/store.js.map +1 -1
  38. package/dist/runtime/loop/index.d.ts +1 -1
  39. package/dist/runtime/loop/index.d.ts.map +1 -1
  40. package/dist/runtime/loop/index.js.map +1 -1
  41. package/dist/runtime/mcp/agent-launch.d.ts +1 -1
  42. package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
  43. package/dist/runtime/mcp/agent-launch.js +9 -3
  44. package/dist/runtime/mcp/agent-launch.js.map +1 -1
  45. package/dist/runtime/mcp/handlers.js +1 -1
  46. package/dist/runtime/mcp/handlers.js.map +1 -1
  47. package/dist/runtime/mcp/tools.js +5 -5
  48. package/dist/runtime/mcp/tools.js.map +1 -1
  49. package/dist/runtime/version/agent-version.d.ts.map +1 -1
  50. package/dist/runtime/version/agent-version.js +2 -1
  51. package/dist/runtime/version/agent-version.js.map +1 -1
  52. package/focus-app/client/_app/immutable/chunks/unQroC_0.js +2 -0
  53. package/focus-app/client/_app/immutable/chunks/unQroC_0.js.br +0 -0
  54. package/focus-app/client/_app/immutable/chunks/unQroC_0.js.gz +0 -0
  55. package/focus-app/client/_app/immutable/entry/{app.Dfo3Ymae.js → app.75Uzo4oj.js} +2 -2
  56. package/focus-app/client/_app/immutable/entry/app.75Uzo4oj.js.br +0 -0
  57. package/focus-app/client/_app/immutable/entry/app.75Uzo4oj.js.gz +0 -0
  58. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js +1 -0
  59. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js.br +2 -0
  60. package/focus-app/client/_app/immutable/entry/start.BmwiFFoe.js.gz +0 -0
  61. package/focus-app/client/_app/immutable/nodes/{1.B83XRsuv.js → 1.hqfmE-jM.js} +1 -1
  62. package/focus-app/client/_app/immutable/nodes/1.hqfmE-jM.js.br +3 -0
  63. package/focus-app/client/_app/immutable/nodes/1.hqfmE-jM.js.gz +0 -0
  64. package/focus-app/client/_app/version.json +1 -1
  65. package/focus-app/client/_app/version.json.br +0 -0
  66. package/focus-app/client/_app/version.json.gz +0 -0
  67. package/focus-app/h2a-focus.json +29 -29
  68. package/focus-app/handler.js +4 -4
  69. package/focus-app/index.js +4 -4
  70. package/focus-app/server/chunks/chunks/{internal.js-BDHE9Kn1.js → internal.js-vq85iWAx.js} +2 -2
  71. package/focus-app/server/chunks/chunks/{internal.js-BDHE9Kn1.js.map → internal.js-vq85iWAx.js.map} +1 -1
  72. package/focus-app/server/chunks/{handler-BidpBSFZ.js → handler-f-0S9j72.js} +3 -3
  73. package/focus-app/server/chunks/{handler-BidpBSFZ.js.map → handler-f-0S9j72.js.map} +1 -1
  74. package/focus-app/server/chunks/{index.js-BNQ-AMZE.js → index.js-DlbaFcic.js} +2 -2
  75. package/focus-app/server/chunks/{index.js-BNQ-AMZE.js.map → index.js-DlbaFcic.js.map} +1 -1
  76. package/focus-app/server/chunks/{manifest.js-CAtvBIjA.js → manifest.js-CxrShg-z.js} +3 -3
  77. package/focus-app/server/chunks/{manifest.js-CAtvBIjA.js.map → manifest.js-CxrShg-z.js.map} +1 -1
  78. package/focus-app/server/chunks/nodes/{1.js-C16cgDY2.js → 1.js-O2SZgyXK.js} +2 -2
  79. package/focus-app/server/chunks/nodes/{1.js-C16cgDY2.js.map → 1.js-O2SZgyXK.js.map} +1 -1
  80. package/package.json +4 -4
  81. package/skills/h2a/SKILL.md +4 -0
  82. package/skills/h2a-run/SKILL.md +11 -9
  83. package/skills/harness/review/SKILL.md +8 -4
  84. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js +0 -2
  85. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js.br +0 -0
  86. package/focus-app/client/_app/immutable/chunks/zL3j6erO.js.gz +0 -0
  87. package/focus-app/client/_app/immutable/entry/app.Dfo3Ymae.js.br +0 -0
  88. package/focus-app/client/_app/immutable/entry/app.Dfo3Ymae.js.gz +0 -0
  89. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js +0 -1
  90. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js.br +0 -0
  91. package/focus-app/client/_app/immutable/entry/start.BSQLtKUn.js.gz +0 -0
  92. package/focus-app/client/_app/immutable/nodes/1.B83XRsuv.js.br +0 -0
  93. package/focus-app/client/_app/immutable/nodes/1.B83XRsuv.js.gz +0 -0
@@ -10,10 +10,10 @@ return {
10
10
  assets: new Set([]),
11
11
  mimeTypes: {},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.BSQLtKUn.js",app:"_app/immutable/entry/app.Dfo3Ymae.js",imports:["_app/immutable/entry/start.BSQLtKUn.js","_app/immutable/chunks/zL3j6erO.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/1NK_OeRJ.js","_app/immutable/entry/app.Dfo3Ymae.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/B1veta3r.js","_app/immutable/chunks/kCE9wz0g.js","_app/immutable/chunks/1NK_OeRJ.js","_app/immutable/chunks/C6KhNEX3.js","_app/immutable/chunks/BZ4lcC0v.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
13
+ client: {start:"_app/immutable/entry/start.BmwiFFoe.js",app:"_app/immutable/entry/app.75Uzo4oj.js",imports:["_app/immutable/entry/start.BmwiFFoe.js","_app/immutable/chunks/unQroC_0.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/1NK_OeRJ.js","_app/immutable/entry/app.75Uzo4oj.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/B1veta3r.js","_app/immutable/chunks/kCE9wz0g.js","_app/immutable/chunks/1NK_OeRJ.js","_app/immutable/chunks/C6KhNEX3.js","_app/immutable/chunks/BZ4lcC0v.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},
14
14
  nodes: [
15
15
  __memo(() => import('./nodes/0.js-DyONiS9Y.js')),
16
- __memo(() => import('./nodes/1.js-C16cgDY2.js')),
16
+ __memo(() => import('./nodes/1.js-O2SZgyXK.js')),
17
17
  __memo(() => import('./nodes/2.js-C16ONuI7.js')),
18
18
  __memo(() => import('./nodes/3.js-DIZzznQP.js'))
19
19
  ],
@@ -75,4 +75,4 @@ return {
75
75
  })();
76
76
 
77
77
  export { manifest as m };
78
- //# sourceMappingURL=manifest.js-CAtvBIjA.js.map
78
+ //# sourceMappingURL=manifest.js-CxrShg-z.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js-CAtvBIjA.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.BSQLtKUn.js\",app:\"_app/immutable/entry/app.Dfo3Ymae.js\",imports:[\"_app/immutable/entry/start.BSQLtKUn.js\",\"_app/immutable/chunks/zL3j6erO.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/1NK_OeRJ.js\",\"_app/immutable/entry/app.Dfo3Ymae.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/B1veta3r.js\",\"_app/immutable/chunks/kCE9wz0g.js\",\"_app/immutable/chunks/1NK_OeRJ.js\",\"_app/immutable/chunks/C6KhNEX3.js\",\"_app/immutable/chunks/BZ4lcC0v.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/actions/launch\",\n\t\t\t\tpattern: /^\\/api\\/actions\\/launch\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/actions/launch/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/decisions/inject\",\n\t\t\t\tpattern: /^\\/api\\/decisions\\/inject\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/decisions/inject/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/dossiers/agent-memory/include\",\n\t\t\t\tpattern: /^\\/api\\/dossiers\\/agent-memory\\/include\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/dossiers/agent-memory/include/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/h2a/targets\",\n\t\t\t\tpattern: /^\\/api\\/h2a\\/targets\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/h2a/targets/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/dossier/agent-memory\",\n\t\t\t\tpattern: /^\\/dossier\\/agent-memory\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js-CxrShg-z.js","sources":["../../../.svelte-kit/output/server/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([]),\n\tmimeTypes: {},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.BmwiFFoe.js\",app:\"_app/immutable/entry/app.75Uzo4oj.js\",imports:[\"_app/immutable/entry/start.BmwiFFoe.js\",\"_app/immutable/chunks/unQroC_0.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/1NK_OeRJ.js\",\"_app/immutable/entry/app.75Uzo4oj.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/B1veta3r.js\",\"_app/immutable/chunks/kCE9wz0g.js\",\"_app/immutable/chunks/1NK_OeRJ.js\",\"_app/immutable/chunks/C6KhNEX3.js\",\"_app/immutable/chunks/BZ4lcC0v.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:false},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 2 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/actions/launch\",\n\t\t\t\tpattern: /^\\/api\\/actions\\/launch\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/actions/launch/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/decisions/inject\",\n\t\t\t\tpattern: /^\\/api\\/decisions\\/inject\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/decisions/inject/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/dossiers/agent-memory/include\",\n\t\t\t\tpattern: /^\\/api\\/dossiers\\/agent-memory\\/include\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/dossiers/agent-memory/include/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/api/h2a/targets\",\n\t\t\t\tpattern: /^\\/api\\/h2a\\/targets\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/api/h2a/targets/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/dossier/agent-memory\",\n\t\t\t\tpattern: /^\\/dossier\\/agent-memory\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 3 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  const index = 1;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js-BzO57FOz.js')).default;
4
- const imports = ["_app/immutable/nodes/1.B83XRsuv.js","_app/immutable/chunks/kCE9wz0g.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/B1veta3r.js","_app/immutable/chunks/zL3j6erO.js","_app/immutable/chunks/1NK_OeRJ.js"];
4
+ const imports = ["_app/immutable/nodes/1.hqfmE-jM.js","_app/immutable/chunks/kCE9wz0g.js","_app/immutable/chunks/x-hq5fDG.js","_app/immutable/chunks/B1veta3r.js","_app/immutable/chunks/unQroC_0.js","_app/immutable/chunks/1NK_OeRJ.js"];
5
5
  const stylesheets = [];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1.js-C16cgDY2.js.map
9
+ //# sourceMappingURL=1.js-O2SZgyXK.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1.js-C16cgDY2.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.B83XRsuv.js\",\"_app/immutable/chunks/kCE9wz0g.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/B1veta3r.js\",\"_app/immutable/chunks/zL3j6erO.js\",\"_app/immutable/chunks/1NK_OeRJ.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1.js-O2SZgyXK.js","sources":["../../../../.svelte-kit/output/server/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/fallbacks/error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.hqfmE-jM.js\",\"_app/immutable/chunks/kCE9wz0g.js\",\"_app/immutable/chunks/x-hq5fDG.js\",\"_app/immutable/chunks/B1veta3r.js\",\"_app/immutable/chunks/unQroC_0.js\",\"_app/immutable/chunks/1NK_OeRJ.js\"];\nexport const stylesheets = [];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,kDAAsC,CAAC,EAAE;AACpG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpO,MAAC,WAAW,GAAG;AACf,MAAC,KAAK,GAAG;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentropic/h2a",
3
- "version": "0.98.1",
3
+ "version": "0.98.3",
4
4
  "description": "h2a — the unified CLI + core for human-to-agent coordination.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -52,13 +52,13 @@
52
52
  "@hono/mcp": "^0.3.0",
53
53
  "@hono/node-server": "^2.0.12",
54
54
  "@modelcontextprotocol/sdk": "^1.30.0",
55
- "@sentropic/cluster-mesh": "0.13.0",
55
+ "@sentropic/cluster-mesh": "0.13.3",
56
56
  "@sentropic/contracts": "^0.3.0",
57
57
  "@sentropic/events": "^0.2.0",
58
- "@sentropic/track": "^0.98.1",
58
+ "@sentropic/track": "^0.98.3",
59
59
  "hono": "^4.13.7"
60
60
  },
61
61
  "peerDependencies": {
62
- "@sentropic/h2a-runtime": "^0.98.1"
62
+ "@sentropic/h2a-runtime": "^0.98.3"
63
63
  }
64
64
  }
@@ -312,6 +312,10 @@ Consequences to respect:
312
312
  it, or ask the human — do not infer "free" from "not-live". Liveness gates
313
313
  *delivery*, not *work in progress*.
314
314
 
315
+ ## Local LLM backend
316
+
317
+ The optional local gateway is composed through `@sentropic/cluster-mesh`. Its llm-mesh facade owns enrollment, credentials, provider transports, routing and affinity. H2A retains its local bearer registry and session ledger until convergence with Sentropic workspace/session notions (owner decision 2026-10-03), plus public configuration and daemon lifecycle. New launches default to direct authentication; Claude `--gw` / MCP `gateway: "required"` explicitly require the composed gateway. The CLI groups, MCP schema and session/status URLs remain compatible.
318
+
315
319
  ## Defaults and conventions
316
320
 
317
321
  - **Auto-connect (recommended)**: register the MCP server with `mcp-serve --auto-open --host <h>` so a session opens at host startup (EVO-6/DEC-105); `/h2a disconnect` leaves early. `/h2a connect` stays available for manual/explicit connect.
@@ -19,13 +19,13 @@ This plugin's PreToolUse hook (`packages/h2a/hooks/deny-manual-h2a-cli.mjs`) blo
19
19
 
20
20
  None of these require knowing a provider model id up front:
21
21
 
22
- 1. **Profile** — `claude`, `codex`, `agy`, or `muse` (which CLI to launch). Default to whichever CLI the user is already in if unstated; ask if genuinely ambiguous.
22
+ 1. **Profile** — `claude`, `codex`, `agy`, `muse`, or `vibe` (which CLI to launch). Default to whichever CLI the user is already in if unstated; ask if genuinely ambiguous.
23
23
  2. **Model flavor** — a nickname like *terra*, *sol* (aka *fable*), *luna*, or unstated (→ the CLI's own default model). Resolves to a `--model` / `model` value (Step 2).
24
- 3. **Effort** — `low | medium | high | xhigh`. For Claude/Codex/Muse, "max" means `xhigh`; AGY accepts only `low | medium | high` and rejects both `xhigh` and "max".
24
+ 3. **Effort** — `low | medium | high | xhigh`. For Claude/Codex/Muse, "max" means `xhigh`; AGY accepts only `low | medium | high` and rejects both `xhigh` and "max". Vibe resolves thinking level from its own config (`/thinking`), so effort is not a launch argument for it.
25
25
 
26
26
  ## Step 2 — resolve the model flavor (source-of-truth caveat)
27
27
 
28
- **The canonical model catalog and equivalence council belong to `@sentropic/llm-mesh`**, never to h2a or this skill. This skill must not freeze a provider/model table. Before translating a nickname:
28
+ **The canonical model catalog and equivalence council belong to the llm-mesh API exposed through `@sentropic/cluster-mesh`**, never to h2a or this skill. This skill must not freeze a provider/model table. Before translating a nickname:
29
29
 
30
30
  - if a gateway is already running for this session, query `GET <ANTHROPIC_BASE_URL>/v1/models` (the mesh's own live catalog) and match the flavor there;
31
31
  - otherwise, ask the caller for an exact model id or start the gateway and query it; never inspect or recreate a h2a-local table.
@@ -34,20 +34,22 @@ The owner-ratified xhigh aliases are intentionally narrow: Opus 5 and Opus 4.8 r
34
34
 
35
35
  ## Step 3 — gateway on/off
36
36
 
37
- Any non-default flavor needs the llm-mesh gateway to translate the Anthropic-shaped request to the real upstream. Default to the gateway **on** for a named flavor, off for the CLI's native default model:
37
+ New launches are **direct by default**, including named native model ids. H2A obtains its optional local gateway engine through cluster-mesh; the host retains only local bearers, the session ledger, public preferences and daemon management.
38
38
 
39
- - CLI: `--gw` (alias `--llm-gateway`) forces it on, `--no-gw` (alias `--no-llm-gateway`) forces it off, omit for the CLI's own default.
40
- - MCP `h2a_run`: `gateway: "required"` forces it on, `"off"` forces it off, `"auto"` (default) decides. **`"required"` is rejected when `profile` is `"codex"`** — codex already talks to llm-mesh over an Anthropic-compatible surface, use `"auto"` there.
39
+ - CLI: Claude `--gw` (alias `--llm-gateway`) requires the gateway; `--no-gw` (alias `--no-llm-gateway`) and omission use direct authentication. Use Claude with an explicit gateway requirement when translating an Anthropic-shaped request to another provider through the live mesh council.
40
+ - MCP `h2a_run`: `gateway: "auto"` is still the schema default and resolves **direct**; `"off"` is direct too. `"required"` is Claude-only and fails before launching an agent if the composed gateway is unavailable. Codex, AGY and Muse reject `"required"`.
41
41
 
42
- AGY is the exception to the named-flavor rule: it talks to its provider directly. Use `gateway: "off"` for `profile: "agy"`; `"required"` is rejected. AGY accepts effort `low|medium|high`, not `xhigh`, and supports run-once mode through its verified `--print` stdin contract. Resolve the exact AGY model with `agy models`; for example, the displayed "Gemini 3.7 Flash (High)" id is `gemini-3.7-flash-high`.
42
+ AGY talks to its provider directly. Use `gateway: "off"` for `profile: "agy"`; `"required"` is rejected. AGY accepts effort `low|medium|high`, not `xhigh`, and supports run-once mode through its verified `--print` stdin contract. Resolve the exact AGY model with `agy models`; for example, the displayed "Gemini 3.7 Flash (High)" id is `gemini-3.7-flash-high`.
43
43
 
44
44
  Muse talks to the Meta provider directly: always `gateway: "off"` (or `"auto"`, which resolves direct); `"required"` is rejected. Muse maps `effort` to its native `--reasoning-effort` (all four levels) and `model` to `--model`. Muse is interactive/background only — `headless: true` is rejected because `muse exec` has no stdin prompt contract (verified: piped stdin reports "missing prompt").
45
45
 
46
+ Vibe (Mistral Vibe CLI) talks to the Mistral provider directly with its own plan-billed credential: always `gateway: "off"` (or `"auto"`, which resolves direct); `"required"` is rejected. Model and effort are NOT launch arguments on vibe — they are config concerns (`VIBE_ACTIVE_MODEL`, `/thinking`), so the `model`/`effort` parameters have no launch-argv effect for `profile: "vibe"`; resolve and record the model through the live mesh catalog instead. Vibe is interactive/background only — `headless: true` is rejected because `vibe -p` takes the prompt as an argv value and prompts are never serialized into argv (measured against `vibe --help`). Resume uses `--resume <id>` (most-recent shorthand is `vibe -c` at the CLI level).
47
+
46
48
  ## Step 4 — compose the call
47
49
 
48
50
  ### `h2a_run` MCP tool (what this agent must use)
49
51
 
50
- Required: `profile` (`"claude"|"codex"|"agy"|"muse"`), `name` (`^[A-Za-z0-9_-]{1,64}$`), `workspace` (absolute path, must exist, must stay inside the MCP server's startup workspace root), `prompt` (1–65536 UTF-8 bytes, sent on stdin — never put it in argv), `background` (must be literal `true`). Optional: `agent` (AGY only; for example `"stp"`), `model` (free-text, format-checked only — see Step 2 for the value), `effort` (`"low"|"medium"|"high"|"xhigh"`; AGY rejects `xhigh`), `gateway` (`"auto"|"required"|"off"`, default `"auto"`; AGY and Muse use `"off"`, `"required"` is rejected for them), `headless` (default `false`; AGY maps `true` to `--print`; Muse rejects `true`), `h2aSidecar` (default `!headless`; cannot be `true` together with `headless: true`).
52
+ Required: `profile` (`"claude"|"codex"|"agy"|"muse"|"vibe"`), `name` (`^[A-Za-z0-9_-]{1,64}$`), `workspace` (absolute path, must exist, must stay inside the MCP server's startup workspace root), `prompt` (1–65536 UTF-8 bytes, sent on stdin — never put it in argv), `background` (must be literal `true`). Optional: `agent` (AGY only; for example `"stp"`), `model` (free-text, format-checked only — see Step 2 for the value), `effort` (`"low"|"medium"|"high"|"xhigh"`; AGY rejects `xhigh`), `gateway` (`"auto"|"required"|"off"`, default `"auto"` resolves direct; AGY, Muse and Vibe use `"off"`, `"required"` is rejected for them), `headless` (default `false`; AGY maps `true` to `--print`; Muse and Vibe reject `true`), `h2aSidecar` (default `!headless`; cannot be `true` together with `headless: true`).
51
53
 
52
54
  Example — "terra, xhigh, headless, on this repo":
53
55
 
@@ -88,7 +90,7 @@ Example — direct AGY run-once:
88
90
  ### `h2a run` CLI (reference only — non-Claude-Code hosts / humans at a terminal)
89
91
 
90
92
  ```
91
- h2a run codex /abs/path/to/repo --model gpt-5.6-terra --effort xhigh --gw --name terra-review --no-attach --background --json --prompt-stdin
93
+ h2a run codex /abs/path/to/repo --model gpt-5.6-terra --effort xhigh --name terra-review --no-attach --background --json --prompt-stdin
92
94
  ```
93
95
 
94
96
  Interactive/attached form (drop the background-launch flags, add nothing else):
@@ -14,7 +14,7 @@ WorkEvent).
14
14
  Before selecting a reviewer, create a repo-local Markdown review dossier tied to the target's exact
15
15
  commit/path and, for a working-tree target, the SHA-256 of the bytes from
16
16
  `git diff HEAD --no-ext-diff`. It MUST record the author's `host`, exact `model`, and `effort`. Host means
17
- `claude` or `codex`, the profiles the launch operation actually accepts. **Unknown author means no
17
+ `claude`, `codex` or `vibe`, the reviewer-capable profiles the launch operation actually accepts. **Unknown author means no
18
18
  acceptable review:** write `status: selection-failed` and `observed-failure` to that dossier, then stop;
19
19
  never infer missing metadata from the current CLI.
20
20
 
@@ -46,10 +46,14 @@ Keep legs blind and give each the same target plus a distinct adversarial lens.
46
46
  installed h2a MCP server's `h2a_run` tool — that is how a skill user reaches the `h2a run` operation.
47
47
  The packaged Claude Code hook also refuses direct `h2a` CLI calls from Bash.
48
48
 
49
- The MCP call requires `profile: "claude"|"codex"`, a unique `name`, `prompt`, `background: true`, and an
49
+ The MCP call requires `profile: "claude"|"codex"|"vibe"`, a unique `name`, `prompt`, `background: true`, and an
50
50
  absolute existing directory `workspace` that realpaths inside the MCP startup root and outside the OS temp
51
51
  directory. It optionally accepts `model`, `effort: low|medium|high|xhigh`, `gateway: auto|required|off`,
52
- `headless`, and `h2aSidecar`; `required` is Claude-only, so Codex uses `auto|off`.
52
+ `headless`, and `h2aSidecar`; `required` is Claude-only, so Codex and Vibe use `auto|off`.
53
+ A vibe leg is always direct (its own plan-billed Mistral credential), is interactive/background only
54
+ (`headless` is rejected — `vibe -p` takes the prompt as argv), and does not carry `model`/`effort` on the
55
+ launch argv (they are vibe config concerns: `VIBE_ACTIVE_MODEL`, `/thinking`), so a vibe candidate records
56
+ the model id resolved through the live mesh catalog and never attests an enforced effort.
53
57
  Use no other profile or field. Never embed an endpoint or credential: h2a and the llm-mesh own accounts,
54
58
  reachability, routing, and fallback.
55
59
 
@@ -64,7 +68,7 @@ prompt. Use a machine-readable header:
64
68
 
65
69
  ```yaml
66
70
  status: dispatched|completed|failed
67
- reviewer-host: claude|codex
71
+ reviewer-host: claude|codex|vibe
68
72
  reviewer-model: <declared/requested-model-id>
69
73
  reviewer-effort: <low|medium|high|xhigh>
70
74
  target-ref: <commit/path>
@@ -1,2 +0,0 @@
1
- import{b0 as ke,bh as Tt,au as le,bi as Ut,av as P,I as O,M as j}from"./x-hq5fDG.js";import{o as Ge}from"./1NK_OeRJ.js";const H=[];function Ne(e,t=ke){let r=null;const n=new Set;function a(s){if(Tt(e,s)&&(e=s,r)){const c=!H.length;for(const f of n)f[1](),H.push(f,e);if(c){for(let f=0;f<H.length;f+=2)H[f][0](H[f+1]);H.length=0}}}function o(s){a(s(e))}function i(s,c=ke){const f=[s,c];return n.add(f),n.size===1&&(r=t(a,o)||ke),s(e),()=>{n.delete(f),n.size===0&&r&&(r(),r=null)}}return{set:a,update:o,subscribe:i}}const Lt="h2a-focus-df7c6769096744bc",L=globalThis.__sveltekit_1uthimb?.base??"",Pt=globalThis.__sveltekit_1uthimb?.assets??L??"";new URL("sveltekit-internal://");function Ot(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function jt(e){return e.split("%25").map(decodeURI).join("%25")}function Nt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function Se({href:e}){return e.split("#")[0]}const xt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,Ct=/^\/\((?:[^)]+)\)$/;function Dt(e){const t=[];return{pattern:e==="/"||Ct.test(e)?/^\/$/:new RegExp(`^${Bt(e).map(n=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(n);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const o=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(n);if(o)return t.push({name:o[1],matcher:o[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!n)return;const i=n.split(/\[(.+?)\](?!\])/);return"/"+i.map((c,f)=>{if(f%2){if(c.startsWith("x+"))return Re(String.fromCharCode(parseInt(c.slice(2),16)));if(c.startsWith("u+"))return Re(String.fromCharCode(...c.slice(2).split("-").map(y=>parseInt(y,16))));const l=xt.exec(c),[,d,p,u,h]=l;return t.push({name:u,matcher:h,optional:!!d,rest:!!p,chained:p?f===1&&i[0]==="":!1}),p?"([^]*?)":d?"([^/]*)?":"([^/]+?)"}return Re(c)}).join("")}).join("")}/?$`),params:t}}function $t(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Bt(e){return e.slice(1).split("/").filter($t)}function Mt(e,t,r){const n={},a=e.slice(1),o=a.filter(s=>s!==void 0);let i=0;for(let s=0;s<t.length;s+=1){const c=t[s];let f=a[s-i];if(c.chained&&c.rest&&i&&(f=a.slice(s-i,s+1).filter(l=>l).join("/"),i=0),f===void 0)if(c.rest)f="";else continue;if(!c.matcher||r[c.matcher](f)){n[c.name]=f;const l=t[s+1],d=a[s+1];l&&!l.rest&&l.optional&&d&&c.chained&&(i=0),!l&&!d&&Object.keys(n).length===o.length&&(i=0);continue}if(c.optional&&c.chained){i++;continue}return}if(!i)return n}function Re(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}class se{constructor(t,r){this.status=t,typeof r=="string"?this.body={message:r}:r?this.body=r:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class xe{constructor(t,r){try{new Headers({location:r})}catch{throw new Error(`Invalid redirect location ${JSON.stringify(r)}: this string contains characters that cannot be used in HTTP headers`)}this.status=t,this.location=r}}class Ce extends Error{constructor(t,r,n){super(n),this.status=t,this.text=r}}function D(){}function Vt(...e){let t=5381;for(const r of e)if(typeof r=="string"){let n=r.length;for(;n;)t=t*33^r.charCodeAt(--n)}else if(ArrayBuffer.isView(r)){const n=new Uint8Array(r.buffer,r.byteOffset,r.byteLength);let a=n.length;for(;a;)t=t*33^n[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;function Ft(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}const qt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&Q.delete(De(e)),qt(e,t));const Q=new Map;function Ht(e,t){const r=De(e,t),n=document.querySelector(r);if(n?.textContent){n.remove();let{body:a,...o}=JSON.parse(n.textContent);n.getAttribute("data-b64")!==null&&(a=Ft(a));const s=n.getAttribute("data-ttl");return s&&Q.set(r,{body:a,init:o,ttl:1e3*Number(s)}),Promise.resolve(new Response(a,o))}return window.fetch(e,t)}function Yt(e,t,r){if(Q.size>0){const n=De(e,r),a=Q.get(n);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(r?.cache))return new Response(a.body,a.init);Q.delete(n)}}return window.fetch(t,r)}function De(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),n+=`[data-hash="${Vt(...a)}"]`}return n}function Gt({nodes:e,server_loads:t,dictionary:r,matchers:n}){const a=new Set(t);return Object.entries(r).map(([s,[c,f,l]])=>{const{pattern:d,params:p}=Dt(s),u={id:s,exec:h=>{const y=d.exec(h);if(y)return Mt(y,p,n)},errors:[1,...l||[]].map(h=>e[h]),layouts:[0,...f||[]].map(i),leaf:o(c)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function o(s){const c=s<0;return c&&(s=~s),[c,e[s]]}function i(s){return s===void 0?s:[a.has(s),e[s]]}}function at(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function ze(e,t,r=JSON.stringify){const n=r(t);try{sessionStorage[e]=n}catch{}}const zt=-1,Kt=-2,Wt=-3,Xt=-4,Jt=-5,Zt=-6,Qt=-7,ot=2**32-1,Ue=ot-1;function er(e){return!(!Number.isInteger(e)||e<0||e>Ue)}function tr(e){return!(!Number.isInteger(e)||e<0||e>ot)}function rr(e){return Uint8Array.fromBase64(e).buffer}function nr(e){return Uint8Array.from(Buffer.from(e,"base64")).buffer}function ar(e){const t=atob(e),r=t.length,n=new Uint8Array(r);for(let a=0;a<r;a++)n[a]=t.charCodeAt(a);return n.buffer}const or=typeof Uint8Array.fromBase64=="function",sr=typeof process=="object"&&process.versions?.node!==void 0,ir=or?rr:sr?nr:ar;function cr(e,t){return e}const lr=Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get,Ke=typeof SharedArrayBuffer>"u"?void 0:Object.getOwnPropertyDescriptor(SharedArrayBuffer.prototype,"byteLength").get,fr={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,r,n)=>{try{lr.call(t)}catch(o){if(!Ke)throw o;Ke.call(t)}const a=globalThis[e];return r!==void 0?new a(t,r,n):new a(t)},box:e=>Object(e),createArray:e=>new Array(e),createSparseArray:e=>{const t=[];return t[Ue]=void 0,delete t[Ue],t.length=e,t},createObject:()=>({}),createNullPrototypeObject:()=>Object.create(null),createSet:()=>new Set,createMap:()=>new Map,set:(e,t,r)=>{e[t]=r},addValue:(e,t)=>{e.add(t)},addEntry:(e,t,r)=>{e.set(t,r)}},ur=Object.freeze(fr);function dr(e,t,r){const n=cr(ur);if(typeof e=="number")return s(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const a=e,o=Array(a.length);let i=null;function s(c,f=!1){if(c===zt)return n.fromPrimitive(void 0);if(c===Wt)return n.fromPrimitive(NaN);if(c===Xt)return n.fromPrimitive(1/0);if(c===Jt)return n.fromPrimitive(-1/0);if(c===Zt)return n.fromPrimitive(-0);if(f||typeof c!="number")throw new Error("Invalid input");if(c in o)return o[c];if(c>=a.length)throw new Error("Invalid input");const l=a[c];if(!l||typeof l!="object")o[c]=n.fromPrimitive(l);else if(Array.isArray(l))if(typeof l[0]=="string"){const d=l[0],p=t&&Object.hasOwn(t,d)?t[d]:void 0;if(p){let u=l[1];if(typeof u!="number"&&(u=a.push(l[1])-1),Object.hasOwn(o,u))return o[c]=p(o[u]);if(i??=new Set,i.has(u))throw new Error("Invalid circular reference");return i.add(u),o[c]=p(s(u)),i.delete(u),o[c]}switch(d){case"Date":o[c]=n.fromISOString(l[1]);break;case"Set":const u=n.createSet();o[c]=u;for(let m=1;m<l.length;m+=1)n.addValue(u,s(l[m]));break;case"Map":const h=n.createMap();o[c]=h;for(let m=1;m<l.length;m+=2)n.addEntry(h,s(l[m]),s(l[m+1]));break;case"RegExp":o[c]=n.fromRegExpInfo(l[1],l[2]);break;case"Object":{const m=l[1];if(typeof a[m]=="object"&&a[m][0]!=="BigInt")throw new Error("Invalid input");o[c]=n.box(s(m));break}case"BigInt":o[c]=n.fromPrimitive(BigInt(l[1]));break;case"null":const y=n.createNullPrototypeObject();o[c]=y;for(let m=1;m<l.length;m+=2){const _=l[m];if(typeof _!="string")throw new Error("Cannot parse an object with a non-string key");if(_==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");n.set(y,_,s(l[m+1]))}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":case"DataView":{if(a[l[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const m=s(l[1]);o[c]=n.fromViewInfo(d,m,l[2],l[3]);break}case"ArrayBuffer":{const m=l[1];if(typeof m!="string")throw new Error("Invalid ArrayBuffer encoding");o[c]=n.fromArrayBuffer(ir(m));break}case"URL":case"URLSearchParams":case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{o[c]=n.fromStringValue(d,l[1]);break}default:throw new Error(`Unknown type ${d}`)}}else if(l[0]===Qt){const d=l[1];if(!tr(d))throw new Error("Invalid input");const p=n.createSparseArray(d);o[c]=p;for(let u=2;u<l.length;u+=2){const h=l[u];if(!er(h)||h>=d)throw new Error("Invalid input");n.set(p,h,s(l[u+1]))}}else{const d=n.createArray(l.length);o[c]=d;for(let p=0;p<l.length;p+=1){const u=l[p];u!==Kt&&n.set(d,p,s(u))}}else{const d=n.createObject();o[c]=d;for(const p of Object.keys(l)){if(p==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");n.set(d,p,s(l[p]))}}return o[c]}return s(0)}const st="sveltekit:snapshot",it="sveltekit:scroll",ct="sveltekit:states",hr="sveltekit:pageurl",z="sveltekit:history",re="sveltekit:navigation",V={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},lt=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...lt];const pr=new Set([...lt]);[...pr];function mr(e){return e.filter(t=>t!=null)}const _r="x-sveltekit-invalidated",gr="x-sveltekit-trailing-slash";function ie(e,t){return e+"/"+t}function fe(e){return e instanceof se||e instanceof Ce?e.status:500}function yr(e){return e instanceof Ce?e.text:"Internal Error"}const wr="/__data.json",vr=".html__data.json";function br(e){return e.endsWith(".html")?e.replace(/\.html$/,vr):e.replace(/\/$/,"")+wr}async function*Er(e,t){let r=!1,n="";const a=new TextDecoder;for(;;){let o=n.indexOf(t);for(;o!==-1;)yield n.slice(0,o),n=n.slice(o+t.length),o=n.indexOf(t);if(r){n&&(yield n);return}const i=await e.read();r=i.done,i.value&&(n+=a.decode(i.value,{stream:!0})),r&&(n+=a.decode())}}async function*Ar(e){for await(const t of Er(e,`
2
- `)){const r=t.trim();r&&(yield JSON.parse(r))}}const kr=new Set(["icon","shortcut icon","apple-touch-icon"]);let J=null;const B=at(it)??{},ne=at(st)??{},$={url:rt({}),page:rt({}),navigating:Ne(null),updated:Fr()};function $e(e){B[e]=q()}function Sr(e,t){let r=e+1;for(;B[r];)delete B[r],r+=1;for(r=t+1;ne[r];)delete ne[r],r+=1}function W(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(D)}async function ft(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(L||"/");e&&await e.update()}}let Be,Le,ue,x,Pe,E;const de=[],he=[];let I=null;function pe(){I?.fork?.then(e=>e?.discard()),I=null,G={element:void 0,href:void 0}}const ce=new Map,ut=new Set,Rr=new Set,ee=new Set;let w={branch:[],error:null,url:null},Me=!1,me=!1,We=!0,ae=!1,Z=!1,dt=!1,Ve=!1,ht,S,T,C;const te=new Set,Xe=new Map,Je=new Map;async function Gr(e,t,r){if(globalThis.__sveltekit_1uthimb.data){const{q:o={},p:i={},l:s={},f:c={}}=globalThis.__sveltekit_1uthimb.data;for(const f in o)o[f];for(const f in s)s[f];for(const f in c)c[f];for(const f in i)i[f]}document.URL!==location.href&&(location.href=location.href),E=e,await e.hooks.init?.(),Be=Gt(e),x=document.documentElement,Pe=t,Le=e.nodes[0],ue=e.nodes[1],Le(),ue(),S=history.state?.[z],T=history.state?.[re],S||(S=T=Date.now(),history.replaceState({...history.state,[z]:S,[re]:T},""));const n=B[S];function a(){n&&(history.scrollRestoration="manual",scrollTo(n.x,n.y))}r?(a(),await $r(Pe,r)):(await K({type:"enter",url:At(E.hash?Vr(new URL(location.href)):location.href),replace_state:!0}),a()),Dr()}function Ir(){de.length=0,Ve=!1}function pt(e){he.some(t=>t?.snapshot)&&(ne[e]=he.map(t=>t?.snapshot?.capture()))}function mt(e){ne[e]?.forEach((t,r)=>{he[r]?.snapshot?.restore(t)})}function Ze(){$e(S),ze(it,B),pt(T),ze(st,ne)}async function Tr(e,t,r,n){let a,o;t.invalidateAll&&pe(),await K({type:"goto",url:At(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:r,nav_token:n,accept:()=>{if(t.invalidateAll){Ve=!0,a=new Set;for(const[i,s]of Xe)for(const[c,f]of s)f.resource?.reset(),a.add(ie(i,c));o=new Set;for(const[i,s]of Je)for(const c of s.keys())o.add(ie(i,c))}t.invalidate&&t.invalidate.forEach(Cr)}}),t.invalidateAll&&le().then(le).then(()=>{for(const[i,s]of Xe)for(const[c,{resource:f}]of s)a?.has(ie(i,c))&&f.start();for(const[i,s]of Je)for(const[c,{resource:f}]of s)o?.has(ie(i,c))&&f.reconnect()})}async function Ur(e){if(e.id!==I?.id){pe();const t={};te.add(t),I={id:e.id,token:t,promise:gt({...e,preload:t}).then(r=>(te.delete(t),r.type==="loaded"&&r.state.error&&pe(),r)),fork:null}}return I.promise}async function Ie(e){const t=(await ve(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(r=>r[1]()))}async function _t(e,t,r){const n={params:w.params,route:{id:w.route?.id??null},url:new URL(location.href)};if(w={...e.state,nav:n},It(e.props.page),ht=new E.root({target:t,props:{...e.props,stores:$,components:he},hydrate:r,sync:!1,transformError:void 0}),await Promise.resolve(),r){const a={from:null,to:{...n,scroll:B[S]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};ee.forEach(o=>o(a))}mt(T),me=!0}async function _e({url:e,params:t,branch:r,errors:n,status:a,error:o,route:i,form:s}){let c="never";if(L&&(e.pathname===L||e.pathname===L+"/"))c="always";else for(const h of r)h?.slash!==void 0&&(c=h.slash);e.pathname=Ot(e.pathname,c),e.search=e.search;const f={type:"loaded",state:{url:e,params:t,branch:r,error:o,route:i},props:{constructors:mr(r).map(h=>h.node.component),page:Ye(U)}};s!==void 0&&(f.props.form=s);let l={},d=!U,p=0;for(let h=0;h<Math.max(r.length,w.branch.length);h+=1){const y=r[h],m=w.branch[h];y?.data!==m?.data&&(d=!0),y&&(l={...l,...y.data},d&&(f.props[`data_${p}`]=l),p+=1)}return(!w.url||e.href!==w.url.href||w.error!==o||s!==void 0&&s!==U.form||d)&&(f.props.page={error:o,params:t,route:{id:i?.id??null},state:{},status:a,url:new URL(e),form:s??null,data:d?l:U.data}),f}async function Fe({loader:e,parent:t,url:r,params:n,route:a,server_data_node:o}){let i=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},c=await e();return{node:c,loader:e,server:o,universal:c.universal?.load?{type:"data",data:i,uses:s}:null,data:i??o?.data??null,slash:c.universal?.trailingSlash??o?.slash}}function Lr(e,t,r){let n=e instanceof Request?e.url:e;const a=new URL(n,r);a.origin===r.origin&&(n=a.href.slice(r.origin.length));const o=me?Yt(n,a.href,t):Ht(n,t);return{resolved:a,promise:o}}function Qe(e,t,r,n,a,o){if(Ve)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&r)return!0;for(const i of a.search_params)if(n.has(i))return!0;for(const i of a.params)if(o[i]!==w.params[i])return!0;for(const i of a.dependencies)if(de.some(s=>s(new URL(i))))return!0;return!1}function qe(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Pr(e,t){if(!e)return new Set(t.searchParams.keys());const r=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const n of r){const a=e.searchParams.getAll(n),o=t.searchParams.getAll(n);a.every(i=>o.includes(i))&&o.every(i=>a.includes(i))&&r.delete(n)}return r}function et({error:e,url:t,route:r,params:n}){return{type:"loaded",state:{error:e,url:t,route:r,params:n,branch:[]},props:{page:Ye(U),constructors:[]}}}async function gt({id:e,invalidating:t,url:r,params:n,route:a,preload:o}){if(I?.id===e)return te.delete(I.token),I.promise;const{errors:i,layouts:s,leaf:c}=a,f=[...s,c];i.forEach(g=>g?.().catch(D)),f.forEach(g=>g?.[1]().catch(D));let l=null;const d=w.url?e!==ge(w.url):!1,p=w.route?a.id!==w.route.id:!1,u=Pr(w.url,r);let h=!1;{const g=f.map((v,A)=>{const k=w.branch[A],b=!!v?.[0]&&(k?.loader!==v[1]||Qe(h,p,d,u,k.server?.uses,n));return b&&(h=!0),b});if(g.some(Boolean)){try{l=await vt(r,g)}catch(v){const A=await F(v,{url:r,params:n,route:{id:e}});return o&&te.has(o)?et({error:A,url:r,params:n,route:a}):we({status:fe(v),error:A,url:r,route:a})}if(l.type==="redirect")return l}}const y=l?.nodes;let m=!1;const _=f.map(async(g,v)=>{if(!g)return;const A=w.branch[v],k=y?.[v];if((!k||k.type==="skip")&&g[1]===A?.loader&&!Qe(m,p,d,u,A.universal?.uses,n))return A;if(m=!0,k?.type==="error")throw k;return Fe({loader:g[1],url:r,params:n,route:a,parent:async()=>{const N={};for(let M=0;M<v;M+=1)Object.assign(N,(await _[M])?.data);return N},server_data_node:qe(k===void 0&&g[0]?{type:"skip"}:k??null,g[0]?A?.server:void 0)})});for(const g of _)g.catch(D);const R=[];for(let g=0;g<f.length;g+=1)if(f[g])try{R.push(await _[g])}catch(v){if(v instanceof xe)return{type:"redirect",location:v.location};if(o&&te.has(o))return et({error:await F(v,{params:n,url:r,route:{id:a.id}}),url:r,params:n,route:a});let A=fe(v),k;if(y?.includes(v))A=v.status??A,k=v.error;else if(v instanceof se)k=v.body;else{if(await $.updated.check())return await ft(),await W(r);k=await F(v,{params:n,url:r,route:{id:a.id}})}const b=await Or(g,R,i);return b?_e({url:r,params:n,branch:R.slice(0,b.idx).concat(b.node),errors:i,status:A,error:k,route:a}):await wt(r,{id:a.id},k,A)}else R.push(void 0);return _e({url:r,params:n,branch:R,errors:i,status:200,error:null,route:a,form:t?void 0:null})}async function Or(e,t,r){for(;e--;)if(r[e]){let n=e;for(;!t[n];)n-=1;try{return{idx:n+1,node:{node:await r[e](),loader:r[e],data:{},server:null,universal:null}}}catch{continue}}}async function we({status:e,error:t,url:r,route:n}){const a={};let o=null;if(E.server_loads[0]===0)try{const s=await vt(r,[!0]);if(s.type!=="data"||s.nodes[0]&&s.nodes[0].type!=="data")throw 0;o=s.nodes[0]??null}catch(s){if(!(s instanceof se&&s.status===404)&&(r.origin!==be||r.pathname!==location.pathname||Me))return await W(r)}try{const i=await Fe({loader:Le,url:r,params:a,route:n,parent:()=>Promise.resolve({}),server_data_node:qe(o)}),s={node:await ue(),loader:ue,universal:null,server:null,data:null};return _e({url:r,params:a,branch:[i,s],status:e,error:t,errors:[],route:null})}catch(i){if(i instanceof xe){await Tr(new URL(i.location,location.href),{},0);return}const s=await E.get_error_template(),c=await F(i,{url:r,params:a,route:n}),f=String(c?.message??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),l=s({status:e,message:f}),d=new DOMParser().parseFromString(l,"text/html");throw document.documentElement.replaceChild(document.adoptNode(d.head),document.head),document.documentElement.replaceChild(document.adoptNode(d.body),document.body),i}}async function jr(e){const t=e.href;if(ce.has(t))return ce.get(t);let r;try{const n=(async()=>{let a=await E.hooks.reroute({url:new URL(e),fetch:async(o,i)=>Lr(o,i,e).promise})??e;if(typeof a=="string"){const o=new URL(e);E.hash?o.hash=a:o.pathname=a,a=o}return a})();ce.set(t,n),r=await n}catch{ce.delete(t);return}return r}async function ve(e,t){if(e&&!Ee(e,L,E.hash)){const r=await jr(e);if(!r)return;const n=Nr(r);for(const a of Be){const o=a.exec(n);if(o)return{id:ge(e),invalidating:t,route:a,params:Nt(o),url:e}}}}function Nr(e){return jt(E.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(L.length))||"/"}function ge(e){return(E.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function yt({url:e,type:t,intent:r,delta:n,event:a,scroll:o}){let i=!1;const s=He(w,r,e,t,o??null);n!==void 0&&(s.navigation.delta=n),a!==void 0&&(s.navigation.event=a);const c={...s.navigation,cancel:()=>{i=!0,s.reject(new Error("navigation cancelled"))}};return ae||ut.forEach(f=>f(c)),i?null:s}async function K({type:e,url:t,popped:r,keepfocus:n,noscroll:a,replace_state:o,state:i={},redirect_count:s=0,nav_token:c={},accept:f=D,block:l=D,event:d}){const p=C;C=c;const u=await ve(t,!1),h=e==="enter"?He(w,u,t,e):yt({url:t,type:e,delta:r?.delta,intent:u,scroll:r?.scroll,event:d});if(!h){l(),C===c&&(C=p);return}const y=S,m=T;f(),ae=!0,me&&h.navigation.type!=="enter"&&$.navigating.set(oe.current=h.navigation);let _=u&&await gt(u);if(!_){if(Ee(t,L,E.hash))return await W(t,o);_=await wt(t,{id:null},await F(new Ce(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,o)}if(t=u?.url||t,C!==c){h.reject(new Error("navigation aborted"));return}if(!_)return;if(_.type==="redirect"){if(s<20){await K({type:e,url:new URL(_.location,t),popped:r,keepfocus:n,noscroll:a,replace_state:o,state:i,redirect_count:s+1,nav_token:c}),h.fulfil(void 0);return}if(_=await we({status:500,error:await F(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}}),!_)return}else if(_.props.page.status>=400&&await $.updated.check())return await ft(),await W(t,o);if(Ir(),$e(y),pt(m),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),i=r?r.state:i,!r){const b=o?0:1,N={[z]:S+=b,[re]:T+=b,[ct]:i};(o?history.replaceState:history.pushState).call(history,N,"",t),o||Sr(S,T)}const R=u&&I?.id===u.id?I.fork:null;I?.fork&&!R?pe():(I=null,G={element:void 0,href:void 0}),_.props.page.state=i;let g;if(me){const b=(await Promise.all(Array.from(Rr,X=>X(h.navigation)))).filter(X=>typeof X=="function");if(b.length>0){let X=function(){b.forEach(Ae=>{ee.delete(Ae)})};b.push(X),b.forEach(Ae=>{ee.add(Ae)})}const N=h.navigation.to;w={..._.state,nav:{params:N.params,route:N.route,url:N.url}},_.props.page&&(_.props.page.url=t),!n&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();const M=R&&await R;M?g=M.commit():(J=null,ht.$set(_.props),J&&Object.assign(_.props.page,J),It(_.props.page),g=Ut?.()),dt=!0}else await _t(_,Pe,!1);const{activeElement:v}=document;if(await g,await le(),await le(),C!==c){h.reject(new Error("navigation aborted"));return}_.props.page&&J&&Object.assign(_.props.page,J);let A=null;if(We){const b=r?r.scroll:a?q():null;b?scrollTo(b.x,b.y):(A=t.hash&&document.getElementById(Et(t)))?A.scrollIntoView():scrollTo(0,0)}const k=document.activeElement!==v&&document.activeElement!==document.body;!n&&!k&&Mr(t,!A),We=!0,ae=!1,h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=q()),ee.forEach(b=>b(h.navigation)),e==="popstate"&&mt(T),$.navigating.set(oe.current=null)}async function wt(e,t,r,n,a){return e.origin===be&&e.pathname===location.pathname&&!Me?await we({status:n,error:r,url:e,route:t}):await W(e,a)}let G={element:void 0,href:void 0};function xr(){let e,t;x.addEventListener("mousemove",i=>{const s=i.target;clearTimeout(e),e=setTimeout(()=>{a(s,V.hover)},20)});function r(i){i.defaultPrevented||a(i.composedPath()[0],V.tap)}x.addEventListener("mousedown",r),x.addEventListener("touchstart",r,{passive:!0});const n=new IntersectionObserver(i=>{for(const s of i)s.isIntersecting&&(Ie(new URL(s.target.href)),n.unobserve(s.target))},{threshold:0});async function a(i,s){const c=St(i,x),f=c===G.element&&c?.href===G.href&&s>=t;if(!c||f)return;const{url:l,external:d,download:p}=je(c,L,E.hash);if(d||p)return;const u=ye(c),h=l&&ge(w.url)===ge(l);if(!(u.reload||h))if(s<=u.preload_data){G={element:c,href:c.href},t=V.tap;const y=await ve(l,!1);if(!y)return;Ur(y)}else s<=u.preload_code&&(G={element:c,href:c.href},t=s,Ie(l))}function o(){n.disconnect();for(const i of x.querySelectorAll("a")){const{url:s,external:c,download:f}=je(i,L,E.hash);if(c||f)continue;const l=ye(i);l.reload||(l.preload_code===V.viewport&&n.observe(i),l.preload_code===V.eager&&Ie(s))}}ee.add(o),o()}function F(e,t){if(e instanceof se)return e.body;const r=fe(e),n=yr(e);return E.hooks.handleError({error:e,event:t,status:r,message:n})??{message:n}}function Cr(e){if(typeof e=="function")de.push(e);else{const{href:t}=new URL(e,location.href);de.push(r=>r.href===t)}}function Dr(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let r=!1;if(Ze(),!ae){const n=He(w,void 0,null,"leave"),a={...n.navigation,cancel:()=>{r=!0,n.reject(new Error("navigation cancelled"))}};ut.forEach(o=>o(a))}r?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&Ze()}),navigator.connection?.saveData||xr(),x.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const r=St(t.composedPath()[0],x);if(!r)return;const{url:n,external:a,target:o,download:i}=je(r,L,E.hash);if(!n)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const s=ye(r);if(!(r instanceof SVGAElement)&&n.protocol!==location.protocol&&!(n.protocol==="https:"||n.protocol==="http:")||i)return;const[f,l]=(E.hash?n.hash.replace(/^#/,""):n.href).split("#"),d=f===Se(location);if(a||s.reload&&(!d||!l)){yt({url:n,type:"link",event:t})?ae=!0:t.preventDefault();return}if(l!==void 0&&d){const[,p]=w.url.href.split("#");if(p===l){if(t.preventDefault(),l===""||l==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const u=r.ownerDocument.getElementById(decodeURIComponent(l));u&&(u.scrollIntoView(),u.focus())}return}if(Z=!0,$e(S),e(n),!s.replace_state)return;Z=!1}t.preventDefault(),await new Promise(p=>{requestAnimationFrame(()=>{setTimeout(p,0)}),setTimeout(p,100)}),await K({type:"link",url:n,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??n.href===location.href,event:t})}),x.addEventListener("submit",t=>{if(t.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(t.target),n=t.submitter;if((n?.formTarget||r.target)==="_blank"||(n?.formMethod||r.method)!=="get")return;const i=new URL(n?.hasAttribute("formaction")&&n?.formAction||r.action);if(Ee(i,L,!1))return;const s=t.target,c=ye(s);if(c.reload)return;t.preventDefault(),t.stopPropagation();const f=new FormData(s,n);i.search=new URLSearchParams(f).toString(),K({type:"form",url:i,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??i.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Oe){if(t.state?.[z]){const r=t.state[z];if(C={},r===S)return;const n=B[r],a=t.state[ct]??{},o=new URL(t.state[hr]??location.href),i=t.state[re],s=w.url?Se(location)===Se(w.url):!1;if(i===T&&(dt||s)){a!==U.state&&(U.state=a),e(o),B[S]=q(),n&&scrollTo(n.x,n.y),S=r;return}const f=r-S;await K({type:"popstate",url:o,popped:{state:a,scroll:n,delta:f},accept:()=>{S=r,T=i},block:()=>{history.go(-f)},nav_token:C,event:t})}else if(!Z){const r=new URL(location.href);e(r),E.hash&&location.reload()}}}),addEventListener("hashchange",()=>{Z&&(Z=!1,history.replaceState({...history.state,[z]:++S,[re]:T},"",location.href))});for(const t of document.querySelectorAll("link"))kr.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(oe.current=null)});function e(t){w.url=U.url=t,$.page.set(Ye(U)),$.page.notify()}}async function $r(e,{status:t=200,error:r,node_ids:n,params:a,route:o,server_route:i,data:s,form:c}){Me=!0;const f=new URL(location.href);let l;({params:a={},route:o={id:null}}=await ve(f,!1)||{}),l=Be.find(({id:u})=>u===o.id);let d,p=!0;try{const u=n.map(async(y,m)=>{const _=s[m];return _?.uses&&(_.uses=bt(_.uses)),Fe({loader:E.nodes[y],url:f,params:a,route:o,parent:async()=>{const R={};for(let g=0;g<m;g+=1)Object.assign(R,(await u[g]).data);return R},server_data_node:qe(_)})}),h=await Promise.all(u);if(l){const y=l.layouts;for(let m=0;m<y.length;m++)y[m]||h.splice(m,0,void 0)}d=await _e({url:f,params:a,branch:h,status:t,error:r,errors:l?.errors,form:c,route:l??null})}catch(u){if(u instanceof xe)return await W(new URL(u.location,location.href));d=await we({status:fe(u),error:await F(u,{url:f,params:a,route:o}),url:f,route:o}),e.textContent="",p=!1}d&&(d.props.page&&(d.props.page.state={}),await _t(d,e,p))}async function vt(e,t){const r=new URL(e);r.pathname=br(e.pathname),e.pathname.endsWith("/")&&r.searchParams.append(gr,"1"),r.searchParams.append(_r,t.map(o=>o?"1":"0").join(""));const n=window.fetch,a=await n(r.href,{});if(!a.ok){let o;throw a.headers.get("content-type")?.includes("application/json")?o=await a.json():a.status===404?o="Not Found":a.status===500&&(o="Internal Error"),new se(a.status,o)}return new Promise((o,i)=>{Br(o,a).catch(i)})}async function Br(e,t){const r=t.body.getReader(),n=new Map;function a(o){return dr(o,{...E.decoders,Promise:i=>new Promise((s,c)=>{n.set(i,{fulfil:s,reject:c})})})}for await(const o of Ar(r)){if(o.type==="redirect")return e(o);if(o.type==="data")o.nodes?.forEach(i=>{i?.type==="data"&&(i.uses=bt(i.uses),i.data=a(i.data))}),e(o);else if(o.type==="chunk"){const{id:i,data:s,error:c}=o,f=n.get(i);n.delete(i),c?f.reject(a(c)):f.fulfil(a(s))}}}function bt(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??[])}}let Oe=!1;function Mr(e,t=!0){const r=document.querySelector("[autofocus]");if(r)r.focus();else{const n=Et(e);if(n&&document.getElementById(n)){const{x:o,y:i}=q();setTimeout(()=>{const s=history.state;Oe=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(o,i),Oe=!1})}else{const o=document.body,i=o.getAttribute("tabindex");o.tabIndex=-1,o.focus({preventScroll:!0,focusVisible:!1}),i!==null?o.setAttribute("tabindex",i):o.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const o=[];for(let i=0;i<a.rangeCount;i+=1)o.push(a.getRangeAt(i));setTimeout(()=>{if(a.rangeCount===o.length){for(let i=0;i<a.rangeCount;i+=1){const s=o[i],c=a.getRangeAt(i);if(s.commonAncestorContainer!==c.commonAncestorContainer||s.startContainer!==c.startContainer||s.endContainer!==c.endContainer||s.startOffset!==c.startOffset||s.endOffset!==c.endOffset)return}a.removeAllRanges()}})}}}function He(e,t,r,n,a=null){let o,i;const s=new Promise((f,l)=>{o=f,i=l});return s.catch(D),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:r&&{params:t?.params??null,route:{id:t?.route?.id??null},url:r,scroll:a},willUnload:!t,type:n,complete:s},fulfil:o,reject:i}}function Ye(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 Vr(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Et(e){let t;if(E.hash){const[,,r]=e.hash.split("#",3);t=r??""}else t=e.hash.slice(1);return decodeURIComponent(t)}const be=location.origin;function At(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const r=document.getElementsByTagName("base");t=r.length?r[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function Y(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const tt={...V,"":V.hover};function kt(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function St(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=kt(e)}}function je(e,t,r){let n;try{if(n=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),r&&n.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";n.hash=`#${s}${n.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,o=!n||!!a||Ee(n,t,r)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),i=n?.origin===be&&e.hasAttribute("download");return{url:n,external:o,target:a,download:i}}function ye(e){let t=null,r=null,n=null,a=null,o=null,i=null,s=e;for(;s&&s!==document.documentElement;)n===null&&(n=Y(s,"preload-code")),a===null&&(a=Y(s,"preload-data")),t===null&&(t=Y(s,"keepfocus")),r===null&&(r=Y(s,"noscroll")),o===null&&(o=Y(s,"reload")),i===null&&(i=Y(s,"replacestate")),s=kt(s);function c(f){switch(f){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:tt[n??"off"],preload_data:tt[a??"off"],keepfocus:c(t),noscroll:c(r),reload:c(o),replace_state:c(i)}}function rt(e){const t=Ne(e);let r=!0;function n(){r=!0,t.update(i=>i)}function a(i){r=!1,t.set(i)}function o(i){let s;return t.subscribe(c=>{(s===void 0||r&&c!==s)&&i(s=c)})}return{notify:n,set:a,subscribe:o}}const Rt={v:D};function Fr(){const{set:e,subscribe:t}=Ne(!1);let r;async function n(){clearTimeout(r);try{const a=await fetch(`${Pt}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const i=(await a.json()).version!==Lt;return i&&(e(!0),Rt.v(),clearTimeout(r)),i}catch{return!1}}return{subscribe:t,check:n}}function Ee(e,t,r){return e.origin!==be||!e.pathname.startsWith(t)?!0:r?e.pathname!==location.pathname:!1}function zr(e){}let U,oe,Te;const qr=Ge.toString().includes("$$")||/function \w+\(\) \{\}/.test(Ge.toString()),nt="a:";qr?(U={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(nt)},oe={current:null},Te={current:!1}):(U=new class{#e=P({});get data(){return O(this.#e)}set data(t){j(this.#e,t)}#t=P(null);get form(){return O(this.#t)}set form(t){j(this.#t,t)}#r=P(null);get error(){return O(this.#r)}set error(t){j(this.#r,t)}#n=P({});get params(){return O(this.#n)}set params(t){j(this.#n,t)}#a=P({id:null});get route(){return O(this.#a)}set route(t){j(this.#a,t)}#o=P({});get state(){return O(this.#o)}set state(t){j(this.#o,t)}#s=P(-1);get status(){return O(this.#s)}set status(t){j(this.#s,t)}#i=P(new URL(nt));get url(){return O(this.#i)}set url(t){j(this.#i,t)}},oe=new class{#e=P(null);get current(){return O(this.#e)}set current(t){j(this.#e,t)}},Te=new class{#e=P(!1);get current(){return O(this.#e)}set current(t){j(this.#e,t)}},Rt.v=()=>Te.current=!0);function It(e){Object.assign(U,e)}export{Gr as a,zr as l,U as p,$ as s};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/zL3j6erO.js";export{o as load_css,r as start};