@tostudy-ai/cli 0.18.5 → 0.18.7

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.
package/dist/main.js CHANGED
@@ -40,7 +40,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
40
40
  mod
41
41
  ));
42
42
 
43
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/sanitize-Cu_Xsxno.mjs
43
+ // ../../node_modules/@parisgroup-ai/logger/dist/sanitize-CP9aWCdx.mjs
44
44
  function isSensitiveKey(key) {
45
45
  if (matchesSensitiveField(key)) return true;
46
46
  return matchesPluralOfSensitiveField(key);
@@ -148,8 +148,8 @@ function sanitizeEntryData(obj, additionalSensitiveKeys, includeStack, redactMas
148
148
  });
149
149
  }
150
150
  var SENSITIVE_FIELDS;
151
- var init_sanitize_Cu_Xsxno = __esm({
152
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/sanitize-Cu_Xsxno.mjs"() {
151
+ var init_sanitize_CP9aWCdx = __esm({
152
+ "../../node_modules/@parisgroup-ai/logger/dist/sanitize-CP9aWCdx.mjs"() {
153
153
  SENSITIVE_FIELDS = [
154
154
  "password",
155
155
  "senha",
@@ -208,9 +208,9 @@ var init_sanitize_Cu_Xsxno = __esm({
208
208
  }
209
209
  });
210
210
 
211
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/picocolors/picocolors.js
211
+ // ../../node_modules/picocolors/picocolors.js
212
212
  var require_picocolors = __commonJS({
213
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/picocolors/picocolors.js"(exports, module) {
213
+ "../../node_modules/picocolors/picocolors.js"(exports, module) {
214
214
  var p = process || {};
215
215
  var argv = p.argv || [];
216
216
  var env = p.env || {};
@@ -280,7 +280,7 @@ var require_picocolors = __commonJS({
280
280
  }
281
281
  });
282
282
 
283
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/logger.base-DkCKo9Cu.mjs
283
+ // ../../node_modules/@parisgroup-ai/logger/dist/logger.base-B6ycMyex.mjs
284
284
  function formatJson(entry) {
285
285
  const { timestamp, level, message, service, environment, context, data, error: error49 } = entry;
286
286
  const output3 = {
@@ -376,17 +376,19 @@ function extractErrorInfo(error49, includeStack, visited = /* @__PURE__ */ new W
376
376
  if (includeStack && error49.stack) info.stack = error49.stack;
377
377
  if ("code" in error49 && typeof error49.code === "string") info.code = error49.code;
378
378
  visited.add(error49);
379
- if (error49.cause instanceof Error) if (visited.has(error49.cause)) info.cause = {
380
- name: error49.cause.name,
381
- message: "[Circular]"
382
- };
383
- else info.cause = extractErrorInfo(error49.cause, includeStack, visited);
379
+ if (error49.cause instanceof Error) {
380
+ if (visited.has(error49.cause)) info.cause = {
381
+ name: error49.cause.name,
382
+ message: "[Circular]"
383
+ };
384
+ else info.cause = extractErrorInfo(error49.cause, includeStack, visited);
385
+ }
384
386
  return info;
385
387
  }
386
388
  var import_picocolors, LOG_LEVELS, LEVEL_COLORS, LEVEL_WIDTH, BaseLogger;
387
- var init_logger_base_DkCKo9Cu = __esm({
388
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/logger.base-DkCKo9Cu.mjs"() {
389
- init_sanitize_Cu_Xsxno();
389
+ var init_logger_base_B6ycMyex = __esm({
390
+ "../../node_modules/@parisgroup-ai/logger/dist/logger.base-B6ycMyex.mjs"() {
391
+ init_sanitize_CP9aWCdx();
390
392
  import_picocolors = __toESM(require_picocolors(), 1);
391
393
  LOG_LEVELS = {
392
394
  trace: 0,
@@ -593,7 +595,7 @@ var init_logger_base_DkCKo9Cu = __esm({
593
595
  }
594
596
  });
595
597
 
596
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/index.mjs
598
+ // ../../node_modules/@parisgroup-ai/logger/dist/index.mjs
597
599
  import { AsyncLocalStorage } from "node:async_hooks";
598
600
  import { appendFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
599
601
  import { join } from "node:path";
@@ -706,9 +708,9 @@ function createLogger(module, options) {
706
708
  }
707
709
  var asyncLocalStorage, ConsoleTransport, FileTransport, HttpTransport, SINGLETON_KEY$1, SEVERITY, OtlpLogsTransport, SINGLETON_KEY, Logger, logger;
708
710
  var init_dist = __esm({
709
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/@parisgroup-ai/logger/dist/index.mjs"() {
710
- init_logger_base_DkCKo9Cu();
711
- init_sanitize_Cu_Xsxno();
711
+ "../../node_modules/@parisgroup-ai/logger/dist/index.mjs"() {
712
+ init_logger_base_B6ycMyex();
713
+ init_sanitize_CP9aWCdx();
712
714
  asyncLocalStorage = new AsyncLocalStorage();
713
715
  ConsoleTransport = class {
714
716
  log(entry, formatted) {
@@ -743,7 +745,10 @@ var init_dist = __esm({
743
745
  });
744
746
  }
745
747
  flush() {
746
- for (const { file: file2, content } of this.buffer) appendFileSync(join(this.dir, file2), content);
748
+ for (const { file: file2, content } of this.buffer) {
749
+ const filepath = join(this.dir, file2);
750
+ appendFileSync(filepath, content);
751
+ }
747
752
  this.buffer = [];
748
753
  }
749
754
  };
@@ -1035,6 +1040,8 @@ var init_errors_pt_br = __esm({
1035
1040
  suggestNoOverlap: "Sem coincid\xEAncia com o perfil.",
1036
1041
  suggestEmptyProfile: "Perfil vazio. Mostrando cursos gratuitos em aberto.",
1037
1042
  suggestReason: "Motivo:",
1043
+ suggestReasonMatch: "combina com o seu perfil em",
1044
+ suggestReasonAnd: "e",
1038
1045
  suggestPaidHeader: "Pagos. A matr\xEDcula fica no navegador e nada \xE9 debitado por aqui:",
1039
1046
  enrollmentNotEntitled: "\u{1F6AB} Sua matr\xEDcula neste curso n\xE3o est\xE1 mais ativa (reembolso, cancelamento ou preview expirado).\nPara voltar a estudar, adquira o curso novamente em https://tostudy.ai.\n",
1040
1047
  creator: {
@@ -1144,6 +1151,8 @@ var init_errors_en_us = __esm({
1144
1151
  suggestNoOverlap: "No word in the profile matched.",
1145
1152
  suggestEmptyProfile: "Profile is empty. Showing open free courses.",
1146
1153
  suggestReason: "Why:",
1154
+ suggestReasonMatch: "matches your profile on",
1155
+ suggestReasonAnd: "and",
1147
1156
  suggestPaidHeader: "Paid. Enrollment stays in the browser and nothing is charged here:",
1148
1157
  enrollmentNotEntitled: "\u{1F6AB} Your enrollment in this course is no longer active (refund, cancellation, or expired preview).\nTo study again, purchase the course at https://tostudy.ai.\n",
1149
1158
  creator: {
@@ -1500,17 +1509,17 @@ var init_session_store = __esm({
1500
1509
  }
1501
1510
  });
1502
1511
 
1503
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/slug.ts
1512
+ // ../../packages/tostudy-core/src/slug.ts
1504
1513
  function slugify(text2, maxLength = 60) {
1505
1514
  return text2.toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, maxLength).replace(/-+$/, "");
1506
1515
  }
1507
1516
  var init_slug = __esm({
1508
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/slug.ts"() {
1517
+ "../../packages/tostudy-core/src/slug.ts"() {
1509
1518
  "use strict";
1510
1519
  }
1511
1520
  });
1512
1521
 
1513
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/workspace-tokens.ts
1522
+ // ../../packages/tostudy-core/src/lessons/workspace-tokens.ts
1514
1523
  function resolveWorkspaceTokensInText(text2, paths) {
1515
1524
  return text2.replace(WORKSPACE_TOKEN, () => paths.workspace).replace(VAULT_TOKEN, () => paths.vault);
1516
1525
  }
@@ -1537,7 +1546,7 @@ function resolveWorkspaceTokens(value, paths) {
1537
1546
  }
1538
1547
  var WORKSPACE_TOKEN, VAULT_TOKEN;
1539
1548
  var init_workspace_tokens = __esm({
1540
- "../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/workspace-tokens.ts"() {
1549
+ "../../packages/tostudy-core/src/lessons/workspace-tokens.ts"() {
1541
1550
  "use strict";
1542
1551
  init_slug();
1543
1552
  WORKSPACE_TOKEN = /\$WORKSPACE(?![A-Za-z0-9_])/g;
@@ -1615,7 +1624,8 @@ function formatCourseList(courses) {
1615
1624
  return [
1616
1625
  "Nenhum curso encontrado.",
1617
1626
  "",
1618
- "\u2192 Acesse tostudy.ai para se matricular em um curso"
1627
+ "\u2192 tostudy suggest cursos que voc\xEA pode come\xE7ar agora",
1628
+ "\u2192 tostudy enroll <id> matricula sem sair do terminal"
1619
1629
  ].join("\n");
1620
1630
  }
1621
1631
  const lines = ["Seus cursos:", ""];
@@ -2746,6 +2756,7 @@ async function readWorkspaceState(workspacePath) {
2746
2756
  };
2747
2757
  if (typeof raw2.currentLessonId === "string") state.currentLessonId = raw2.currentLessonId;
2748
2758
  if (typeof raw2.currentModuleId === "string") state.currentModuleId = raw2.currentModuleId;
2759
+ if (typeof raw2.retryLessonId === "string") state.retryLessonId = raw2.retryLessonId;
2749
2760
  if (Array.isArray(raw2.courseTags)) state.courseTags = raw2.courseTags;
2750
2761
  if (raw2.courseLevel === "beginner" || raw2.courseLevel === "intermediate" || raw2.courseLevel === "advanced" || raw2.courseLevel === null) {
2751
2762
  state.courseLevel = raw2.courseLevel;
@@ -3172,25 +3183,25 @@ import { Command } from "commander";
3172
3183
  import { execFile as execFile2 } from "node:child_process";
3173
3184
  import { randomBytes } from "node:crypto";
3174
3185
 
3175
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/courses/list-courses.ts
3186
+ // ../../packages/tostudy-core/src/courses/list-courses.ts
3176
3187
  async function listCourses(input2, deps) {
3177
3188
  deps.logger.info("tostudy-core: listCourses", { userId: input2.userId });
3178
3189
  return deps.data.courses.list(input2.userId);
3179
3190
  }
3180
3191
 
3181
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/courses/select-course.ts
3192
+ // ../../packages/tostudy-core/src/courses/select-course.ts
3182
3193
  async function selectCourse(input2, deps) {
3183
3194
  deps.logger.info("tostudy-core: selectCourse", input2);
3184
3195
  return deps.data.courses.select(input2.userId, input2.courseId);
3185
3196
  }
3186
3197
 
3187
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/courses/get-progress.ts
3198
+ // ../../packages/tostudy-core/src/courses/get-progress.ts
3188
3199
  async function getProgress(input2, deps) {
3189
3200
  deps.logger.info("tostudy-core: getProgress", input2);
3190
3201
  return deps.data.courses.getProgress(input2.enrollmentId);
3191
3202
  }
3192
3203
 
3193
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/adapters/http.ts
3204
+ // ../../packages/tostudy-core/src/adapters/http.ts
3194
3205
  var CliApiError = class extends Error {
3195
3206
  constructor(message, status, code) {
3196
3207
  super(message);
@@ -3446,6 +3457,13 @@ function assertTrustedApiUrl(apiUrl) {
3446
3457
  `API URL n\xE3o confi\xE1vel: ${apiUrl}. Use https://tostudy.ai (ou um subdom\xEDnio) ou localhost.`
3447
3458
  );
3448
3459
  }
3460
+ function browserCommand(platform2, url2) {
3461
+ if (platform2 === "darwin") return { cmd: "open", args: [url2] };
3462
+ if (platform2 === "win32") {
3463
+ return { cmd: "rundll32", args: ["url.dll,FileProtocolHandler", url2] };
3464
+ }
3465
+ return { cmd: "xdg-open", args: [url2] };
3466
+ }
3449
3467
  function buildAuthorizeUrl(apiUrl, port, state, creator) {
3450
3468
  const base = `${apiUrl}/api/cli/auth/authorize?port=${port}&state=${state}`;
3451
3469
  return creator ? `${base}&scope=creator` : base;
@@ -3553,8 +3571,8 @@ var loginCommand = new Command("login").description("Autentica no ToStudy via br
3553
3571
  const state = randomBytes(32).toString("hex");
3554
3572
  const serverPromise = startCallbackServer(PORT, state);
3555
3573
  const authUrl = buildAuthorizeUrl(apiUrl, PORT, state, opts.creator === true);
3556
- const openCmd = process.platform === "darwin" ? "open" : "xdg-open";
3557
- execFile2(openCmd, [authUrl], (err) => {
3574
+ const { cmd, args } = browserCommand(process.platform, authUrl);
3575
+ execFile2(cmd, args, (err) => {
3558
3576
  if (err) {
3559
3577
  console.log(` N\xE3o foi poss\xEDvel abrir o browser automaticamente.`);
3560
3578
  console.log(` Abra manualmente: ${authUrl}
@@ -3638,7 +3656,7 @@ var loginCommand = new Command("login").description("Autentica no ToStudy via br
3638
3656
  \u2713 ${courses.length} curso(s) matriculado(s)`);
3639
3657
  } else {
3640
3658
  console.log(`
3641
- \u2192 Nenhum curso matriculado. Acesse tostudy.ai`);
3659
+ \u2192 Nenhum curso matriculado. Rode: tostudy suggest`);
3642
3660
  }
3643
3661
  } catch {
3644
3662
  }
@@ -3742,9 +3760,14 @@ async function runMcpSetup(session, token, spawnImpl = spawn) {
3742
3760
  var defaultDeps = {
3743
3761
  log: (message = "") => {
3744
3762
  console.log(message);
3745
- }
3763
+ },
3764
+ setupMcp: () => runSetupMcpSubcommand()
3746
3765
  };
3747
- async function runSetup(_opts, deps = defaultDeps) {
3766
+ async function runSetup(opts, deps = defaultDeps) {
3767
+ if (opts.mcp) {
3768
+ await deps.setupMcp();
3769
+ return;
3770
+ }
3748
3771
  const errors = getErrors();
3749
3772
  deps.log(errors.setupRetiredNotice);
3750
3773
  deps.log(errors.setupRetiredNext);
@@ -3810,7 +3833,7 @@ init_workspace_state();
3810
3833
  init_formatter();
3811
3834
 
3812
3835
  // src/version.ts
3813
- var CLI_VERSION = true ? "0.18.5" : "0.7.1";
3836
+ var CLI_VERSION = true ? "0.18.7" : "0.7.1";
3814
3837
 
3815
3838
  // src/update-checker.ts
3816
3839
  init_config_dir();
@@ -4342,18 +4365,40 @@ var STOP_WORDS = /* @__PURE__ */ new Set([
4342
4365
  "do",
4343
4366
  "das",
4344
4367
  "dos",
4368
+ "por",
4369
+ "pro",
4370
+ "pra",
4345
4371
  "para",
4346
4372
  "com",
4373
+ "sem",
4347
4374
  "uma",
4348
4375
  "um",
4376
+ "nao",
4377
+ "n\xE3o",
4378
+ "que",
4379
+ "mais",
4380
+ "como",
4381
+ "isso",
4382
+ "este",
4383
+ "esta",
4384
+ "tem",
4349
4385
  "the",
4350
4386
  "and",
4351
4387
  "for",
4352
4388
  "you",
4389
+ "your",
4390
+ "with",
4353
4391
  "seu",
4354
4392
  "sua",
4393
+ "seus",
4394
+ "suas",
4395
+ "meu",
4396
+ "minha",
4355
4397
  "curso",
4356
- "course"
4398
+ "cursos",
4399
+ "course",
4400
+ "tags",
4401
+ "tag"
4357
4402
  ]);
4358
4403
  var TOKEN_SPLIT = /[^\p{L}\p{N}]+/u;
4359
4404
  var MAX_RESULTS = 3;
@@ -4395,7 +4440,7 @@ function rankSuggestions(courses, query) {
4395
4440
  }));
4396
4441
  }
4397
4442
  const textTokens = tokensOf(text2, true);
4398
- const levelTokens = level === null ? [] : tokensOf(level, false);
4443
+ const levelTokens = level === null ? [] : tokensOf(level, true);
4399
4444
  const scored = courses.map((course) => {
4400
4445
  const stack = haystack(course);
4401
4446
  const outsideLevel = haystackWithoutLevel(course);
@@ -4538,10 +4583,14 @@ function suggestionQuery(brief, profile, workspaceTokens) {
4538
4583
  level: profile?.learnerLevel ?? null
4539
4584
  };
4540
4585
  }
4586
+ function listaDeTemas(tokens, copy) {
4587
+ if (tokens.length === 1) return tokens[0];
4588
+ return `${tokens.slice(0, -1).join(", ")} ${copy.suggestReasonAnd} ${tokens.at(-1)}`;
4589
+ }
4541
4590
  function reasonText(reason, copy) {
4542
4591
  if (reason === "empty-profile") return copy.suggestEmptyProfile;
4543
4592
  if (reason === "no-overlap") return copy.suggestNoOverlap;
4544
- return reason;
4593
+ return `${copy.suggestReasonMatch} ${listaDeTemas(reason.split(","), copy)}`;
4545
4594
  }
4546
4595
  function formatBlock(ranked, lineFor) {
4547
4596
  const copy = getErrors();
@@ -5223,37 +5272,37 @@ var progressCommand = new Command9("progress").description("Show your progress i
5223
5272
  init_dist();
5224
5273
  import { Command as Command10 } from "commander";
5225
5274
 
5226
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/next-lesson.ts
5275
+ // ../../packages/tostudy-core/src/lessons/next-lesson.ts
5227
5276
  async function nextLesson(input2, deps) {
5228
5277
  deps.logger.info("tostudy-core: nextLesson", { enrollmentId: input2.enrollmentId });
5229
5278
  return deps.data.lessons.next(input2.enrollmentId, input2.userConfirmation);
5230
5279
  }
5231
5280
 
5232
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/get-content.ts
5281
+ // ../../packages/tostudy-core/src/lessons/get-content.ts
5233
5282
  async function getContent(input2, deps) {
5234
5283
  deps.logger.info("tostudy-core: getContent", { lessonId: input2.lessonId });
5235
5284
  return deps.data.lessons.getContent(input2.lessonId, input2.enrollmentId);
5236
5285
  }
5237
5286
 
5238
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/get-hint.ts
5287
+ // ../../packages/tostudy-core/src/lessons/get-hint.ts
5239
5288
  async function getHint(input2, deps) {
5240
5289
  deps.logger.info("tostudy-core: getHint", { userId: input2.userId });
5241
5290
  return deps.data.lessons.getHint(input2.userId, input2.enrollmentId);
5242
5291
  }
5243
5292
 
5244
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/start-module.ts
5293
+ // ../../packages/tostudy-core/src/lessons/start-module.ts
5245
5294
  async function startModule(input2, deps) {
5246
5295
  deps.logger.info("tostudy-core: startModule", { enrollmentId: input2.enrollmentId });
5247
5296
  return deps.data.lessons.startModule(input2.enrollmentId);
5248
5297
  }
5249
5298
 
5250
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/start-next-module.ts
5299
+ // ../../packages/tostudy-core/src/lessons/start-next-module.ts
5251
5300
  async function startNextModule(input2, deps) {
5252
5301
  deps.logger.info("tostudy-core: startNextModule", { enrollmentId: input2.enrollmentId });
5253
5302
  return deps.data.lessons.startNextModule(input2.enrollmentId);
5254
5303
  }
5255
5304
 
5256
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/lessons/index.ts
5305
+ // ../../packages/tostudy-core/src/lessons/index.ts
5257
5306
  init_workspace_tokens();
5258
5307
 
5259
5308
  // src/commands/start.ts
@@ -5710,7 +5759,7 @@ import fs12 from "node:fs";
5710
5759
  import path15 from "node:path";
5711
5760
  import { Command as Command16 } from "commander";
5712
5761
 
5713
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/exercises/validate-solution.ts
5762
+ // ../../packages/tostudy-core/src/exercises/validate-solution.ts
5714
5763
  async function validateSolution(input2, deps) {
5715
5764
  deps.logger.info("tostudy-core: validateSolution", { lessonId: input2.lessonId });
5716
5765
  if (input2.metadata !== void 0) {
@@ -5730,7 +5779,7 @@ async function validateSolution(input2, deps) {
5730
5779
  );
5731
5780
  }
5732
5781
 
5733
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/external.js
5782
+ // ../../node_modules/zod/v4/classic/external.js
5734
5783
  var external_exports = {};
5735
5784
  __export(external_exports, {
5736
5785
  $brand: () => $brand,
@@ -5971,7 +6020,7 @@ __export(external_exports, {
5971
6020
  xor: () => xor
5972
6021
  });
5973
6022
 
5974
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/index.js
6023
+ // ../../node_modules/zod/v4/core/index.js
5975
6024
  var core_exports2 = {};
5976
6025
  __export(core_exports2, {
5977
6026
  $ZodAny: () => $ZodAny,
@@ -6249,7 +6298,7 @@ __export(core_exports2, {
6249
6298
  version: () => version
6250
6299
  });
6251
6300
 
6252
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/core.js
6301
+ // ../../node_modules/zod/v4/core/core.js
6253
6302
  var NEVER = Object.freeze({
6254
6303
  status: "aborted"
6255
6304
  });
@@ -6324,7 +6373,7 @@ function config(newConfig) {
6324
6373
  return globalConfig;
6325
6374
  }
6326
6375
 
6327
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/util.js
6376
+ // ../../node_modules/zod/v4/core/util.js
6328
6377
  var util_exports = {};
6329
6378
  __export(util_exports, {
6330
6379
  BIGINT_FORMAT_RANGES: () => BIGINT_FORMAT_RANGES,
@@ -7003,7 +7052,7 @@ var Class = class {
7003
7052
  }
7004
7053
  };
7005
7054
 
7006
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/errors.js
7055
+ // ../../node_modules/zod/v4/core/errors.js
7007
7056
  var initializer = (inst, def) => {
7008
7057
  inst.name = "$ZodError";
7009
7058
  Object.defineProperty(inst, "_zod", {
@@ -7139,7 +7188,7 @@ function prettifyError(error49) {
7139
7188
  return lines.join("\n");
7140
7189
  }
7141
7190
 
7142
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/parse.js
7191
+ // ../../node_modules/zod/v4/core/parse.js
7143
7192
  var _parse = (_Err) => (schema, value, _ctx, _params) => {
7144
7193
  const ctx = _ctx ? Object.assign(_ctx, { async: false }) : { async: false };
7145
7194
  const result = schema._zod.run({ value, issues: [] }, ctx);
@@ -7227,7 +7276,7 @@ var _safeDecodeAsync = (_Err) => async (schema, value, _ctx) => {
7227
7276
  };
7228
7277
  var safeDecodeAsync = /* @__PURE__ */ _safeDecodeAsync($ZodRealError);
7229
7278
 
7230
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/regexes.js
7279
+ // ../../node_modules/zod/v4/core/regexes.js
7231
7280
  var regexes_exports = {};
7232
7281
  __export(regexes_exports, {
7233
7282
  base64: () => base64,
@@ -7384,7 +7433,7 @@ var sha512_hex = /^[0-9a-fA-F]{128}$/;
7384
7433
  var sha512_base64 = /* @__PURE__ */ fixedBase64(86, "==");
7385
7434
  var sha512_base64url = /* @__PURE__ */ fixedBase64url(86);
7386
7435
 
7387
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/checks.js
7436
+ // ../../node_modules/zod/v4/core/checks.js
7388
7437
  var $ZodCheck = /* @__PURE__ */ $constructor("$ZodCheck", (inst, def) => {
7389
7438
  var _a2;
7390
7439
  inst._zod ?? (inst._zod = {});
@@ -7932,7 +7981,7 @@ var $ZodCheckOverwrite = /* @__PURE__ */ $constructor("$ZodCheckOverwrite", (ins
7932
7981
  };
7933
7982
  });
7934
7983
 
7935
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/doc.js
7984
+ // ../../node_modules/zod/v4/core/doc.js
7936
7985
  var Doc = class {
7937
7986
  constructor(args = []) {
7938
7987
  this.content = [];
@@ -7968,14 +8017,14 @@ var Doc = class {
7968
8017
  }
7969
8018
  };
7970
8019
 
7971
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/versions.js
8020
+ // ../../node_modules/zod/v4/core/versions.js
7972
8021
  var version = {
7973
8022
  major: 4,
7974
8023
  minor: 3,
7975
8024
  patch: 6
7976
8025
  };
7977
8026
 
7978
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/schemas.js
8027
+ // ../../node_modules/zod/v4/core/schemas.js
7979
8028
  var $ZodType = /* @__PURE__ */ $constructor("$ZodType", (inst, def) => {
7980
8029
  var _a2;
7981
8030
  inst ?? (inst = {});
@@ -9946,7 +9995,7 @@ function handleRefineResult(result, payload, input2, inst) {
9946
9995
  }
9947
9996
  }
9948
9997
 
9949
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/index.js
9998
+ // ../../node_modules/zod/v4/locales/index.js
9950
9999
  var locales_exports = {};
9951
10000
  __export(locales_exports, {
9952
10001
  ar: () => ar_default,
@@ -10000,7 +10049,7 @@ __export(locales_exports, {
10000
10049
  zhTW: () => zh_TW_default
10001
10050
  });
10002
10051
 
10003
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ar.js
10052
+ // ../../node_modules/zod/v4/locales/ar.js
10004
10053
  var error2 = () => {
10005
10054
  const Sizable = {
10006
10055
  string: { unit: "\u062D\u0631\u0641", verb: "\u0623\u0646 \u064A\u062D\u0648\u064A" },
@@ -10107,7 +10156,7 @@ function ar_default() {
10107
10156
  };
10108
10157
  }
10109
10158
 
10110
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/az.js
10159
+ // ../../node_modules/zod/v4/locales/az.js
10111
10160
  var error3 = () => {
10112
10161
  const Sizable = {
10113
10162
  string: { unit: "simvol", verb: "olmal\u0131d\u0131r" },
@@ -10213,7 +10262,7 @@ function az_default() {
10213
10262
  };
10214
10263
  }
10215
10264
 
10216
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/be.js
10265
+ // ../../node_modules/zod/v4/locales/be.js
10217
10266
  function getBelarusianPlural(count, one, few, many) {
10218
10267
  const absCount = Math.abs(count);
10219
10268
  const lastDigit = absCount % 10;
@@ -10370,7 +10419,7 @@ function be_default() {
10370
10419
  };
10371
10420
  }
10372
10421
 
10373
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/bg.js
10422
+ // ../../node_modules/zod/v4/locales/bg.js
10374
10423
  var error5 = () => {
10375
10424
  const Sizable = {
10376
10425
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0430", verb: "\u0434\u0430 \u0441\u044A\u0434\u044A\u0440\u0436\u0430" },
@@ -10491,7 +10540,7 @@ function bg_default() {
10491
10540
  };
10492
10541
  }
10493
10542
 
10494
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ca.js
10543
+ // ../../node_modules/zod/v4/locales/ca.js
10495
10544
  var error6 = () => {
10496
10545
  const Sizable = {
10497
10546
  string: { unit: "car\xE0cters", verb: "contenir" },
@@ -10600,7 +10649,7 @@ function ca_default() {
10600
10649
  };
10601
10650
  }
10602
10651
 
10603
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/cs.js
10652
+ // ../../node_modules/zod/v4/locales/cs.js
10604
10653
  var error7 = () => {
10605
10654
  const Sizable = {
10606
10655
  string: { unit: "znak\u016F", verb: "m\xEDt" },
@@ -10712,7 +10761,7 @@ function cs_default() {
10712
10761
  };
10713
10762
  }
10714
10763
 
10715
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/da.js
10764
+ // ../../node_modules/zod/v4/locales/da.js
10716
10765
  var error8 = () => {
10717
10766
  const Sizable = {
10718
10767
  string: { unit: "tegn", verb: "havde" },
@@ -10828,7 +10877,7 @@ function da_default() {
10828
10877
  };
10829
10878
  }
10830
10879
 
10831
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/de.js
10880
+ // ../../node_modules/zod/v4/locales/de.js
10832
10881
  var error9 = () => {
10833
10882
  const Sizable = {
10834
10883
  string: { unit: "Zeichen", verb: "zu haben" },
@@ -10937,7 +10986,7 @@ function de_default() {
10937
10986
  };
10938
10987
  }
10939
10988
 
10940
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/en.js
10989
+ // ../../node_modules/zod/v4/locales/en.js
10941
10990
  var error10 = () => {
10942
10991
  const Sizable = {
10943
10992
  string: { unit: "characters", verb: "to have" },
@@ -11046,7 +11095,7 @@ function en_default() {
11046
11095
  };
11047
11096
  }
11048
11097
 
11049
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/eo.js
11098
+ // ../../node_modules/zod/v4/locales/eo.js
11050
11099
  var error11 = () => {
11051
11100
  const Sizable = {
11052
11101
  string: { unit: "karaktrojn", verb: "havi" },
@@ -11156,7 +11205,7 @@ function eo_default() {
11156
11205
  };
11157
11206
  }
11158
11207
 
11159
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/es.js
11208
+ // ../../node_modules/zod/v4/locales/es.js
11160
11209
  var error12 = () => {
11161
11210
  const Sizable = {
11162
11211
  string: { unit: "caracteres", verb: "tener" },
@@ -11289,7 +11338,7 @@ function es_default() {
11289
11338
  };
11290
11339
  }
11291
11340
 
11292
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/fa.js
11341
+ // ../../node_modules/zod/v4/locales/fa.js
11293
11342
  var error13 = () => {
11294
11343
  const Sizable = {
11295
11344
  string: { unit: "\u06A9\u0627\u0631\u0627\u06A9\u062A\u0631", verb: "\u062F\u0627\u0634\u062A\u0647 \u0628\u0627\u0634\u062F" },
@@ -11404,7 +11453,7 @@ function fa_default() {
11404
11453
  };
11405
11454
  }
11406
11455
 
11407
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/fi.js
11456
+ // ../../node_modules/zod/v4/locales/fi.js
11408
11457
  var error14 = () => {
11409
11458
  const Sizable = {
11410
11459
  string: { unit: "merkki\xE4", subject: "merkkijonon" },
@@ -11517,7 +11566,7 @@ function fi_default() {
11517
11566
  };
11518
11567
  }
11519
11568
 
11520
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/fr.js
11569
+ // ../../node_modules/zod/v4/locales/fr.js
11521
11570
  var error15 = () => {
11522
11571
  const Sizable = {
11523
11572
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -11626,7 +11675,7 @@ function fr_default() {
11626
11675
  };
11627
11676
  }
11628
11677
 
11629
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/fr-CA.js
11678
+ // ../../node_modules/zod/v4/locales/fr-CA.js
11630
11679
  var error16 = () => {
11631
11680
  const Sizable = {
11632
11681
  string: { unit: "caract\xE8res", verb: "avoir" },
@@ -11734,7 +11783,7 @@ function fr_CA_default() {
11734
11783
  };
11735
11784
  }
11736
11785
 
11737
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/he.js
11786
+ // ../../node_modules/zod/v4/locales/he.js
11738
11787
  var error17 = () => {
11739
11788
  const TypeNames = {
11740
11789
  string: { label: "\u05DE\u05D7\u05E8\u05D5\u05D6\u05EA", gender: "f" },
@@ -11929,7 +11978,7 @@ function he_default() {
11929
11978
  };
11930
11979
  }
11931
11980
 
11932
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/hu.js
11981
+ // ../../node_modules/zod/v4/locales/hu.js
11933
11982
  var error18 = () => {
11934
11983
  const Sizable = {
11935
11984
  string: { unit: "karakter", verb: "legyen" },
@@ -12038,7 +12087,7 @@ function hu_default() {
12038
12087
  };
12039
12088
  }
12040
12089
 
12041
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/hy.js
12090
+ // ../../node_modules/zod/v4/locales/hy.js
12042
12091
  function getArmenianPlural(count, one, many) {
12043
12092
  return Math.abs(count) === 1 ? one : many;
12044
12093
  }
@@ -12186,7 +12235,7 @@ function hy_default() {
12186
12235
  };
12187
12236
  }
12188
12237
 
12189
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/id.js
12238
+ // ../../node_modules/zod/v4/locales/id.js
12190
12239
  var error20 = () => {
12191
12240
  const Sizable = {
12192
12241
  string: { unit: "karakter", verb: "memiliki" },
@@ -12293,7 +12342,7 @@ function id_default() {
12293
12342
  };
12294
12343
  }
12295
12344
 
12296
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/is.js
12345
+ // ../../node_modules/zod/v4/locales/is.js
12297
12346
  var error21 = () => {
12298
12347
  const Sizable = {
12299
12348
  string: { unit: "stafi", verb: "a\xF0 hafa" },
@@ -12403,7 +12452,7 @@ function is_default() {
12403
12452
  };
12404
12453
  }
12405
12454
 
12406
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/it.js
12455
+ // ../../node_modules/zod/v4/locales/it.js
12407
12456
  var error22 = () => {
12408
12457
  const Sizable = {
12409
12458
  string: { unit: "caratteri", verb: "avere" },
@@ -12512,7 +12561,7 @@ function it_default() {
12512
12561
  };
12513
12562
  }
12514
12563
 
12515
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ja.js
12564
+ // ../../node_modules/zod/v4/locales/ja.js
12516
12565
  var error23 = () => {
12517
12566
  const Sizable = {
12518
12567
  string: { unit: "\u6587\u5B57", verb: "\u3067\u3042\u308B" },
@@ -12620,7 +12669,7 @@ function ja_default() {
12620
12669
  };
12621
12670
  }
12622
12671
 
12623
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ka.js
12672
+ // ../../node_modules/zod/v4/locales/ka.js
12624
12673
  var error24 = () => {
12625
12674
  const Sizable = {
12626
12675
  string: { unit: "\u10E1\u10D8\u10DB\u10D1\u10DD\u10DA\u10DD", verb: "\u10E3\u10DC\u10D3\u10D0 \u10E8\u10D4\u10D8\u10EA\u10D0\u10D5\u10D3\u10D4\u10E1" },
@@ -12733,7 +12782,7 @@ function ka_default() {
12733
12782
  };
12734
12783
  }
12735
12784
 
12736
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/km.js
12785
+ // ../../node_modules/zod/v4/locales/km.js
12737
12786
  var error25 = () => {
12738
12787
  const Sizable = {
12739
12788
  string: { unit: "\u178F\u17BD\u17A2\u1780\u17D2\u179F\u179A", verb: "\u1782\u17BD\u179A\u1798\u17B6\u1793" },
@@ -12844,12 +12893,12 @@ function km_default() {
12844
12893
  };
12845
12894
  }
12846
12895
 
12847
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/kh.js
12896
+ // ../../node_modules/zod/v4/locales/kh.js
12848
12897
  function kh_default() {
12849
12898
  return km_default();
12850
12899
  }
12851
12900
 
12852
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ko.js
12901
+ // ../../node_modules/zod/v4/locales/ko.js
12853
12902
  var error26 = () => {
12854
12903
  const Sizable = {
12855
12904
  string: { unit: "\uBB38\uC790", verb: "to have" },
@@ -12961,7 +13010,7 @@ function ko_default() {
12961
13010
  };
12962
13011
  }
12963
13012
 
12964
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/lt.js
13013
+ // ../../node_modules/zod/v4/locales/lt.js
12965
13014
  var capitalizeFirstCharacter = (text2) => {
12966
13015
  return text2.charAt(0).toUpperCase() + text2.slice(1);
12967
13016
  };
@@ -13165,7 +13214,7 @@ function lt_default() {
13165
13214
  };
13166
13215
  }
13167
13216
 
13168
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/mk.js
13217
+ // ../../node_modules/zod/v4/locales/mk.js
13169
13218
  var error28 = () => {
13170
13219
  const Sizable = {
13171
13220
  string: { unit: "\u0437\u043D\u0430\u0446\u0438", verb: "\u0434\u0430 \u0438\u043C\u0430\u0430\u0442" },
@@ -13275,7 +13324,7 @@ function mk_default() {
13275
13324
  };
13276
13325
  }
13277
13326
 
13278
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ms.js
13327
+ // ../../node_modules/zod/v4/locales/ms.js
13279
13328
  var error29 = () => {
13280
13329
  const Sizable = {
13281
13330
  string: { unit: "aksara", verb: "mempunyai" },
@@ -13383,7 +13432,7 @@ function ms_default() {
13383
13432
  };
13384
13433
  }
13385
13434
 
13386
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/nl.js
13435
+ // ../../node_modules/zod/v4/locales/nl.js
13387
13436
  var error30 = () => {
13388
13437
  const Sizable = {
13389
13438
  string: { unit: "tekens", verb: "heeft" },
@@ -13494,7 +13543,7 @@ function nl_default() {
13494
13543
  };
13495
13544
  }
13496
13545
 
13497
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/no.js
13546
+ // ../../node_modules/zod/v4/locales/no.js
13498
13547
  var error31 = () => {
13499
13548
  const Sizable = {
13500
13549
  string: { unit: "tegn", verb: "\xE5 ha" },
@@ -13603,7 +13652,7 @@ function no_default() {
13603
13652
  };
13604
13653
  }
13605
13654
 
13606
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ota.js
13655
+ // ../../node_modules/zod/v4/locales/ota.js
13607
13656
  var error32 = () => {
13608
13657
  const Sizable = {
13609
13658
  string: { unit: "harf", verb: "olmal\u0131d\u0131r" },
@@ -13713,7 +13762,7 @@ function ota_default() {
13713
13762
  };
13714
13763
  }
13715
13764
 
13716
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ps.js
13765
+ // ../../node_modules/zod/v4/locales/ps.js
13717
13766
  var error33 = () => {
13718
13767
  const Sizable = {
13719
13768
  string: { unit: "\u062A\u0648\u06A9\u064A", verb: "\u0648\u0644\u0631\u064A" },
@@ -13828,7 +13877,7 @@ function ps_default() {
13828
13877
  };
13829
13878
  }
13830
13879
 
13831
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/pl.js
13880
+ // ../../node_modules/zod/v4/locales/pl.js
13832
13881
  var error34 = () => {
13833
13882
  const Sizable = {
13834
13883
  string: { unit: "znak\xF3w", verb: "mie\u0107" },
@@ -13938,7 +13987,7 @@ function pl_default() {
13938
13987
  };
13939
13988
  }
13940
13989
 
13941
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/pt.js
13990
+ // ../../node_modules/zod/v4/locales/pt.js
13942
13991
  var error35 = () => {
13943
13992
  const Sizable = {
13944
13993
  string: { unit: "caracteres", verb: "ter" },
@@ -14047,7 +14096,7 @@ function pt_default() {
14047
14096
  };
14048
14097
  }
14049
14098
 
14050
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ru.js
14099
+ // ../../node_modules/zod/v4/locales/ru.js
14051
14100
  function getRussianPlural(count, one, few, many) {
14052
14101
  const absCount = Math.abs(count);
14053
14102
  const lastDigit = absCount % 10;
@@ -14204,7 +14253,7 @@ function ru_default() {
14204
14253
  };
14205
14254
  }
14206
14255
 
14207
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/sl.js
14256
+ // ../../node_modules/zod/v4/locales/sl.js
14208
14257
  var error37 = () => {
14209
14258
  const Sizable = {
14210
14259
  string: { unit: "znakov", verb: "imeti" },
@@ -14314,7 +14363,7 @@ function sl_default() {
14314
14363
  };
14315
14364
  }
14316
14365
 
14317
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/sv.js
14366
+ // ../../node_modules/zod/v4/locales/sv.js
14318
14367
  var error38 = () => {
14319
14368
  const Sizable = {
14320
14369
  string: { unit: "tecken", verb: "att ha" },
@@ -14425,7 +14474,7 @@ function sv_default() {
14425
14474
  };
14426
14475
  }
14427
14476
 
14428
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ta.js
14477
+ // ../../node_modules/zod/v4/locales/ta.js
14429
14478
  var error39 = () => {
14430
14479
  const Sizable = {
14431
14480
  string: { unit: "\u0B8E\u0BB4\u0BC1\u0BA4\u0BCD\u0BA4\u0BC1\u0B95\u0BCD\u0B95\u0BB3\u0BCD", verb: "\u0B95\u0BCA\u0BA3\u0BCD\u0B9F\u0BBF\u0BB0\u0BC1\u0B95\u0BCD\u0B95 \u0BB5\u0BC7\u0BA3\u0BCD\u0B9F\u0BC1\u0BAE\u0BCD" },
@@ -14536,7 +14585,7 @@ function ta_default() {
14536
14585
  };
14537
14586
  }
14538
14587
 
14539
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/th.js
14588
+ // ../../node_modules/zod/v4/locales/th.js
14540
14589
  var error40 = () => {
14541
14590
  const Sizable = {
14542
14591
  string: { unit: "\u0E15\u0E31\u0E27\u0E2D\u0E31\u0E01\u0E29\u0E23", verb: "\u0E04\u0E27\u0E23\u0E21\u0E35" },
@@ -14647,7 +14696,7 @@ function th_default() {
14647
14696
  };
14648
14697
  }
14649
14698
 
14650
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/tr.js
14699
+ // ../../node_modules/zod/v4/locales/tr.js
14651
14700
  var error41 = () => {
14652
14701
  const Sizable = {
14653
14702
  string: { unit: "karakter", verb: "olmal\u0131" },
@@ -14753,7 +14802,7 @@ function tr_default() {
14753
14802
  };
14754
14803
  }
14755
14804
 
14756
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/uk.js
14805
+ // ../../node_modules/zod/v4/locales/uk.js
14757
14806
  var error42 = () => {
14758
14807
  const Sizable = {
14759
14808
  string: { unit: "\u0441\u0438\u043C\u0432\u043E\u043B\u0456\u0432", verb: "\u043C\u0430\u0442\u0438\u043C\u0435" },
@@ -14862,12 +14911,12 @@ function uk_default() {
14862
14911
  };
14863
14912
  }
14864
14913
 
14865
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ua.js
14914
+ // ../../node_modules/zod/v4/locales/ua.js
14866
14915
  function ua_default() {
14867
14916
  return uk_default();
14868
14917
  }
14869
14918
 
14870
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/ur.js
14919
+ // ../../node_modules/zod/v4/locales/ur.js
14871
14920
  var error43 = () => {
14872
14921
  const Sizable = {
14873
14922
  string: { unit: "\u062D\u0631\u0648\u0641", verb: "\u06C1\u0648\u0646\u0627" },
@@ -14978,7 +15027,7 @@ function ur_default() {
14978
15027
  };
14979
15028
  }
14980
15029
 
14981
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/uz.js
15030
+ // ../../node_modules/zod/v4/locales/uz.js
14982
15031
  var error44 = () => {
14983
15032
  const Sizable = {
14984
15033
  string: { unit: "belgi", verb: "bo\u2018lishi kerak" },
@@ -15088,7 +15137,7 @@ function uz_default() {
15088
15137
  };
15089
15138
  }
15090
15139
 
15091
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/vi.js
15140
+ // ../../node_modules/zod/v4/locales/vi.js
15092
15141
  var error45 = () => {
15093
15142
  const Sizable = {
15094
15143
  string: { unit: "k\xFD t\u1EF1", verb: "c\xF3" },
@@ -15197,7 +15246,7 @@ function vi_default() {
15197
15246
  };
15198
15247
  }
15199
15248
 
15200
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/zh-CN.js
15249
+ // ../../node_modules/zod/v4/locales/zh-CN.js
15201
15250
  var error46 = () => {
15202
15251
  const Sizable = {
15203
15252
  string: { unit: "\u5B57\u7B26", verb: "\u5305\u542B" },
@@ -15307,7 +15356,7 @@ function zh_CN_default() {
15307
15356
  };
15308
15357
  }
15309
15358
 
15310
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/zh-TW.js
15359
+ // ../../node_modules/zod/v4/locales/zh-TW.js
15311
15360
  var error47 = () => {
15312
15361
  const Sizable = {
15313
15362
  string: { unit: "\u5B57\u5143", verb: "\u64C1\u6709" },
@@ -15415,7 +15464,7 @@ function zh_TW_default() {
15415
15464
  };
15416
15465
  }
15417
15466
 
15418
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/locales/yo.js
15467
+ // ../../node_modules/zod/v4/locales/yo.js
15419
15468
  var error48 = () => {
15420
15469
  const Sizable = {
15421
15470
  string: { unit: "\xE0mi", verb: "n\xED" },
@@ -15523,7 +15572,7 @@ function yo_default() {
15523
15572
  };
15524
15573
  }
15525
15574
 
15526
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/registries.js
15575
+ // ../../node_modules/zod/v4/core/registries.js
15527
15576
  var _a;
15528
15577
  var $output = /* @__PURE__ */ Symbol("ZodOutput");
15529
15578
  var $input = /* @__PURE__ */ Symbol("ZodInput");
@@ -15573,7 +15622,7 @@ function registry() {
15573
15622
  (_a = globalThis).__zod_globalRegistry ?? (_a.__zod_globalRegistry = registry());
15574
15623
  var globalRegistry = globalThis.__zod_globalRegistry;
15575
15624
 
15576
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/api.js
15625
+ // ../../node_modules/zod/v4/core/api.js
15577
15626
  // @__NO_SIDE_EFFECTS__
15578
15627
  function _string(Class2, params) {
15579
15628
  return new Class2({
@@ -16612,7 +16661,7 @@ function _stringFormat(Class2, format, fnOrRegex, _params = {}) {
16612
16661
  return inst;
16613
16662
  }
16614
16663
 
16615
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/to-json-schema.js
16664
+ // ../../node_modules/zod/v4/core/to-json-schema.js
16616
16665
  function initializeContext(params) {
16617
16666
  let target = params?.target ?? "draft-2020-12";
16618
16667
  if (target === "draft-4")
@@ -16964,7 +17013,7 @@ var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) =
16964
17013
  return finalize(ctx, schema);
16965
17014
  };
16966
17015
 
16967
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/json-schema-processors.js
17016
+ // ../../node_modules/zod/v4/core/json-schema-processors.js
16968
17017
  var formatMap = {
16969
17018
  guid: "uuid",
16970
17019
  url: "uri",
@@ -17515,7 +17564,7 @@ function toJSONSchema(input2, params) {
17515
17564
  return finalize(ctx, input2);
17516
17565
  }
17517
17566
 
17518
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/json-schema-generator.js
17567
+ // ../../node_modules/zod/v4/core/json-schema-generator.js
17519
17568
  var JSONSchemaGenerator = class {
17520
17569
  /** @deprecated Access via ctx instead */
17521
17570
  get metadataRegistry() {
@@ -17590,10 +17639,10 @@ var JSONSchemaGenerator = class {
17590
17639
  }
17591
17640
  };
17592
17641
 
17593
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/core/json-schema.js
17642
+ // ../../node_modules/zod/v4/core/json-schema.js
17594
17643
  var json_schema_exports = {};
17595
17644
 
17596
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/schemas.js
17645
+ // ../../node_modules/zod/v4/classic/schemas.js
17597
17646
  var schemas_exports2 = {};
17598
17647
  __export(schemas_exports2, {
17599
17648
  ZodAny: () => ZodAny,
@@ -17762,7 +17811,7 @@ __export(schemas_exports2, {
17762
17811
  xor: () => xor
17763
17812
  });
17764
17813
 
17765
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/checks.js
17814
+ // ../../node_modules/zod/v4/classic/checks.js
17766
17815
  var checks_exports2 = {};
17767
17816
  __export(checks_exports2, {
17768
17817
  endsWith: () => _endsWith,
@@ -17796,7 +17845,7 @@ __export(checks_exports2, {
17796
17845
  uppercase: () => _uppercase
17797
17846
  });
17798
17847
 
17799
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/iso.js
17848
+ // ../../node_modules/zod/v4/classic/iso.js
17800
17849
  var iso_exports = {};
17801
17850
  __export(iso_exports, {
17802
17851
  ZodISODate: () => ZodISODate,
@@ -17837,7 +17886,7 @@ function duration2(params) {
17837
17886
  return _isoDuration(ZodISODuration, params);
17838
17887
  }
17839
17888
 
17840
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/errors.js
17889
+ // ../../node_modules/zod/v4/classic/errors.js
17841
17890
  var initializer2 = (inst, issues) => {
17842
17891
  $ZodError.init(inst, issues);
17843
17892
  inst.name = "ZodError";
@@ -17877,7 +17926,7 @@ var ZodRealError = $constructor("ZodError", initializer2, {
17877
17926
  Parent: Error
17878
17927
  });
17879
17928
 
17880
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/parse.js
17929
+ // ../../node_modules/zod/v4/classic/parse.js
17881
17930
  var parse2 = /* @__PURE__ */ _parse(ZodRealError);
17882
17931
  var parseAsync2 = /* @__PURE__ */ _parseAsync(ZodRealError);
17883
17932
  var safeParse2 = /* @__PURE__ */ _safeParse(ZodRealError);
@@ -17891,7 +17940,7 @@ var safeDecode2 = /* @__PURE__ */ _safeDecode(ZodRealError);
17891
17940
  var safeEncodeAsync2 = /* @__PURE__ */ _safeEncodeAsync(ZodRealError);
17892
17941
  var safeDecodeAsync2 = /* @__PURE__ */ _safeDecodeAsync(ZodRealError);
17893
17942
 
17894
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/schemas.js
17943
+ // ../../node_modules/zod/v4/classic/schemas.js
17895
17944
  var ZodType = /* @__PURE__ */ $constructor("ZodType", (inst, def) => {
17896
17945
  $ZodType.init(inst, def);
17897
17946
  Object.assign(inst["~standard"], {
@@ -18970,7 +19019,7 @@ function preprocess(fn, schema) {
18970
19019
  return pipe(transform(fn), schema);
18971
19020
  }
18972
19021
 
18973
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/compat.js
19022
+ // ../../node_modules/zod/v4/classic/compat.js
18974
19023
  var ZodIssueCode = {
18975
19024
  invalid_type: "invalid_type",
18976
19025
  too_big: "too_big",
@@ -18996,7 +19045,7 @@ var ZodFirstPartyTypeKind;
18996
19045
  /* @__PURE__ */ (function(ZodFirstPartyTypeKind2) {
18997
19046
  })(ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {}));
18998
19047
 
18999
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/from-json-schema.js
19048
+ // ../../node_modules/zod/v4/classic/from-json-schema.js
19000
19049
  var z = {
19001
19050
  ...schemas_exports2,
19002
19051
  ...checks_exports2,
@@ -19470,7 +19519,7 @@ function fromJSONSchema(schema, params) {
19470
19519
  return convertSchema(schema, ctx);
19471
19520
  }
19472
19521
 
19473
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/coerce.js
19522
+ // ../../node_modules/zod/v4/classic/coerce.js
19474
19523
  var coerce_exports = {};
19475
19524
  __export(coerce_exports, {
19476
19525
  bigint: () => bigint3,
@@ -19495,10 +19544,10 @@ function date4(params) {
19495
19544
  return _coercedDate(ZodDate, params);
19496
19545
  }
19497
19546
 
19498
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/node_modules/zod/v4/classic/external.js
19547
+ // ../../node_modules/zod/v4/classic/external.js
19499
19548
  config(en_default());
19500
19549
 
19501
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/validators/src/business-constants.ts
19550
+ // ../../packages/validators/src/business-constants.ts
19502
19551
  var MONETARY_BOUNDS = {
19503
19552
  /** Maximum price in cents (999,999.99 in currency units) */
19504
19553
  maxPriceCents: 99999999,
@@ -19531,7 +19580,7 @@ var SESSION_POLICY = {
19531
19580
  var MAX_RESCHEDULES = SESSION_POLICY.maxReschedules;
19532
19581
  var PLATFORM_CURRENCIES = ["USD", "BRL", "EUR", "GBP", "ARS", "MXN", "CAD"];
19533
19582
 
19534
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/validators/src/mentorship.ts
19583
+ // ../../packages/validators/src/mentorship.ts
19535
19584
  var serviceTypeValues = ["one_on_one", "group", "workshop"];
19536
19585
  var sessionStatusValues = [
19537
19586
  "scheduled",
@@ -19631,7 +19680,7 @@ var updateSessionStatusSchema = external_exports.object({
19631
19680
  notes: external_exports.string().max(5e3, "Notes must be at most 5000 characters").optional().nullable()
19632
19681
  });
19633
19682
 
19634
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/exercises/enrollment-levels.ts
19683
+ // ../../packages/tostudy-core/src/exercises/enrollment-levels.ts
19635
19684
  async function getEnrollmentLevels(input2, deps) {
19636
19685
  deps.logger.info("tostudy-core: getEnrollmentLevels", { enrollmentId: input2.enrollmentId });
19637
19686
  return deps.data.exercises.getEnrollmentLevels(input2.enrollmentId);
@@ -20484,7 +20533,7 @@ var initCommand = new Command19("init").description("Generate tutor instructions
20484
20533
  init_dist();
20485
20534
  import { Command as Command20 } from "commander";
20486
20535
 
20487
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/setup-workspace.ts
20536
+ // ../../packages/tostudy-core/src/workspace/setup-workspace.ts
20488
20537
  import fs13 from "node:fs/promises";
20489
20538
  import path16 from "node:path";
20490
20539
  var WORKSPACE_DIRS = ["exercises", "generated", "notes", "diagrams", "vault"];
@@ -20532,11 +20581,11 @@ async function setupWorkspace(input2) {
20532
20581
  return { workspacePath, directories: WORKSPACE_DIRS, configPath };
20533
20582
  }
20534
20583
 
20535
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/extract-exercise.ts
20584
+ // ../../packages/tostudy-core/src/workspace/extract-exercise.ts
20536
20585
  import fs14 from "node:fs/promises";
20537
20586
  import path17 from "node:path";
20538
20587
 
20539
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/templates.ts
20588
+ // ../../packages/tostudy-core/src/workspace/templates.ts
20540
20589
  var VITE_VERSION = "^6.0.0";
20541
20590
  var REACT_VERSION = "^19.0.0";
20542
20591
  var TEMPLATES = {
@@ -20619,7 +20668,7 @@ function getScaffoldTemplate(template) {
20619
20668
  return TEMPLATES[template] ?? null;
20620
20669
  }
20621
20670
 
20622
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/extract-exercise.ts
20671
+ // ../../packages/tostudy-core/src/workspace/extract-exercise.ts
20623
20672
  init_workspace_tokens();
20624
20673
  function padOrder(n) {
20625
20674
  return String(n).padStart(2, "0");
@@ -20758,10 +20807,10 @@ function generateReadme(lessonData, tier) {
20758
20807
  return sections.join("\n");
20759
20808
  }
20760
20809
 
20761
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/export-artifact.ts
20810
+ // ../../packages/tostudy-core/src/workspace/export-artifact.ts
20762
20811
  init_slug();
20763
20812
 
20764
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/workspace/lesson-exercise-data.ts
20813
+ // ../../packages/tostudy-core/src/workspace/lesson-exercise-data.ts
20765
20814
  init_slug();
20766
20815
 
20767
20816
  // src/commands/workspace.ts
@@ -21097,18 +21146,18 @@ var openCommand = new Command22("open").description("Abrir workspace do curso na
21097
21146
  init_dist();
21098
21147
  import { Command as Command23 } from "commander";
21099
21148
 
21100
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/vault/generate-vault-files.ts
21149
+ // ../../packages/tostudy-core/src/vault/generate-vault-files.ts
21101
21150
  init_slug();
21102
21151
 
21103
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/vault/write-vault.ts
21152
+ // ../../packages/tostudy-core/src/vault/write-vault.ts
21104
21153
  import fs17 from "node:fs/promises";
21105
21154
  import path21 from "node:path";
21106
21155
 
21107
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/vault/types.ts
21156
+ // ../../packages/tostudy-core/src/vault/types.ts
21108
21157
  var VAULT_MARKER_FILENAME = ".ana-vault.json";
21109
21158
  var VAULT_MARKER_VERSION = 1;
21110
21159
 
21111
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/tostudy-core/src/vault/write-vault.ts
21160
+ // ../../packages/tostudy-core/src/vault/write-vault.ts
21112
21161
  async function writeVaultFiles(files, outputPath, courseId, courseSlug2) {
21113
21162
  for (const file2 of files) {
21114
21163
  const fullPath = path21.join(outputPath, file2.relativePath);
@@ -21316,7 +21365,7 @@ import os13 from "node:os";
21316
21365
  import path26 from "node:path";
21317
21366
  import { Command as Command25 } from "commander";
21318
21367
 
21319
- // ../../../../../Users/cleitonparis/www/pg/apps/cursos/packages/validators/src/authored-course.ts
21368
+ // ../../packages/validators/src/authored-course.ts
21320
21369
  import { createHash } from "node:crypto";
21321
21370
  var AUTHORED_LIMITS = {
21322
21371
  maxModules: 15,
@@ -22261,18 +22310,7 @@ import { execFile as execFile4 } from "node:child_process";
22261
22310
  import { platform } from "node:process";
22262
22311
  var BRIEF_URL = "https://tostudy.ai/student/settings/learner-brief";
22263
22312
  function openUrl(url2, options = {}) {
22264
- let cmd;
22265
- let args;
22266
- if (platform === "darwin") {
22267
- cmd = "open";
22268
- args = [url2];
22269
- } else if (platform === "win32") {
22270
- cmd = "cmd";
22271
- args = ["/c", "start", "", url2];
22272
- } else {
22273
- cmd = "xdg-open";
22274
- args = [url2];
22275
- }
22313
+ const { cmd, args } = browserCommand(platform, url2);
22276
22314
  execFile4(cmd, args, (err) => {
22277
22315
  if (err && !options.silent) {
22278
22316
  output(`N\xE3o consegui abrir o navegador. Acesse manualmente: ${url2}`, {