@acutis/cli 0.1.2-dev.17 → 0.1.2-dev.19

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 (63) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/_nuxt/9eLkUDDj.js +1 -0
  3. package/.output/public/_nuxt/BGkBW2ni2.js +1 -0
  4. package/.output/public/_nuxt/BKydt2Wp2.js +4 -0
  5. package/.output/public/_nuxt/CDI0GNVb2.js +1 -0
  6. package/.output/public/_nuxt/CqZ7dV6a2.js +64 -0
  7. package/.output/public/_nuxt/{CC0OsuIz.js → DtncvtMS.js} +3 -3
  8. package/.output/public/_nuxt/builds/latest.json +1 -1
  9. package/.output/public/_nuxt/builds/meta/a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620.json +1 -0
  10. package/.output/public/_nuxt/entry.Ci6Ki0cW.css +2 -0
  11. package/.output/public/_nuxt/tags.B5A43CvD.css +1 -0
  12. package/.output/server/chunks/_/auth2.mjs +3 -3
  13. package/.output/server/chunks/_/environment.mjs +2 -2
  14. package/.output/server/chunks/_/generation.mjs +3 -3
  15. package/.output/server/chunks/_/project.mjs +2 -2
  16. package/.output/server/chunks/_/project.service.mjs +2 -30
  17. package/.output/server/chunks/_/project.service.mjs.map +1 -1
  18. package/.output/server/chunks/_/recording.mjs +5 -2
  19. package/.output/server/chunks/_/recording.mjs.map +1 -1
  20. package/.output/server/chunks/_/scenario.mjs +4 -2
  21. package/.output/server/chunks/_/scenario.mjs.map +1 -1
  22. package/.output/server/chunks/_/scenario2.mjs +22 -5
  23. package/.output/server/chunks/_/scenario2.mjs.map +1 -1
  24. package/.output/server/chunks/_/spec-rules.mjs +28 -231
  25. package/.output/server/chunks/_/spec-rules.mjs.map +1 -1
  26. package/.output/server/chunks/build/{_...scenario_-DNqQ06NM.mjs → _...scenario_-CTwC_evr.mjs} +172 -31
  27. package/.output/server/chunks/build/_...scenario_-CTwC_evr.mjs.map +1 -0
  28. package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs → _slug_-DEXTo_9N.mjs} +58 -34
  29. package/.output/server/chunks/build/{_slug_-BlLRYU9d.mjs.map → _slug_-DEXTo_9N.mjs.map} +1 -1
  30. package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs → tags-DQ0X0wtQ.mjs} +59 -14
  31. package/.output/server/chunks/build/{tags-DrKY6Ah4.mjs.map → tags-DQ0X0wtQ.mjs.map} +1 -1
  32. package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs +9 -0
  33. package/.output/server/chunks/build/timeline-styles.CzOXKr8R.mjs.map +1 -0
  34. package/.output/server/chunks/nitro/nitro.mjs +680 -270
  35. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  36. package/.output/server/chunks/raw/driver-entry.mjs +1 -1
  37. package/.output/server/chunks/routes/api/projects/_slug/auth/record.post.mjs +1 -1
  38. package/.output/server/chunks/routes/api/projects/_slug/auth/skip.post.mjs +1 -1
  39. package/.output/server/chunks/routes/api/projects/_slug/auth.get.mjs +1 -1
  40. package/.output/server/chunks/routes/api/projects/_slug/auth.put.mjs +1 -1
  41. package/.output/server/chunks/routes/debug/close-page.post.mjs +40 -0
  42. package/.output/server/chunks/routes/debug/close-page.post.mjs.map +1 -0
  43. package/.output/server/chunks/routes/debug/replay-decision.post.mjs +43 -0
  44. package/.output/server/chunks/routes/debug/replay-decision.post.mjs.map +1 -0
  45. package/.output/server/chunks/routes/renderer.mjs +2 -2
  46. package/.output/server/chunks/routes/runner/video.get.mjs +1 -1
  47. package/.output/server/chunks/routes/ws.mjs +19 -2
  48. package/.output/server/chunks/routes/ws.mjs.map +1 -1
  49. package/.output/server/chunks/virtual/entry.mjs +3 -3
  50. package/.output/server/chunks/virtual/precomputed.mjs +1 -1
  51. package/.output/server/chunks/virtual/styles.mjs +2 -1
  52. package/.output/server/index.mjs +1 -1
  53. package/.output/server/package.json +1 -1
  54. package/dist-ui/driver-entry.js +3 -3
  55. package/package.json +1 -1
  56. package/.output/public/_nuxt/5GgR1mbX.js +0 -1
  57. package/.output/public/_nuxt/CTLrtTtn2.js +0 -64
  58. package/.output/public/_nuxt/D4ykC_lY2.js +0 -1
  59. package/.output/public/_nuxt/DDHUGtv32.js +0 -4
  60. package/.output/public/_nuxt/Dpnaldxf2.js +0 -1
  61. package/.output/public/_nuxt/builds/meta/f764322c-bb05-455d-81f9-a546df72cf7d.json +0 -1
  62. package/.output/public/_nuxt/entry.m-nAFUcz.css +0 -2
  63. package/.output/server/chunks/build/_...scenario_-DNqQ06NM.mjs.map +0 -1
@@ -9283,23 +9283,23 @@ async function dispose(driver) {
9283
9283
  const _assets = {
9284
9284
  ["recorder:driver-entry.js"]: {
9285
9285
  import: () => import('../raw/driver-entry.mjs').then(r => r.default || r),
9286
- meta: {"type":"text/javascript; charset=utf-8","etag":"\"17c43-lMgoyTHl0+g27n+uTvuJYtxXjt4\"","mtime":"2026-08-21T21:28:10.799Z"}
9286
+ meta: {"type":"text/javascript; charset=utf-8","etag":"\"18e8f-5Rv+w0aF73xFI2XyNhLxdTAdLSg\"","mtime":"2026-08-22T20:39:18.522Z"}
9287
9287
  },
9288
9288
  ["recorder:favicon.svg"]: {
9289
9289
  import: () => import('../raw/favicon.mjs').then(r => r.default || r),
9290
- meta: {"type":"image/svg+xml","etag":"\"399-DJlj2DBCHGK781jAwgS+8UxnhA8\"","mtime":"2026-08-21T21:28:10.775Z"}
9290
+ meta: {"type":"image/svg+xml","etag":"\"399-DJlj2DBCHGK781jAwgS+8UxnhA8\"","mtime":"2026-08-22T20:39:18.490Z"}
9291
9291
  },
9292
9292
  ["recorder:dev:sample-run.webm"]: {
9293
9293
  import: () => import('../raw/sample-run.mjs').then(r => r.default || r),
9294
- meta: {"type":"video/webm","etag":"\"2d0a2-Bs1NfwhRTxVtmYmJRWP+xntSahM\"","mtime":"2026-08-21T21:28:10.775Z"}
9294
+ meta: {"type":"video/webm","etag":"\"2d0a2-Bs1NfwhRTxVtmYmJRWP+xntSahM\"","mtime":"2026-08-22T20:39:18.490Z"}
9295
9295
  },
9296
9296
  ["templates:playwright-ts:package.json"]: {
9297
9297
  import: () => import('../raw/package.mjs').then(r => r.default || r),
9298
- meta: {"type":"application/json","etag":"\"88-/nGrZxMqH3UwHMuh7tJQ7VnJaGc\"","mtime":"2026-08-21T21:27:17.374Z"}
9298
+ meta: {"type":"application/json","etag":"\"88-/nGrZxMqH3UwHMuh7tJQ7VnJaGc\"","mtime":"2026-08-22T20:38:27.754Z"}
9299
9299
  },
9300
9300
  ["templates:playwright-ts:playwright.config.ts"]: {
9301
9301
  import: () => import('../raw/playwright.config.mjs').then(r => r.default || r),
9302
- meta: {"type":"video/mp2t","etag":"\"588-KWvjOkz0BTOuGUrnDeb9TPlfP1A\"","mtime":"2026-08-21T21:27:17.374Z"}
9302
+ meta: {"type":"video/mp2t","etag":"\"588-KWvjOkz0BTOuGUrnDeb9TPlfP1A\"","mtime":"2026-08-22T20:38:27.754Z"}
9303
9303
  }
9304
9304
  };
9305
9305
 
@@ -10358,7 +10358,7 @@ function _expandFromEnv(value) {
10358
10358
  const _inlineRuntimeConfig = {
10359
10359
  "app": {
10360
10360
  "baseURL": "/",
10361
- "buildId": "f764322c-bb05-455d-81f9-a546df72cf7d",
10361
+ "buildId": "a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620",
10362
10362
  "buildAssetsDir": "/_nuxt/",
10363
10363
  "cdnURL": ""
10364
10364
  },
@@ -10914,6 +10914,297 @@ const RUNNER_DIR = resolve$1(PACKAGE_ROOT, ".tmp/runner");
10914
10914
  const STREAM_REPORTER_PATH = resolve$1(PACKAGE_ROOT, "reporters/stream-reporter.cjs");
10915
10915
  const RECORDER_BUNDLE_PATH = resolve$1(PACKAGE_ROOT, "dist-ui/driver-entry.js");
10916
10916
 
10917
+ var __defProp$8 = Object.defineProperty;
10918
+ var __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10919
+ var __publicField$8 = (obj, key, value) => __defNormalProp$8(obj, typeof key !== "symbol" ? key + "" : key, value);
10920
+ function pathOf(url, fallback = "") {
10921
+ try {
10922
+ return new URL(url).pathname;
10923
+ } catch {
10924
+ return fallback;
10925
+ }
10926
+ }
10927
+ class Url {
10928
+ constructor(value) {
10929
+ __publicField$8(this, "value", value);
10930
+ __publicField$8(this, "parsed");
10931
+ try {
10932
+ this.parsed = new URL(value);
10933
+ } catch {
10934
+ throw new Error(`URL inv\xE1lida: ${value}`);
10935
+ }
10936
+ if (!this.parsed.protocol.startsWith("http")) {
10937
+ throw new Error(`URL inv\xE1lida: ${value}`);
10938
+ }
10939
+ }
10940
+ host() {
10941
+ return this.parsed.hostname;
10942
+ }
10943
+ /** O caminho que a URL já traz, sem a barra final. */
10944
+ path() {
10945
+ return this.parsed.pathname.replace(/\/+$/, "");
10946
+ }
10947
+ toString() {
10948
+ return this.value;
10949
+ }
10950
+ }
10951
+
10952
+ const EnvKey = {
10953
+ /** URL do sistema sob teste: onde o navegador abre ao gravar e a base que o Playwright usa. */
10954
+ URL: "URL",
10955
+ /** Credenciais do login, sob o prefixo `AUTH_` para não colidir com variáveis do shell. */
10956
+ USER: "AUTH_USER",
10957
+ PASSWORD: "AUTH_PASSWORD",
10958
+ ACTIVE_ENVIRONMENT: "ENVIRONMENT",
10959
+ /** Arquivo de sessão do ambiente ativo: o auth.setup.ts grava nele e os cenários o carregam. */
10960
+ STORAGE_STATE: "STORAGE_STATE"
10961
+ };
10962
+ function ownsKey(key) {
10963
+ return Object.values(EnvKey).includes(key);
10964
+ }
10965
+
10966
+ const ENV_KEY = "[A-Za-z_][A-Za-z0-9_]*";
10967
+ function environmentVar(key, value = null, secret = false, pending = false) {
10968
+ return { key, value, secret, pending };
10969
+ }
10970
+ function fromLine(line) {
10971
+ const match = line.trim().match(new RegExp(`^(${ENV_KEY})=(.*)$`));
10972
+ if (!match) return null;
10973
+ return environmentVar(match[1], match[2].trim().replace(/^["']|["']$/g, ""));
10974
+ }
10975
+ function keyed(vars, key) {
10976
+ var _a;
10977
+ return (_a = vars.find((variable) => variable.key === key)) != null ? _a : null;
10978
+ }
10979
+
10980
+ var __defProp$7 = Object.defineProperty;
10981
+ var __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10982
+ var __publicField$7 = (obj, key, value) => __defNormalProp$7(obj, key + "" , value);
10983
+ class ActiveVars {
10984
+ constructor(vars = []) {
10985
+ __publicField$7(this, "vars", vars);
10986
+ const keys = vars.map((variable) => variable.key);
10987
+ for (const key of keys) {
10988
+ if (!new RegExp(`^${ENV_KEY}$`).test(key)) {
10989
+ throw new Error(`Nome de vari\xE1vel inv\xE1lido: ${key}`);
10990
+ }
10991
+ }
10992
+ if (new Set(keys).size !== keys.length) {
10993
+ throw new Error("O ambiente declara a mesma vari\xE1vel duas vezes.");
10994
+ }
10995
+ }
10996
+ get(key) {
10997
+ return keyed(this.vars, key);
10998
+ }
10999
+ has(key) {
11000
+ return this.get(key) !== null;
11001
+ }
11002
+ /** A chave que já guarda esse valor, se alguma guardar. */
11003
+ keyOf(value) {
11004
+ var _a, _b;
11005
+ if (!value) return null;
11006
+ return (_b = (_a = this.vars.find((variable) => variable.value === value)) == null ? void 0 : _a.key) != null ? _b : null;
11007
+ }
11008
+ /** Se a chave está declarada mas sem valor. */
11009
+ isEmpty(key) {
11010
+ var _a;
11011
+ return !((_a = this.get(key)) == null ? void 0 : _a.value);
11012
+ }
11013
+ /** As que têm valor não secreto, e portanto podem vazar literais para o arquivo gerado. */
11014
+ exposed() {
11015
+ return this.vars.filter((variable) => !variable.secret && Boolean(variable.value));
11016
+ }
11017
+ }
11018
+
11019
+ var __defProp$6 = Object.defineProperty;
11020
+ var __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11021
+ var __publicField$6 = (obj, key, value) => __defNormalProp$6(obj, key + "" , value);
11022
+ const MASK = "\u2022\u2022\u2022\u2022";
11023
+ const SENSITIVE_PREFIX = "SENSIVEL_";
11024
+ const NAME_LIMIT = 60;
11025
+ function describeElement(event) {
11026
+ var _a, _b, _c, _d, _e;
11027
+ const selectors = (_a = event.selectors) != null ? _a : null;
11028
+ const source = (_e = (_d = (_c = (_b = event.label) != null ? _b : event.innerText) != null ? _c : selectors == null ? void 0 : selectors.placeholder) != null ? _d : selectors == null ? void 0 : selectors.text) != null ? _e : "";
11029
+ const clean = source.replace(/\s+/gu, " ").trim();
11030
+ return clean === "" ? null : clean.slice(0, NAME_LIMIT).trimEnd();
11031
+ }
11032
+ function marker(key) {
11033
+ return `{{${key}}}`;
11034
+ }
11035
+ class Recording {
11036
+ constructor(recorded) {
11037
+ __publicField$6(this, "recorded", recorded);
11038
+ }
11039
+ static make(events) {
11040
+ return new Recording(events);
11041
+ }
11042
+ /** Os eventos gravados; o DOM capturado só vem quando pedido. */
11043
+ events(html = false) {
11044
+ if (html) return this.recorded;
11045
+ return this.recorded.map(({ html: _html, ...event }) => event);
11046
+ }
11047
+ /** Troca o valor de cada evento sensível pelo marcador. */
11048
+ redacted(environments = new ActiveVars()) {
11049
+ let position = 0;
11050
+ return this.events().map((event) => {
11051
+ var _a, _b;
11052
+ if (event.sensitive !== true) return event;
11053
+ position++;
11054
+ const value = (_a = event.value) != null ? _a : "";
11055
+ return {
11056
+ ...event,
11057
+ value: marker((_b = environments.keyOf(value)) != null ? _b : `${SENSITIVE_PREFIX}${position}`)
11058
+ };
11059
+ });
11060
+ }
11061
+ /** O DOM ao redor de cada elemento, na chave do evento que o produziu. */
11062
+ html() {
11063
+ const html = {};
11064
+ this.recorded.forEach((event, index) => {
11065
+ if (event.html) html[index] = event.html;
11066
+ });
11067
+ return html;
11068
+ }
11069
+ /** Os eventos com usuário e senha trocados pelo nome da variável que os guarda. */
11070
+ withoutPasswords() {
11071
+ const events = this.events();
11072
+ const password = this.passwordIndex();
11073
+ for (const [index, event] of events.entries()) {
11074
+ if (event.inputType === "password") {
11075
+ events[index] = { ...event, value: marker(EnvKey.PASSWORD) };
11076
+ }
11077
+ }
11078
+ const user = password === null ? null : this.fillBefore(password);
11079
+ if (user !== null) {
11080
+ events[user] = { ...events[user], value: marker(EnvKey.USER) };
11081
+ }
11082
+ return events;
11083
+ }
11084
+ /**
11085
+ * A URL em que a gravação caiu depois do login: a primeira navegação após o submit (ou após o
11086
+ * campo de senha, quando não houve submit) que saiu da URL onde o login foi enviado.
11087
+ */
11088
+ landingUrl() {
11089
+ let submitIndex = null;
11090
+ this.recorded.forEach((event, index) => {
11091
+ if (event.type === "submit" || event.type === "fill" && event.inputType === "password") {
11092
+ submitIndex = index;
11093
+ }
11094
+ });
11095
+ if (submitIndex === null) return null;
11096
+ const submitUrl = this.recorded[submitIndex].url;
11097
+ for (const event of this.recorded.slice(submitIndex + 1)) {
11098
+ if (event.type === "navigate" && event.url && event.url !== submitUrl) {
11099
+ return event.url;
11100
+ }
11101
+ }
11102
+ return null;
11103
+ }
11104
+ /** Usuário e senha reais do login gravado, ou null quando não dá para identificá-los. */
11105
+ credentials() {
11106
+ var _a, _b;
11107
+ const passwordIndex = this.passwordIndex();
11108
+ if (passwordIndex === null) return null;
11109
+ const userIndex = this.fillBefore(passwordIndex);
11110
+ const username = userIndex === null ? null : (_a = this.recorded[userIndex]) == null ? void 0 : _a.value;
11111
+ const password = (_b = this.recorded[passwordIndex]) == null ? void 0 : _b.value;
11112
+ return username && password ? { username, password } : null;
11113
+ }
11114
+ /** O valor real de cada marcador batizado, indexado pelo nome que ele recebeu. */
11115
+ envValues(names) {
11116
+ const sensitive = this.sensitiveValues();
11117
+ const values = {};
11118
+ for (const [key, name] of Object.entries(names)) {
11119
+ if (!key.startsWith(SENSITIVE_PREFIX)) continue;
11120
+ const position = Number(key.slice(SENSITIVE_PREFIX.length));
11121
+ const value = sensitive[position - 1];
11122
+ if (value === void 0) continue;
11123
+ values[name] = value;
11124
+ }
11125
+ return values;
11126
+ }
11127
+ /** O alerta de quando os nomes declarados não cobrem os marcadores da gravação. */
11128
+ unmatchedEnvWarning(names) {
11129
+ const markers = this.sensitiveValues().length;
11130
+ const declared = Object.keys(names).length;
11131
+ if (markers === 0 || declared === markers) return null;
11132
+ return `Grava\xE7\xE3o tem ${markers} valor(es) sens\xEDvel(is) mas a IA nomeou ${declared}, e algum .env pode ter ficado vazio.`;
11133
+ }
11134
+ sensitiveValues() {
11135
+ return this.recorded.filter((event) => event.sensitive === true).map((event) => {
11136
+ var _a;
11137
+ return (_a = event.value) != null ? _a : "";
11138
+ });
11139
+ }
11140
+ passwordIndex() {
11141
+ const index = this.recorded.findIndex(
11142
+ (event) => event.type === "fill" && event.inputType === "password"
11143
+ );
11144
+ return index === -1 ? null : index;
11145
+ }
11146
+ /** O preenchimento anterior ao índice dado, que é onde o usuário do login foi digitado. */
11147
+ fillBefore(index) {
11148
+ var _a;
11149
+ for (let i = index - 1; i >= 0; i--) {
11150
+ if (((_a = this.recorded[i]) == null ? void 0 : _a.type) === "fill") return i;
11151
+ }
11152
+ return null;
11153
+ }
11154
+ }
11155
+
11156
+ function attribute(name, value) {
11157
+ return `[${name}=${JSON.stringify(value)}]`;
11158
+ }
11159
+ function replaySelector(selectors) {
11160
+ if (!selectors) return null;
11161
+ if (selectors.dataTestId) return attribute("data-testid", selectors.dataTestId);
11162
+ if (selectors.dataCy) return attribute("data-cy", selectors.dataCy);
11163
+ if (selectors.id) return attribute("id", selectors.id);
11164
+ if (selectors.cssStable) return selectors.cssStable;
11165
+ if (selectors.ariaLabel) return attribute("aria-label", selectors.ariaLabel);
11166
+ if (selectors.placeholder) return attribute("placeholder", selectors.placeholder);
11167
+ if (selectors.text) return `text=${JSON.stringify(selectors.text)}`;
11168
+ if (selectors.finder) return selectors.finder;
11169
+ if (selectors.xpath) return `xpath=${selectors.xpath}`;
11170
+ return null;
11171
+ }
11172
+ function typeable(value) {
11173
+ return value !== null && value !== "" && value !== MASK && !/^\{\{.+\}\}$/.test(value);
11174
+ }
11175
+ function replaySteps(events) {
11176
+ const steps = [];
11177
+ events.forEach((event, at) => {
11178
+ if (event.type === "navigate") {
11179
+ if (event.url) {
11180
+ steps.push({ action: "goto", url: event.url, label: `Abre ${pathOf(event.url, event.url)}`, at });
11181
+ }
11182
+ return;
11183
+ }
11184
+ const selector = replaySelector(event.selectors);
11185
+ if (!selector) return;
11186
+ const name = describeElement(event);
11187
+ if (event.type === "click") {
11188
+ steps.push({
11189
+ action: "click",
11190
+ selector,
11191
+ label: name === null ? "Clica no elemento" : `Clica em "${name}"`,
11192
+ at
11193
+ });
11194
+ }
11195
+ if (event.type === "fill" && typeable(event.value)) {
11196
+ steps.push({
11197
+ action: "fill",
11198
+ selector,
11199
+ value: event.value,
11200
+ label: name === null ? "Preenche o campo" : `Preenche "${name}"`,
11201
+ at
11202
+ });
11203
+ }
11204
+ });
11205
+ return steps;
11206
+ }
11207
+
10917
11208
  var __defProp$5 = Object.defineProperty;
10918
11209
  var __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10919
11210
  var __publicField$5 = (obj, key, value) => __defNormalProp$5(obj, typeof key !== "symbol" ? key + "" : key, value);
@@ -10921,6 +11212,10 @@ const RECORDING_VIEWPORT = { width: 1280, height: 720 };
10921
11212
  const STORAGE_STATE_TIMEOUT_MS = 1500;
10922
11213
  const SCREENCAST_STOP_TIMEOUT_MS = 2500;
10923
11214
  const CDP_CLOSE_TIMEOUT_MS = 1500;
11215
+ const REPLAY_STEP_TIMEOUT_MS = 2500;
11216
+ const REPLAY_RETRY_TIMEOUT_MS = 4e3;
11217
+ const REPLAY_SETTLE_MS = 1500;
11218
+ const DECISION_POLL_MS = 200;
10924
11219
  const BLANK = "about:blank";
10925
11220
  class RecorderService {
10926
11221
  constructor(videoService) {
@@ -10934,8 +11229,12 @@ class RecorderService {
10934
11229
  __publicField$5(this, "sessionId", null);
10935
11230
  __publicField$5(this, "screencastStarted", false);
10936
11231
  __publicField$5(this, "ready", false);
11232
+ __publicField$5(this, "replaying", false);
11233
+ __publicField$5(this, "replayState", { status: "idle", step: null });
11234
+ __publicField$5(this, "replayDecision", null);
10937
11235
  __publicField$5(this, "bundlePath", null);
10938
11236
  __publicField$5(this, "bundleLoader", null);
11237
+ __publicField$5(this, "stopping", false);
10939
11238
  }
10940
11239
  configureBundlePath(path) {
10941
11240
  this.bundlePath = path;
@@ -10946,11 +11245,13 @@ class RecorderService {
10946
11245
  isRecording() {
10947
11246
  return this.context !== null;
10948
11247
  }
10949
- async start(onEvent, onStarted, onRequestStop, mode = "scenario", storageStatePath, url) {
10950
- var _a, _b;
11248
+ async start(onEvent, onStarted, onRequestStop, mode = "scenario", storageStatePath, url, replay, hooks = {}) {
11249
+ var _a, _b, _c, _d;
10951
11250
  this.sessionId = randomUUID$1();
10952
11251
  this.screencastStarted = false;
10953
11252
  this.ready = false;
11253
+ this.replaying = false;
11254
+ this.stopping = false;
10954
11255
  await this.videoService.ensureDir();
10955
11256
  if (RECORDER_CDP_URL) {
10956
11257
  try {
@@ -10978,6 +11279,7 @@ class RecorderService {
10978
11279
  await this.page.setViewportSize(RECORDING_VIEWPORT);
10979
11280
  this.lastUrl = null;
10980
11281
  this.report = (event) => {
11282
+ if (this.replaying) return;
10981
11283
  if (event.type === "navigate") {
10982
11284
  if (event.url === BLANK) {
10983
11285
  return;
@@ -10988,6 +11290,14 @@ class RecorderService {
10988
11290
  };
10989
11291
  await this.page.exposeFunction("__acutisReportEvent", this.report);
10990
11292
  await this.page.exposeFunction("__acutisRequestStop", onRequestStop);
11293
+ await this.page.exposeFunction("__acutisCancelRecording", () => {
11294
+ var _a2;
11295
+ return (_a2 = hooks.onCancelRequested) == null ? void 0 : _a2.call(hooks);
11296
+ });
11297
+ await this.page.exposeFunction("__acutisReplayState", () => this.replayState);
11298
+ await this.page.exposeFunction("__acutisReplayDecision", (decision) => {
11299
+ this.decideReplay(decision === "resume" ? "resume" : "cancel");
11300
+ });
10991
11301
  await this.context.addInitScript((recorderMode) => {
10992
11302
  globalThis.__acutisRecorderMode = recorderMode;
10993
11303
  }, mode);
@@ -10997,6 +11307,8 @@ class RecorderService {
10997
11307
  await this.context.addInitScript({ path: (_b = this.bundlePath) != null ? _b : RECORDER_BUNDLE_PATH });
10998
11308
  }
10999
11309
  this.ready = true;
11310
+ this.page.on("close", () => this.handleExternalClose(onRequestStop, hooks));
11311
+ this.browser.on("disconnected", () => this.handleExternalClose(onRequestStop, hooks));
11000
11312
  const sessionId = this.sessionId;
11001
11313
  const videoPath = this.videoService.path(sessionId);
11002
11314
  this.page.on("framenavigated", (frame) => {
@@ -11006,16 +11318,94 @@ class RecorderService {
11006
11318
  const recordingStartedAt = Date.now();
11007
11319
  void this.page.screencast.start({ path: videoPath, size: RECORDING_VIEWPORT }).then(() => onStarted(recordingStartedAt));
11008
11320
  });
11009
- if (url) {
11321
+ const steps = (replay == null ? void 0 : replay.length) ? replaySteps(replay) : [];
11322
+ if (steps.length) this.replayState = { status: "running", step: steps[0].label };
11323
+ if (url && !steps.some((step) => step.action === "goto")) {
11010
11324
  await this.page.goto(url, { waitUntil: "domcontentloaded" }).catch(() => {
11011
11325
  });
11012
11326
  }
11327
+ if (!steps.length) return;
11328
+ const { cancelledAt, keptEvents } = await this.replay(steps, hooks);
11329
+ if (cancelledAt !== null) {
11330
+ await ((_c = hooks.onCancelled) == null ? void 0 : _c.call(hooks, cancelledAt));
11331
+ return;
11332
+ }
11333
+ await ((_d = hooks.onReplayed) == null ? void 0 : _d.call(hooks, keptEvents));
11334
+ }
11335
+ /**
11336
+ * Refaz os passos já gravados para o usuário continuar do ponto que escolheu. Passo que não
11337
+ * repete nem na segunda tentativa para a retomada e devolve a decisão para ele, na janela.
11338
+ * Devolve o passo em que ele cancelou e, quando assumiu no meio, quantos eventos foram refeitos.
11339
+ */
11340
+ async replay(steps, hooks) {
11341
+ var _a;
11342
+ if (!this.page) return { cancelledAt: null, keptEvents: null };
11343
+ const page = this.page;
11344
+ this.replaying = true;
11345
+ this.replayState = { status: "running", step: steps[0].label };
11346
+ let keptEvents = null;
11347
+ try {
11348
+ for (const step of steps) {
11349
+ this.replayState = { status: "running", step: step.label };
11350
+ if (await this.attempt(page, step, REPLAY_STEP_TIMEOUT_MS)) continue;
11351
+ if (await this.attempt(page, step, REPLAY_RETRY_TIMEOUT_MS)) continue;
11352
+ this.replayState = { status: "failed", step: step.label };
11353
+ (_a = hooks.onFailed) == null ? void 0 : _a.call(hooks, step.label);
11354
+ const decision = await this.awaitDecision(page);
11355
+ if (decision === "cancel") return { cancelledAt: step.label, keptEvents: null };
11356
+ if (decision === null) return { cancelledAt: null, keptEvents: null };
11357
+ keptEvents = step.at;
11358
+ break;
11359
+ }
11360
+ await page.waitForTimeout(REPLAY_SETTLE_MS);
11361
+ return { cancelledAt: null, keptEvents };
11362
+ } finally {
11363
+ this.replaying = false;
11364
+ this.replayState = { status: "idle", step: null };
11365
+ this.lastUrl = page.url();
11366
+ }
11367
+ }
11368
+ /** Um passo refeito. O clique é despachado no elemento, porque a cortina cobre a página. */
11369
+ async attempt(page, step, timeout) {
11370
+ try {
11371
+ if (step.action === "goto") {
11372
+ await page.goto(step.url, { waitUntil: "domcontentloaded" });
11373
+ } else if (step.action === "fill") {
11374
+ await page.fill(step.selector, step.value, { timeout, force: true });
11375
+ await page.locator(step.selector).blur({ timeout }).catch(() => void 0);
11376
+ } else {
11377
+ await page.locator(step.selector).dispatchEvent("click", {}, { timeout });
11378
+ }
11379
+ return true;
11380
+ } catch {
11381
+ return false;
11382
+ }
11383
+ }
11384
+ /** A escolha que o usuário faz na cortina, ou null quando a janela some antes de ele escolher. */
11385
+ async awaitDecision(page) {
11386
+ this.replayDecision = null;
11387
+ while (this.replayDecision === null) {
11388
+ if (page.isClosed() || this.stopping) return null;
11389
+ await new Promise((resolve) => setTimeout(resolve, DECISION_POLL_MS));
11390
+ }
11391
+ return this.replayDecision;
11392
+ }
11393
+ /** A janela fechada pelo usuário descarta a gravação, pelo mesmo caminho do cancelar da pill. */
11394
+ handleExternalClose(onRequestStop, hooks) {
11395
+ if (this.stopping || !this.context) return;
11396
+ const discard = hooks.onCancelRequested;
11397
+ if (!discard) {
11398
+ onRequestStop();
11399
+ return;
11400
+ }
11401
+ Promise.resolve(discard()).catch(() => void 0);
11013
11402
  }
11014
11403
  async stop() {
11015
11404
  var _a, _b, _c, _d, _e;
11016
11405
  if (!this.context) {
11017
11406
  return { sessionId: null, storageState: null };
11018
11407
  }
11408
+ this.stopping = true;
11019
11409
  const sessionId = this.sessionId;
11020
11410
  const wasScreencasting = this.screencastStarted;
11021
11411
  const storageState = await this.withTimeout(
@@ -11124,6 +11514,10 @@ class RecorderService {
11124
11514
  }
11125
11515
  return this.page;
11126
11516
  }
11517
+ /** A mesma decisão que a cortina manda; o shadow fechado dela não é alcançável de fora. */
11518
+ decideReplay(decision) {
11519
+ this.replayDecision = decision;
11520
+ }
11127
11521
  async debugGoto(url) {
11128
11522
  const page = await this.waitForPage();
11129
11523
  await page.goto(url, { waitUntil: "domcontentloaded" });
@@ -11137,6 +11531,11 @@ class RecorderService {
11137
11531
  await page.fill(selector, value);
11138
11532
  await page.locator(selector).blur();
11139
11533
  }
11534
+ /** Fecha a página gravada como se o usuário tivesse fechado a janela na mão. */
11535
+ async debugClosePage() {
11536
+ const page = await this.waitForPage();
11537
+ await page.close();
11538
+ }
11140
11539
  async withTimeout(promise, timeoutMs, fallback) {
11141
11540
  let timer;
11142
11541
  const timeout = new Promise((resolve) => {
@@ -12156,516 +12555,523 @@ _6m_lBKCDxxJVPiXUa9aPgLPWTARgtjNWNP4gmc5uKfw
12156
12555
  ];
12157
12556
 
12158
12557
  const assets = {
12159
- "/_fonts/0ncyUitqxXEtrEm7HzcQs5wcgo3wfV568UNDKlMnwsw-w0Y558yvXBaRp1OJ6ZEQsSSyhrLS3tQZTVIEmsGbzXo.woff2": {
12160
- "type": "font/woff2",
12161
- "etag": "\"21b4-5vUr0lwu56eej0WYd8CeVlrshdk\"",
12162
- "mtime": "2026-08-21T21:28:20.758Z",
12163
- "size": 8628,
12164
- "path": "../public/_fonts/0ncyUitqxXEtrEm7HzcQs5wcgo3wfV568UNDKlMnwsw-w0Y558yvXBaRp1OJ6ZEQsSSyhrLS3tQZTVIEmsGbzXo.woff2"
12165
- },
12166
- "/_fonts/5tRZydxhCpIwZ4Yf99ciVcTJxjB_TdL5XPynMmeCJR4-zei18mH_L_yyrzmgYbz265bB_W_eHd-LFGzZcS_SdtE.woff2": {
12167
- "type": "font/woff2",
12168
- "etag": "\"2144-wqgN+yL7WN+AVsPgk3XDykxurXk\"",
12169
- "mtime": "2026-08-21T21:28:20.758Z",
12170
- "size": 8516,
12171
- "path": "../public/_fonts/5tRZydxhCpIwZ4Yf99ciVcTJxjB_TdL5XPynMmeCJR4-zei18mH_L_yyrzmgYbz265bB_W_eHd-LFGzZcS_SdtE.woff2"
12172
- },
12173
- "/_fonts/EOefiLcwRKJ4nKM16K6z_F-mq3lOHkCw6EhYBbQIHPQ-nl9JjWyF976eNfiKihuAmOh43UjKIH95ojQg3EBL0Z0.woff2": {
12174
- "type": "font/woff2",
12175
- "etag": "\"177c-7sGmeKySE5GVzm0dGyjV5D08aoU\"",
12176
- "mtime": "2026-08-21T21:28:20.758Z",
12177
- "size": 6012,
12178
- "path": "../public/_fonts/EOefiLcwRKJ4nKM16K6z_F-mq3lOHkCw6EhYBbQIHPQ-nl9JjWyF976eNfiKihuAmOh43UjKIH95ojQg3EBL0Z0.woff2"
12179
- },
12180
- "/favicon.svg": {
12181
- "type": "image/svg+xml",
12182
- "etag": "\"399-DJlj2DBCHGK781jAwgS+8UxnhA8\"",
12183
- "mtime": "2026-08-21T21:28:20.863Z",
12184
- "size": 921,
12185
- "path": "../public/favicon.svg"
12186
- },
12187
- "/_fonts/XUVCr3JJnCKa3ZjFe_4w-iDoaxDWfJzV4YCx_1QCo_E-3jWYsKhSrJxbXnSqiLm_B7lgRj5JeEHZF09nljCh3M0.woff2": {
12188
- "type": "font/woff2",
12189
- "etag": "\"2224-DOM9SokVAMep6ZvnjMP9IsHmo0o\"",
12190
- "mtime": "2026-08-21T21:28:20.759Z",
12191
- "size": 8740,
12192
- "path": "../public/_fonts/XUVCr3JJnCKa3ZjFe_4w-iDoaxDWfJzV4YCx_1QCo_E-3jWYsKhSrJxbXnSqiLm_B7lgRj5JeEHZF09nljCh3M0.woff2"
12193
- },
12194
- "/_fonts/YpdduKWWs-eOA_Cc_7jA92GH6kPvk9DopllJiZ2Ltr4-xlZteAWjxfvRgLsA8z771osmF3aCdHwOdhrFE7sEFoQ.woff2": {
12195
- "type": "font/woff2",
12196
- "etag": "\"1edc-fkjVSx3x0/ZX/JAidZAwgYP/ndw\"",
12197
- "mtime": "2026-08-21T21:28:20.759Z",
12198
- "size": 7900,
12199
- "path": "../public/_fonts/YpdduKWWs-eOA_Cc_7jA92GH6kPvk9DopllJiZ2Ltr4-xlZteAWjxfvRgLsA8z771osmF3aCdHwOdhrFE7sEFoQ.woff2"
12200
- },
12201
- "/_fonts/GZ8Vu2ga9Ys2RWqI_5_fmscGtaVz0BT0fO9HHusvG5Q-3uovunZ3f6ktPUtRyj_ghk9XNUfND7GlCM2BYJtdJWw.woff2": {
12202
- "type": "font/woff2",
12203
- "etag": "\"1f38-//55P1Jgd0CYSpMe5xWKqC25SnI\"",
12204
- "mtime": "2026-08-21T21:28:20.759Z",
12205
- "size": 7992,
12206
- "path": "../public/_fonts/GZ8Vu2ga9Ys2RWqI_5_fmscGtaVz0BT0fO9HHusvG5Q-3uovunZ3f6ktPUtRyj_ghk9XNUfND7GlCM2BYJtdJWw.woff2"
12207
- },
12208
- "/_fonts/_WITXZSlvQMoD2fEgG1wXh8OdDfanMwrMC1wOPGgNhY-DGRD4A2ezdSeftFtmisWfZSsUcF6tvcGkBhNOAHhEgk.woff2": {
12209
- "type": "font/woff2",
12210
- "etag": "\"1e3c-u6AgwP0EJgeYcv3XkpomC0FIRc0\"",
12211
- "mtime": "2026-08-21T21:28:20.759Z",
12212
- "size": 7740,
12213
- "path": "../public/_fonts/_WITXZSlvQMoD2fEgG1wXh8OdDfanMwrMC1wOPGgNhY-DGRD4A2ezdSeftFtmisWfZSsUcF6tvcGkBhNOAHhEgk.woff2"
12214
- },
12215
- "/_fonts/e-_sz56pssm7ydCJFOGAUPMl6TV_DbBVqRvEYBSrqVc-_p0SPnOA0FWTLlD4I2lH2hgDcJUxfAKRZAYBMxgjiC0.woff2": {
12216
- "type": "font/woff2",
12217
- "etag": "\"1ea8-avadMHwzrw88TD65bvAepDkPR04\"",
12218
- "mtime": "2026-08-21T21:28:20.759Z",
12219
- "size": 7848,
12220
- "path": "../public/_fonts/e-_sz56pssm7ydCJFOGAUPMl6TV_DbBVqRvEYBSrqVc-_p0SPnOA0FWTLlD4I2lH2hgDcJUxfAKRZAYBMxgjiC0.woff2"
12221
- },
12222
- "/_fonts/m6rGg_mpoPQz2cTkdhDYgczR4yctyKztEG6iwU71C34-LpS_o7_2y38Z56f0WGt_t_5ngxEqpN2qQIBqyNhFgsU.woff2": {
12223
- "type": "font/woff2",
12224
- "etag": "\"21e4-2xCtTiyjgRAM5Dk9QxxKODBGei4\"",
12225
- "mtime": "2026-08-21T21:28:20.759Z",
12226
- "size": 8676,
12227
- "path": "../public/_fonts/m6rGg_mpoPQz2cTkdhDYgczR4yctyKztEG6iwU71C34-LpS_o7_2y38Z56f0WGt_t_5ngxEqpN2qQIBqyNhFgsU.woff2"
12228
- },
12229
- "/_fonts/bjNDQff8sSvRh4GSJLCMMDpBdKcXueWLQqqQmnFqm7o-8fGs_K2xfIMVefRfexJe4qYf76rOVS_5WhCBYBsxYVo.woff2": {
12230
- "type": "font/woff2",
12231
- "etag": "\"177c-80/RBhNFJqcP3UljAelorcOubsE\"",
12232
- "mtime": "2026-08-21T21:28:20.759Z",
12233
- "size": 6012,
12234
- "path": "../public/_fonts/bjNDQff8sSvRh4GSJLCMMDpBdKcXueWLQqqQmnFqm7o-8fGs_K2xfIMVefRfexJe4qYf76rOVS_5WhCBYBsxYVo.woff2"
12235
- },
12236
- "/_fonts/cfe5huB_y467A-yGRsjncGttRMYh8iB3HIAbd1-EgFk-_StpNKo8SiO_EaTbyGHT7XYvLA1oY5zTHOn_eSaSyTk.woff2": {
12237
- "type": "font/woff2",
12238
- "etag": "\"16f0-XEqELcbY5UPEivjwMKtP26b9tNc\"",
12239
- "mtime": "2026-08-21T21:28:20.759Z",
12240
- "size": 5872,
12241
- "path": "../public/_fonts/cfe5huB_y467A-yGRsjncGttRMYh8iB3HIAbd1-EgFk-_StpNKo8SiO_EaTbyGHT7XYvLA1oY5zTHOn_eSaSyTk.woff2"
12242
- },
12243
- "/_fonts/nco6D2lcYG_YRxaF8tG6Gs39nDWiQTHuWOjZbslCV8s-IUsuo3G_y8xv3hRlufkQpA8w-oRC3eG7HYs5j_P_274.woff2": {
12244
- "type": "font/woff2",
12245
- "etag": "\"1548-qD0ozyo93J9OeSW1BKUcbKGjBoQ\"",
12246
- "mtime": "2026-08-21T21:28:20.759Z",
12247
- "size": 5448,
12248
- "path": "../public/_fonts/nco6D2lcYG_YRxaF8tG6Gs39nDWiQTHuWOjZbslCV8s-IUsuo3G_y8xv3hRlufkQpA8w-oRC3eG7HYs5j_P_274.woff2"
12249
- },
12250
- "/_fonts/op99aXquCGImGVv0pEDnzC7HS8p1SZ6VzEO576zT4MA-mpC9F6cIaTw8AO5X8_UXZ7ioAW2oHM_76x0asIyVA80.woff2": {
12251
- "type": "font/woff2",
12252
- "etag": "\"15b0-sqzPYvDy9re3PVEvO6N+mfZ0x+M\"",
12253
- "mtime": "2026-08-21T21:28:20.759Z",
12254
- "size": 5552,
12255
- "path": "../public/_fonts/op99aXquCGImGVv0pEDnzC7HS8p1SZ6VzEO576zT4MA-mpC9F6cIaTw8AO5X8_UXZ7ioAW2oHM_76x0asIyVA80.woff2"
12256
- },
12257
- "/_fonts/tch9LzN5j_dlnjUtoti6RdPCzFPIC61h2dp093uB1d4-6ufKabglPJqip8M2ovOr08UNFI7rTJNJ_NpV2P9blpc.woff2": {
12258
- "type": "font/woff2",
12259
- "etag": "\"1718-O4VsLbdOi9kDnEH4r+8VOq3o5HU\"",
12260
- "mtime": "2026-08-21T21:28:20.759Z",
12261
- "size": 5912,
12262
- "path": "../public/_fonts/tch9LzN5j_dlnjUtoti6RdPCzFPIC61h2dp093uB1d4-6ufKabglPJqip8M2ovOr08UNFI7rTJNJ_NpV2P9blpc.woff2"
12263
- },
12264
- "/_fonts/vYKPADYc-DuiKOUdPseFWq8k7wot3DXAgkBGOtlALzM-_fCqsHYsWtfAvLhylqaUYj1rC930WvXTjBVdTJtv5LA.woff2": {
12265
- "type": "font/woff2",
12266
- "etag": "\"1608-D9gBKRW7h8xB8fw0DKyUKwCWNaQ\"",
12267
- "mtime": "2026-08-21T21:28:20.759Z",
12268
- "size": 5640,
12269
- "path": "../public/_fonts/vYKPADYc-DuiKOUdPseFWq8k7wot3DXAgkBGOtlALzM-_fCqsHYsWtfAvLhylqaUYj1rC930WvXTjBVdTJtv5LA.woff2"
12270
- },
12271
- "/_fonts/zDv8W5qScDHC1KDT1cvI7PwzOHF-p3XubgMMgTX-1UE-GKt2pu9p2cnYqnrvnVM1O_b7ipTl1lhOzymkeh4kdd8.woff2": {
12272
- "type": "font/woff2",
12273
- "etag": "\"1578-DBk4lWQ0jupAQEUE7SJTDlGmrXQ\"",
12274
- "mtime": "2026-08-21T21:28:20.759Z",
12275
- "size": 5496,
12276
- "path": "../public/_fonts/zDv8W5qScDHC1KDT1cvI7PwzOHF-p3XubgMMgTX-1UE-GKt2pu9p2cnYqnrvnVM1O_b7ipTl1lhOzymkeh4kdd8.woff2"
12277
- },
12278
- "/_nuxt/5GgR1mbX.js": {
12558
+ "/_nuxt/9eLkUDDj.js": {
12279
12559
  "type": "text/javascript; charset=utf-8",
12280
- "etag": "\"893-DbaUWnhdDtE/x/5eZXWGpnU2TQQ\"",
12281
- "mtime": "2026-08-21T21:28:20.772Z",
12282
- "size": 2195,
12283
- "path": "../public/_nuxt/5GgR1mbX.js"
12560
+ "etag": "\"a75-sWmZ/ggbVxmmBxcppADnK5FmI00\"",
12561
+ "mtime": "2026-08-22T20:39:29.503Z",
12562
+ "size": 2677,
12563
+ "path": "../public/_nuxt/9eLkUDDj.js"
12284
12564
  },
12285
12565
  "/_nuxt/ANcp5QFz.js": {
12286
12566
  "type": "text/javascript; charset=utf-8",
12287
12567
  "etag": "\"164b-uf1Uob8sh8MZqP91LA+dZ1Tx6dg\"",
12288
- "mtime": "2026-08-21T21:28:20.772Z",
12568
+ "mtime": "2026-08-22T20:39:29.502Z",
12289
12569
  "size": 5707,
12290
12570
  "path": "../public/_nuxt/ANcp5QFz.js"
12291
12571
  },
12292
12572
  "/_nuxt/BDNMzG2s2.js": {
12293
12573
  "type": "text/javascript; charset=utf-8",
12294
12574
  "etag": "\"54-MasMfSk/A98C3Gn9uIOxtFxkWNw\"",
12295
- "mtime": "2026-08-21T21:28:20.773Z",
12575
+ "mtime": "2026-08-22T20:39:29.502Z",
12296
12576
  "size": 84,
12297
12577
  "path": "../public/_nuxt/BDNMzG2s2.js"
12298
12578
  },
12299
12579
  "/_nuxt/BEFJRHhA2.js": {
12300
12580
  "type": "text/javascript; charset=utf-8",
12301
12581
  "etag": "\"d56-tBy26GgOjkknUMfbGsIIVG6gBH0\"",
12302
- "mtime": "2026-08-21T21:28:20.773Z",
12582
+ "mtime": "2026-08-22T20:39:29.502Z",
12303
12583
  "size": 3414,
12304
12584
  "path": "../public/_nuxt/BEFJRHhA2.js"
12305
12585
  },
12306
- "/_nuxt/BEQgcp5R.js": {
12586
+ "/favicon.svg": {
12587
+ "type": "image/svg+xml",
12588
+ "etag": "\"399-DJlj2DBCHGK781jAwgS+8UxnhA8\"",
12589
+ "mtime": "2026-08-22T20:39:29.514Z",
12590
+ "size": 921,
12591
+ "path": "../public/favicon.svg"
12592
+ },
12593
+ "/_nuxt/BEk00u4_.js": {
12307
12594
  "type": "text/javascript; charset=utf-8",
12308
- "etag": "\"23b50-mpkzkb8N5qHVb35K0Lrc0wI0cog\"",
12309
- "mtime": "2026-08-21T21:28:20.772Z",
12310
- "size": 146256,
12311
- "path": "../public/_nuxt/BEQgcp5R.js"
12595
+ "etag": "\"22d6-s9qlvXRsBzdcF6h5ZLjdLGQoQSM\"",
12596
+ "mtime": "2026-08-22T20:39:29.502Z",
12597
+ "size": 8918,
12598
+ "path": "../public/_nuxt/BEk00u4_.js"
12312
12599
  },
12313
12600
  "/_nuxt/BGdmRvCK2.js": {
12314
12601
  "type": "text/javascript; charset=utf-8",
12315
12602
  "etag": "\"16b5-Sshhy3WKzOt1UoHLHuiHM1ftX24\"",
12316
- "mtime": "2026-08-21T21:28:20.773Z",
12603
+ "mtime": "2026-08-22T20:39:29.502Z",
12317
12604
  "size": 5813,
12318
12605
  "path": "../public/_nuxt/BGdmRvCK2.js"
12319
12606
  },
12320
- "/_nuxt/BEk00u4_.js": {
12607
+ "/_nuxt/BGkBW2ni2.js": {
12321
12608
  "type": "text/javascript; charset=utf-8",
12322
- "etag": "\"22d6-s9qlvXRsBzdcF6h5ZLjdLGQoQSM\"",
12323
- "mtime": "2026-08-21T21:28:20.773Z",
12324
- "size": 8918,
12325
- "path": "../public/_nuxt/BEk00u4_.js"
12609
+ "etag": "\"b46f-ip6eNM8Bt0fkEhIuyJWIVTcB5lg\"",
12610
+ "mtime": "2026-08-22T20:39:29.502Z",
12611
+ "size": 46191,
12612
+ "path": "../public/_nuxt/BGkBW2ni2.js"
12613
+ },
12614
+ "/_nuxt/BKydt2Wp2.js": {
12615
+ "type": "text/javascript; charset=utf-8",
12616
+ "etag": "\"2ebd-+jbdh/JUO2GZfey4J6IrVQ3092k\"",
12617
+ "mtime": "2026-08-22T20:39:29.502Z",
12618
+ "size": 11965,
12619
+ "path": "../public/_nuxt/BKydt2Wp2.js"
12326
12620
  },
12327
12621
  "/_nuxt/BMLYuU_e.js": {
12328
12622
  "type": "text/javascript; charset=utf-8",
12329
12623
  "etag": "\"3dab-kZxtB0CA6BiZ2amdnuWc6ncvHmM\"",
12330
- "mtime": "2026-08-21T21:28:20.773Z",
12624
+ "mtime": "2026-08-22T20:39:29.502Z",
12331
12625
  "size": 15787,
12332
12626
  "path": "../public/_nuxt/BMLYuU_e.js"
12333
12627
  },
12334
12628
  "/_nuxt/BWJpSLJL.js": {
12335
12629
  "type": "text/javascript; charset=utf-8",
12336
12630
  "etag": "\"2e79-jNhWzXvsdMsdyMtx8aG2yYyblTo\"",
12337
- "mtime": "2026-08-21T21:28:20.773Z",
12631
+ "mtime": "2026-08-22T20:39:29.502Z",
12338
12632
  "size": 11897,
12339
12633
  "path": "../public/_nuxt/BWJpSLJL.js"
12340
12634
  },
12341
12635
  "/_nuxt/BXpPYfMx.js": {
12342
12636
  "type": "text/javascript; charset=utf-8",
12343
12637
  "etag": "\"297-WDnSh+WeblMh3+gF40okc6lIHac\"",
12344
- "mtime": "2026-08-21T21:28:20.773Z",
12638
+ "mtime": "2026-08-22T20:39:29.502Z",
12345
12639
  "size": 663,
12346
12640
  "path": "../public/_nuxt/BXpPYfMx.js"
12347
12641
  },
12348
12642
  "/_nuxt/BbjTtCyI.js": {
12349
12643
  "type": "text/javascript; charset=utf-8",
12350
12644
  "etag": "\"6b6f-yD+6UaiyIgirUyBFRLKiEcNyltI\"",
12351
- "mtime": "2026-08-21T21:28:20.773Z",
12645
+ "mtime": "2026-08-22T20:39:29.503Z",
12352
12646
  "size": 27503,
12353
12647
  "path": "../public/_nuxt/BbjTtCyI.js"
12354
12648
  },
12355
12649
  "/_nuxt/Bp3A7I5W2.js": {
12356
12650
  "type": "text/javascript; charset=utf-8",
12357
12651
  "etag": "\"843-3mo9lfGSYaqSiT7MxB/1kVQ/MWg\"",
12358
- "mtime": "2026-08-21T21:28:20.773Z",
12652
+ "mtime": "2026-08-22T20:39:29.503Z",
12359
12653
  "size": 2115,
12360
12654
  "path": "../public/_nuxt/Bp3A7I5W2.js"
12361
12655
  },
12362
- "/_nuxt/C1tNhfTr.js": {
12656
+ "/_nuxt/BuOb9NX0.js": {
12363
12657
  "type": "text/javascript; charset=utf-8",
12364
- "etag": "\"555-IMGU9sHMGWm9WCAvMwJ6sXGyqKY\"",
12365
- "mtime": "2026-08-21T21:28:20.844Z",
12366
- "size": 1365,
12367
- "path": "../public/_nuxt/C1tNhfTr.js"
12658
+ "etag": "\"1883-WVeeplAhb0jhWcoYBpmp6milqUA\"",
12659
+ "mtime": "2026-08-22T20:39:29.503Z",
12660
+ "size": 6275,
12661
+ "path": "../public/_nuxt/BuOb9NX0.js"
12368
12662
  },
12369
12663
  "/_nuxt/C2KIeuhG.js": {
12370
12664
  "type": "text/javascript; charset=utf-8",
12371
12665
  "etag": "\"2d2-4tv8B+IC/YzK6QMJVs+gZcpjwlI\"",
12372
- "mtime": "2026-08-21T21:28:20.844Z",
12666
+ "mtime": "2026-08-22T20:39:29.503Z",
12373
12667
  "size": 722,
12374
12668
  "path": "../public/_nuxt/C2KIeuhG.js"
12375
12669
  },
12376
- "/_nuxt/BuOb9NX0.js": {
12670
+ "/_nuxt/C1tNhfTr.js": {
12377
12671
  "type": "text/javascript; charset=utf-8",
12378
- "etag": "\"1883-WVeeplAhb0jhWcoYBpmp6milqUA\"",
12379
- "mtime": "2026-08-21T21:28:20.773Z",
12380
- "size": 6275,
12381
- "path": "../public/_nuxt/BuOb9NX0.js"
12672
+ "etag": "\"555-IMGU9sHMGWm9WCAvMwJ6sXGyqKY\"",
12673
+ "mtime": "2026-08-22T20:39:29.503Z",
12674
+ "size": 1365,
12675
+ "path": "../public/_nuxt/C1tNhfTr.js"
12676
+ },
12677
+ "/_nuxt/BEQgcp5R.js": {
12678
+ "type": "text/javascript; charset=utf-8",
12679
+ "etag": "\"23b50-mpkzkb8N5qHVb35K0Lrc0wI0cog\"",
12680
+ "mtime": "2026-08-22T20:39:29.502Z",
12681
+ "size": 146256,
12682
+ "path": "../public/_nuxt/BEQgcp5R.js"
12382
12683
  },
12383
12684
  "/_nuxt/C5uJN_MU.js": {
12384
12685
  "type": "text/javascript; charset=utf-8",
12385
12686
  "etag": "\"e528-d2Q1RVsrcdT28KoT+268fD4PiZM\"",
12386
- "mtime": "2026-08-21T21:28:20.773Z",
12687
+ "mtime": "2026-08-22T20:39:29.503Z",
12387
12688
  "size": 58664,
12388
12689
  "path": "../public/_nuxt/C5uJN_MU.js"
12389
12690
  },
12390
12691
  "/_nuxt/CBVnImq2.js": {
12391
12692
  "type": "text/javascript; charset=utf-8",
12392
12693
  "etag": "\"23df-qMiAb4BUsXEKqx8xrqVlHW+03a0\"",
12393
- "mtime": "2026-08-21T21:28:20.844Z",
12694
+ "mtime": "2026-08-22T20:39:29.503Z",
12394
12695
  "size": 9183,
12395
12696
  "path": "../public/_nuxt/CBVnImq2.js"
12396
12697
  },
12397
- "/_nuxt/CC0OsuIz.js": {
12698
+ "/_nuxt/CDI0GNVb2.js": {
12398
12699
  "type": "text/javascript; charset=utf-8",
12399
- "etag": "\"1b658-FH0gp3/auEFBaMr9CNX1l4MVryM\"",
12400
- "mtime": "2026-08-21T21:28:20.844Z",
12401
- "size": 112216,
12402
- "path": "../public/_nuxt/CC0OsuIz.js"
12700
+ "etag": "\"4a7d-mrcIr6JX/ToujCGORE/z9WbBsZI\"",
12701
+ "mtime": "2026-08-22T20:39:29.503Z",
12702
+ "size": 19069,
12703
+ "path": "../public/_nuxt/CDI0GNVb2.js"
12403
12704
  },
12404
12705
  "/_nuxt/CIFC2HNk.js": {
12405
12706
  "type": "text/javascript; charset=utf-8",
12406
12707
  "etag": "\"9c7c-L5x/TgOanE8qi7gToYMSDCsfFVU\"",
12407
- "mtime": "2026-08-21T21:28:20.844Z",
12708
+ "mtime": "2026-08-22T20:39:29.503Z",
12408
12709
  "size": 40060,
12409
12710
  "path": "../public/_nuxt/CIFC2HNk.js"
12410
12711
  },
12411
12712
  "/_nuxt/CKps1Vc12.js": {
12412
12713
  "type": "text/javascript; charset=utf-8",
12413
12714
  "etag": "\"8c1a-sGgOY3H/BjQtSI4134ZRlVbsPaE\"",
12414
- "mtime": "2026-08-21T21:28:20.844Z",
12715
+ "mtime": "2026-08-22T20:39:29.503Z",
12415
12716
  "size": 35866,
12416
12717
  "path": "../public/_nuxt/CKps1Vc12.js"
12417
12718
  },
12418
12719
  "/_nuxt/CO3cjsl1.js": {
12419
12720
  "type": "text/javascript; charset=utf-8",
12420
12721
  "etag": "\"36de-2NxLUyh/dpwLgyuiQ1dTlDvpUdo\"",
12421
- "mtime": "2026-08-21T21:28:20.844Z",
12722
+ "mtime": "2026-08-22T20:39:29.503Z",
12422
12723
  "size": 14046,
12423
12724
  "path": "../public/_nuxt/CO3cjsl1.js"
12424
12725
  },
12425
12726
  "/_nuxt/CRH0iqnQ.js": {
12426
12727
  "type": "text/javascript; charset=utf-8",
12427
12728
  "etag": "\"28ee-mlEAtJh5V2lxVpCZNYnrmCmdCVw\"",
12428
- "mtime": "2026-08-21T21:28:20.845Z",
12729
+ "mtime": "2026-08-22T20:39:29.505Z",
12429
12730
  "size": 10478,
12430
12731
  "path": "../public/_nuxt/CRH0iqnQ.js"
12431
12732
  },
12432
- "/_nuxt/CTLrtTtn2.js": {
12433
- "type": "text/javascript; charset=utf-8",
12434
- "etag": "\"17c6c-5Cv/WpFhgnvIZEiwuf0C7MskWU0\"",
12435
- "mtime": "2026-08-21T21:28:20.844Z",
12436
- "size": 97388,
12437
- "path": "../public/_nuxt/CTLrtTtn2.js"
12438
- },
12439
12733
  "/_nuxt/CTqLwyQP.js": {
12440
12734
  "type": "text/javascript; charset=utf-8",
12441
12735
  "etag": "\"262-DuQVjVm6tySeIfv3NrSsnDniZ2A\"",
12442
- "mtime": "2026-08-21T21:28:20.845Z",
12736
+ "mtime": "2026-08-22T20:39:29.505Z",
12443
12737
  "size": 610,
12444
12738
  "path": "../public/_nuxt/CTqLwyQP.js"
12445
12739
  },
12446
12740
  "/_nuxt/CU7sPrmY.js": {
12447
12741
  "type": "text/javascript; charset=utf-8",
12448
12742
  "etag": "\"15df-qk6zlzi1WvB3XblsrXXkWBCSqno\"",
12449
- "mtime": "2026-08-21T21:28:20.845Z",
12743
+ "mtime": "2026-08-22T20:39:29.503Z",
12450
12744
  "size": 5599,
12451
12745
  "path": "../public/_nuxt/CU7sPrmY.js"
12452
12746
  },
12453
12747
  "/_nuxt/CfOqJVtU.js": {
12454
12748
  "type": "text/javascript; charset=utf-8",
12455
12749
  "etag": "\"5fc-EGQ5LRG5cJFqVFN1I/pOoJERTXM\"",
12456
- "mtime": "2026-08-21T21:28:20.845Z",
12750
+ "mtime": "2026-08-22T20:39:29.503Z",
12457
12751
  "size": 1532,
12458
12752
  "path": "../public/_nuxt/CfOqJVtU.js"
12459
12753
  },
12460
- "/_nuxt/Ch1EeKHP.js": {
12461
- "type": "text/javascript; charset=utf-8",
12462
- "etag": "\"46de-E46fRh34lfchMEPLUm47F56IwyU\"",
12463
- "mtime": "2026-08-21T21:28:20.845Z",
12464
- "size": 18142,
12465
- "path": "../public/_nuxt/Ch1EeKHP.js"
12466
- },
12467
12754
  "/_nuxt/Clv7nJ_T2.js": {
12468
12755
  "type": "text/javascript; charset=utf-8",
12469
12756
  "etag": "\"6ea-FhDx7jEvtiX2TC+UY0cSK01jVDs\"",
12470
- "mtime": "2026-08-21T21:28:20.845Z",
12757
+ "mtime": "2026-08-22T20:39:29.503Z",
12471
12758
  "size": 1770,
12472
12759
  "path": "../public/_nuxt/Clv7nJ_T2.js"
12473
12760
  },
12474
- "/_nuxt/D-7v7DZs.js": {
12761
+ "/_nuxt/Ch1EeKHP.js": {
12475
12762
  "type": "text/javascript; charset=utf-8",
12476
- "etag": "\"692-NiWxxkGNeNt11fCMVrUdhExldxU\"",
12477
- "mtime": "2026-08-21T21:28:20.845Z",
12478
- "size": 1682,
12479
- "path": "../public/_nuxt/D-7v7DZs.js"
12763
+ "etag": "\"46de-E46fRh34lfchMEPLUm47F56IwyU\"",
12764
+ "mtime": "2026-08-22T20:39:29.503Z",
12765
+ "size": 18142,
12766
+ "path": "../public/_nuxt/Ch1EeKHP.js"
12480
12767
  },
12481
- "/_nuxt/D4ykC_lY2.js": {
12768
+ "/_nuxt/CqZ7dV6a2.js": {
12482
12769
  "type": "text/javascript; charset=utf-8",
12483
- "etag": "\"4401-22YGJAc9c1XoJ15tcIkblR7X/TI\"",
12484
- "mtime": "2026-08-21T21:28:20.845Z",
12485
- "size": 17409,
12486
- "path": "../public/_nuxt/D4ykC_lY2.js"
12770
+ "etag": "\"17ce9-uAaJzClLE2drlPfnKoEIOkXbVqQ\"",
12771
+ "mtime": "2026-08-22T20:39:29.503Z",
12772
+ "size": 97513,
12773
+ "path": "../public/_nuxt/CqZ7dV6a2.js"
12487
12774
  },
12488
12775
  "/_nuxt/D5HF1Z0f2.js": {
12489
12776
  "type": "text/javascript; charset=utf-8",
12490
12777
  "etag": "\"eb3-BAgBzd1c3v82aSbZqkVQFzbBJSE\"",
12491
- "mtime": "2026-08-21T21:28:20.849Z",
12778
+ "mtime": "2026-08-22T20:39:29.503Z",
12492
12779
  "size": 3763,
12493
12780
  "path": "../public/_nuxt/D5HF1Z0f2.js"
12494
12781
  },
12495
- "/_nuxt/DDHUGtv32.js": {
12496
- "type": "text/javascript; charset=utf-8",
12497
- "etag": "\"25f4-QPpdsaJZ2LTNyNuLKHyBYCVTF3s\"",
12498
- "mtime": "2026-08-21T21:28:20.849Z",
12499
- "size": 9716,
12500
- "path": "../public/_nuxt/DDHUGtv32.js"
12501
- },
12502
12782
  "/_nuxt/DEJ3sRrh2.js": {
12503
12783
  "type": "text/javascript; charset=utf-8",
12504
12784
  "etag": "\"ce0-tFkUGY3gkO2DmgdyV2SwZ9OD6Zw\"",
12505
- "mtime": "2026-08-21T21:28:20.849Z",
12785
+ "mtime": "2026-08-22T20:39:29.503Z",
12506
12786
  "size": 3296,
12507
12787
  "path": "../public/_nuxt/DEJ3sRrh2.js"
12508
12788
  },
12789
+ "/_nuxt/D-7v7DZs.js": {
12790
+ "type": "text/javascript; charset=utf-8",
12791
+ "etag": "\"692-NiWxxkGNeNt11fCMVrUdhExldxU\"",
12792
+ "mtime": "2026-08-22T20:39:29.503Z",
12793
+ "size": 1682,
12794
+ "path": "../public/_nuxt/D-7v7DZs.js"
12795
+ },
12509
12796
  "/_nuxt/DJxuKf9Z.js": {
12510
12797
  "type": "text/javascript; charset=utf-8",
12511
12798
  "etag": "\"1c5c-bNrRkSFjTHAkZrXz3cy5zKx/BIA\"",
12512
- "mtime": "2026-08-21T21:28:20.849Z",
12799
+ "mtime": "2026-08-22T20:39:29.504Z",
12513
12800
  "size": 7260,
12514
12801
  "path": "../public/_nuxt/DJxuKf9Z.js"
12515
12802
  },
12516
12803
  "/_nuxt/DMHcp4U1.js": {
12517
12804
  "type": "text/javascript; charset=utf-8",
12518
12805
  "etag": "\"16ce0-7tl1x4uvYFOEx3KLM3hMQ0Uztk4\"",
12519
- "mtime": "2026-08-21T21:28:20.849Z",
12806
+ "mtime": "2026-08-22T20:39:29.504Z",
12520
12807
  "size": 93408,
12521
12808
  "path": "../public/_nuxt/DMHcp4U1.js"
12522
12809
  },
12523
- "/_nuxt/DXLPf3t6.js": {
12524
- "type": "text/javascript; charset=utf-8",
12525
- "etag": "\"4733-isGV9waZI+6EjJjNlzwuJ+o1acE\"",
12526
- "mtime": "2026-08-21T21:28:20.849Z",
12527
- "size": 18227,
12528
- "path": "../public/_nuxt/DXLPf3t6.js"
12529
- },
12530
12810
  "/_nuxt/DPM_BYFz2.js": {
12531
12811
  "type": "text/javascript; charset=utf-8",
12532
12812
  "etag": "\"c7c-/yUGJZX4Gc4j79BXFG/VkarrAN4\"",
12533
- "mtime": "2026-08-21T21:28:20.849Z",
12813
+ "mtime": "2026-08-22T20:39:29.504Z",
12534
12814
  "size": 3196,
12535
12815
  "path": "../public/_nuxt/DPM_BYFz2.js"
12536
12816
  },
12537
- "/_nuxt/Dpnaldxf2.js": {
12817
+ "/_nuxt/DXLPf3t6.js": {
12538
12818
  "type": "text/javascript; charset=utf-8",
12539
- "etag": "\"b3d7-Wzt9YMKJ6cRPXAhVaG/DCO5oS4E\"",
12540
- "mtime": "2026-08-21T21:28:20.849Z",
12541
- "size": 46039,
12542
- "path": "../public/_nuxt/Dpnaldxf2.js"
12819
+ "etag": "\"4733-isGV9waZI+6EjJjNlzwuJ+o1acE\"",
12820
+ "mtime": "2026-08-22T20:39:29.504Z",
12821
+ "size": 18227,
12822
+ "path": "../public/_nuxt/DXLPf3t6.js"
12543
12823
  },
12544
- "/_nuxt/DtuQPKVG.js": {
12824
+ "/_nuxt/DtncvtMS.js": {
12545
12825
  "type": "text/javascript; charset=utf-8",
12546
- "etag": "\"511-mS61dRsD3UEsuVYWfWD4Lep3nmY\"",
12547
- "mtime": "2026-08-21T21:28:20.849Z",
12548
- "size": 1297,
12549
- "path": "../public/_nuxt/DtuQPKVG.js"
12826
+ "etag": "\"1b674-RcX7JAqVdnFVddR72y0I76Cl5ec\"",
12827
+ "mtime": "2026-08-22T20:39:29.504Z",
12828
+ "size": 112244,
12829
+ "path": "../public/_nuxt/DtncvtMS.js"
12550
12830
  },
12551
12831
  "/_nuxt/FvWrDx_z.js": {
12552
12832
  "type": "text/javascript; charset=utf-8",
12553
12833
  "etag": "\"819-DP4Vwwy4P5vqmcUZEmGgWOiKfr4\"",
12554
- "mtime": "2026-08-21T21:28:20.849Z",
12834
+ "mtime": "2026-08-22T20:39:29.504Z",
12555
12835
  "size": 2073,
12556
12836
  "path": "../public/_nuxt/FvWrDx_z.js"
12557
12837
  },
12558
- "/_nuxt/QcKfgokC.js": {
12559
- "type": "text/javascript; charset=utf-8",
12560
- "etag": "\"6fc7-nX9VUTird+t8oXsiFEHG4o+3KZc\"",
12561
- "mtime": "2026-08-21T21:28:20.849Z",
12562
- "size": 28615,
12563
- "path": "../public/_nuxt/QcKfgokC.js"
12564
- },
12565
12838
  "/_nuxt/Gcazu-lR.js": {
12566
12839
  "type": "text/javascript; charset=utf-8",
12567
12840
  "etag": "\"6cf3-8JsDYiSzcRpJ9H5NPkIlhh192dk\"",
12568
- "mtime": "2026-08-21T21:28:20.849Z",
12841
+ "mtime": "2026-08-22T20:39:29.504Z",
12569
12842
  "size": 27891,
12570
12843
  "path": "../public/_nuxt/Gcazu-lR.js"
12571
12844
  },
12845
+ "/_nuxt/QcKfgokC.js": {
12846
+ "type": "text/javascript; charset=utf-8",
12847
+ "etag": "\"6fc7-nX9VUTird+t8oXsiFEHG4o+3KZc\"",
12848
+ "mtime": "2026-08-22T20:39:29.504Z",
12849
+ "size": 28615,
12850
+ "path": "../public/_nuxt/QcKfgokC.js"
12851
+ },
12572
12852
  "/_nuxt/XDsaI4JL.js": {
12573
12853
  "type": "text/javascript; charset=utf-8",
12574
12854
  "etag": "\"111-CAV/HXAIRkbZ+wXj5PMuZ34VwL0\"",
12575
- "mtime": "2026-08-21T21:28:20.850Z",
12855
+ "mtime": "2026-08-22T20:39:29.504Z",
12576
12856
  "size": 273,
12577
12857
  "path": "../public/_nuxt/XDsaI4JL.js"
12578
12858
  },
12859
+ "/_nuxt/DtuQPKVG.js": {
12860
+ "type": "text/javascript; charset=utf-8",
12861
+ "etag": "\"511-mS61dRsD3UEsuVYWfWD4Lep3nmY\"",
12862
+ "mtime": "2026-08-22T20:39:29.504Z",
12863
+ "size": 1297,
12864
+ "path": "../public/_nuxt/DtuQPKVG.js"
12865
+ },
12579
12866
  "/_nuxt/b5tj-z25.js": {
12580
12867
  "type": "text/javascript; charset=utf-8",
12581
12868
  "etag": "\"15633-OhFvblIl1RLveoXf+49Sbs9f0kM\"",
12582
- "mtime": "2026-08-21T21:28:20.850Z",
12869
+ "mtime": "2026-08-22T20:39:29.504Z",
12583
12870
  "size": 87603,
12584
12871
  "path": "../public/_nuxt/b5tj-z25.js"
12585
12872
  },
12586
12873
  "/_nuxt/cRY3ZoRz.js": {
12587
12874
  "type": "text/javascript; charset=utf-8",
12588
12875
  "etag": "\"9fb5-MfhmWN2hIk0l6KrdJYZGSmgXV/Q\"",
12589
- "mtime": "2026-08-21T21:28:20.850Z",
12876
+ "mtime": "2026-08-22T20:39:29.504Z",
12590
12877
  "size": 40885,
12591
12878
  "path": "../public/_nuxt/cRY3ZoRz.js"
12592
12879
  },
12880
+ "/_nuxt/entry.Ci6Ki0cW.css": {
12881
+ "type": "text/css; charset=utf-8",
12882
+ "etag": "\"31b2c-d+2EtYUazo/iZnV+Zy4ZSNLpxoY\"",
12883
+ "mtime": "2026-08-22T20:39:29.504Z",
12884
+ "size": 203564,
12885
+ "path": "../public/_nuxt/entry.Ci6Ki0cW.css"
12886
+ },
12593
12887
  "/_nuxt/error-404.DopINOT1.css": {
12594
12888
  "type": "text/css; charset=utf-8",
12595
12889
  "etag": "\"97d-K8oApxLoQ3/i1Xmp2nwxFs6GN2s\"",
12596
- "mtime": "2026-08-21T21:28:20.850Z",
12890
+ "mtime": "2026-08-22T20:39:29.504Z",
12597
12891
  "size": 2429,
12598
12892
  "path": "../public/_nuxt/error-404.DopINOT1.css"
12599
12893
  },
12600
- "/_nuxt/entry.m-nAFUcz.css": {
12601
- "type": "text/css; charset=utf-8",
12602
- "etag": "\"3198d-FpRSC7fW/e25ugF6FApOIYfwjj8\"",
12603
- "mtime": "2026-08-21T21:28:20.850Z",
12604
- "size": 203149,
12605
- "path": "../public/_nuxt/entry.m-nAFUcz.css"
12606
- },
12607
12894
  "/_nuxt/error-500.D7goJC9g.css": {
12608
12895
  "type": "text/css; charset=utf-8",
12609
12896
  "etag": "\"772-NbTPjEvoainsVYrrLesY3ZyqIC8\"",
12610
- "mtime": "2026-08-21T21:28:20.850Z",
12897
+ "mtime": "2026-08-22T20:39:29.504Z",
12611
12898
  "size": 1906,
12612
12899
  "path": "../public/_nuxt/error-500.D7goJC9g.css"
12613
12900
  },
12614
12901
  "/_nuxt/f0o80Gcm.js": {
12615
12902
  "type": "text/javascript; charset=utf-8",
12616
12903
  "etag": "\"a7f-5x2eRDUOefwC3QPg0kVkSDUrbtE\"",
12617
- "mtime": "2026-08-21T21:28:20.850Z",
12904
+ "mtime": "2026-08-22T20:39:29.504Z",
12618
12905
  "size": 2687,
12619
12906
  "path": "../public/_nuxt/f0o80Gcm.js"
12620
12907
  },
12621
12908
  "/_nuxt/hePW80VL.js": {
12622
12909
  "type": "text/javascript; charset=utf-8",
12623
12910
  "etag": "\"2cc-fA8td6k29UVF6JoPfhOPkceTK1M\"",
12624
- "mtime": "2026-08-21T21:28:20.850Z",
12911
+ "mtime": "2026-08-22T20:39:29.504Z",
12625
12912
  "size": 716,
12626
12913
  "path": "../public/_nuxt/hePW80VL.js"
12627
12914
  },
12628
12915
  "/_nuxt/k5q7GKnv.js": {
12629
12916
  "type": "text/javascript; charset=utf-8",
12630
12917
  "etag": "\"1d05-UsvZCdgKyTF4YGmVie85GyDt974\"",
12631
- "mtime": "2026-08-21T21:28:20.859Z",
12918
+ "mtime": "2026-08-22T20:39:29.504Z",
12632
12919
  "size": 7429,
12633
12920
  "path": "../public/_nuxt/k5q7GKnv.js"
12634
12921
  },
12635
12922
  "/_nuxt/modal.3A_G7d4A.css": {
12636
12923
  "type": "text/css; charset=utf-8",
12637
12924
  "etag": "\"582-5Yw0hoh/s2yrjXWjWJGHHaH7HI0\"",
12638
- "mtime": "2026-08-21T21:28:20.859Z",
12925
+ "mtime": "2026-08-22T20:39:29.504Z",
12639
12926
  "size": 1410,
12640
12927
  "path": "../public/_nuxt/modal.3A_G7d4A.css"
12641
12928
  },
12642
12929
  "/_nuxt/tLr-SJaf.js": {
12643
12930
  "type": "text/javascript; charset=utf-8",
12644
12931
  "etag": "\"401-Xd+RIl02qzT7vdWX4cShxFl1NGs\"",
12645
- "mtime": "2026-08-21T21:28:20.859Z",
12932
+ "mtime": "2026-08-22T20:39:29.504Z",
12646
12933
  "size": 1025,
12647
12934
  "path": "../public/_nuxt/tLr-SJaf.js"
12648
12935
  },
12649
- "/dev/sample-run.webm": {
12650
- "type": "video/webm",
12651
- "etag": "\"2d0a2-Bs1NfwhRTxVtmYmJRWP+xntSahM\"",
12652
- "mtime": "2026-08-21T21:28:20.862Z",
12653
- "size": 184482,
12654
- "path": "../public/dev/sample-run.webm"
12936
+ "/_nuxt/tags.B5A43CvD.css": {
12937
+ "type": "text/css; charset=utf-8",
12938
+ "etag": "\"e0-yxupuC9Q0xA6EZcj3zDwhQz/fhQ\"",
12939
+ "mtime": "2026-08-22T20:39:29.504Z",
12940
+ "size": 224,
12941
+ "path": "../public/_nuxt/tags.B5A43CvD.css"
12942
+ },
12943
+ "/_fonts/0ncyUitqxXEtrEm7HzcQs5wcgo3wfV568UNDKlMnwsw-w0Y558yvXBaRp1OJ6ZEQsSSyhrLS3tQZTVIEmsGbzXo.woff2": {
12944
+ "type": "font/woff2",
12945
+ "etag": "\"21b4-5vUr0lwu56eej0WYd8CeVlrshdk\"",
12946
+ "mtime": "2026-08-22T20:39:29.485Z",
12947
+ "size": 8628,
12948
+ "path": "../public/_fonts/0ncyUitqxXEtrEm7HzcQs5wcgo3wfV568UNDKlMnwsw-w0Y558yvXBaRp1OJ6ZEQsSSyhrLS3tQZTVIEmsGbzXo.woff2"
12949
+ },
12950
+ "/_fonts/5tRZydxhCpIwZ4Yf99ciVcTJxjB_TdL5XPynMmeCJR4-zei18mH_L_yyrzmgYbz265bB_W_eHd-LFGzZcS_SdtE.woff2": {
12951
+ "type": "font/woff2",
12952
+ "etag": "\"2144-wqgN+yL7WN+AVsPgk3XDykxurXk\"",
12953
+ "mtime": "2026-08-22T20:39:29.485Z",
12954
+ "size": 8516,
12955
+ "path": "../public/_fonts/5tRZydxhCpIwZ4Yf99ciVcTJxjB_TdL5XPynMmeCJR4-zei18mH_L_yyrzmgYbz265bB_W_eHd-LFGzZcS_SdtE.woff2"
12956
+ },
12957
+ "/_fonts/EOefiLcwRKJ4nKM16K6z_F-mq3lOHkCw6EhYBbQIHPQ-nl9JjWyF976eNfiKihuAmOh43UjKIH95ojQg3EBL0Z0.woff2": {
12958
+ "type": "font/woff2",
12959
+ "etag": "\"177c-7sGmeKySE5GVzm0dGyjV5D08aoU\"",
12960
+ "mtime": "2026-08-22T20:39:29.486Z",
12961
+ "size": 6012,
12962
+ "path": "../public/_fonts/EOefiLcwRKJ4nKM16K6z_F-mq3lOHkCw6EhYBbQIHPQ-nl9JjWyF976eNfiKihuAmOh43UjKIH95ojQg3EBL0Z0.woff2"
12963
+ },
12964
+ "/_fonts/GZ8Vu2ga9Ys2RWqI_5_fmscGtaVz0BT0fO9HHusvG5Q-3uovunZ3f6ktPUtRyj_ghk9XNUfND7GlCM2BYJtdJWw.woff2": {
12965
+ "type": "font/woff2",
12966
+ "etag": "\"1f38-//55P1Jgd0CYSpMe5xWKqC25SnI\"",
12967
+ "mtime": "2026-08-22T20:39:29.485Z",
12968
+ "size": 7992,
12969
+ "path": "../public/_fonts/GZ8Vu2ga9Ys2RWqI_5_fmscGtaVz0BT0fO9HHusvG5Q-3uovunZ3f6ktPUtRyj_ghk9XNUfND7GlCM2BYJtdJWw.woff2"
12970
+ },
12971
+ "/_fonts/XUVCr3JJnCKa3ZjFe_4w-iDoaxDWfJzV4YCx_1QCo_E-3jWYsKhSrJxbXnSqiLm_B7lgRj5JeEHZF09nljCh3M0.woff2": {
12972
+ "type": "font/woff2",
12973
+ "etag": "\"2224-DOM9SokVAMep6ZvnjMP9IsHmo0o\"",
12974
+ "mtime": "2026-08-22T20:39:29.485Z",
12975
+ "size": 8740,
12976
+ "path": "../public/_fonts/XUVCr3JJnCKa3ZjFe_4w-iDoaxDWfJzV4YCx_1QCo_E-3jWYsKhSrJxbXnSqiLm_B7lgRj5JeEHZF09nljCh3M0.woff2"
12977
+ },
12978
+ "/_fonts/_WITXZSlvQMoD2fEgG1wXh8OdDfanMwrMC1wOPGgNhY-DGRD4A2ezdSeftFtmisWfZSsUcF6tvcGkBhNOAHhEgk.woff2": {
12979
+ "type": "font/woff2",
12980
+ "etag": "\"1e3c-u6AgwP0EJgeYcv3XkpomC0FIRc0\"",
12981
+ "mtime": "2026-08-22T20:39:29.486Z",
12982
+ "size": 7740,
12983
+ "path": "../public/_fonts/_WITXZSlvQMoD2fEgG1wXh8OdDfanMwrMC1wOPGgNhY-DGRD4A2ezdSeftFtmisWfZSsUcF6tvcGkBhNOAHhEgk.woff2"
12984
+ },
12985
+ "/_fonts/YpdduKWWs-eOA_Cc_7jA92GH6kPvk9DopllJiZ2Ltr4-xlZteAWjxfvRgLsA8z771osmF3aCdHwOdhrFE7sEFoQ.woff2": {
12986
+ "type": "font/woff2",
12987
+ "etag": "\"1edc-fkjVSx3x0/ZX/JAidZAwgYP/ndw\"",
12988
+ "mtime": "2026-08-22T20:39:29.486Z",
12989
+ "size": 7900,
12990
+ "path": "../public/_fonts/YpdduKWWs-eOA_Cc_7jA92GH6kPvk9DopllJiZ2Ltr4-xlZteAWjxfvRgLsA8z771osmF3aCdHwOdhrFE7sEFoQ.woff2"
12991
+ },
12992
+ "/_fonts/bjNDQff8sSvRh4GSJLCMMDpBdKcXueWLQqqQmnFqm7o-8fGs_K2xfIMVefRfexJe4qYf76rOVS_5WhCBYBsxYVo.woff2": {
12993
+ "type": "font/woff2",
12994
+ "etag": "\"177c-80/RBhNFJqcP3UljAelorcOubsE\"",
12995
+ "mtime": "2026-08-22T20:39:29.486Z",
12996
+ "size": 6012,
12997
+ "path": "../public/_fonts/bjNDQff8sSvRh4GSJLCMMDpBdKcXueWLQqqQmnFqm7o-8fGs_K2xfIMVefRfexJe4qYf76rOVS_5WhCBYBsxYVo.woff2"
12998
+ },
12999
+ "/_fonts/cfe5huB_y467A-yGRsjncGttRMYh8iB3HIAbd1-EgFk-_StpNKo8SiO_EaTbyGHT7XYvLA1oY5zTHOn_eSaSyTk.woff2": {
13000
+ "type": "font/woff2",
13001
+ "etag": "\"16f0-XEqELcbY5UPEivjwMKtP26b9tNc\"",
13002
+ "mtime": "2026-08-22T20:39:29.486Z",
13003
+ "size": 5872,
13004
+ "path": "../public/_fonts/cfe5huB_y467A-yGRsjncGttRMYh8iB3HIAbd1-EgFk-_StpNKo8SiO_EaTbyGHT7XYvLA1oY5zTHOn_eSaSyTk.woff2"
13005
+ },
13006
+ "/_fonts/e-_sz56pssm7ydCJFOGAUPMl6TV_DbBVqRvEYBSrqVc-_p0SPnOA0FWTLlD4I2lH2hgDcJUxfAKRZAYBMxgjiC0.woff2": {
13007
+ "type": "font/woff2",
13008
+ "etag": "\"1ea8-avadMHwzrw88TD65bvAepDkPR04\"",
13009
+ "mtime": "2026-08-22T20:39:29.486Z",
13010
+ "size": 7848,
13011
+ "path": "../public/_fonts/e-_sz56pssm7ydCJFOGAUPMl6TV_DbBVqRvEYBSrqVc-_p0SPnOA0FWTLlD4I2lH2hgDcJUxfAKRZAYBMxgjiC0.woff2"
13012
+ },
13013
+ "/_fonts/m6rGg_mpoPQz2cTkdhDYgczR4yctyKztEG6iwU71C34-LpS_o7_2y38Z56f0WGt_t_5ngxEqpN2qQIBqyNhFgsU.woff2": {
13014
+ "type": "font/woff2",
13015
+ "etag": "\"21e4-2xCtTiyjgRAM5Dk9QxxKODBGei4\"",
13016
+ "mtime": "2026-08-22T20:39:29.486Z",
13017
+ "size": 8676,
13018
+ "path": "../public/_fonts/m6rGg_mpoPQz2cTkdhDYgczR4yctyKztEG6iwU71C34-LpS_o7_2y38Z56f0WGt_t_5ngxEqpN2qQIBqyNhFgsU.woff2"
13019
+ },
13020
+ "/_fonts/nco6D2lcYG_YRxaF8tG6Gs39nDWiQTHuWOjZbslCV8s-IUsuo3G_y8xv3hRlufkQpA8w-oRC3eG7HYs5j_P_274.woff2": {
13021
+ "type": "font/woff2",
13022
+ "etag": "\"1548-qD0ozyo93J9OeSW1BKUcbKGjBoQ\"",
13023
+ "mtime": "2026-08-22T20:39:29.486Z",
13024
+ "size": 5448,
13025
+ "path": "../public/_fonts/nco6D2lcYG_YRxaF8tG6Gs39nDWiQTHuWOjZbslCV8s-IUsuo3G_y8xv3hRlufkQpA8w-oRC3eG7HYs5j_P_274.woff2"
13026
+ },
13027
+ "/_fonts/op99aXquCGImGVv0pEDnzC7HS8p1SZ6VzEO576zT4MA-mpC9F6cIaTw8AO5X8_UXZ7ioAW2oHM_76x0asIyVA80.woff2": {
13028
+ "type": "font/woff2",
13029
+ "etag": "\"15b0-sqzPYvDy9re3PVEvO6N+mfZ0x+M\"",
13030
+ "mtime": "2026-08-22T20:39:29.486Z",
13031
+ "size": 5552,
13032
+ "path": "../public/_fonts/op99aXquCGImGVv0pEDnzC7HS8p1SZ6VzEO576zT4MA-mpC9F6cIaTw8AO5X8_UXZ7ioAW2oHM_76x0asIyVA80.woff2"
13033
+ },
13034
+ "/_fonts/vYKPADYc-DuiKOUdPseFWq8k7wot3DXAgkBGOtlALzM-_fCqsHYsWtfAvLhylqaUYj1rC930WvXTjBVdTJtv5LA.woff2": {
13035
+ "type": "font/woff2",
13036
+ "etag": "\"1608-D9gBKRW7h8xB8fw0DKyUKwCWNaQ\"",
13037
+ "mtime": "2026-08-22T20:39:29.486Z",
13038
+ "size": 5640,
13039
+ "path": "../public/_fonts/vYKPADYc-DuiKOUdPseFWq8k7wot3DXAgkBGOtlALzM-_fCqsHYsWtfAvLhylqaUYj1rC930WvXTjBVdTJtv5LA.woff2"
13040
+ },
13041
+ "/_fonts/tch9LzN5j_dlnjUtoti6RdPCzFPIC61h2dp093uB1d4-6ufKabglPJqip8M2ovOr08UNFI7rTJNJ_NpV2P9blpc.woff2": {
13042
+ "type": "font/woff2",
13043
+ "etag": "\"1718-O4VsLbdOi9kDnEH4r+8VOq3o5HU\"",
13044
+ "mtime": "2026-08-22T20:39:29.486Z",
13045
+ "size": 5912,
13046
+ "path": "../public/_fonts/tch9LzN5j_dlnjUtoti6RdPCzFPIC61h2dp093uB1d4-6ufKabglPJqip8M2ovOr08UNFI7rTJNJ_NpV2P9blpc.woff2"
13047
+ },
13048
+ "/_fonts/zDv8W5qScDHC1KDT1cvI7PwzOHF-p3XubgMMgTX-1UE-GKt2pu9p2cnYqnrvnVM1O_b7ipTl1lhOzymkeh4kdd8.woff2": {
13049
+ "type": "font/woff2",
13050
+ "etag": "\"1578-DBk4lWQ0jupAQEUE7SJTDlGmrXQ\"",
13051
+ "mtime": "2026-08-22T20:39:29.486Z",
13052
+ "size": 5496,
13053
+ "path": "../public/_fonts/zDv8W5qScDHC1KDT1cvI7PwzOHF-p3XubgMMgTX-1UE-GKt2pu9p2cnYqnrvnVM1O_b7ipTl1lhOzymkeh4kdd8.woff2"
12655
13054
  },
12656
13055
  "/_nuxt/builds/latest.json": {
12657
13056
  "type": "application/json",
12658
- "etag": "\"47-cYCIi2JdS5P6eDQefFfoLdoGUBs\"",
12659
- "mtime": "2026-08-21T21:28:20.753Z",
13057
+ "etag": "\"47-t7aqdMYQbHZzb5bse/TNr8wuci8\"",
13058
+ "mtime": "2026-08-22T20:39:29.480Z",
12660
13059
  "size": 71,
12661
13060
  "path": "../public/_nuxt/builds/latest.json"
12662
13061
  },
12663
- "/_nuxt/builds/meta/f764322c-bb05-455d-81f9-a546df72cf7d.json": {
13062
+ "/_nuxt/builds/meta/a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620.json": {
12664
13063
  "type": "application/json",
12665
- "etag": "\"58-YnZ1wWnWIuiWQ661mDza+6/0D/8\"",
12666
- "mtime": "2026-08-21T21:28:20.750Z",
13064
+ "etag": "\"58-jhsR4rANAmm+ySJhxJbgIVMTWaY\"",
13065
+ "mtime": "2026-08-22T20:39:29.477Z",
12667
13066
  "size": 88,
12668
- "path": "../public/_nuxt/builds/meta/f764322c-bb05-455d-81f9-a546df72cf7d.json"
13067
+ "path": "../public/_nuxt/builds/meta/a872bf7d-d21f-4cc5-b4d7-6ddb7b63d620.json"
13068
+ },
13069
+ "/dev/sample-run.webm": {
13070
+ "type": "video/webm",
13071
+ "etag": "\"2d0a2-Bs1NfwhRTxVtmYmJRWP+xntSahM\"",
13072
+ "mtime": "2026-08-22T20:39:29.514Z",
13073
+ "size": 184482,
13074
+ "path": "../public/dev/sample-run.webm"
12669
13075
  }
12670
13076
  };
12671
13077
 
@@ -12968,8 +13374,10 @@ const _lazy_WHW6Ad = () => import('../routes/api/settings/ai.put.mjs');
12968
13374
  const _lazy_CmdGri = () => import('../routes/api/settings/ai/models.post.mjs');
12969
13375
  const _lazy_U7M8oI = () => import('../routes/api/settings/ai/ping.post.mjs');
12970
13376
  const _lazy_0YyBSd = () => import('../routes/debug/click.post.mjs');
13377
+ const _lazy_VauhsT = () => import('../routes/debug/close-page.post.mjs');
12971
13378
  const _lazy_kwZv_c = () => import('../routes/debug/fill.post.mjs');
12972
13379
  const _lazy_66j9OP = () => import('../routes/debug/goto.post.mjs');
13380
+ const _lazy_UsMczL = () => import('../routes/debug/replay-decision.post.mjs');
12973
13381
  const _lazy_lMebqj = () => import('../routes/health.get.mjs');
12974
13382
  const _lazy_JohveF = () => import('../routes/recording/_id_.delete.mjs');
12975
13383
  const _lazy_6B6AmM = () => import('../routes/recording/_id_.get.mjs');
@@ -13019,8 +13427,10 @@ const handlers = [
13019
13427
  { route: '/api/settings/ai/models', handler: _lazy_CmdGri, lazy: true, middleware: false, method: "post" },
13020
13428
  { route: '/api/settings/ai/ping', handler: _lazy_U7M8oI, lazy: true, middleware: false, method: "post" },
13021
13429
  { route: '/debug/click', handler: _lazy_0YyBSd, lazy: true, middleware: false, method: "post" },
13430
+ { route: '/debug/close-page', handler: _lazy_VauhsT, lazy: true, middleware: false, method: "post" },
13022
13431
  { route: '/debug/fill', handler: _lazy_kwZv_c, lazy: true, middleware: false, method: "post" },
13023
13432
  { route: '/debug/goto', handler: _lazy_66j9OP, lazy: true, middleware: false, method: "post" },
13433
+ { route: '/debug/replay-decision', handler: _lazy_UsMczL, lazy: true, middleware: false, method: "post" },
13024
13434
  { route: '/health', handler: _lazy_lMebqj, lazy: true, middleware: false, method: "get" },
13025
13435
  { route: '/recording/:id', handler: _lazy_JohveF, lazy: true, middleware: false, method: "delete" },
13026
13436
  { route: '/recording/:id', handler: _lazy_6B6AmM, lazy: true, middleware: false, method: "get" },
@@ -13493,5 +13903,5 @@ setupGracefulShutdown(listener, nitroApp);
13493
13903
  }
13494
13904
  const nodeServer = {};
13495
13905
 
13496
- export { $fetch as $, withQuery as A, BadRequest as B, hasProtocol as C, isScriptProtocol as D, joinURL as E, sanitizeStatusCode as F, klona as G, HttpError as H, defuFn as I, hash$1 as J, parseQuery as K, withTrailingSlash as L, withoutTrailingSlash as M, NotFound as N, isEqual as O, PACKAGE_ROOT as P, setCookie as Q, RUNNER_DIR as R, STREAM_REPORTER_PATH as S, getCookie as T, deleteCookie as U, ValidationFailed as V, useRuntimeConfig as W, joinRelativeURL as X, defineRenderHandler as Y, destr as Z, getRouteRules as _, setResponseStatus as a, relative as a0, getResponseStatusText as a1, getResponseStatus as a2, useNitroApp as a3, nodeServer as a4, getQuery as b, createEventStream as c, defineEventHandler as d, createError$1 as e, settingsUseCases as f, getRouterParam as g, recorderService as h, setHeader as i, sendStream as j, handleCors as k, readRawBody as l, getRequestURL as m, defu as n, getRequestHeader as o, processEnvironment as p, defineWebSocketHandler as q, readBody as r, sendNoContent as s, acutis as t, useStorage as u, videoService as v, runAgent as w, parseURL as x, encodePath as y, decodePath as z };
13906
+ export { $fetch as $, ActiveVars as A, ownsKey as B, BadRequest as C, acutis as D, EnvKey as E, useStorage as F, fromLine as G, HttpError as H, keyed as I, parseURL as J, encodePath as K, decodePath as L, MASK as M, NotFound as N, withQuery as O, PACKAGE_ROOT as P, hasProtocol as Q, RUNNER_DIR as R, STREAM_REPORTER_PATH as S, isScriptProtocol as T, Url as U, ValidationFailed as V, joinURL as W, sanitizeStatusCode as X, klona as Y, defuFn as Z, hash$1 as _, setResponseStatus as a, parseQuery as a0, withTrailingSlash as a1, withoutTrailingSlash as a2, isEqual as a3, setCookie as a4, getCookie as a5, deleteCookie as a6, useRuntimeConfig as a7, joinRelativeURL as a8, defineRenderHandler as a9, destr as aa, getRouteRules as ab, relative as ac, getResponseStatusText as ad, getResponseStatus as ae, useNitroApp as af, nodeServer as ag, getQuery as b, createEventStream as c, defineEventHandler as d, createError$1 as e, settingsUseCases as f, getRouterParam as g, recorderService as h, setHeader as i, sendStream as j, handleCors as k, readRawBody as l, getRequestURL as m, defu as n, Recording as o, processEnvironment as p, getRequestHeader as q, readBody as r, sendNoContent as s, defineWebSocketHandler as t, environmentVar as u, videoService as v, runAgent as w, describeElement as x, pathOf as y, SENSITIVE_PREFIX as z };
13497
13907
  //# sourceMappingURL=nitro.mjs.map