atlarix 14.39.2 → 14.39.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -121,6 +121,45 @@ var init_thinking_tags = __esm({
121
121
  }
122
122
  });
123
123
 
124
+ // src/lib/security/redact-secrets.ts
125
+ function redactSecretsInText(text3) {
126
+ if (!text3) return text3;
127
+ let out = text3;
128
+ for (const re2 of SECRET_PATTERNS) {
129
+ out = out.replace(re2, REDACTION);
130
+ }
131
+ return out;
132
+ }
133
+ function containsSecret(text3) {
134
+ return SECRET_PATTERNS.some((re2) => {
135
+ re2.lastIndex = 0;
136
+ return re2.test(text3);
137
+ });
138
+ }
139
+ var SECRET_PATTERNS, REDACTION;
140
+ var init_redact_secrets = __esm({
141
+ "src/lib/security/redact-secrets.ts"() {
142
+ SECRET_PATTERNS = [
143
+ // OpenAI (incl. project keys) + Anthropic
144
+ /\bsk-(?:ant-|proj-)?[A-Za-z0-9_-]{20,}\b/g,
145
+ // GitHub tokens (classic + fine-grained PAT)
146
+ /\bgh[pousr]_[A-Za-z0-9]{36,}\b/g,
147
+ /\bgithub_pat_[A-Za-z0-9_]{22,}\b/g,
148
+ // AWS access key id
149
+ /\bAKIA[0-9A-Z]{16}\b/g,
150
+ // Google API key
151
+ /\bAIza[0-9A-Za-z_-]{35}\b/g,
152
+ // Slack tokens
153
+ /\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g,
154
+ // JSON Web Token (header.payload.signature)
155
+ /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,
156
+ // PEM private key blocks
157
+ /-----BEGIN[A-Z ]*PRIVATE KEY-----[\s\S]*?-----END[A-Z ]*PRIVATE KEY-----/g
158
+ ];
159
+ REDACTION = "[redacted secret]";
160
+ }
161
+ });
162
+
124
163
  // src/headless/electron-stub.ts
125
164
  var electron_stub_exports = {};
126
165
  __export(electron_stub_exports, {
@@ -1559,7 +1598,7 @@ var init_sql = __esm({
1559
1598
  function mapResultRow(columns, row, joinsNotNullableMap) {
1560
1599
  const nullifyMap = {};
1561
1600
  const result2 = columns.reduce(
1562
- (result22, { path: path49, field }, columnIndex) => {
1601
+ (result22, { path: path50, field }, columnIndex) => {
1563
1602
  let decoder;
1564
1603
  if (is(field, Column)) {
1565
1604
  decoder = field;
@@ -1571,8 +1610,8 @@ function mapResultRow(columns, row, joinsNotNullableMap) {
1571
1610
  decoder = field.sql.decoder;
1572
1611
  }
1573
1612
  let node2 = result22;
1574
- for (const [pathChunkIndex, pathChunk] of path49.entries()) {
1575
- if (pathChunkIndex < path49.length - 1) {
1613
+ for (const [pathChunkIndex, pathChunk] of path50.entries()) {
1614
+ if (pathChunkIndex < path50.length - 1) {
1576
1615
  if (!(pathChunk in node2)) {
1577
1616
  node2[pathChunk] = {};
1578
1617
  }
@@ -1580,8 +1619,8 @@ function mapResultRow(columns, row, joinsNotNullableMap) {
1580
1619
  } else {
1581
1620
  const rawValue = row[columnIndex];
1582
1621
  const value = node2[pathChunk] = rawValue === null ? null : decoder.mapFromDriverValue(rawValue);
1583
- if (joinsNotNullableMap && is(field, Column) && path49.length === 2) {
1584
- const objectName = path49[0];
1622
+ if (joinsNotNullableMap && is(field, Column) && path50.length === 2) {
1623
+ const objectName = path50[0];
1585
1624
  if (!(objectName in nullifyMap)) {
1586
1625
  nullifyMap[objectName] = value === null ? getTableName(field.table) : false;
1587
1626
  } else if (typeof nullifyMap[objectName] === "string" && nullifyMap[objectName] !== getTableName(field.table)) {
@@ -8343,7 +8382,7 @@ var require_packageJson = __commonJS({
8343
8382
  "node_modules/electron-log/src/node/packageJson.js"(exports2, module2) {
8344
8383
  "use strict";
8345
8384
  var fs40 = __require("fs");
8346
- var path49 = __require("path");
8385
+ var path50 = __require("path");
8347
8386
  module2.exports = {
8348
8387
  findAndReadPackageJson,
8349
8388
  tryReadJsonAt
@@ -8356,7 +8395,7 @@ var require_packageJson = __commonJS({
8356
8395
  return void 0;
8357
8396
  }
8358
8397
  try {
8359
- const searchPath = path49.join(...searchPaths);
8398
+ const searchPath = path50.join(...searchPaths);
8360
8399
  const fileName = findUp("package.json", searchPath);
8361
8400
  if (!fileName) {
8362
8401
  return void 0;
@@ -8377,11 +8416,11 @@ var require_packageJson = __commonJS({
8377
8416
  function findUp(fileName, cwd) {
8378
8417
  let currentPath = cwd;
8379
8418
  while (true) {
8380
- const parsedPath = path49.parse(currentPath);
8419
+ const parsedPath = path50.parse(currentPath);
8381
8420
  const root2 = parsedPath.root;
8382
8421
  const dir = parsedPath.dir;
8383
- if (fs40.existsSync(path49.join(currentPath, fileName))) {
8384
- return path49.resolve(path49.join(currentPath, fileName));
8422
+ if (fs40.existsSync(path50.join(currentPath, fileName))) {
8423
+ return path50.resolve(path50.join(currentPath, fileName));
8385
8424
  }
8386
8425
  if (currentPath === root2) {
8387
8426
  return null;
@@ -8415,7 +8454,7 @@ var require_NodeExternalApi = __commonJS({
8415
8454
  "use strict";
8416
8455
  var childProcess = __require("child_process");
8417
8456
  var os12 = __require("os");
8418
- var path49 = __require("path");
8457
+ var path50 = __require("path");
8419
8458
  var packageJson = require_packageJson();
8420
8459
  var NodeExternalApi = class {
8421
8460
  appName = void 0;
@@ -8423,9 +8462,9 @@ var require_NodeExternalApi = __commonJS({
8423
8462
  platform = process.platform;
8424
8463
  getAppLogPath(appName = this.getAppName()) {
8425
8464
  if (this.platform === "darwin") {
8426
- return path49.join(this.getSystemPathHome(), "Library/Logs", appName);
8465
+ return path50.join(this.getSystemPathHome(), "Library/Logs", appName);
8427
8466
  }
8428
- return path49.join(this.getAppUserDataPath(appName), "logs");
8467
+ return path50.join(this.getAppUserDataPath(appName), "logs");
8429
8468
  }
8430
8469
  getAppName() {
8431
8470
  const appName = this.appName || this.getAppPackageJson()?.name;
@@ -8447,7 +8486,7 @@ var require_NodeExternalApi = __commonJS({
8447
8486
  return this.appPackageJson;
8448
8487
  }
8449
8488
  getAppUserDataPath(appName = this.getAppName()) {
8450
- return appName ? path49.join(this.getSystemPathAppData(), appName) : void 0;
8489
+ return appName ? path50.join(this.getSystemPathAppData(), appName) : void 0;
8451
8490
  }
8452
8491
  getAppVersion() {
8453
8492
  return this.getAppPackageJson()?.version;
@@ -8500,13 +8539,13 @@ var require_NodeExternalApi = __commonJS({
8500
8539
  const home = this.getSystemPathHome();
8501
8540
  switch (this.platform) {
8502
8541
  case "darwin": {
8503
- return path49.join(home, "Library/Application Support");
8542
+ return path50.join(home, "Library/Application Support");
8504
8543
  }
8505
8544
  case "win32": {
8506
- return process.env.APPDATA || path49.join(home, "AppData/Roaming");
8545
+ return process.env.APPDATA || path50.join(home, "AppData/Roaming");
8507
8546
  }
8508
8547
  default: {
8509
- return process.env.XDG_CONFIG_HOME || path49.join(home, ".config");
8548
+ return process.env.XDG_CONFIG_HOME || path50.join(home, ".config");
8510
8549
  }
8511
8550
  }
8512
8551
  }
@@ -8591,7 +8630,7 @@ var require_NodeExternalApi = __commonJS({
8591
8630
  var require_ElectronExternalApi = __commonJS({
8592
8631
  "node_modules/electron-log/src/main/ElectronExternalApi.js"(exports2, module2) {
8593
8632
  "use strict";
8594
- var path49 = __require("path");
8633
+ var path50 = __require("path");
8595
8634
  var NodeExternalApi = require_NodeExternalApi();
8596
8635
  var ElectronExternalApi = class extends NodeExternalApi {
8597
8636
  /**
@@ -8655,7 +8694,7 @@ var require_ElectronExternalApi = __commonJS({
8655
8694
  return !this.electron.app.isPackaged;
8656
8695
  }
8657
8696
  if (typeof process.execPath === "string") {
8658
- const execFileName = path49.basename(process.execPath).toLowerCase();
8697
+ const execFileName = path50.basename(process.execPath).toLowerCase();
8659
8698
  return execFileName.startsWith("electron");
8660
8699
  }
8661
8700
  return super.isDev();
@@ -8759,7 +8798,7 @@ var require_initialize = __commonJS({
8759
8798
  "use strict";
8760
8799
  var fs40 = __require("fs");
8761
8800
  var os12 = __require("os");
8762
- var path49 = __require("path");
8801
+ var path50 = __require("path");
8763
8802
  var preloadInitializeFn = require_electron_log_preload();
8764
8803
  var preloadInitialized = false;
8765
8804
  var spyConsoleInitialized = false;
@@ -8806,14 +8845,14 @@ var require_initialize = __commonJS({
8806
8845
  }
8807
8846
  preloadInitialized = true;
8808
8847
  try {
8809
- preloadPath = path49.resolve(
8848
+ preloadPath = path50.resolve(
8810
8849
  __dirname,
8811
8850
  "../renderer/electron-log-preload.js"
8812
8851
  );
8813
8852
  } catch {
8814
8853
  }
8815
8854
  if (!preloadPath || !fs40.existsSync(preloadPath)) {
8816
- preloadPath = path49.join(
8855
+ preloadPath = path50.join(
8817
8856
  externalApi.getAppUserDataPath() || os12.tmpdir(),
8818
8857
  "electron-log-preload.js"
8819
8858
  );
@@ -9591,12 +9630,12 @@ var require_File = __commonJS({
9591
9630
  writeOptions = null;
9592
9631
  writeAsync = false;
9593
9632
  constructor({
9594
- path: path49,
9633
+ path: path50,
9595
9634
  writeOptions = { encoding: "utf8", flag: "a", mode: 438 },
9596
9635
  writeAsync = false
9597
9636
  }) {
9598
9637
  super();
9599
- this.path = path49;
9638
+ this.path = path50;
9600
9639
  this.writeOptions = writeOptions;
9601
9640
  this.writeAsync = writeAsync;
9602
9641
  }
@@ -9740,7 +9779,7 @@ var require_FileRegistry = __commonJS({
9740
9779
  "use strict";
9741
9780
  var EventEmitter4 = __require("events");
9742
9781
  var fs40 = __require("fs");
9743
- var path49 = __require("path");
9782
+ var path50 = __require("path");
9744
9783
  var File4 = require_File();
9745
9784
  var NullFile = require_NullFile();
9746
9785
  var FileRegistry = class extends EventEmitter4 {
@@ -9759,7 +9798,7 @@ var require_FileRegistry = __commonJS({
9759
9798
  provide({ filePath, writeOptions = {}, writeAsync = false }) {
9760
9799
  let file2;
9761
9800
  try {
9762
- filePath = path49.resolve(filePath);
9801
+ filePath = path50.resolve(filePath);
9763
9802
  if (this.store[filePath]) {
9764
9803
  return this.store[filePath];
9765
9804
  }
@@ -9797,7 +9836,7 @@ var require_FileRegistry = __commonJS({
9797
9836
  * @private
9798
9837
  */
9799
9838
  testFileWriting({ filePath, writeOptions }) {
9800
- fs40.mkdirSync(path49.dirname(filePath), { recursive: true });
9839
+ fs40.mkdirSync(path50.dirname(filePath), { recursive: true });
9801
9840
  fs40.writeFileSync(filePath, "", { flag: "a", mode: writeOptions.mode });
9802
9841
  }
9803
9842
  };
@@ -9811,7 +9850,7 @@ var require_file = __commonJS({
9811
9850
  "use strict";
9812
9851
  var fs40 = __require("fs");
9813
9852
  var os12 = __require("os");
9814
- var path49 = __require("path");
9853
+ var path50 = __require("path");
9815
9854
  var FileRegistry = require_FileRegistry();
9816
9855
  var { transform: transform2 } = require_transform();
9817
9856
  var { removeStyles } = require_style();
@@ -9842,9 +9881,9 @@ var require_file = __commonJS({
9842
9881
  writeOptions: { flag: "a", mode: 438, encoding: "utf8" },
9843
9882
  archiveLogFn(file2) {
9844
9883
  const oldPath = file2.toString();
9845
- const inf = path49.parse(oldPath);
9884
+ const inf = path50.parse(oldPath);
9846
9885
  try {
9847
- fs40.renameSync(oldPath, path49.join(inf.dir, `${inf.name}.old${inf.ext}`));
9886
+ fs40.renameSync(oldPath, path50.join(inf.dir, `${inf.name}.old${inf.ext}`));
9848
9887
  } catch (e3) {
9849
9888
  logConsole("Could not rotate log", e3);
9850
9889
  const quarterOfMaxSize = Math.round(transport.maxSize / 4);
@@ -9852,7 +9891,7 @@ var require_file = __commonJS({
9852
9891
  }
9853
9892
  },
9854
9893
  resolvePathFn(vars) {
9855
- return path49.join(vars.libraryDefaultDir, vars.fileName);
9894
+ return path50.join(vars.libraryDefaultDir, vars.fileName);
9856
9895
  },
9857
9896
  setAppName(name29) {
9858
9897
  logger93.dependencies.externalApi.setAppName(name29);
@@ -9913,11 +9952,11 @@ var require_file = __commonJS({
9913
9952
  }
9914
9953
  function readAllLogs({ fileFilter = (f5) => f5.endsWith(".log") } = {}) {
9915
9954
  initializeOnFirstAccess();
9916
- const logsPath = path49.dirname(transport.resolvePathFn(pathVariables));
9955
+ const logsPath = path50.dirname(transport.resolvePathFn(pathVariables));
9917
9956
  if (!fs40.existsSync(logsPath)) {
9918
9957
  return [];
9919
9958
  }
9920
- return fs40.readdirSync(logsPath).map((fileName) => path49.join(logsPath, fileName)).filter(fileFilter).map((logPath) => {
9959
+ return fs40.readdirSync(logsPath).map((fileName) => path50.join(logsPath, fileName)).filter(fileFilter).map((logPath) => {
9921
9960
  try {
9922
9961
  return {
9923
9962
  path: logPath,
@@ -10208,570 +10247,570 @@ var init_sentry_stub = __esm({
10208
10247
  }
10209
10248
  });
10210
10249
 
10211
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0000_nebulous_proemial_gods.sql
10250
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0000_nebulous_proemial_gods.sql
10212
10251
  var nebulous_proemial_gods_default;
10213
10252
  var init_nebulous_proemial_gods = __esm({
10214
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0000_nebulous_proemial_gods.sql"() {
10253
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0000_nebulous_proemial_gods.sql"() {
10215
10254
  nebulous_proemial_gods_default = "CREATE TABLE `apps` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `name` text NOT NULL,\n `path` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n `github_org` text,\n `github_repo` text\n);\n--> statement-breakpoint\nCREATE TABLE `chats` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `title` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE TABLE `messages` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `chat_id` integer NOT NULL,\n `role` text NOT NULL,\n `content` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`chat_id`) REFERENCES `chats`(`id`) ON UPDATE no action ON DELETE cascade\n);\n";
10216
10255
  }
10217
10256
  });
10218
10257
 
10219
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0001_hesitant_roland_deschain.sql
10258
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0001_hesitant_roland_deschain.sql
10220
10259
  var hesitant_roland_deschain_default;
10221
10260
  var init_hesitant_roland_deschain = __esm({
10222
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0001_hesitant_roland_deschain.sql"() {
10261
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0001_hesitant_roland_deschain.sql"() {
10223
10262
  hesitant_roland_deschain_default = "ALTER TABLE `messages` ADD `approval_state` text;";
10224
10263
  }
10225
10264
  });
10226
10265
 
10227
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0002_unique_morlocks.sql
10266
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0002_unique_morlocks.sql
10228
10267
  var unique_morlocks_default;
10229
10268
  var init_unique_morlocks = __esm({
10230
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0002_unique_morlocks.sql"() {
10269
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0002_unique_morlocks.sql"() {
10231
10270
  unique_morlocks_default = "ALTER TABLE `apps` ADD `supabase_project_id` text;";
10232
10271
  }
10233
10272
  });
10234
10273
 
10235
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0003_open_bucky.sql
10274
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0003_open_bucky.sql
10236
10275
  var open_bucky_default;
10237
10276
  var init_open_bucky = __esm({
10238
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0003_open_bucky.sql"() {
10277
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0003_open_bucky.sql"() {
10239
10278
  open_bucky_default = "ALTER TABLE `messages` ADD `commit_hash` text;";
10240
10279
  }
10241
10280
  });
10242
10281
 
10243
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0004_flawless_jigsaw.sql
10282
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0004_flawless_jigsaw.sql
10244
10283
  var flawless_jigsaw_default;
10245
10284
  var init_flawless_jigsaw = __esm({
10246
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0004_flawless_jigsaw.sql"() {
10285
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0004_flawless_jigsaw.sql"() {
10247
10286
  flawless_jigsaw_default = "ALTER TABLE `chats` ADD `initial_commit_hash` text;";
10248
10287
  }
10249
10288
  });
10250
10289
 
10251
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0005_clumsy_namor.sql
10290
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0005_clumsy_namor.sql
10252
10291
  var clumsy_namor_default;
10253
10292
  var init_clumsy_namor = __esm({
10254
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0005_clumsy_namor.sql"() {
10293
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0005_clumsy_namor.sql"() {
10255
10294
  clumsy_namor_default = "CREATE TABLE `language_model_providers` (\n `id` text PRIMARY KEY NOT NULL,\n `name` text NOT NULL,\n `api_base_url` text NOT NULL,\n `env_var_name` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `language_models` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `display_name` text NOT NULL,\n `api_name` text NOT NULL,\n `builtin_provider_id` text,\n `custom_provider_id` text,\n `description` text,\n `max_output_tokens` integer,\n `context_window` integer,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`custom_provider_id`) REFERENCES `language_model_providers`(`id`) ON UPDATE no action ON DELETE cascade\n);\n";
10256
10295
  }
10257
10296
  });
10258
10297
 
10259
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0006_mushy_squirrel_girl.sql
10298
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0006_mushy_squirrel_girl.sql
10260
10299
  var mushy_squirrel_girl_default;
10261
10300
  var init_mushy_squirrel_girl = __esm({
10262
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0006_mushy_squirrel_girl.sql"() {
10301
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0006_mushy_squirrel_girl.sql"() {
10263
10302
  mushy_squirrel_girl_default = "ALTER TABLE `apps` ADD `chat_context` text;";
10264
10303
  }
10265
10304
  });
10266
10305
 
10267
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0007_dapper_overlord.sql
10306
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0007_dapper_overlord.sql
10268
10307
  var dapper_overlord_default;
10269
10308
  var init_dapper_overlord = __esm({
10270
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0007_dapper_overlord.sql"() {
10309
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0007_dapper_overlord.sql"() {
10271
10310
  dapper_overlord_default = "ALTER TABLE `apps` ADD `github_branch` text;";
10272
10311
  }
10273
10312
  });
10274
10313
 
10275
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0008_medical_vulcan.sql
10314
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0008_medical_vulcan.sql
10276
10315
  var medical_vulcan_default;
10277
10316
  var init_medical_vulcan = __esm({
10278
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0008_medical_vulcan.sql"() {
10317
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0008_medical_vulcan.sql"() {
10279
10318
  medical_vulcan_default = "ALTER TABLE `apps` ADD `vercel_project_id` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `vercel_project_name` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `vercel_team_id` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `vercel_deployment_url` text;";
10280
10319
  }
10281
10320
  });
10282
10321
 
10283
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0009_previous_misty_knight.sql
10322
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0009_previous_misty_knight.sql
10284
10323
  var previous_misty_knight_default;
10285
10324
  var init_previous_misty_knight = __esm({
10286
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0009_previous_misty_knight.sql"() {
10325
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0009_previous_misty_knight.sql"() {
10287
10326
  previous_misty_knight_default = "CREATE TABLE `versions` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `commit_hash` text NOT NULL,\n `neon_db_timestamp` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `versions_app_commit_unique` ON `versions` (`app_id`,`commit_hash`);--> statement-breakpoint\nALTER TABLE `apps` ADD `neon_project_id` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `neon_development_branch_id` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `neon_preview_branch_id` text;";
10288
10327
  }
10289
10328
  });
10290
10329
 
10291
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0010_nappy_fat_cobra.sql
10330
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0010_nappy_fat_cobra.sql
10292
10331
  var nappy_fat_cobra_default;
10293
10332
  var init_nappy_fat_cobra = __esm({
10294
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0010_nappy_fat_cobra.sql"() {
10333
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0010_nappy_fat_cobra.sql"() {
10295
10334
  nappy_fat_cobra_default = "ALTER TABLE `apps` ADD `install_command` text;--> statement-breakpoint\nALTER TABLE `apps` ADD `start_command` text;\n";
10296
10335
  }
10297
10336
  });
10298
10337
 
10299
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0011_light_zeigeist.sql
10338
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0011_light_zeigeist.sql
10300
10339
  var light_zeigeist_default;
10301
10340
  var init_light_zeigeist = __esm({
10302
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0011_light_zeigeist.sql"() {
10341
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0011_light_zeigeist.sql"() {
10303
10342
  light_zeigeist_default = "CREATE TABLE `prompts` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `title` text NOT NULL,\n `description` text,\n `content` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n";
10304
10343
  }
10305
10344
  });
10306
10345
 
10307
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0012_bouncy_fenris.sql
10346
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0012_bouncy_fenris.sql
10308
10347
  var bouncy_fenris_default;
10309
10348
  var init_bouncy_fenris = __esm({
10310
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0012_bouncy_fenris.sql"() {
10349
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0012_bouncy_fenris.sql"() {
10311
10350
  bouncy_fenris_default = "CREATE TABLE `mcp_servers` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `name` text NOT NULL,\n `transport` text NOT NULL,\n `command` text,\n `args` text,\n `env_json` text,\n `url` text,\n `enabled` integer DEFAULT 0 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `mcp_tool_consents` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `server_id` integer NOT NULL,\n `tool_name` text NOT NULL,\n `consent` text DEFAULT 'ask' NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`server_id`) REFERENCES `mcp_servers`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `uniq_mcp_consent` ON `mcp_tool_consents` (`server_id`,`tool_name`);";
10312
10351
  }
10313
10352
  });
10314
10353
 
10315
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0013_damp_mephistopheles.sql
10354
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0013_damp_mephistopheles.sql
10316
10355
  var damp_mephistopheles_default;
10317
10356
  var init_damp_mephistopheles = __esm({
10318
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0013_damp_mephistopheles.sql"() {
10357
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0013_damp_mephistopheles.sql"() {
10319
10358
  damp_mephistopheles_default = "ALTER TABLE `apps` ADD `is_favorite` integer DEFAULT 0 NOT NULL;";
10320
10359
  }
10321
10360
  });
10322
10361
 
10323
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0014_needy_vertigo.sql
10362
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0014_needy_vertigo.sql
10324
10363
  var needy_vertigo_default;
10325
10364
  var init_needy_vertigo = __esm({
10326
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0014_needy_vertigo.sql"() {
10365
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0014_needy_vertigo.sql"() {
10327
10366
  needy_vertigo_default = "ALTER TABLE `messages` ADD `request_id` text;";
10328
10367
  }
10329
10368
  });
10330
10369
 
10331
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0015_complete_old_lace.sql
10370
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0015_complete_old_lace.sql
10332
10371
  var complete_old_lace_default;
10333
10372
  var init_complete_old_lace = __esm({
10334
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0015_complete_old_lace.sql"() {
10373
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0015_complete_old_lace.sql"() {
10335
10374
  complete_old_lace_default = "ALTER TABLE `apps` ADD `supabase_parent_project_id` text;";
10336
10375
  }
10337
10376
  });
10338
10377
 
10339
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0016_petite_thanos.sql
10378
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0016_petite_thanos.sql
10340
10379
  var petite_thanos_default;
10341
10380
  var init_petite_thanos = __esm({
10342
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0016_petite_thanos.sql"() {
10381
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0016_petite_thanos.sql"() {
10343
10382
  petite_thanos_default = "ALTER TABLE `messages` ADD `source_commit_hash` text;";
10344
10383
  }
10345
10384
  });
10346
10385
 
10347
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0017_sharp_corsair.sql
10386
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0017_sharp_corsair.sql
10348
10387
  var sharp_corsair_default;
10349
10388
  var init_sharp_corsair = __esm({
10350
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0017_sharp_corsair.sql"() {
10389
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0017_sharp_corsair.sql"() {
10351
10390
  sharp_corsair_default = "ALTER TABLE `messages` ADD `max_tokens_used` integer;";
10352
10391
  }
10353
10392
  });
10354
10393
 
10355
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0018_slim_rictor.sql
10394
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0018_slim_rictor.sql
10356
10395
  var slim_rictor_default;
10357
10396
  var init_slim_rictor = __esm({
10358
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0018_slim_rictor.sql"() {
10397
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0018_slim_rictor.sql"() {
10359
10398
  slim_rictor_default = "CREATE TABLE `provider_api_keys` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `provider_id` text NOT NULL,\n `api_key` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `provider_api_keys_provider_id_unique` ON `provider_api_keys` (`provider_id`);";
10360
10399
  }
10361
10400
  });
10362
10401
 
10363
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0019_pale_aqueduct.sql
10402
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0019_pale_aqueduct.sql
10364
10403
  var pale_aqueduct_default;
10365
10404
  var init_pale_aqueduct = __esm({
10366
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0019_pale_aqueduct.sql"() {
10405
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0019_pale_aqueduct.sql"() {
10367
10406
  pale_aqueduct_default = "CREATE TABLE `openrouter_favorites` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `model_id` text NOT NULL,\n `display_order` integer NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `openrouter_favorites_model_id_unique` ON `openrouter_favorites` (`model_id`);";
10368
10407
  }
10369
10408
  });
10370
10409
 
10371
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0020_luxuriant_exiles.sql
10410
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0020_luxuriant_exiles.sql
10372
10411
  var luxuriant_exiles_default;
10373
10412
  var init_luxuriant_exiles = __esm({
10374
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0020_luxuriant_exiles.sql"() {
10413
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0020_luxuriant_exiles.sql"() {
10375
10414
  luxuriant_exiles_default = "CREATE TABLE `cleanup_log` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `cleanup_date` integer DEFAULT (unixepoch()) NOT NULL,\n `sessions_deleted` integer DEFAULT 0 NOT NULL,\n `modifications_summarized` integer DEFAULT 0 NOT NULL\n);\n--> statement-breakpoint\nCREATE TABLE `workspace_modifications` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_path` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `last_used_at` integer DEFAULT (unixepoch()) NOT NULL,\n `is_summary` integer DEFAULT 0 NOT NULL,\n `summary_of_period` text,\n `todo_reference` text,\n `files_modified` text,\n `changes_description` text,\n `ai_summary` text\n);\n--> statement-breakpoint\nALTER TABLE `chats` ADD `last_used_at` integer DEFAULT (unixepoch()) NOT NULL;";
10376
10415
  }
10377
10416
  });
10378
10417
 
10379
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0021_search_providers.sql
10418
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0021_search_providers.sql
10380
10419
  var search_providers_default;
10381
10420
  var init_search_providers = __esm({
10382
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0021_search_providers.sql"() {
10421
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0021_search_providers.sql"() {
10383
10422
  search_providers_default = "CREATE TABLE `search_providers` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `provider` text NOT NULL,\n `enabled` integer DEFAULT 0 NOT NULL,\n `config` text,\n `priority` integer DEFAULT 0 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `search_providers_provider_unique` ON `search_providers` (`provider`);\n";
10384
10423
  }
10385
10424
  });
10386
10425
 
10387
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0022_add_diagrams.sql
10426
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0022_add_diagrams.sql
10388
10427
  var add_diagrams_default;
10389
10428
  var init_add_diagrams = __esm({
10390
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0022_add_diagrams.sql"() {
10429
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0022_add_diagrams.sql"() {
10391
10430
  add_diagrams_default = '-- Create diagrams table FIRST (diagram_versions references it)\nCREATE TABLE IF NOT EXISTS `diagrams` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer,\n `chat_id` integer,\n `type` text NOT NULL,\n `title` text NOT NULL,\n `content` text NOT NULL,\n `metadata` text,\n `fingerprint_hash` text,\n `fingerprint_data` text,\n `created_from_file_count` integer,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`workspace_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade,\n FOREIGN KEY (`chat_id`) REFERENCES `chats`(`id`) ON UPDATE no action ON DELETE set null\n);\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `diagram_versions` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `diagram_id` integer NOT NULL,\n `content` text NOT NULL,\n `change_description` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`diagram_id`) REFERENCES `diagrams`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `search_providers` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `provider` text NOT NULL,\n `enabled` integer DEFAULT 0 NOT NULL,\n `config` text,\n `priority` integer DEFAULT 0 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX IF NOT EXISTS `search_providers_provider_unique` ON `search_providers` (`provider`);--> statement-breakpoint\nPRAGMA foreign_keys=OFF;--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `__new_chats` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer,\n `title` text,\n `initial_commit_hash` text,\n `last_used_at` integer DEFAULT (unixepoch()) NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nINSERT OR IGNORE INTO `__new_chats`("id", "app_id", "title", "initial_commit_hash", "last_used_at", "created_at") SELECT "id", "app_id", "title", "initial_commit_hash", "last_used_at", "created_at" FROM `chats`;--> statement-breakpoint\nDROP TABLE IF EXISTS `chats`;--> statement-breakpoint\nALTER TABLE `__new_chats` RENAME TO `chats`;--> statement-breakpoint\nPRAGMA foreign_keys=ON;';
10392
10431
  }
10393
10432
  });
10394
10433
 
10395
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0023_faulty_diamondback.sql
10434
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0023_faulty_diamondback.sql
10396
10435
  var faulty_diamondback_default;
10397
10436
  var init_faulty_diamondback = __esm({
10398
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0023_faulty_diamondback.sql"() {
10437
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0023_faulty_diamondback.sql"() {
10399
10438
  faulty_diamondback_default = "CREATE TABLE `daily_logs` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL,\n `date` integer DEFAULT (unixepoch()) NOT NULL,\n `micro_changes` text,\n `significant_actions` text,\n `files_touched` text,\n `diagram_changed` integer DEFAULT 0 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`workspace_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE TABLE `workspace_diagrams` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `architecture` text NOT NULL,\n `dependencies` text,\n `flows` text,\n `trigger` text NOT NULL,\n `summary` text,\n `annotation` text,\n `files_changed` text,\n `hash` text NOT NULL,\n `protected` integer DEFAULT 0 NOT NULL,\n `compressed` integer DEFAULT 0 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE INDEX `workspace_diagrams_app_id_created_at_idx` ON `workspace_diagrams` (`app_id`,`created_at`);--> statement-breakpoint\nALTER TABLE `apps` ADD `preferred_diagram_type` text DEFAULT 'architecture';--> statement-breakpoint\nALTER TABLE `diagram_versions` ADD `trigger` text;--> statement-breakpoint\nALTER TABLE `diagram_versions` ADD `summary` text;";
10400
10439
  }
10401
10440
  });
10402
10441
 
10403
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0024_workspace_snapshots.sql
10442
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0024_workspace_snapshots.sql
10404
10443
  var workspace_snapshots_default;
10405
10444
  var init_workspace_snapshots = __esm({
10406
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0024_workspace_snapshots.sql"() {
10445
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0024_workspace_snapshots.sql"() {
10407
10446
  workspace_snapshots_default = "CREATE TABLE `workspace_snapshots` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `name` text NOT NULL,\n `files_json` text NOT NULL,\n `prompt_content` text,\n `diagram_content` text,\n `chat_messages_json` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE INDEX `workspace_snapshots_app_id_idx` ON `workspace_snapshots` (`app_id`);\n";
10408
10447
  }
10409
10448
  });
10410
10449
 
10411
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0025_chat_context_summaries.sql
10450
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0025_chat_context_summaries.sql
10412
10451
  var chat_context_summaries_default;
10413
10452
  var init_chat_context_summaries = __esm({
10414
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0025_chat_context_summaries.sql"() {
10453
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0025_chat_context_summaries.sql"() {
10415
10454
  chat_context_summaries_default = "CREATE TABLE `chat_context_summaries` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `chat_id` integer NOT NULL UNIQUE,\n `summary_text` text NOT NULL,\n `last_message_id` integer NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`chat_id`) REFERENCES `chats`(`id`) ON UPDATE no action ON DELETE cascade\n);\n";
10416
10455
  }
10417
10456
  });
10418
10457
 
10419
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0026_mcp_workspace_scope.sql
10458
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0026_mcp_workspace_scope.sql
10420
10459
  var mcp_workspace_scope_default;
10421
10460
  var init_mcp_workspace_scope = __esm({
10422
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0026_mcp_workspace_scope.sql"() {
10461
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0026_mcp_workspace_scope.sql"() {
10423
10462
  mcp_workspace_scope_default = "-- MCP workspace scope: global vs per-workspace (5 max global, 5 max per workspace)\nALTER TABLE mcp_servers ADD COLUMN scope TEXT NOT NULL DEFAULT 'global';\nALTER TABLE mcp_servers ADD COLUMN app_id INTEGER;\n";
10424
10463
  }
10425
10464
  });
10426
10465
 
10427
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0027_workflow_templates.sql
10466
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0027_workflow_templates.sql
10428
10467
  var workflow_templates_default;
10429
10468
  var init_workflow_templates = __esm({
10430
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0027_workflow_templates.sql"() {
10469
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0027_workflow_templates.sql"() {
10431
10470
  workflow_templates_default = "-- Atlaflow template library: save/load named workflow templates\nCREATE TABLE IF NOT EXISTS `workflow_templates` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `name` text NOT NULL,\n `description` text,\n `workflow` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n";
10432
10471
  }
10433
10472
  });
10434
10473
 
10435
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0028_blueprints.sql
10474
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0028_blueprints.sql
10436
10475
  var blueprints_default;
10437
10476
  var init_blueprints = __esm({
10438
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0028_blueprints.sql"() {
10477
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0028_blueprints.sql"() {
10439
10478
  blueprints_default = "-- Phase 7 Additive Blueprint: one blueprint per workspace (rooms, edges, functions)\nCREATE TABLE IF NOT EXISTS `blueprints` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES apps(id) ON DELETE CASCADE,\n `content` text NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\nCREATE UNIQUE INDEX IF NOT EXISTS `blueprints_workspace_unique` ON `blueprints` (`workspace_id`);\n";
10440
10479
  }
10441
10480
  });
10442
10481
 
10443
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0029_v39_clarify_revert.sql
10482
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0029_v39_clarify_revert.sql
10444
10483
  var v39_clarify_revert_default;
10445
10484
  var init_v39_clarify_revert = __esm({
10446
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0029_v39_clarify_revert.sql"() {
10485
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0029_v39_clarify_revert.sql"() {
10447
10486
  v39_clarify_revert_default = "-- v3.9: clarifying questions, conversation revert, message edit, stream tools\nALTER TABLE `chats` ADD `has_answered_questions` integer NOT NULL DEFAULT 0;\n--> statement-breakpoint\nALTER TABLE `messages` ADD `exchange_index` integer DEFAULT 0;\n--> statement-breakpoint\nALTER TABLE `messages` ADD `snapshot_id` integer;\n--> statement-breakpoint\nALTER TABLE `messages` ADD `files_written` text;\n";
10448
10487
  }
10449
10488
  });
10450
10489
 
10451
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0030_v40_tool_session_loads.sql
10490
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0030_v40_tool_session_loads.sql
10452
10491
  var v40_tool_session_loads_default;
10453
10492
  var init_v40_tool_session_loads = __esm({
10454
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0030_v40_tool_session_loads.sql"() {
10493
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0030_v40_tool_session_loads.sql"() {
10455
10494
  v40_tool_session_loads_default = "-- v4.0: Tool session tracking (analytics - which tools get discovered and used)\nCREATE TABLE IF NOT EXISTS `tool_session_loads` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `chat_id` integer NOT NULL REFERENCES chats(id) ON DELETE CASCADE,\n `tool_name` text NOT NULL,\n `first_called_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `tool_session_loads_chat_id_idx` ON `tool_session_loads` (`chat_id`);\n";
10456
10495
  }
10457
10496
  });
10458
10497
 
10459
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0031_project_memory.sql
10498
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0031_project_memory.sql
10460
10499
  var project_memory_default;
10461
10500
  var init_project_memory = __esm({
10462
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0031_project_memory.sql"() {
10501
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0031_project_memory.sql"() {
10463
10502
  project_memory_default = "-- v5.0 Section 2: Project memory\nCREATE TABLE IF NOT EXISTS `project_snapshots` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES apps(id) ON DELETE CASCADE,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `blueprint_json` text NOT NULL,\n `plan_md` text,\n `diagram_mermaid` text,\n `git_commit_hash` text,\n `session_summary` text,\n `trigger` text NOT NULL\n);\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `project_snapshots_workspace_created_idx` ON `project_snapshots` (`workspace_id`, `created_at`);\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `project_memory` (\n `workspace_id` integer NOT NULL REFERENCES apps(id) ON DELETE CASCADE,\n `key` text NOT NULL,\n `value` text NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n PRIMARY KEY (`workspace_id`, `key`)\n);\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `project_memory_workspace_idx` ON `project_memory` (`workspace_id`);\n";
10464
10503
  }
10465
10504
  });
10466
10505
 
10467
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0032_pivot_tables.sql
10506
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0032_pivot_tables.sql
10468
10507
  var pivot_tables_default;
10469
10508
  var init_pivot_tables = __esm({
10470
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0032_pivot_tables.sql"() {
10509
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0032_pivot_tables.sql"() {
10471
10510
  pivot_tables_default = "CREATE TABLE IF NOT EXISTS `pivot_nodes` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES `apps`(`id`) ON DELETE CASCADE,\n `external_id` text NOT NULL,\n `type` text NOT NULL,\n `label` text NOT NULL,\n `file_path` text NOT NULL,\n `range_start` integer,\n `range_end` integer,\n `metadata` text\n);\n\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `pivot_nodes_workspace_idx` ON `pivot_nodes` (`workspace_id`);\n\n--> statement-breakpoint\nCREATE UNIQUE INDEX IF NOT EXISTS `pivot_nodes_workspace_external_unique` ON `pivot_nodes` (`workspace_id`, `external_id`);\n\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `pivot_edges` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES `apps`(`id`) ON DELETE CASCADE,\n `from_id` text NOT NULL,\n `to_id` text NOT NULL,\n `type` text NOT NULL,\n `metadata` text\n);\n\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `pivot_edges_workspace_idx` ON `pivot_edges` (`workspace_id`);\n\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `pivot_containers` (\n `id` text PRIMARY KEY NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES `apps`(`id`) ON DELETE CASCADE,\n `label` text NOT NULL,\n `intent` text,\n `position` text,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `pivot_beacons` (\n `id` text PRIMARY KEY NOT NULL,\n `container_id` text NOT NULL REFERENCES `pivot_containers`(`id`) ON DELETE CASCADE,\n `label` text NOT NULL,\n `kind` text NOT NULL,\n `description` text,\n `file_path` text,\n `position` text\n);\n\n--> statement-breakpoint\nCREATE TABLE IF NOT EXISTS `blueprint_snapshots` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL REFERENCES `apps`(`id`) ON DELETE CASCADE,\n `snapshot_at` integer DEFAULT (unixepoch()) NOT NULL,\n `blueprint_json` text NOT NULL,\n `source` text NOT NULL\n);\n\n--> statement-breakpoint\nCREATE INDEX IF NOT EXISTS `blueprint_snapshots_workspace_idx` ON `blueprint_snapshots` (`workspace_id`);\n";
10472
10511
  }
10473
10512
  });
10474
10513
 
10475
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0033_rename_type_columns.sql
10514
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0033_rename_type_columns.sql
10476
10515
  var rename_type_columns_default;
10477
10516
  var init_rename_type_columns = __esm({
10478
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0033_rename_type_columns.sql"() {
10517
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0033_rename_type_columns.sql"() {
10479
10518
  rename_type_columns_default = "-- pivot_nodes: type -> node_type\nALTER TABLE pivot_nodes RENAME COLUMN type TO node_type;\n\n--> statement-breakpoint\n\n-- pivot_edges: type -> edge_type\nALTER TABLE pivot_edges RENAME COLUMN type TO edge_type;\n\n--> statement-breakpoint\n\n-- diagrams: type -> diagram_type\nALTER TABLE diagrams RENAME COLUMN type TO diagram_type;\n";
10480
10519
  }
10481
10520
  });
10482
10521
 
10483
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0034_prompts_new_schema.sql
10522
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0034_prompts_new_schema.sql
10484
10523
  var prompts_new_schema_default;
10485
10524
  var init_prompts_new_schema = __esm({
10486
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0034_prompts_new_schema.sql"() {
10525
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0034_prompts_new_schema.sql"() {
10487
10526
  prompts_new_schema_default = "-- Migrate prompts table from old schema (title, description) to new schema (type, workspace_id)\nCREATE TABLE `prompts_new` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `type` text NOT NULL DEFAULT 'global',\n `workspace_id` integer,\n `content` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n\n--> statement-breakpoint\n\nINSERT INTO `prompts_new` (`id`, `type`, `workspace_id`, `content`, `created_at`, `updated_at`)\nSELECT `id`, 'global', NULL, `content`, `created_at`, `updated_at`\nFROM `prompts`;\n\n--> statement-breakpoint\n\nDROP TABLE `prompts`;\n\n--> statement-breakpoint\n\nALTER TABLE `prompts_new` RENAME TO `prompts`;\n\n--> statement-breakpoint\n\nCREATE UNIQUE INDEX IF NOT EXISTS `prompts_workspace_unique` ON `prompts` (`workspace_id`);\n";
10488
10527
  }
10489
10528
  });
10490
10529
 
10491
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0035_unified_snapshots_revert.sql
10530
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0035_unified_snapshots_revert.sql
10492
10531
  var unified_snapshots_revert_default;
10493
10532
  var init_unified_snapshots_revert = __esm({
10494
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0035_unified_snapshots_revert.sql"() {
10533
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0035_unified_snapshots_revert.sql"() {
10495
10534
  unified_snapshots_revert_default = "-- Unified snapshots: diagram version turn linkage, workspace file-hash manifest, message revert UI flag\nALTER TABLE `diagram_versions` ADD COLUMN `chat_turn_id` text;\n\n--> statement-breakpoint\n\nALTER TABLE `diagrams` ADD COLUMN `last_snapshot_hashes` text;\n\n--> statement-breakpoint\n\nALTER TABLE `messages` ADD COLUMN `is_reverted` integer DEFAULT 0 NOT NULL;\n";
10496
10535
  }
10497
10536
  });
10498
10537
 
10499
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0036_auto_routed_tier.sql
10538
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0036_auto_routed_tier.sql
10500
10539
  var auto_routed_tier_default;
10501
10540
  var init_auto_routed_tier = __esm({
10502
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0036_auto_routed_tier.sql"() {
10541
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0036_auto_routed_tier.sql"() {
10503
10542
  auto_routed_tier_default = "ALTER TABLE `messages` ADD COLUMN `auto_routed_tier` text;\n";
10504
10543
  }
10505
10544
  });
10506
10545
 
10507
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0037_compaction_nested_and_synthetic.sql
10546
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0037_compaction_nested_and_synthetic.sql
10508
10547
  var compaction_nested_and_synthetic_default;
10509
10548
  var init_compaction_nested_and_synthetic = __esm({
10510
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0037_compaction_nested_and_synthetic.sql"() {
10549
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0037_compaction_nested_and_synthetic.sql"() {
10511
10550
  compaction_nested_and_synthetic_default = "ALTER TABLE `chat_context_summaries` ADD COLUMN `compaction_generation` integer DEFAULT 0 NOT NULL;\nALTER TABLE `messages` ADD COLUMN `is_synthetic` integer DEFAULT 0 NOT NULL;\n";
10512
10551
  }
10513
10552
  });
10514
10553
 
10515
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0038_counsel_sessions.sql
10554
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0038_counsel_sessions.sql
10516
10555
  var counsel_sessions_default;
10517
10556
  var init_counsel_sessions = __esm({
10518
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0038_counsel_sessions.sql"() {
10557
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0038_counsel_sessions.sql"() {
10519
10558
  counsel_sessions_default = "CREATE TABLE `counsel_sessions` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `session_id` text NOT NULL,\n `chat_id` integer NOT NULL,\n `turn_id` text NOT NULL,\n `trigger` text NOT NULL,\n `mode` text NOT NULL,\n `question` text NOT NULL,\n `fast_response` text,\n `balanced_response` text,\n `thinking_response` text,\n `synthesis` text,\n `status` text NOT NULL,\n `created_at` integer NOT NULL,\n `completed_at` integer\n);\n";
10520
10559
  }
10521
10560
  });
10522
10561
 
10523
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0039_atlarix_hooks.sql
10562
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0039_atlarix_hooks.sql
10524
10563
  var atlarix_hooks_default;
10525
10564
  var init_atlarix_hooks = __esm({
10526
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0039_atlarix_hooks.sql"() {
10565
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0039_atlarix_hooks.sql"() {
10527
10566
  atlarix_hooks_default = "CREATE TABLE `atlarix_hooks` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `name` text NOT NULL,\n `trigger` text NOT NULL,\n `command` text NOT NULL,\n `args_json` text,\n `workspace_id` integer,\n `enabled` integer DEFAULT 1 NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n";
10528
10567
  }
10529
10568
  });
10530
10569
 
10531
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0040_custom_commands.sql
10570
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0040_custom_commands.sql
10532
10571
  var custom_commands_default;
10533
10572
  var init_custom_commands = __esm({
10534
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0040_custom_commands.sql"() {
10573
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0040_custom_commands.sql"() {
10535
10574
  custom_commands_default = "CREATE TABLE `custom_commands` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `name` text NOT NULL,\n `prompt_template` text NOT NULL,\n `mode_override` text,\n `workspace_id` integer,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL\n);\n\nCREATE UNIQUE INDEX `custom_commands_name_workspace` ON `custom_commands` (`name`, COALESCE(`workspace_id`, -1));\n";
10536
10575
  }
10537
10576
  });
10538
10577
 
10539
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0041_drop_diagram_versions.sql
10578
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0041_drop_diagram_versions.sql
10540
10579
  var drop_diagram_versions_default;
10541
10580
  var init_drop_diagram_versions = __esm({
10542
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0041_drop_diagram_versions.sql"() {
10581
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0041_drop_diagram_versions.sql"() {
10543
10582
  drop_diagram_versions_default = "DROP TABLE IF EXISTS diagram_versions;\n";
10544
10583
  }
10545
10584
  });
10546
10585
 
10547
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0042_installed_skills.sql
10586
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0042_installed_skills.sql
10548
10587
  var installed_skills_default;
10549
10588
  var init_installed_skills = __esm({
10550
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0042_installed_skills.sql"() {
10589
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0042_installed_skills.sql"() {
10551
10590
  installed_skills_default = "-- Custom SQL migration file, put your code below! --\n\nCREATE TABLE `installed_skills` (\n `id` text NOT NULL,\n `name` text NOT NULL,\n `version` text NOT NULL,\n `author` text NOT NULL,\n `description` text NOT NULL,\n `tags` text NOT NULL,\n `compatible_modes` text NOT NULL,\n `installed_at` integer NOT NULL,\n `scope` text NOT NULL,\n `workspace_path` text,\n `cached_files` text NOT NULL,\n PRIMARY KEY(`id`, `scope`, `workspace_path`)\n);\n";
10552
10591
  }
10553
10592
  });
10554
10593
 
10555
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0043_mcp_registry_columns.sql
10594
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0043_mcp_registry_columns.sql
10556
10595
  var mcp_registry_columns_default;
10557
10596
  var init_mcp_registry_columns = __esm({
10558
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0043_mcp_registry_columns.sql"() {
10597
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0043_mcp_registry_columns.sql"() {
10559
10598
  mcp_registry_columns_default = '-- Pass 7 \u2014 MCP marketplace: track entries that were installed from the\n-- registry so the UI can show a "from marketplace" badge and offer one-click\n-- removal / reconfigure.\n\nALTER TABLE `mcp_servers` ADD COLUMN `from_registry` integer NOT NULL DEFAULT 0;--> statement-breakpoint\nALTER TABLE `mcp_servers` ADD COLUMN `registry_id` text;\n';
10560
10599
  }
10561
10600
  });
10562
10601
 
10563
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0044_messages_work_mode.sql
10602
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0044_messages_work_mode.sql
10564
10603
  var messages_work_mode_default;
10565
10604
  var init_messages_work_mode = __esm({
10566
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0044_messages_work_mode.sql"() {
10605
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0044_messages_work_mode.sql"() {
10567
10606
  messages_work_mode_default = "ALTER TABLE `messages` ADD `work_mode` text;\n";
10568
10607
  }
10569
10608
  });
10570
10609
 
10571
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0045_chat_sessions.sql
10610
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0045_chat_sessions.sql
10572
10611
  var chat_sessions_default;
10573
10612
  var init_chat_sessions = __esm({
10574
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0045_chat_sessions.sql"() {
10613
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0045_chat_sessions.sql"() {
10575
10614
  chat_sessions_default = "CREATE TABLE `chat_sessions` (\n `id` text PRIMARY KEY NOT NULL,\n `workspace_id` integer NOT NULL,\n `title` text DEFAULT 'New session' NOT NULL,\n `created_at` integer NOT NULL,\n `updated_at` integer NOT NULL,\n FOREIGN KEY (`workspace_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE TABLE `session_messages` (\n `id` text PRIMARY KEY NOT NULL,\n `session_id` text NOT NULL,\n `role` text NOT NULL,\n `content` text NOT NULL,\n `created_at` integer NOT NULL,\n FOREIGN KEY (`session_id`) REFERENCES `chat_sessions`(`id`) ON UPDATE no action ON DELETE cascade\n);\n";
10576
10615
  }
10577
10616
  });
10578
10617
 
10579
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0046_mcp_api_key.sql
10618
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0046_mcp_api_key.sql
10580
10619
  var mcp_api_key_default;
10581
10620
  var init_mcp_api_key = __esm({
10582
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0046_mcp_api_key.sql"() {
10621
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0046_mcp_api_key.sql"() {
10583
10622
  mcp_api_key_default = "ALTER TABLE `mcp_servers` ADD `api_key` text;\n";
10584
10623
  }
10585
10624
  });
10586
10625
 
10587
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0047_drop_blueprints_table.sql
10626
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0047_drop_blueprints_table.sql
10588
10627
  var drop_blueprints_table_default;
10589
10628
  var init_drop_blueprints_table = __esm({
10590
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0047_drop_blueprints_table.sql"() {
10629
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0047_drop_blueprints_table.sql"() {
10591
10630
  drop_blueprints_table_default = "-- Unused legacy table: blueprint state lives in ~/.atlarix/blueprints/ cache + user_blueprint.json\nDROP TABLE IF EXISTS `blueprints`;\n";
10592
10631
  }
10593
10632
  });
10594
10633
 
10595
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0048_session_plan_artifacts.sql
10634
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0048_session_plan_artifacts.sql
10596
10635
  var session_plan_artifacts_default;
10597
10636
  var init_session_plan_artifacts = __esm({
10598
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0048_session_plan_artifacts.sql"() {
10637
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0048_session_plan_artifacts.sql"() {
10599
10638
  session_plan_artifacts_default = "ALTER TABLE `session_messages` ADD COLUMN `kind` text NOT NULL DEFAULT 'message';\nALTER TABLE `session_messages` ADD COLUMN `plan_status` text;\n";
10600
10639
  }
10601
10640
  });
10602
10641
 
10603
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0049_workspace_only_remote.sql
10642
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0049_workspace_only_remote.sql
10604
10643
  var workspace_only_remote_default;
10605
10644
  var init_workspace_only_remote = __esm({
10606
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0049_workspace_only_remote.sql"() {
10645
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0049_workspace_only_remote.sql"() {
10607
10646
  workspace_only_remote_default = "DELETE FROM mcp_servers WHERE scope = 'global';\n--> statement-breakpoint\nDELETE FROM installed_skills WHERE scope = 'global';\n--> statement-breakpoint\nDELETE FROM prompts WHERE type = 'global';\n--> statement-breakpoint\nALTER TABLE apps ADD COLUMN last_opened_at INTEGER;\n--> statement-breakpoint\nALTER TABLE apps ADD COLUMN workspace_kind TEXT NOT NULL DEFAULT 'local';\n--> statement-breakpoint\nALTER TABLE apps ADD COLUMN remote_connection TEXT;\n";
10608
10647
  }
10609
10648
  });
10610
10649
 
10611
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0050_drop_prompts_table.sql
10650
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0050_drop_prompts_table.sql
10612
10651
  var drop_prompts_table_default;
10613
10652
  var init_drop_prompts_table = __esm({
10614
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0050_drop_prompts_table.sql"() {
10653
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0050_drop_prompts_table.sql"() {
10615
10654
  drop_prompts_table_default = "DROP TABLE IF EXISTS prompts;\n";
10616
10655
  }
10617
10656
  });
10618
10657
 
10619
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0051_display_snapshot.sql
10658
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0051_display_snapshot.sql
10620
10659
  var display_snapshot_default;
10621
10660
  var init_display_snapshot = __esm({
10622
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0051_display_snapshot.sql"() {
10661
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0051_display_snapshot.sql"() {
10623
10662
  display_snapshot_default = "ALTER TABLE `messages` ADD COLUMN `display_snapshot` text;\n--> statement-breakpoint\nALTER TABLE `session_messages` ADD COLUMN `display_snapshot` text;\n";
10624
10663
  }
10625
10664
  });
10626
10665
 
10627
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0052_message_model_content.sql
10666
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0052_message_model_content.sql
10628
10667
  var message_model_content_default;
10629
10668
  var init_message_model_content = __esm({
10630
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0052_message_model_content.sql"() {
10669
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0052_message_model_content.sql"() {
10631
10670
  message_model_content_default = "ALTER TABLE `messages` ADD COLUMN `model_content` text;\n";
10632
10671
  }
10633
10672
  });
10634
10673
 
10635
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0053_message_paste_attachments.sql
10674
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0053_message_paste_attachments.sql
10636
10675
  var message_paste_attachments_default;
10637
10676
  var init_message_paste_attachments = __esm({
10638
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0053_message_paste_attachments.sql"() {
10677
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0053_message_paste_attachments.sql"() {
10639
10678
  message_paste_attachments_default = "ALTER TABLE `messages` ADD COLUMN `paste_attachments` text;\n";
10640
10679
  }
10641
10680
  });
10642
10681
 
10643
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0054_message_file_attachments.sql
10682
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0054_message_file_attachments.sql
10644
10683
  var message_file_attachments_default;
10645
10684
  var init_message_file_attachments = __esm({
10646
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0054_message_file_attachments.sql"() {
10685
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0054_message_file_attachments.sql"() {
10647
10686
  message_file_attachments_default = "ALTER TABLE `messages` ADD COLUMN `file_attachments` text;\n";
10648
10687
  }
10649
10688
  });
10650
10689
 
10651
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0055_session_message_attachments.sql
10690
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0055_session_message_attachments.sql
10652
10691
  var session_message_attachments_default;
10653
10692
  var init_session_message_attachments = __esm({
10654
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0055_session_message_attachments.sql"() {
10693
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0055_session_message_attachments.sql"() {
10655
10694
  session_message_attachments_default = "ALTER TABLE `session_messages` ADD COLUMN `model_content` text;\nALTER TABLE `session_messages` ADD COLUMN `paste_attachments` text;\nALTER TABLE `session_messages` ADD COLUMN `file_attachments` text;\n";
10656
10695
  }
10657
10696
  });
10658
10697
 
10659
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0056_workspace_command_permissions.sql
10698
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0056_workspace_command_permissions.sql
10660
10699
  var workspace_command_permissions_default;
10661
10700
  var init_workspace_command_permissions = __esm({
10662
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0056_workspace_command_permissions.sql"() {
10701
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0056_workspace_command_permissions.sql"() {
10663
10702
  workspace_command_permissions_default = "CREATE TABLE `workspace_command_permissions` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `category` text NOT NULL,\n `decision` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `workspace_command_permissions_app_category` ON `workspace_command_permissions` (`app_id`,`category`);--> statement-breakpoint\nCREATE INDEX `workspace_command_permissions_app_id_idx` ON `workspace_command_permissions` (`app_id`);\n";
10664
10703
  }
10665
10704
  });
10666
10705
 
10667
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0057_workspace_file_permissions.sql
10706
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0057_workspace_file_permissions.sql
10668
10707
  var workspace_file_permissions_default;
10669
10708
  var init_workspace_file_permissions = __esm({
10670
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0057_workspace_file_permissions.sql"() {
10709
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0057_workspace_file_permissions.sql"() {
10671
10710
  workspace_file_permissions_default = "CREATE TABLE `workspace_file_permissions` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `app_id` integer NOT NULL,\n `scope_type` text NOT NULL,\n `scope_value` text NOT NULL,\n `decision` text NOT NULL,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`app_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `workspace_file_permissions_app_scope` ON `workspace_file_permissions` (`app_id`,`scope_type`,`scope_value`);--> statement-breakpoint\nCREATE INDEX `workspace_file_permissions_app_id_idx` ON `workspace_file_permissions` (`app_id`);\n";
10672
10711
  }
10673
10712
  });
10674
10713
 
10675
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0058_session_stream_and_drop_legacy_chats.sql
10714
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0058_session_stream_and_drop_legacy_chats.sql
10676
10715
  var session_stream_and_drop_legacy_chats_default;
10677
10716
  var init_session_stream_and_drop_legacy_chats = __esm({
10678
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0058_session_stream_and_drop_legacy_chats.sql"() {
10717
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0058_session_stream_and_drop_legacy_chats.sql"() {
10679
10718
  session_stream_and_drop_legacy_chats_default = "-- Workspace sessions: persist stream transport id; remove legacy chats/messages tables.\nDROP TABLE IF EXISTS `messages`;\n--> statement-breakpoint\nDROP TABLE IF EXISTS `chat_context_summaries`;\n--> statement-breakpoint\nDROP TABLE IF EXISTS `tool_session_loads`;\n--> statement-breakpoint\nDROP TABLE IF EXISTS `chats`;\n--> statement-breakpoint\nALTER TABLE `chat_sessions` ADD COLUMN `stream_chat_id` integer;\n";
10680
10719
  }
10681
10720
  });
10682
10721
 
10683
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0059_mcp_oauth_columns.sql
10722
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0059_mcp_oauth_columns.sql
10684
10723
  var mcp_oauth_columns_default;
10685
10724
  var init_mcp_oauth_columns = __esm({
10686
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0059_mcp_oauth_columns.sql"() {
10725
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0059_mcp_oauth_columns.sql"() {
10687
10726
  mcp_oauth_columns_default = "ALTER TABLE `mcp_servers` ADD COLUMN `auth_type` text DEFAULT 'none' NOT NULL;\n--> statement-breakpoint\nALTER TABLE `mcp_servers` ADD COLUMN `oauth_tokens_json` text;\n--> statement-breakpoint\nALTER TABLE `mcp_servers` ADD COLUMN `oauth_client_json` text;\n--> statement-breakpoint\nALTER TABLE `mcp_servers` ADD COLUMN `oauth_discovery_json` text;\n";
10688
10727
  }
10689
10728
  });
10690
10729
 
10691
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0060_background_agent_session_status.sql
10730
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0060_background_agent_session_status.sql
10692
10731
  var background_agent_session_status_default;
10693
10732
  var init_background_agent_session_status = __esm({
10694
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0060_background_agent_session_status.sql"() {
10733
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0060_background_agent_session_status.sql"() {
10695
10734
  background_agent_session_status_default = "ALTER TABLE `chat_sessions` ADD COLUMN `kind` text DEFAULT 'normal' NOT NULL;\n--> statement-breakpoint\nALTER TABLE `chat_sessions` ADD COLUMN `status` text;\n--> statement-breakpoint\nALTER TABLE `chat_sessions` ADD COLUMN `status_error` text;\n";
10696
10735
  }
10697
10736
  });
10698
10737
 
10699
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0061_background_agent_meta.sql
10738
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0061_background_agent_meta.sql
10700
10739
  var background_agent_meta_default;
10701
10740
  var init_background_agent_meta = __esm({
10702
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0061_background_agent_meta.sql"() {
10741
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0061_background_agent_meta.sql"() {
10703
10742
  background_agent_meta_default = "ALTER TABLE `chat_sessions` ADD COLUMN `agent_meta` text;\n";
10704
10743
  }
10705
10744
  });
10706
10745
 
10707
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0062_drop_legacy_diagram_tables.sql
10746
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0062_drop_legacy_diagram_tables.sql
10708
10747
  var drop_legacy_diagram_tables_default;
10709
10748
  var init_drop_legacy_diagram_tables = __esm({
10710
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0062_drop_legacy_diagram_tables.sql"() {
10749
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0062_drop_legacy_diagram_tables.sql"() {
10711
10750
  drop_legacy_diagram_tables_default = '-- v12 S22 hotfix: the legacy `diagrams` table still carried\n-- `FOREIGN KEY (chat_id) REFERENCES chats(id)` after 0058 dropped `chats`.\n-- With foreign_keys ON, SQLite then fails to PREPARE any `DELETE FROM apps`\n-- (it must compile the diagrams cascade and can\'t resolve the dead chats ref):\n-- "Failed to delete workspace from database: no such table: main.chats".\n-- Both tables are dead since the diagram-subsystem removal (nothing reads or\n-- writes them; 0041 already dropped their sibling `diagram_versions`).\nDROP TABLE IF EXISTS `diagrams`;\n--> statement-breakpoint\nDROP TABLE IF EXISTS `workspace_diagrams`;\n';
10712
10751
  }
10713
10752
  });
10714
10753
 
10715
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0063_session_message_snapshot_turn.sql
10754
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0063_session_message_snapshot_turn.sql
10716
10755
  var session_message_snapshot_turn_default;
10717
10756
  var init_session_message_snapshot_turn = __esm({
10718
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0063_session_message_snapshot_turn.sql"() {
10757
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0063_session_message_snapshot_turn.sql"() {
10719
10758
  session_message_snapshot_turn_default = "ALTER TABLE `session_messages` ADD COLUMN `snapshot_turn_id` text;";
10720
10759
  }
10721
10760
  });
10722
10761
 
10723
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0064_drop_deploy_connector_columns.sql
10762
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0064_drop_deploy_connector_columns.sql
10724
10763
  var drop_deploy_connector_columns_default;
10725
10764
  var init_drop_deploy_connector_columns = __esm({
10726
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0064_drop_deploy_connector_columns.sql"() {
10765
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0064_drop_deploy_connector_columns.sql"() {
10727
10766
  drop_deploy_connector_columns_default = "-- v13.6: user-facing Supabase/Neon/Vercel deploy connectors removed.\n-- Drop the now-unused per-app connector columns (LOCAL sqlite only \u2014 this does\n-- NOT touch Atlarix's own prod Supabase). Atlarix auth + Core token metering are\n-- unaffected (they live in Supabase, not this table).\nALTER TABLE `apps` DROP COLUMN `supabase_project_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `supabase_parent_project_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `neon_project_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `neon_development_branch_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `neon_preview_branch_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `vercel_project_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `vercel_project_name`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `vercel_team_id`;--> statement-breakpoint\nALTER TABLE `apps` DROP COLUMN `vercel_deployment_url`;--> statement-breakpoint\nALTER TABLE `versions` DROP COLUMN `neon_db_timestamp`;\n";
10728
10767
  }
10729
10768
  });
10730
10769
 
10731
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0065_drop_custom_commands.sql
10770
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0065_drop_custom_commands.sql
10732
10771
  var drop_custom_commands_default;
10733
10772
  var init_drop_custom_commands = __esm({
10734
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0065_drop_custom_commands.sql"() {
10773
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0065_drop_custom_commands.sql"() {
10735
10774
  drop_custom_commands_default = "-- v13.6: `/` slash-command system removed (prompt-templates duplicated the work-mode\n-- picker; the editor was never surfaced). Drop the now-unused local table.\nDROP TABLE IF EXISTS `custom_commands`;\n";
10736
10775
  }
10737
10776
  });
10738
10777
 
10739
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0066_automations.sql
10778
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0066_automations.sql
10740
10779
  var automations_default;
10741
10780
  var init_automations = __esm({
10742
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0066_automations.sql"() {
10781
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0066_automations.sql"() {
10743
10782
  automations_default = "-- Automations: persisted locally-executed recurring agent runs (definitions)\n-- and their triage-feed run history (transcripts live in chat_sessions\n-- kind=\"background\" rows; session_id links them).\nCREATE TABLE `automations` (\n `id` text PRIMARY KEY NOT NULL,\n `workspace_id` integer,\n `name` text NOT NULL,\n `enabled` integer DEFAULT true NOT NULL,\n `trigger` text NOT NULL,\n `prompt` text NOT NULL,\n `run_mode` text DEFAULT 'read-only' NOT NULL,\n `model` text,\n `cursor` text,\n `last_run_at` integer,\n `created_at` integer DEFAULT (unixepoch()) NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`workspace_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE TABLE `automation_runs` (\n `id` text PRIMARY KEY NOT NULL,\n `automation_id` text NOT NULL,\n `session_id` text,\n `status` text NOT NULL,\n `summary` text,\n `error` text,\n `unread` integer DEFAULT true NOT NULL,\n `archived` integer DEFAULT false NOT NULL,\n `proposal_diff` text,\n `proposal_files` text,\n `proposal_applied_at` integer,\n `started_at` integer DEFAULT (unixepoch()) NOT NULL,\n `finished_at` integer,\n FOREIGN KEY (`automation_id`) REFERENCES `automations`(`id`) ON UPDATE no action ON DELETE cascade,\n FOREIGN KEY (`session_id`) REFERENCES `chat_sessions`(`id`) ON UPDATE no action ON DELETE set null\n);\n--> statement-breakpoint\nCREATE INDEX `automation_runs_automation_id_idx` ON `automation_runs` (`automation_id`);\n";
10744
10783
  }
10745
10784
  });
10746
10785
 
10747
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0067_automation_run_context.sql
10786
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0067_automation_run_context.sql
10748
10787
  var automation_run_context_default;
10749
10788
  var init_automation_run_context = __esm({
10750
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0067_automation_run_context.sql"() {
10789
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0067_automation_run_context.sql"() {
10751
10790
  automation_run_context_default = "-- Notify-only automations: persist the fired trigger's context on the run so\n-- the feed's \"Send to chat\" can present the event to the model on demand.\nALTER TABLE `automation_runs` ADD COLUMN `trigger_context` text;\n";
10752
10791
  }
10753
10792
  });
10754
10793
 
10755
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0068_session_title_source.sql
10794
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0068_session_title_source.sql
10756
10795
  var session_title_source_default;
10757
10796
  var init_session_title_source = __esm({
10758
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0068_session_title_source.sql"() {
10797
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0068_session_title_source.sql"() {
10759
10798
  session_title_source_default = '-- Track whether a session\'s title was generated for it or typed by the user.\n--\n-- Re-titling was gated on the title still being a DEFAULT ("Untitled" / "New\n-- chat"), so once a session had any name \u2014 including one we generated from its\n-- first exchange \u2014 editing that first prompt could never update it. With this\n-- column an "auto" title follows the prompt it came from, while a hand-typed one\n-- is never overwritten.\n--\n-- Existing rows default to "auto". That is deliberate: a title we generated is\n-- by far the common case, and the cost of being wrong is a re-titled session\n-- rather than a lost name, which the user can always rename back.\nALTER TABLE `chat_sessions` ADD COLUMN `title_source` text DEFAULT \'auto\' NOT NULL;\n';
10760
10799
  }
10761
10800
  });
10762
10801
 
10763
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0069_session_message_token_usage.sql
10802
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0069_session_message_token_usage.sql
10764
10803
  var session_message_token_usage_default;
10765
10804
  var init_session_message_token_usage = __esm({
10766
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0069_session_message_token_usage.sql"() {
10805
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0069_session_message_token_usage.sql"() {
10767
10806
  session_message_token_usage_default = "-- Persist the provider's real token total for an assistant turn.\n--\n-- The token meter prefers this over its own estimate, and the in-memory stream\n-- transport already carried it \u2014 but with nowhere to store it, a restart lost it\n-- and the meter fell back to the client-side estimate. That estimate counts only\n-- the flat persisted messages, with no system prompt and none of the native tool\n-- history that dominates an agentic session, so it under-reports by roughly half:\n-- one measured session read 417k while streaming and 211k after reopening.\n-- Nothing had been summarised \u2014 the meter had simply switched rulers.\n--\n-- Existing rows stay NULL, which the meter already handles by falling back to the\n-- estimate exactly as it does today. New turns record the real figure.\nALTER TABLE `session_messages` ADD COLUMN `max_tokens_used` integer;\n";
10768
10807
  }
10769
10808
  });
10770
10809
 
10771
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0070_drop_worktree_run_mode.sql
10810
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0070_drop_worktree_run_mode.sql
10772
10811
  var drop_worktree_run_mode_default;
10773
10812
  var init_drop_worktree_run_mode = __esm({
10774
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0070_drop_worktree_run_mode.sql"() {
10813
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0070_drop_worktree_run_mode.sql"() {
10775
10814
  drop_worktree_run_mode_default = `-- v14.21.0 removed the "worktree-write" automation run mode along with the
10776
10815
  -- sub-agent git worktree it depended on. Any automation still set to it would
10777
10816
  -- otherwise load with a run_mode the zod schema no longer accepts, so downgrade
@@ -10785,42 +10824,42 @@ UPDATE automations SET run_mode = 'read-only' WHERE run_mode = 'worktree-write';
10785
10824
  }
10786
10825
  });
10787
10826
 
10788
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0071_automation_notify_agent.sql
10827
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0071_automation_notify_agent.sql
10789
10828
  var automation_notify_agent_default;
10790
10829
  var init_automation_notify_agent = __esm({
10791
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0071_automation_notify_agent.sql"() {
10830
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0071_automation_notify_agent.sql"() {
10792
10831
  automation_notify_agent_default = '-- v14.27.0: every automation declares whether its outcome reaches the AGENT.\n--\n-- `run_mode` already says whether a fired trigger runs the model unattended.\n-- `notify_agent` is the other half, and the one that governs interactive spend:\n-- whether a finished run is delivered into the user\'s chat session for the agent\n-- to see and act on.\n--\n-- notify_agent = 1 \u2192 CI passed/failed, tests: things worth acting on.\n-- notify_agent = 0 \u2192 Slack via MCP and similar inbox-shaped noise. The run\n-- feed and the OS notification still fire; the agent is\n-- never woken, so this automation can never cost tokens.\n--\n-- Existing rows default to 0, deliberately. Every automation on disk predates\n-- the field, so nobody chose a value for them \u2014 and the safe reading of "not\n-- chosen" is "do not spend". A user who wants one to reach the agent flips it in\n-- the Automations tab, which is one click and now the only way it happens.\n--\n-- New automations must state it explicitly (the zod schema requires it); the\n-- column default exists only for these pre-existing rows.\nALTER TABLE automations ADD COLUMN notify_agent integer DEFAULT 0 NOT NULL;\n';
10793
10832
  }
10794
10833
  });
10795
10834
 
10796
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0072_automation_pipeline_trigger.sql
10835
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0072_automation_pipeline_trigger.sql
10797
10836
  var automation_pipeline_trigger_default;
10798
10837
  var init_automation_pipeline_trigger = __esm({
10799
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0072_automation_pipeline_trigger.sql"() {
10838
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0072_automation_pipeline_trigger.sql"() {
10800
10839
  automation_pipeline_trigger_default = "-- v14.27.0: `kind:\"github\"` triggers become `kind:\"pipeline\"` with `host:\"github\"`.\n--\n-- The vendor was the trigger KIND, which made it a schema branch, a poller call\n-- and a form tab all named after one service \u2014 so adding GitLab meant repeating\n-- every one of them. The kind is now `pipeline` and the vendor is a field\n-- resolved through a poller registry (`lib/automations/pipeline-hosts.ts`).\n--\n-- Rewritten in place rather than left to the runtime alias, so exactly one shape\n-- exists on disk. `AutomationTriggerSchema` still ACCEPTS the old shape and\n-- normalises it \u2014 that covers a row written by an older build between this\n-- migration and the next launch, not the rows already here.\n--\n-- json_set/json_remove are used rather than string surgery so a trigger with\n-- unusual whitespace or key order migrates correctly; SQLite has shipped JSON1\n-- by default since 3.38 and better-sqlite3 bundles a far newer build.\nUPDATE automations\nSET trigger = json_set(\n json_set(trigger, '$.kind', 'pipeline'),\n '$.host', 'github'\n )\nWHERE json_valid(trigger)\n AND json_extract(trigger, '$.kind') = 'github';\n";
10801
10840
  }
10802
10841
  });
10803
10842
 
10804
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0073_session_message_plan_title.sql
10843
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0073_session_message_plan_title.sql
10805
10844
  var session_message_plan_title_default;
10806
10845
  var init_session_message_plan_title = __esm({
10807
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0073_session_message_plan_title.sql"() {
10846
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0073_session_message_plan_title.sql"() {
10808
10847
  session_message_plan_title_default = '-- Give a plan artifact a real title column instead of a scraped substring.\n--\n-- A plan had no title of its own. `createPlanArtifact` prepended the model\'s\n-- supplied title into the markdown body as an H1, and every reader scraped it\n-- back out with `planArtifactTitleFromContent` (first non-empty line, `#`s\n-- stripped). The prepend was guarded on `!content.trim().startsWith("#")` \u2014 true\n-- for a `## Goal` section heading exactly as much as for a real `# Title` \u2014 so a\n-- model that opened its plan with a section heading had its title thrown away on\n-- write, with no warning and no return signal. The scraper then handed back the\n-- first line it found, which is why plans in the wild are so often named "Goal".\n--\n-- Nothing in the prompts ever asked for a `## Goal` section; models write it\n-- because it is the natural shape of a plan document. The old behaviour punished\n-- good structure.\n--\n-- Existing rows stay NULL and keep rendering through the scraper, which is\n-- retained solely as their fallback. New plans read the column and never touch\n-- the markdown for their name.\nALTER TABLE `session_messages` ADD COLUMN `title` text;\n';
10809
10848
  }
10810
10849
  });
10811
10850
 
10812
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0074_chat_session_work_mode.sql
10851
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0074_chat_session_work_mode.sql
10813
10852
  var chat_session_work_mode_default;
10814
10853
  var init_chat_session_work_mode = __esm({
10815
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0074_chat_session_work_mode.sql"() {
10854
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0074_chat_session_work_mode.sql"() {
10816
10855
  chat_session_work_mode_default = "-- Give a session its own work mode, instead of borrowing the global preference.\n--\n-- The mode (Explore / Plan / Build / Debug / Review) lived only in settings, so\n-- it belonged to the APP rather than to the conversation. Reopening a session you\n-- had been planning in, from a window whose global preference was Build, silently\n-- made the next turn a Build turn \u2014 writes allowed on a thread you were only\n-- exploring, with nothing on screen having changed. Two sessions open at once\n-- could not disagree about their mode at all.\n--\n-- This is the same global-vs-scoped confusion behind the v14.32.0 and v14.34.0\n-- bugs (a global decision made from per-window state, then its exact mirror). The\n-- session is the honest owner: it is what the user thinks they are picking a mode\n-- FOR. Reading it per turn also means the stream handler stops re-reading a\n-- global for a per-session decision, which is what closes the class rather than\n-- one more instance of it.\n--\n-- Existing rows stay NULL and keep resolving from the global preference exactly\n-- as they do today; the first deliberate mode pick inside a session stamps it\n-- here. Stamping every old session on open instead would hand each of them a mode\n-- it was never actually given.\nALTER TABLE `chat_sessions` ADD COLUMN `work_mode` text;\n";
10817
10856
  }
10818
10857
  });
10819
10858
 
10820
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0075_edit_stats.sql
10859
+ // raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0075_edit_stats.sql
10821
10860
  var edit_stats_default;
10822
10861
  var init_edit_stats = __esm({
10823
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/drizzle/0075_edit_stats.sql"() {
10862
+ "raw-file:/home/runner/work/Atlarix/Atlarix/drizzle/0075_edit_stats.sql"() {
10824
10863
  edit_stats_default = '-- How much the agent has actually written, per workspace and per model.\n--\n-- Nothing recorded this. `workspace_modifications` and `daily_logs` look like they\n-- might, but both are dyad-era: the current write path has never inserted into\n-- either, and the only code left touching `workspace_modifications` is the cleanup\n-- job that summarises rows nobody creates. So this is a new table rather than a\n-- revival \u2014 reviving one would have meant inheriting a shape built for a different\n-- question.\n--\n-- A daily ROLLUP, not a row per edit. The counts are gross by decision (reverting a\n-- turn does not subtract, the same way "lines written" works in every editor that\n-- shows it), so the table only ever accumulates and a sum over these rows answers\n-- every question a per-edit history would. In exchange it stays bounded for the life\n-- of the install with no pruning job, and it never puts a file path on disk.\n--\n-- The bucket is (workspace, day, provider, model) and the unique index is what makes\n-- the write an UPSERT rather than a read-modify-write, so concurrent edits in two\n-- windows cannot lose a count between them.\n--\n-- `provider` is kept beside `model_id` because it is the only thing that separates\n-- the same model reached two ways: `compass` means the turn went through Atlarix\n-- Core, anything else means the user\'s own key. That is the difference the profile\n-- card exists to show, and it cannot be recovered from the model id alone.\nCREATE TABLE `edit_stats` (\n `id` integer PRIMARY KEY AUTOINCREMENT NOT NULL,\n `workspace_id` integer NOT NULL,\n `day` text NOT NULL,\n `provider` text NOT NULL,\n `model_id` text NOT NULL,\n `lines_added` integer DEFAULT 0 NOT NULL,\n `lines_removed` integer DEFAULT 0 NOT NULL,\n `edits` integer DEFAULT 0 NOT NULL,\n `updated_at` integer DEFAULT (unixepoch()) NOT NULL,\n FOREIGN KEY (`workspace_id`) REFERENCES `apps`(`id`) ON UPDATE no action ON DELETE cascade\n);\n--> statement-breakpoint\nCREATE UNIQUE INDEX `edit_stats_bucket_unique` ON `edit_stats` (`workspace_id`,`day`,`provider`,`model_id`);--> statement-breakpoint\nCREATE INDEX `edit_stats_workspace_idx` ON `edit_stats` (`workspace_id`);\n';
10825
10864
  }
10826
10865
  });
@@ -11632,10 +11671,10 @@ function mergeDefs(...defs) {
11632
11671
  function cloneDef(schema) {
11633
11672
  return mergeDefs(schema._zod.def);
11634
11673
  }
11635
- function getElementAtPath(obj2, path49) {
11636
- if (!path49)
11674
+ function getElementAtPath(obj2, path50) {
11675
+ if (!path50)
11637
11676
  return obj2;
11638
- return path49.reduce((acc, key) => acc?.[key], obj2);
11677
+ return path50.reduce((acc, key) => acc?.[key], obj2);
11639
11678
  }
11640
11679
  function promiseAllObject(promisesObj) {
11641
11680
  const keys2 = Object.keys(promisesObj);
@@ -11963,11 +12002,11 @@ function explicitlyAborted(x4, startIndex = 0) {
11963
12002
  }
11964
12003
  return false;
11965
12004
  }
11966
- function prefixIssues(path49, issues) {
12005
+ function prefixIssues(path50, issues) {
11967
12006
  return issues.map((iss) => {
11968
12007
  var _a30;
11969
12008
  (_a30 = iss).path ?? (_a30.path = []);
11970
- iss.path.unshift(path49);
12009
+ iss.path.unshift(path50);
11971
12010
  return iss;
11972
12011
  });
11973
12012
  }
@@ -12184,16 +12223,16 @@ function flattenError(error51, mapper = (issue2) => issue2.message) {
12184
12223
  }
12185
12224
  function formatError(error51, mapper = (issue2) => issue2.message) {
12186
12225
  const fieldErrors = { _errors: [] };
12187
- const processError = (error52, path49 = []) => {
12226
+ const processError = (error52, path50 = []) => {
12188
12227
  for (const issue2 of error52.issues) {
12189
12228
  if (issue2.code === "invalid_union" && issue2.errors.length) {
12190
- issue2.errors.map((issues) => processError({ issues }, [...path49, ...issue2.path]));
12229
+ issue2.errors.map((issues) => processError({ issues }, [...path50, ...issue2.path]));
12191
12230
  } else if (issue2.code === "invalid_key") {
12192
- processError({ issues: issue2.issues }, [...path49, ...issue2.path]);
12231
+ processError({ issues: issue2.issues }, [...path50, ...issue2.path]);
12193
12232
  } else if (issue2.code === "invalid_element") {
12194
- processError({ issues: issue2.issues }, [...path49, ...issue2.path]);
12233
+ processError({ issues: issue2.issues }, [...path50, ...issue2.path]);
12195
12234
  } else {
12196
- const fullpath = [...path49, ...issue2.path];
12235
+ const fullpath = [...path50, ...issue2.path];
12197
12236
  if (fullpath.length === 0) {
12198
12237
  fieldErrors._errors.push(mapper(issue2));
12199
12238
  } else {
@@ -12220,17 +12259,17 @@ function formatError(error51, mapper = (issue2) => issue2.message) {
12220
12259
  }
12221
12260
  function treeifyError(error51, mapper = (issue2) => issue2.message) {
12222
12261
  const result2 = { errors: [] };
12223
- const processError = (error52, path49 = []) => {
12262
+ const processError = (error52, path50 = []) => {
12224
12263
  var _a30, _b21;
12225
12264
  for (const issue2 of error52.issues) {
12226
12265
  if (issue2.code === "invalid_union" && issue2.errors.length) {
12227
- issue2.errors.map((issues) => processError({ issues }, [...path49, ...issue2.path]));
12266
+ issue2.errors.map((issues) => processError({ issues }, [...path50, ...issue2.path]));
12228
12267
  } else if (issue2.code === "invalid_key") {
12229
- processError({ issues: issue2.issues }, [...path49, ...issue2.path]);
12268
+ processError({ issues: issue2.issues }, [...path50, ...issue2.path]);
12230
12269
  } else if (issue2.code === "invalid_element") {
12231
- processError({ issues: issue2.issues }, [...path49, ...issue2.path]);
12270
+ processError({ issues: issue2.issues }, [...path50, ...issue2.path]);
12232
12271
  } else {
12233
- const fullpath = [...path49, ...issue2.path];
12272
+ const fullpath = [...path50, ...issue2.path];
12234
12273
  if (fullpath.length === 0) {
12235
12274
  result2.errors.push(mapper(issue2));
12236
12275
  continue;
@@ -12262,8 +12301,8 @@ function treeifyError(error51, mapper = (issue2) => issue2.message) {
12262
12301
  }
12263
12302
  function toDotPath(_path) {
12264
12303
  const segs = [];
12265
- const path49 = _path.map((seg) => typeof seg === "object" ? seg.key : seg);
12266
- for (const seg of path49) {
12304
+ const path50 = _path.map((seg) => typeof seg === "object" ? seg.key : seg);
12305
+ for (const seg of path50) {
12267
12306
  if (typeof seg === "number")
12268
12307
  segs.push(`[${seg}]`);
12269
12308
  else if (typeof seg === "symbol")
@@ -25693,13 +25732,13 @@ function resolveRef(ref, ctx) {
25693
25732
  if (!ref.startsWith("#")) {
25694
25733
  throw new Error("External $ref is not supported, only local refs (#/...) are allowed");
25695
25734
  }
25696
- const path49 = ref.slice(1).split("/").filter(Boolean);
25697
- if (path49.length === 0) {
25735
+ const path50 = ref.slice(1).split("/").filter(Boolean);
25736
+ if (path50.length === 0) {
25698
25737
  return ctx.rootSchema;
25699
25738
  }
25700
25739
  const defsKey = ctx.version === "draft-2020-12" ? "$defs" : "definitions";
25701
- if (path49[0] === defsKey) {
25702
- const key = path49[1];
25740
+ if (path50[0] === defsKey) {
25741
+ const key = path50[1];
25703
25742
  if (!key || !ctx.defs[key]) {
25704
25743
  throw new Error(`Reference not found: ${ref}`);
25705
25744
  }
@@ -37271,45 +37310,45 @@ function createOpenAI(options = {}) {
37271
37310
  );
37272
37311
  const createChatModel = (modelId) => new OpenAIChatLanguageModel(modelId, {
37273
37312
  provider: `${providerName}.chat`,
37274
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37313
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37275
37314
  headers: getHeaders,
37276
37315
  fetch: options.fetch
37277
37316
  });
37278
37317
  const createCompletionModel = (modelId) => new OpenAICompletionLanguageModel(modelId, {
37279
37318
  provider: `${providerName}.completion`,
37280
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37319
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37281
37320
  headers: getHeaders,
37282
37321
  fetch: options.fetch
37283
37322
  });
37284
37323
  const createEmbeddingModel = (modelId) => new OpenAIEmbeddingModel(modelId, {
37285
37324
  provider: `${providerName}.embedding`,
37286
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37325
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37287
37326
  headers: getHeaders,
37288
37327
  fetch: options.fetch
37289
37328
  });
37290
37329
  const createImageModel = (modelId) => new OpenAIImageModel(modelId, {
37291
37330
  provider: `${providerName}.image`,
37292
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37331
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37293
37332
  headers: getHeaders,
37294
37333
  fetch: options.fetch
37295
37334
  });
37296
37335
  const createTranscriptionModel = (modelId) => new OpenAITranscriptionModel(modelId, {
37297
37336
  provider: `${providerName}.transcription`,
37298
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37337
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37299
37338
  headers: getHeaders,
37300
37339
  fetch: options.fetch,
37301
37340
  webSocket: options.webSocket
37302
37341
  });
37303
37342
  const createSpeechTranslationModel = (modelId) => new OpenAISpeechTranslationModel(modelId, {
37304
37343
  provider: `${providerName}.speech-translation`,
37305
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37344
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37306
37345
  headers: getHeaders,
37307
37346
  fetch: options.fetch,
37308
37347
  webSocket: options.webSocket
37309
37348
  });
37310
37349
  const createSpeechModel = (modelId) => new OpenAISpeechModel(modelId, {
37311
37350
  provider: `${providerName}.speech`,
37312
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37351
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37313
37352
  headers: getHeaders,
37314
37353
  fetch: options.fetch
37315
37354
  });
@@ -37321,7 +37360,7 @@ function createOpenAI(options = {}) {
37321
37360
  });
37322
37361
  const createSkills = () => new OpenAISkills({
37323
37362
  provider: `${providerName}.skills`,
37324
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37363
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37325
37364
  headers: getHeaders,
37326
37365
  fetch: options.fetch
37327
37366
  });
@@ -37336,7 +37375,7 @@ function createOpenAI(options = {}) {
37336
37375
  const createResponsesModel = (modelId) => {
37337
37376
  return new OpenAIResponsesBatchLanguageModel(modelId, {
37338
37377
  provider: `${providerName}.responses`,
37339
- url: ({ path: path49 }) => `${baseURL}${path49}`,
37378
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
37340
37379
  headers: getHeaders,
37341
37380
  fetch: options.fetch,
37342
37381
  // Soft-deprecated. TODO: remove in v8
@@ -43190,10 +43229,10 @@ var init_dist5 = __esm({
43190
43229
  result: conversion.result
43191
43230
  };
43192
43231
  }
43193
- getUrl(path49) {
43232
+ getUrl(path50) {
43194
43233
  return this.options.config.url({
43195
43234
  modelId: this.options.modelId,
43196
- path: path49
43235
+ path: path50
43197
43236
  });
43198
43237
  }
43199
43238
  };
@@ -50219,8 +50258,8 @@ var init_dist6 = __esm({
50219
50258
  yield await convertAnthropicBatchResult(line);
50220
50259
  }
50221
50260
  }
50222
- getBatchUrl(path49) {
50223
- return `${this.config.baseURL}/messages/batches${path49}`;
50261
+ getBatchUrl(path50) {
50262
+ return `${this.config.baseURL}/messages/batches${path50}`;
50224
50263
  }
50225
50264
  async getStartBatchHeaders({
50226
50265
  betas,
@@ -64058,8 +64097,8 @@ function createOpenAICompatible(options) {
64058
64097
  const getHeaders = () => withUserAgentSuffix(headers, `ai-sdk/openai-compatible/${VERSION6}`);
64059
64098
  const getCommonModelConfig = (modelType) => ({
64060
64099
  provider: `${providerName}.${modelType}`,
64061
- url: ({ path: path49 }) => {
64062
- const url2 = new URL(`${baseURL}${path49}`);
64100
+ url: ({ path: path50 }) => {
64101
+ const url2 = new URL(`${baseURL}${path50}`);
64063
64102
  if (options.queryParams) {
64064
64103
  url2.search = new URLSearchParams(options.queryParams).toString();
64065
64104
  }
@@ -65918,6 +65957,8 @@ async function saveToCache(data) {
65918
65957
  }
65919
65958
  }
65920
65959
  function resolveSnapshotPath() {
65960
+ const override = process.env.ATLARIX_MODELS_SNAPSHOT;
65961
+ if (override) return override;
65921
65962
  try {
65922
65963
  if (app.isPackaged) {
65923
65964
  return path12.join(process.resourcesPath, "models-snapshot.json.gz");
@@ -66277,7 +66318,7 @@ var require_windows = __commonJS({
66277
66318
  module2.exports = isexe;
66278
66319
  isexe.sync = sync;
66279
66320
  var fs40 = __require("fs");
66280
- function checkPathExt(path49, options) {
66321
+ function checkPathExt(path50, options) {
66281
66322
  var pathext = options.pathExt !== void 0 ? options.pathExt : process.env.PATHEXT;
66282
66323
  if (!pathext) {
66283
66324
  return true;
@@ -66288,25 +66329,25 @@ var require_windows = __commonJS({
66288
66329
  }
66289
66330
  for (var i4 = 0; i4 < pathext.length; i4++) {
66290
66331
  var p2 = pathext[i4].toLowerCase();
66291
- if (p2 && path49.substr(-p2.length).toLowerCase() === p2) {
66332
+ if (p2 && path50.substr(-p2.length).toLowerCase() === p2) {
66292
66333
  return true;
66293
66334
  }
66294
66335
  }
66295
66336
  return false;
66296
66337
  }
66297
- function checkStat(stat6, path49, options) {
66338
+ function checkStat(stat6, path50, options) {
66298
66339
  if (!stat6.isSymbolicLink() && !stat6.isFile()) {
66299
66340
  return false;
66300
66341
  }
66301
- return checkPathExt(path49, options);
66342
+ return checkPathExt(path50, options);
66302
66343
  }
66303
- function isexe(path49, options, cb2) {
66304
- fs40.stat(path49, function(er2, stat6) {
66305
- cb2(er2, er2 ? false : checkStat(stat6, path49, options));
66344
+ function isexe(path50, options, cb2) {
66345
+ fs40.stat(path50, function(er2, stat6) {
66346
+ cb2(er2, er2 ? false : checkStat(stat6, path50, options));
66306
66347
  });
66307
66348
  }
66308
- function sync(path49, options) {
66309
- return checkStat(fs40.statSync(path49), path49, options);
66349
+ function sync(path50, options) {
66350
+ return checkStat(fs40.statSync(path50), path50, options);
66310
66351
  }
66311
66352
  }
66312
66353
  });
@@ -66317,13 +66358,13 @@ var require_mode = __commonJS({
66317
66358
  module2.exports = isexe;
66318
66359
  isexe.sync = sync;
66319
66360
  var fs40 = __require("fs");
66320
- function isexe(path49, options, cb2) {
66321
- fs40.stat(path49, function(er2, stat6) {
66361
+ function isexe(path50, options, cb2) {
66362
+ fs40.stat(path50, function(er2, stat6) {
66322
66363
  cb2(er2, er2 ? false : checkStat(stat6, options));
66323
66364
  });
66324
66365
  }
66325
- function sync(path49, options) {
66326
- return checkStat(fs40.statSync(path49), options);
66366
+ function sync(path50, options) {
66367
+ return checkStat(fs40.statSync(path50), options);
66327
66368
  }
66328
66369
  function checkStat(stat6, options) {
66329
66370
  return stat6.isFile() && checkMode(stat6, options);
@@ -66356,7 +66397,7 @@ var require_isexe = __commonJS({
66356
66397
  }
66357
66398
  module2.exports = isexe;
66358
66399
  isexe.sync = sync;
66359
- function isexe(path49, options, cb2) {
66400
+ function isexe(path50, options, cb2) {
66360
66401
  if (typeof options === "function") {
66361
66402
  cb2 = options;
66362
66403
  options = {};
@@ -66366,7 +66407,7 @@ var require_isexe = __commonJS({
66366
66407
  throw new TypeError("callback not provided");
66367
66408
  }
66368
66409
  return new Promise(function(resolve12, reject2) {
66369
- isexe(path49, options || {}, function(er2, is3) {
66410
+ isexe(path50, options || {}, function(er2, is3) {
66370
66411
  if (er2) {
66371
66412
  reject2(er2);
66372
66413
  } else {
@@ -66375,7 +66416,7 @@ var require_isexe = __commonJS({
66375
66416
  });
66376
66417
  });
66377
66418
  }
66378
- core(path49, options || {}, function(er2, is3) {
66419
+ core(path50, options || {}, function(er2, is3) {
66379
66420
  if (er2) {
66380
66421
  if (er2.code === "EACCES" || options && options.ignoreErrors) {
66381
66422
  er2 = null;
@@ -66385,9 +66426,9 @@ var require_isexe = __commonJS({
66385
66426
  cb2(er2, is3);
66386
66427
  });
66387
66428
  }
66388
- function sync(path49, options) {
66429
+ function sync(path50, options) {
66389
66430
  try {
66390
- return core.sync(path49, options || {});
66431
+ return core.sync(path50, options || {});
66391
66432
  } catch (er2) {
66392
66433
  if (options && options.ignoreErrors || er2.code === "EACCES") {
66393
66434
  return false;
@@ -66403,7 +66444,7 @@ var require_isexe = __commonJS({
66403
66444
  var require_which = __commonJS({
66404
66445
  "node_modules/which/which.js"(exports2, module2) {
66405
66446
  var isWindows = process.platform === "win32" || process.env.OSTYPE === "cygwin" || process.env.OSTYPE === "msys";
66406
- var path49 = __require("path");
66447
+ var path50 = __require("path");
66407
66448
  var COLON2 = isWindows ? ";" : ":";
66408
66449
  var isexe = require_isexe();
66409
66450
  var getNotFoundError = (cmd) => Object.assign(new Error(`not found: ${cmd}`), { code: "ENOENT" });
@@ -66441,7 +66482,7 @@ var require_which = __commonJS({
66441
66482
  return opt.all && found.length ? resolve12(found) : reject2(getNotFoundError(cmd));
66442
66483
  const ppRaw = pathEnv[i4];
66443
66484
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
66444
- const pCmd = path49.join(pathPart, cmd);
66485
+ const pCmd = path50.join(pathPart, cmd);
66445
66486
  const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
66446
66487
  resolve12(subStep(p2, i4, 0));
66447
66488
  });
@@ -66468,7 +66509,7 @@ var require_which = __commonJS({
66468
66509
  for (let i4 = 0; i4 < pathEnv.length; i4++) {
66469
66510
  const ppRaw = pathEnv[i4];
66470
66511
  const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw;
66471
- const pCmd = path49.join(pathPart, cmd);
66512
+ const pCmd = path50.join(pathPart, cmd);
66472
66513
  const p2 = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd : pCmd;
66473
66514
  for (let j2 = 0; j2 < pathExt.length; j2++) {
66474
66515
  const cur = p2 + pathExt[j2];
@@ -66516,7 +66557,7 @@ var require_path_key = __commonJS({
66516
66557
  var require_resolveCommand = __commonJS({
66517
66558
  "node_modules/cross-spawn/lib/util/resolveCommand.js"(exports2, module2) {
66518
66559
  "use strict";
66519
- var path49 = __require("path");
66560
+ var path50 = __require("path");
66520
66561
  var which = require_which();
66521
66562
  var getPathKey = require_path_key();
66522
66563
  function resolveCommandAttempt(parsed, withoutPathExt) {
@@ -66534,7 +66575,7 @@ var require_resolveCommand = __commonJS({
66534
66575
  try {
66535
66576
  resolved2 = which.sync(parsed.command, {
66536
66577
  path: env3[getPathKey({ env: env3 })],
66537
- pathExt: withoutPathExt ? path49.delimiter : void 0
66578
+ pathExt: withoutPathExt ? path50.delimiter : void 0
66538
66579
  });
66539
66580
  } catch (e3) {
66540
66581
  } finally {
@@ -66543,7 +66584,7 @@ var require_resolveCommand = __commonJS({
66543
66584
  }
66544
66585
  }
66545
66586
  if (resolved2) {
66546
- resolved2 = path49.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved2);
66587
+ resolved2 = path50.resolve(hasCustomCwd ? parsed.options.cwd : "", resolved2);
66547
66588
  }
66548
66589
  return resolved2;
66549
66590
  }
@@ -66597,8 +66638,8 @@ var require_shebang_command = __commonJS({
66597
66638
  if (!match) {
66598
66639
  return null;
66599
66640
  }
66600
- const [path49, argument] = match[0].replace(/#! ?/, "").split(" ");
66601
- const binary = path49.split("/").pop();
66641
+ const [path50, argument] = match[0].replace(/#! ?/, "").split(" ");
66642
+ const binary = path50.split("/").pop();
66602
66643
  if (binary === "env") {
66603
66644
  return argument;
66604
66645
  }
@@ -66633,7 +66674,7 @@ var require_readShebang = __commonJS({
66633
66674
  var require_parse = __commonJS({
66634
66675
  "node_modules/cross-spawn/lib/parse.js"(exports2, module2) {
66635
66676
  "use strict";
66636
- var path49 = __require("path");
66677
+ var path50 = __require("path");
66637
66678
  var resolveCommand = require_resolveCommand();
66638
66679
  var escape2 = require_escape();
66639
66680
  var readShebang = require_readShebang();
@@ -66658,7 +66699,7 @@ var require_parse = __commonJS({
66658
66699
  const needsShell = !isExecutableRegExp.test(commandFile);
66659
66700
  if (parsed.options.forceShell || needsShell) {
66660
66701
  const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile);
66661
- parsed.command = path49.normalize(parsed.command);
66702
+ parsed.command = path50.normalize(parsed.command);
66662
66703
  parsed.command = escape2.command(parsed.command);
66663
66704
  parsed.args = parsed.args.map((arg2) => escape2.argument(arg2, needsDoubleEscapeMetaChars));
66664
66705
  const shellCommand = [parsed.command].concat(parsed.args).join(" ");
@@ -66790,7 +66831,7 @@ var require_strip_final_newline = __commonJS({
66790
66831
  var require_npm_run_path = __commonJS({
66791
66832
  "node_modules/shell-env/node_modules/npm-run-path/index.js"(exports2, module2) {
66792
66833
  "use strict";
66793
- var path49 = __require("path");
66834
+ var path50 = __require("path");
66794
66835
  var pathKey2 = require_path_key();
66795
66836
  var npmRunPath = (options) => {
66796
66837
  options = {
@@ -66800,16 +66841,16 @@ var require_npm_run_path = __commonJS({
66800
66841
  ...options
66801
66842
  };
66802
66843
  let previous;
66803
- let cwdPath = path49.resolve(options.cwd);
66844
+ let cwdPath = path50.resolve(options.cwd);
66804
66845
  const result2 = [];
66805
66846
  while (previous !== cwdPath) {
66806
- result2.push(path49.join(cwdPath, "node_modules/.bin"));
66847
+ result2.push(path50.join(cwdPath, "node_modules/.bin"));
66807
66848
  previous = cwdPath;
66808
- cwdPath = path49.resolve(cwdPath, "..");
66849
+ cwdPath = path50.resolve(cwdPath, "..");
66809
66850
  }
66810
- const execPathDir = path49.resolve(options.cwd, options.execPath, "..");
66851
+ const execPathDir = path50.resolve(options.cwd, options.execPath, "..");
66811
66852
  result2.push(execPathDir);
66812
- return result2.concat(options.path).join(path49.delimiter);
66853
+ return result2.concat(options.path).join(path50.delimiter);
66813
66854
  };
66814
66855
  module2.exports = npmRunPath;
66815
66856
  module2.exports.default = npmRunPath;
@@ -66819,9 +66860,9 @@ var require_npm_run_path = __commonJS({
66819
66860
  ...options
66820
66861
  };
66821
66862
  const env3 = { ...options.env };
66822
- const path50 = pathKey2({ env: env3 });
66823
- options.path = env3[path50];
66824
- env3[path50] = module2.exports(options);
66863
+ const path51 = pathKey2({ env: env3 });
66864
+ options.path = env3[path51];
66865
+ env3[path51] = module2.exports(options);
66825
66866
  return env3;
66826
66867
  };
66827
66868
  }
@@ -68003,7 +68044,7 @@ var require_command = __commonJS({
68003
68044
  var require_execa = __commonJS({
68004
68045
  "node_modules/shell-env/node_modules/execa/index.js"(exports2, module2) {
68005
68046
  "use strict";
68006
- var path49 = __require("path");
68047
+ var path50 = __require("path");
68007
68048
  var childProcess = __require("child_process");
68008
68049
  var crossSpawn = require_cross_spawn();
68009
68050
  var stripFinalNewline = require_strip_final_newline();
@@ -68045,7 +68086,7 @@ var require_execa = __commonJS({
68045
68086
  };
68046
68087
  options.env = getEnv(options);
68047
68088
  options.stdio = normalizeStdio(options);
68048
- if (process.platform === "win32" && path49.basename(file2, ".exe") === "cmd") {
68089
+ if (process.platform === "win32" && path50.basename(file2, ".exe") === "cmd") {
68049
68090
  args2.unshift("/q");
68050
68091
  }
68051
68092
  return { file: file2, args: args2, options, parsed };
@@ -69577,13 +69618,13 @@ var require_tiktoken = __commonJS({
69577
69618
  var wasm = require_tiktoken_bg();
69578
69619
  var imports = {};
69579
69620
  imports["./tiktoken_bg.js"] = wasm;
69580
- var path49 = __require("path");
69621
+ var path50 = __require("path");
69581
69622
  var fs40 = __require("fs");
69582
- var candidates = __dirname.split(path49.sep).reduce((memo, _4, index2, array3) => {
69583
- const prefix = array3.slice(0, index2 + 1).join(path49.sep) + path49.sep;
69584
- if (!prefix.includes("node_modules" + path49.sep)) {
69623
+ var candidates = __dirname.split(path50.sep).reduce((memo, _4, index2, array3) => {
69624
+ const prefix = array3.slice(0, index2 + 1).join(path50.sep) + path50.sep;
69625
+ if (!prefix.includes("node_modules" + path50.sep)) {
69585
69626
  memo.unshift(
69586
- path49.join(
69627
+ path50.join(
69587
69628
  prefix,
69588
69629
  "node_modules",
69589
69630
  "tiktoken",
@@ -69594,7 +69635,7 @@ var require_tiktoken = __commonJS({
69594
69635
  }
69595
69636
  return memo;
69596
69637
  }, []);
69597
- candidates.unshift(path49.join(__dirname, "./tiktoken_bg.wasm"));
69638
+ candidates.unshift(path50.join(__dirname, "./tiktoken_bg.wasm"));
69598
69639
  var bytes = null;
69599
69640
  for (const candidate of candidates) {
69600
69641
  try {
@@ -69815,45 +69856,6 @@ var init_token_utils = __esm({
69815
69856
  }
69816
69857
  });
69817
69858
 
69818
- // src/lib/security/redact-secrets.ts
69819
- function redactSecretsInText(text3) {
69820
- if (!text3) return text3;
69821
- let out = text3;
69822
- for (const re2 of SECRET_PATTERNS) {
69823
- out = out.replace(re2, REDACTION);
69824
- }
69825
- return out;
69826
- }
69827
- function containsSecret(text3) {
69828
- return SECRET_PATTERNS.some((re2) => {
69829
- re2.lastIndex = 0;
69830
- return re2.test(text3);
69831
- });
69832
- }
69833
- var SECRET_PATTERNS, REDACTION;
69834
- var init_redact_secrets = __esm({
69835
- "src/lib/security/redact-secrets.ts"() {
69836
- SECRET_PATTERNS = [
69837
- // OpenAI (incl. project keys) + Anthropic
69838
- /\bsk-(?:ant-|proj-)?[A-Za-z0-9_-]{20,}\b/g,
69839
- // GitHub tokens (classic + fine-grained PAT)
69840
- /\bgh[pousr]_[A-Za-z0-9]{36,}\b/g,
69841
- /\bgithub_pat_[A-Za-z0-9_]{22,}\b/g,
69842
- // AWS access key id
69843
- /\bAKIA[0-9A-Z]{16}\b/g,
69844
- // Google API key
69845
- /\bAIza[0-9A-Za-z_-]{35}\b/g,
69846
- // Slack tokens
69847
- /\bxox[baprs]-[A-Za-z0-9-]{10,}\b/g,
69848
- // JSON Web Token (header.payload.signature)
69849
- /\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/g,
69850
- // PEM private key blocks
69851
- /-----BEGIN[A-Z ]*PRIVATE KEY-----[\s\S]*?-----END[A-Z ]*PRIVATE KEY-----/g
69852
- ];
69853
- REDACTION = "[redacted secret]";
69854
- }
69855
- });
69856
-
69857
69859
  // src/lib/ai/tool-model-output.ts
69858
69860
  function extractImageMedia(output) {
69859
69861
  if (!output || typeof output !== "object") return null;
@@ -117216,22 +117218,22 @@ var init_from = __esm({
117216
117218
  init_file();
117217
117219
  init_fetch_blob();
117218
117220
  ({ stat: stat2 } = fs13);
117219
- blobFromSync = (path49, type2) => fromBlob(statSync(path49), path49, type2);
117220
- blobFrom = (path49, type2) => stat2(path49).then((stat6) => fromBlob(stat6, path49, type2));
117221
- fileFrom = (path49, type2) => stat2(path49).then((stat6) => fromFile(stat6, path49, type2));
117222
- fileFromSync = (path49, type2) => fromFile(statSync(path49), path49, type2);
117223
- fromBlob = (stat6, path49, type2 = "") => new fetch_blob_default([new BlobDataItem({
117224
- path: path49,
117221
+ blobFromSync = (path50, type2) => fromBlob(statSync(path50), path50, type2);
117222
+ blobFrom = (path50, type2) => stat2(path50).then((stat6) => fromBlob(stat6, path50, type2));
117223
+ fileFrom = (path50, type2) => stat2(path50).then((stat6) => fromFile(stat6, path50, type2));
117224
+ fileFromSync = (path50, type2) => fromFile(statSync(path50), path50, type2);
117225
+ fromBlob = (stat6, path50, type2 = "") => new fetch_blob_default([new BlobDataItem({
117226
+ path: path50,
117225
117227
  size: stat6.size,
117226
117228
  lastModified: stat6.mtimeMs,
117227
117229
  start: 0
117228
117230
  })], { type: type2 });
117229
- fromFile = (stat6, path49, type2 = "") => new file_default([new BlobDataItem({
117230
- path: path49,
117231
+ fromFile = (stat6, path50, type2 = "") => new file_default([new BlobDataItem({
117232
+ path: path50,
117231
117233
  size: stat6.size,
117232
117234
  lastModified: stat6.mtimeMs,
117233
117235
  start: 0
117234
- })], basename2(path49), { type: type2, lastModified: stat6.mtimeMs });
117236
+ })], basename2(path50), { type: type2, lastModified: stat6.mtimeMs });
117235
117237
  BlobDataItem = class _BlobDataItem {
117236
117238
  #path;
117237
117239
  #start;
@@ -122412,7 +122414,7 @@ var require_util2 = __commonJS({
122412
122414
  exports2.getWellKnownCertificateConfigFileLocation = getWellKnownCertificateConfigFileLocation;
122413
122415
  var fs40 = __require("fs");
122414
122416
  var os12 = __require("os");
122415
- var path49 = __require("path");
122417
+ var path50 = __require("path");
122416
122418
  var WELL_KNOWN_CERTIFICATE_CONFIG_FILE = "certificate_config.json";
122417
122419
  var CLOUDSDK_CONFIG_DIRECTORY = "gcloud";
122418
122420
  function snakeToCamel(str) {
@@ -122505,8 +122507,8 @@ var require_util2 = __commonJS({
122505
122507
  }
122506
122508
  }
122507
122509
  function getWellKnownCertificateConfigFileLocation() {
122508
- const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ? path49.join(process.env.APPDATA || "", CLOUDSDK_CONFIG_DIRECTORY) : path49.join(process.env.HOME || "", ".config", CLOUDSDK_CONFIG_DIRECTORY));
122509
- return path49.join(configDir, WELL_KNOWN_CERTIFICATE_CONFIG_FILE);
122510
+ const configDir = process.env.CLOUDSDK_CONFIG || (_isWindows() ? path50.join(process.env.APPDATA || "", CLOUDSDK_CONFIG_DIRECTORY) : path50.join(process.env.HOME || "", ".config", CLOUDSDK_CONFIG_DIRECTORY));
122511
+ return path50.join(configDir, WELL_KNOWN_CERTIFICATE_CONFIG_FILE);
122510
122512
  }
122511
122513
  function _isWindows() {
122512
122514
  return os12.platform().startsWith("win");
@@ -124452,7 +124454,7 @@ var require_getCredentials = __commonJS({
124452
124454
  "use strict";
124453
124455
  Object.defineProperty(exports2, "__esModule", { value: true });
124454
124456
  exports2.getCredentials = getCredentials;
124455
- var path49 = __require("path");
124457
+ var path50 = __require("path");
124456
124458
  var fs40 = __require("fs");
124457
124459
  var util_1 = __require("util");
124458
124460
  var errorWithCode_1 = require_errorWithCode();
@@ -124524,7 +124526,7 @@ var require_getCredentials = __commonJS({
124524
124526
  * @returns An instance of a class that implements ICredentialsProvider.
124525
124527
  */
124526
124528
  static create(keyFilePath) {
124527
- const keyFileExtension = path49.extname(keyFilePath);
124529
+ const keyFileExtension = path50.extname(keyFilePath);
124528
124530
  switch (keyFileExtension) {
124529
124531
  case ExtensionFiles.JSON:
124530
124532
  return new JsonCredentialsProvider(keyFilePath);
@@ -127893,7 +127895,7 @@ var require_googleauth = __commonJS({
127893
127895
  var gaxios_1 = require_src3();
127894
127896
  var gcpMetadata = require_src5();
127895
127897
  var os12 = __require("os");
127896
- var path49 = __require("path");
127898
+ var path50 = __require("path");
127897
127899
  var crypto_1 = require_crypto3();
127898
127900
  var computeclient_1 = require_computeclient();
127899
127901
  var idtokenclient_1 = require_idtokenclient();
@@ -128178,19 +128180,19 @@ var require_googleauth = __commonJS({
128178
128180
  if (!configDir) {
128179
128181
  if (this._isWindows()) {
128180
128182
  if (process.env["APPDATA"]) {
128181
- configDir = path49.join(process.env["APPDATA"], "gcloud");
128183
+ configDir = path50.join(process.env["APPDATA"], "gcloud");
128182
128184
  }
128183
128185
  } else {
128184
128186
  const home = process.env["HOME"];
128185
128187
  if (home) {
128186
- configDir = path49.join(home, ".config", "gcloud");
128188
+ configDir = path50.join(home, ".config", "gcloud");
128187
128189
  }
128188
128190
  }
128189
128191
  }
128190
128192
  if (!configDir) {
128191
128193
  return null;
128192
128194
  }
128193
- const location2 = path49.join(configDir, "application_default_credentials.json");
128195
+ const location2 = path50.join(configDir, "application_default_credentials.json");
128194
128196
  if (!fs40.existsSync(location2)) {
128195
128197
  return null;
128196
128198
  }
@@ -128545,7 +128547,7 @@ var require_googleauth = __commonJS({
128545
128547
  if (this.jsonContent) {
128546
128548
  return this._cacheClientFromJSON(this.jsonContent, this.clientOptions);
128547
128549
  } else if (this.keyFilename) {
128548
- const filePath = path49.resolve(this.keyFilename);
128550
+ const filePath = path50.resolve(this.keyFilename);
128549
128551
  const stream2 = fs40.createReadStream(filePath);
128550
128552
  return await this.fromStreamAsync(stream2, this.clientOptions);
128551
128553
  } else if (this.apiKey) {
@@ -145323,18 +145325,18 @@ function createAzure(options = {}) {
145323
145325
  });
145324
145326
  const apiVersion = (_a30 = options.apiVersion) != null ? _a30 : "v1";
145325
145327
  const useAzureOpenAIEndpoint = isAzureOpenAIBaseURL(options.baseURL);
145326
- const url2 = ({ path: path49, modelId }) => {
145328
+ const url2 = ({ path: path50, modelId }) => {
145327
145329
  var _a210;
145328
145330
  const baseUrlPrefix = withoutTrailingSlash(
145329
145331
  (_a210 = options.baseURL) != null ? _a210 : `https://${getResourceName()}.openai.azure.com/openai`
145330
145332
  );
145331
145333
  let fullUrl;
145332
145334
  if (options.useDeploymentBasedUrls) {
145333
- fullUrl = new URL(`${baseUrlPrefix}/deployments/${modelId}${path49}`);
145335
+ fullUrl = new URL(`${baseUrlPrefix}/deployments/${modelId}${path50}`);
145334
145336
  } else if (!useAzureOpenAIEndpoint) {
145335
- fullUrl = new URL(`${baseUrlPrefix}${path49}`);
145337
+ fullUrl = new URL(`${baseUrlPrefix}${path50}`);
145336
145338
  } else {
145337
- fullUrl = new URL(`${baseUrlPrefix}/v1${path49}`);
145339
+ fullUrl = new URL(`${baseUrlPrefix}/v1${path50}`);
145338
145340
  }
145339
145341
  if (useAzureOpenAIEndpoint || options.useDeploymentBasedUrls) {
145340
145342
  fullUrl.searchParams.set("api-version", apiVersion);
@@ -145844,8 +145846,8 @@ var init_parseUtil = __esm({
145844
145846
  init_errors4();
145845
145847
  init_en2();
145846
145848
  makeIssue = (params) => {
145847
- const { data, path: path49, errorMaps, issueData } = params;
145848
- const fullPath = [...path49, ...issueData.path || []];
145849
+ const { data, path: path50, errorMaps, issueData } = params;
145850
+ const fullPath = [...path50, ...issueData.path || []];
145849
145851
  const fullIssue = {
145850
145852
  ...issueData,
145851
145853
  path: fullPath
@@ -146125,11 +146127,11 @@ var init_types = __esm({
146125
146127
  init_parseUtil();
146126
146128
  init_util2();
146127
146129
  ParseInputLazyPath = class {
146128
- constructor(parent, value, path49, key) {
146130
+ constructor(parent, value, path50, key) {
146129
146131
  this._cachedPath = [];
146130
146132
  this.parent = parent;
146131
146133
  this.data = value;
146132
- this._path = path49;
146134
+ this._path = path50;
146133
146135
  this._key = key;
146134
146136
  }
146135
146137
  get path() {
@@ -151625,7 +151627,7 @@ function createOpenRouter(options = {}) {
151625
151627
  );
151626
151628
  const createChatModel = (modelId, settings = {}) => new OpenRouterChatLanguageModel(modelId, settings, {
151627
151629
  provider: "openrouter.chat",
151628
- url: ({ path: path49 }) => `${baseURL}${path49}`,
151630
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
151629
151631
  headers: getHeaders,
151630
151632
  compatibility,
151631
151633
  fetch: options.fetch,
@@ -151633,7 +151635,7 @@ function createOpenRouter(options = {}) {
151633
151635
  });
151634
151636
  const createCompletionModel = (modelId, settings = {}) => new OpenRouterCompletionLanguageModel(modelId, settings, {
151635
151637
  provider: "openrouter.completion",
151636
- url: ({ path: path49 }) => `${baseURL}${path49}`,
151638
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
151637
151639
  headers: getHeaders,
151638
151640
  compatibility,
151639
151641
  fetch: options.fetch,
@@ -151641,21 +151643,21 @@ function createOpenRouter(options = {}) {
151641
151643
  });
151642
151644
  const createEmbeddingModel = (modelId, settings = {}) => new OpenRouterEmbeddingModel(modelId, settings, {
151643
151645
  provider: "openrouter.embedding",
151644
- url: ({ path: path49 }) => `${baseURL}${path49}`,
151646
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
151645
151647
  headers: getHeaders,
151646
151648
  fetch: options.fetch,
151647
151649
  extraBody: options.extraBody
151648
151650
  });
151649
151651
  const createImageModel = (modelId, settings = {}) => new OpenRouterImageModel(modelId, settings, {
151650
151652
  provider: "openrouter.image",
151651
- url: ({ path: path49 }) => `${baseURL}${path49}`,
151653
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
151652
151654
  headers: getHeaders,
151653
151655
  fetch: options.fetch,
151654
151656
  extraBody: options.extraBody
151655
151657
  });
151656
151658
  const createVideoModel = (modelId, settings = {}) => new OpenRouterVideoModel(modelId, settings, {
151657
151659
  provider: "openrouter.video",
151658
- url: ({ path: path49 }) => `${baseURL}${path49}`,
151660
+ url: ({ path: path50 }) => `${baseURL}${path50}`,
151659
151661
  headers: getHeaders,
151660
151662
  fetch: options.fetch,
151661
151663
  extraBody: options.extraBody
@@ -162373,14 +162375,14 @@ var init_readFile = __esm({
162373
162375
  "node_modules/@smithy/core/dist-es/submodules/config/shared-ini-file-loader/readFile.js"() {
162374
162376
  filePromises = {};
162375
162377
  fileIntercept = {};
162376
- readFile2 = (path49, options) => {
162377
- if (fileIntercept[path49] !== void 0) {
162378
- return fileIntercept[path49];
162378
+ readFile2 = (path50, options) => {
162379
+ if (fileIntercept[path50] !== void 0) {
162380
+ return fileIntercept[path50];
162379
162381
  }
162380
- if (!filePromises[path49] || options?.ignoreCache) {
162381
- filePromises[path49] = fsReadFile(path49, "utf8");
162382
+ if (!filePromises[path50] || options?.ignoreCache) {
162383
+ filePromises[path50] = fsReadFile(path50, "utf8");
162382
162384
  }
162383
- return filePromises[path49];
162385
+ return filePromises[path50];
162384
162386
  };
162385
162387
  }
162386
162388
  });
@@ -162803,8 +162805,8 @@ var init_createConfigValueProvider = __esm({
162803
162805
  return endpoint.url.href;
162804
162806
  }
162805
162807
  if ("hostname" in endpoint) {
162806
- const { protocol, hostname: hostname3, port, path: path49 } = endpoint;
162807
- return `${protocol}//${hostname3}${port ? ":" + port : ""}${path49}`;
162808
+ const { protocol, hostname: hostname3, port, path: path50 } = endpoint;
162809
+ return `${protocol}//${hostname3}${port ? ":" + port : ""}${path50}`;
162808
162810
  }
162809
162811
  }
162810
162812
  return endpoint;
@@ -168790,13 +168792,13 @@ function __disposeResources(env3) {
168790
168792
  }
168791
168793
  return next();
168792
168794
  }
168793
- function __rewriteRelativeImportExtension(path49, preserveJsx) {
168794
- if (typeof path49 === "string" && /^\.\.?\//.test(path49)) {
168795
- return path49.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m3, tsx, d2, ext, cm) {
168795
+ function __rewriteRelativeImportExtension(path50, preserveJsx) {
168796
+ if (typeof path50 === "string" && /^\.\.?\//.test(path50)) {
168797
+ return path50.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function(m3, tsx, d2, ext, cm) {
168796
168798
  return tsx ? preserveJsx ? ".jsx" : ".js" : d2 && (!ext || !cm) ? m3 : d2 + ext + "." + cm.toLowerCase() + "js";
168797
168799
  });
168798
168800
  }
168799
- return path49;
168801
+ return path50;
168800
168802
  }
168801
168803
  var extendStatics, __assign, __createBinding, __setModuleDefault, ownKeys, _SuppressedError, tslib_es6_default;
168802
168804
  var init_tslib_es6 = __esm({
@@ -177399,8 +177401,8 @@ var require_main4 = __commonJS({
177399
177401
  });
177400
177402
 
177401
177403
  // node_modules/iceberg-js/dist/index.mjs
177402
- function buildUrl(baseUrl, path49, query) {
177403
- const url2 = new URL(path49, baseUrl);
177404
+ function buildUrl(baseUrl, path50, query) {
177405
+ const url2 = new URL(path50, baseUrl);
177404
177406
  if (query) {
177405
177407
  for (const [key, value] of Object.entries(query)) {
177406
177408
  if (value !== void 0) {
@@ -177430,12 +177432,12 @@ function createFetchClient(options) {
177430
177432
  return {
177431
177433
  async request({
177432
177434
  method,
177433
- path: path49,
177435
+ path: path50,
177434
177436
  query,
177435
177437
  body,
177436
177438
  headers
177437
177439
  }) {
177438
- const url2 = buildUrl(options.baseUrl, path49, query);
177440
+ const url2 = buildUrl(options.baseUrl, path50, query);
177439
177441
  const authHeaders = await buildAuthHeaders(options.auth);
177440
177442
  const res = await fetchFn(url2, {
177441
177443
  method,
@@ -178103,7 +178105,7 @@ var init_dist18 = __esm({
178103
178105
  if (bucketName.includes("/") || bucketName.includes("\\")) return false;
178104
178106
  return /^[\w!.\*'() &$@=;:+,?-]+$/.test(bucketName);
178105
178107
  };
178106
- encodeStoragePath = (path49) => path49.split("/").map(encodeURIComponent).join("/");
178108
+ encodeStoragePath = (path50) => path50.split("/").map(encodeURIComponent).join("/");
178107
178109
  _getErrorMessage = (err2) => {
178108
178110
  if (typeof err2 === "object" && err2 !== null) {
178109
178111
  const e3 = err2;
@@ -178335,7 +178337,7 @@ var init_dist18 = __esm({
178335
178337
  * @param path The relative file path. Should be of the format `folder/subfolder/filename.png`. The bucket must already exist before attempting to upload.
178336
178338
  * @param fileBody The body of the file to be stored in the bucket.
178337
178339
  */
178338
- async uploadOrUpdate(method, path49, fileBody, fileOptions) {
178340
+ async uploadOrUpdate(method, path50, fileBody, fileOptions) {
178339
178341
  var _this = this;
178340
178342
  return _this.handleOperation(async () => {
178341
178343
  let body;
@@ -178359,7 +178361,7 @@ var init_dist18 = __esm({
178359
178361
  if ((typeof ReadableStream !== "undefined" && body instanceof ReadableStream || body && typeof body === "object" && "pipe" in body && typeof body.pipe === "function") && !options.duplex) options.duplex = "half";
178360
178362
  }
178361
178363
  if (fileOptions === null || fileOptions === void 0 ? void 0 : fileOptions.headers) for (const [key, value] of Object.entries(fileOptions.headers)) headers = setHeader(headers, key, value);
178362
- const cleanPath = _this._removeEmptyFolders(path49);
178364
+ const cleanPath = _this._removeEmptyFolders(path50);
178363
178365
  const _path = _this._getFinalPath(cleanPath);
178364
178366
  const data = await (method == "PUT" ? put : post)(_this.fetch, `${_this.url}/object/${_path}`, body, _objectSpread22({ headers }, (options === null || options === void 0 ? void 0 : options.duplex) ? { duplex: options.duplex } : {}));
178365
178367
  return {
@@ -178436,8 +178438,8 @@ var init_dist18 = __esm({
178436
178438
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178437
178439
  * - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Upload file using `ArrayBuffer` from base64 file data instead, see example below.
178438
178440
  */
178439
- async upload(path49, fileBody, fileOptions) {
178440
- return this.uploadOrUpdate("POST", path49, fileBody, fileOptions);
178441
+ async upload(path50, fileBody, fileOptions) {
178442
+ return this.uploadOrUpdate("POST", path50, fileBody, fileOptions);
178441
178443
  }
178442
178444
  /**
178443
178445
  * Upload a file with a token generated from `createSignedUploadUrl`.
@@ -178477,9 +178479,9 @@ var init_dist18 = __esm({
178477
178479
  * - `objects` table permissions: none
178478
178480
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178479
178481
  */
178480
- async uploadToSignedUrl(path49, token, fileBody, fileOptions) {
178482
+ async uploadToSignedUrl(path50, token, fileBody, fileOptions) {
178481
178483
  var _this3 = this;
178482
- const cleanPath = _this3._removeEmptyFolders(path49);
178484
+ const cleanPath = _this3._removeEmptyFolders(path50);
178483
178485
  const _path = _this3._getFinalPath(cleanPath);
178484
178486
  const url2 = new URL(_this3.url + `/object/upload/sign/${_path}`);
178485
178487
  url2.searchParams.set("token", token);
@@ -178548,10 +178550,10 @@ var init_dist18 = __esm({
178548
178550
  * - `objects` table permissions: `insert`
178549
178551
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178550
178552
  */
178551
- async createSignedUploadUrl(path49, options) {
178553
+ async createSignedUploadUrl(path50, options) {
178552
178554
  var _this4 = this;
178553
178555
  return _this4.handleOperation(async () => {
178554
- let _path = _this4._getFinalPath(path49);
178556
+ let _path = _this4._getFinalPath(path50);
178555
178557
  const headers = _objectSpread22({}, _this4.headers);
178556
178558
  if (options === null || options === void 0 ? void 0 : options.upsert) headers["x-upsert"] = "true";
178557
178559
  const data = await post(_this4.fetch, `${_this4.url}/object/upload/sign/${_path}`, {}, { headers });
@@ -178560,7 +178562,7 @@ var init_dist18 = __esm({
178560
178562
  if (!token) throw new StorageError("No token returned by API");
178561
178563
  return {
178562
178564
  signedUrl: url2.toString(),
178563
- path: path49,
178565
+ path: path50,
178564
178566
  token
178565
178567
  };
178566
178568
  });
@@ -178620,8 +178622,8 @@ var init_dist18 = __esm({
178620
178622
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178621
178623
  * - For React Native, using either `Blob`, `File` or `FormData` does not work as intended. Update file using `ArrayBuffer` from base64 file data instead, see example below.
178622
178624
  */
178623
- async update(path49, fileBody, fileOptions) {
178624
- return this.uploadOrUpdate("PUT", path49, fileBody, fileOptions);
178625
+ async update(path50, fileBody, fileOptions) {
178626
+ return this.uploadOrUpdate("PUT", path50, fileBody, fileOptions);
178625
178627
  }
178626
178628
  /**
178627
178629
  * Moves an existing file to a new path in the same bucket.
@@ -178772,10 +178774,10 @@ var init_dist18 = __esm({
178772
178774
  * - `objects` table permissions: `select`
178773
178775
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178774
178776
  */
178775
- async createSignedUrl(path49, expiresIn, options) {
178777
+ async createSignedUrl(path50, expiresIn, options) {
178776
178778
  var _this8 = this;
178777
178779
  return _this8.handleOperation(async () => {
178778
- let _path = _this8._getFinalPath(path49);
178780
+ let _path = _this8._getFinalPath(path50);
178779
178781
  const hasTransform = typeof (options === null || options === void 0 ? void 0 : options.transform) === "object" && options.transform !== null && Object.keys(options.transform).length > 0;
178780
178782
  let data = await post(_this8.fetch, `${_this8.url}/object/sign/${_path}`, _objectSpread22({ expiresIn }, hasTransform ? { transform: options.transform } : {}), { headers: _this8.headers });
178781
178783
  const query = new URLSearchParams();
@@ -178910,13 +178912,13 @@ var init_dist18 = __esm({
178910
178912
  * - `objects` table permissions: `select`
178911
178913
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
178912
178914
  */
178913
- download(path49, options, parameters) {
178915
+ download(path50, options, parameters) {
178914
178916
  const renderPath = typeof (options === null || options === void 0 ? void 0 : options.transform) === "object" && options.transform !== null && Object.keys(options.transform).length > 0 ? "render/image/authenticated" : "object";
178915
178917
  const query = new URLSearchParams();
178916
178918
  if (options === null || options === void 0 ? void 0 : options.transform) this.applyTransformOptsToQuery(query, options.transform);
178917
178919
  if ((options === null || options === void 0 ? void 0 : options.cacheNonce) != null) query.set("cacheNonce", String(options.cacheNonce));
178918
178920
  const queryString = query.toString();
178919
- const _path = this._getFinalPath(path49);
178921
+ const _path = this._getFinalPath(path50);
178920
178922
  const downloadFn = () => get(this.fetch, `${this.url}/${renderPath}/${_path}${queryString ? `?${queryString}` : ""}`, {
178921
178923
  headers: this.headers,
178922
178924
  noResolveJson: true
@@ -178947,9 +178949,9 @@ var init_dist18 = __esm({
178947
178949
  * }
178948
178950
  * ```
178949
178951
  */
178950
- async info(path49) {
178952
+ async info(path50) {
178951
178953
  var _this10 = this;
178952
- const _path = _this10._getFinalPath(path49);
178954
+ const _path = _this10._getFinalPath(path50);
178953
178955
  return _this10.handleOperation(async () => {
178954
178956
  return recursiveToCamel(await get(_this10.fetch, `${_this10.url}/object/info/${_path}`, { headers: _this10.headers }));
178955
178957
  });
@@ -178970,9 +178972,9 @@ var init_dist18 = __esm({
178970
178972
  * .exists('folder/avatar1.png')
178971
178973
  * ```
178972
178974
  */
178973
- async exists(path49) {
178975
+ async exists(path50) {
178974
178976
  var _this11 = this;
178975
- const _path = _this11._getFinalPath(path49);
178977
+ const _path = _this11._getFinalPath(path50);
178976
178978
  try {
178977
178979
  await head(_this11.fetch, `${_this11.url}/object/${_path}`, { headers: _this11.headers });
178978
178980
  return {
@@ -179051,8 +179053,8 @@ var init_dist18 = __esm({
179051
179053
  * - `objects` table permissions: none
179052
179054
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
179053
179055
  */
179054
- getPublicUrl(path49, options) {
179055
- const _path = this._getFinalPath(path49);
179056
+ getPublicUrl(path50, options) {
179057
+ const _path = this._getFinalPath(path50);
179056
179058
  const query = new URLSearchParams();
179057
179059
  if (options === null || options === void 0 ? void 0 : options.download) query.set("download", options.download === true ? "" : options.download);
179058
179060
  if (options === null || options === void 0 ? void 0 : options.transform) this.applyTransformOptsToQuery(query, options.transform);
@@ -179141,10 +179143,10 @@ var init_dist18 = __esm({
179141
179143
  * .purgeCache('folder/avatar1.png', { transformations: true })
179142
179144
  * ```
179143
179145
  */
179144
- async purgeCache(path49, options, parameters) {
179146
+ async purgeCache(path50, options, parameters) {
179145
179147
  var _this13 = this;
179146
179148
  return _this13.handleOperation(async () => {
179147
- const _path = encodeStoragePath(_this13._getFinalPath(path49));
179149
+ const _path = encodeStoragePath(_this13._getFinalPath(path50));
179148
179150
  const query = new URLSearchParams();
179149
179151
  if (options === null || options === void 0 ? void 0 : options.transformations) query.set("transformations", "true");
179150
179152
  const queryString = query.toString();
@@ -179242,13 +179244,13 @@ var init_dist18 = __esm({
179242
179244
  * - `objects` table permissions: `select`
179243
179245
  * - Refer to the [Storage guide](/docs/guides/storage/security/access-control) on how access control works
179244
179246
  */
179245
- async list(path49, options, parameters) {
179247
+ async list(path50, options, parameters) {
179246
179248
  var _this14 = this;
179247
179249
  return _this14.handleOperation(async () => {
179248
179250
  const sortBy2 = (options === null || options === void 0 ? void 0 : options.sortBy) ? _objectSpread22(_objectSpread22({}, DEFAULT_SEARCH_OPTIONS.sortBy), options.sortBy) : DEFAULT_SEARCH_OPTIONS.sortBy;
179249
179251
  const body = _objectSpread22(_objectSpread22(_objectSpread22({}, DEFAULT_SEARCH_OPTIONS), options), {}, {
179250
179252
  sortBy: sortBy2,
179251
- prefix: path49 || ""
179253
+ prefix: path50 || ""
179252
179254
  });
179253
179255
  return await post(_this14.fetch, `${_this14.url}/object/list/${_this14.bucketId}`, body, { headers: _this14.headers }, parameters);
179254
179256
  });
@@ -179314,11 +179316,11 @@ var init_dist18 = __esm({
179314
179316
  if (typeof Buffer !== "undefined") return Buffer.from(data).toString("base64");
179315
179317
  return btoa(data);
179316
179318
  }
179317
- _getFinalPath(path49) {
179318
- return `${this.bucketId}/${path49.replace(/^\/+/, "")}`;
179319
+ _getFinalPath(path50) {
179320
+ return `${this.bucketId}/${path50.replace(/^\/+/, "")}`;
179319
179321
  }
179320
- _removeEmptyFolders(path49) {
179321
- return path49.replace(/^\/|\/$/g, "").replace(/\/+/g, "/");
179322
+ _removeEmptyFolders(path50) {
179323
+ return path50.replace(/^\/|\/$/g, "").replace(/\/+/g, "/");
179322
179324
  }
179323
179325
  /** Modifies the `query`, appending values the from `transform` */
179324
179326
  applyTransformOptsToQuery(query, transform2) {
@@ -181420,9 +181422,9 @@ var require_helpers2 = __commonJS({
181420
181422
  const fragment = hashIndex === -1 ? "" : redirectTo.slice(hashIndex);
181421
181423
  const queryIndex = base.indexOf("?");
181422
181424
  if (queryIndex !== -1) {
181423
- const path49 = base.slice(0, queryIndex);
181425
+ const path50 = base.slice(0, queryIndex);
181424
181426
  const remaining = base.slice(queryIndex + 1).split("&").filter((pair) => pair !== "" && pair !== constants_1.PKCE_FLOW_ID_PARAM && !pair.startsWith(`${constants_1.PKCE_FLOW_ID_PARAM}=`));
181425
- base = remaining.length > 0 ? `${path49}?${remaining.join("&")}` : path49;
181427
+ base = remaining.length > 0 ? `${path50}?${remaining.join("&")}` : path50;
181426
181428
  }
181427
181429
  const separator = base.includes("?") ? "&" : "?";
181428
181430
  return `${base}${separator}${constants_1.PKCE_FLOW_ID_PARAM}=${encodeURIComponent(flowId)}${fragment}`;
@@ -199482,11 +199484,11 @@ var require_mime_types = __commonJS({
199482
199484
  }
199483
199485
  return exts[0];
199484
199486
  }
199485
- function lookup2(path49) {
199486
- if (!path49 || typeof path49 !== "string") {
199487
+ function lookup2(path50) {
199488
+ if (!path50 || typeof path50 !== "string") {
199487
199489
  return false;
199488
199490
  }
199489
- var extension2 = extname2("x." + path49).toLowerCase().substr(1);
199491
+ var extension2 = extname2("x." + path50).toLowerCase().substr(1);
199490
199492
  if (!extension2) {
199491
199493
  return false;
199492
199494
  }
@@ -200591,7 +200593,7 @@ var require_form_data = __commonJS({
200591
200593
  "use strict";
200592
200594
  var CombinedStream = require_combined_stream();
200593
200595
  var util2 = __require("util");
200594
- var path49 = __require("path");
200596
+ var path50 = __require("path");
200595
200597
  var http3 = __require("http");
200596
200598
  var https2 = __require("https");
200597
200599
  var parseUrl2 = __require("url").parse;
@@ -200722,11 +200724,11 @@ var require_form_data = __commonJS({
200722
200724
  FormData4.prototype._getContentDisposition = function(value, options) {
200723
200725
  var filename;
200724
200726
  if (typeof options.filepath === "string") {
200725
- filename = path49.normalize(options.filepath).replace(/\\/g, "/");
200727
+ filename = path50.normalize(options.filepath).replace(/\\/g, "/");
200726
200728
  } else if (options.filename || value && (value.name || value.path)) {
200727
- filename = path49.basename(options.filename || value && (value.name || value.path));
200729
+ filename = path50.basename(options.filename || value && (value.name || value.path));
200728
200730
  } else if (value && value.readable && hasOwn3(value, "httpVersion")) {
200729
- filename = path49.basename(value.client._httpMessage.path || "");
200731
+ filename = path50.basename(value.client._httpMessage.path || "");
200730
200732
  }
200731
200733
  if (filename) {
200732
200734
  return 'filename="' + escapeHeaderParam(filename) + '"';
@@ -201900,7 +201902,7 @@ var require_axios = __commonJS({
201900
201902
  var https2 = __require("https");
201901
201903
  var http22 = __require("http2");
201902
201904
  var util2 = __require("util");
201903
- var path49 = __require("path");
201905
+ var path50 = __require("path");
201904
201906
  var followRedirects = require_follow_redirects();
201905
201907
  var zlib4 = __require("zlib");
201906
201908
  var stream2 = __require("stream");
@@ -202968,9 +202970,9 @@ var require_axios = __commonJS({
202968
202970
  function removeBrackets(key) {
202969
202971
  return utils$1.endsWith(key, "[]") ? key.slice(0, -2) : key;
202970
202972
  }
202971
- function renderKey(path50, key, dots) {
202972
- if (!path50) return key;
202973
- return path50.concat(key).map(function each2(token, i4) {
202973
+ function renderKey(path51, key, dots) {
202974
+ if (!path51) return key;
202975
+ return path51.concat(key).map(function each2(token, i4) {
202974
202976
  token = removeBrackets(token);
202975
202977
  return !dots && i4 ? "[" + token + "]" : token;
202976
202978
  }).join(dots ? "." : "");
@@ -203048,13 +203050,13 @@ var require_axios = __commonJS({
203048
203050
  return currentValue;
203049
203051
  });
203050
203052
  }
203051
- function defaultVisitor(value, key, path50) {
203053
+ function defaultVisitor(value, key, path51) {
203052
203054
  let arr = value;
203053
203055
  if (utils$1.isReactNative(formData) && utils$1.isReactNativeBlob(value)) {
203054
- formData.append(renderKey(path50, key, dots), convertValue(value));
203056
+ formData.append(renderKey(path51, key, dots), convertValue(value));
203055
203057
  return false;
203056
203058
  }
203057
- if (value && !path50 && typeof value === "object") {
203059
+ if (value && !path51 && typeof value === "object") {
203058
203060
  if (utils$1.endsWith(key, "{}")) {
203059
203061
  key = metaTokens ? key : key.slice(0, -2);
203060
203062
  value = stringifyWithDepthLimit(value, 1);
@@ -203073,7 +203075,7 @@ var require_axios = __commonJS({
203073
203075
  if (isVisitable(value)) {
203074
203076
  return true;
203075
203077
  }
203076
- formData.append(renderKey(path50, key, dots), convertValue(value));
203078
+ formData.append(renderKey(path51, key, dots), convertValue(value));
203077
203079
  return false;
203078
203080
  }
203079
203081
  const exposedHelpers = Object.assign(predicates, {
@@ -203081,17 +203083,17 @@ var require_axios = __commonJS({
203081
203083
  convertValue,
203082
203084
  isVisitable
203083
203085
  });
203084
- function build(value, path50, depth = 0) {
203086
+ function build(value, path51, depth = 0) {
203085
203087
  if (utils$1.isUndefined(value)) return;
203086
203088
  throwIfMaxDepthExceeded(depth);
203087
203089
  if (stack.indexOf(value) !== -1) {
203088
- throw new Error("Circular reference detected in " + path50.join("."));
203090
+ throw new Error("Circular reference detected in " + path51.join("."));
203089
203091
  }
203090
203092
  stack.push(value);
203091
203093
  utils$1.forEach(value, function each2(el, key) {
203092
- const result2 = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path50, exposedHelpers);
203094
+ const result2 = !(utils$1.isUndefined(el) || el === null) && visitor.call(formData, el, utils$1.isString(key) ? key.trim() : key, path51, exposedHelpers);
203093
203095
  if (result2 === true) {
203094
- build(el, path50 ? path50.concat(key) : [key], depth + 1);
203096
+ build(el, path51 ? path51.concat(key) : [key], depth + 1);
203095
203097
  }
203096
203098
  });
203097
203099
  stack.pop();
@@ -203280,7 +203282,7 @@ var require_axios = __commonJS({
203280
203282
  };
203281
203283
  function toURLEncodedForm(data, options) {
203282
203284
  return toFormData2(data, new platform.classes.URLSearchParams(), {
203283
- visitor: function(value, key, path50, helpers) {
203285
+ visitor: function(value, key, path51, helpers) {
203284
203286
  if (platform.isNode && utils$1.isBuffer(value)) {
203285
203287
  this.append(key, value.toString("base64"));
203286
203288
  return false;
@@ -203297,14 +203299,14 @@ var require_axios = __commonJS({
203297
203299
  }
203298
203300
  }
203299
203301
  function parsePropPath(name29) {
203300
- const path50 = [];
203302
+ const path51 = [];
203301
203303
  const pattern = /[^.[\]]+|\[([^.[\]]*)]/g;
203302
203304
  let match;
203303
203305
  while ((match = pattern.exec(name29)) !== null) {
203304
- throwIfDepthExceeded(path50.length);
203305
- path50.push(match[0] === "[]" ? "" : match[1] || match[0]);
203306
+ throwIfDepthExceeded(path51.length);
203307
+ path51.push(match[0] === "[]" ? "" : match[1] || match[0]);
203306
203308
  }
203307
- return path50;
203309
+ return path51;
203308
203310
  }
203309
203311
  function arrayToObject(arr) {
203310
203312
  const obj2 = {};
@@ -203319,12 +203321,12 @@ var require_axios = __commonJS({
203319
203321
  return obj2;
203320
203322
  }
203321
203323
  function formDataToJSON(formData) {
203322
- function buildPath(path50, value, target, index2) {
203324
+ function buildPath(path51, value, target, index2) {
203323
203325
  throwIfDepthExceeded(index2);
203324
- let name29 = path50[index2++];
203326
+ let name29 = path51[index2++];
203325
203327
  if (name29 === "__proto__") return true;
203326
203328
  const isNumericKey = Number.isFinite(+name29);
203327
- const isLast = index2 >= path50.length;
203329
+ const isLast = index2 >= path51.length;
203328
203330
  name29 = !name29 && utils$1.isArray(target) ? target.length : name29;
203329
203331
  if (isLast) {
203330
203332
  if (utils$1.hasOwnProp(target, name29)) {
@@ -203337,7 +203339,7 @@ var require_axios = __commonJS({
203337
203339
  if (!utils$1.hasOwnProp(target, name29) || !utils$1.isObject(target[name29])) {
203338
203340
  target[name29] = [];
203339
203341
  }
203340
- const result2 = buildPath(path50, value, target[name29], index2);
203342
+ const result2 = buildPath(path51, value, target[name29], index2);
203341
203343
  if (result2 && utils$1.isArray(target[name29])) {
203342
203344
  target[name29] = arrayToObject(target[name29]);
203343
203345
  }
@@ -204948,8 +204950,8 @@ var require_axios = __commonJS({
204948
204950
  const allowedSocketPaths = own2("allowedSocketPaths");
204949
204951
  if (allowedSocketPaths != null) {
204950
204952
  const allowed = Array.isArray(allowedSocketPaths) ? allowedSocketPaths : [allowedSocketPaths];
204951
- const resolvedSocket = path49.resolve(socketPath);
204952
- const isAllowed = allowed.some((entry) => typeof entry === "string" && path49.resolve(entry) === resolvedSocket);
204953
+ const resolvedSocket = path50.resolve(socketPath);
204954
+ const isAllowed = allowed.some((entry) => typeof entry === "string" && path50.resolve(entry) === resolvedSocket);
204953
204955
  if (!isAllowed) {
204954
204956
  return reject2(new AxiosError(`socketPath "${socketPath}" is not permitted by allowedSocketPaths`, AxiosError.ERR_BAD_OPTION_VALUE, config2));
204955
204957
  }
@@ -205248,14 +205250,14 @@ var require_axios = __commonJS({
205248
205250
  var cookies = platform.hasStandardBrowserEnv ? (
205249
205251
  // Standard browser envs support document.cookie
205250
205252
  {
205251
- write(name29, value, expires, path50, domain2, secure, sameSite) {
205253
+ write(name29, value, expires, path51, domain2, secure, sameSite) {
205252
205254
  if (typeof document === "undefined") return;
205253
205255
  const cookie = [`${name29}=${encodeURIComponent(value)}`];
205254
205256
  if (utils$1.isNumber(expires)) {
205255
205257
  cookie.push(`expires=${new Date(expires).toUTCString()}`);
205256
205258
  }
205257
- if (utils$1.isString(path50)) {
205258
- cookie.push(`path=${path50}`);
205259
+ if (utils$1.isString(path51)) {
205260
+ cookie.push(`path=${path51}`);
205259
205261
  }
205260
205262
  if (utils$1.isString(domain2)) {
205261
205263
  cookie.push(`domain=${domain2}`);
@@ -207045,8 +207047,8 @@ function createGetModuleFromFilename(basePath = process.argv[1] ? dirname2(proce
207045
207047
  return decodedFile;
207046
207048
  };
207047
207049
  }
207048
- function normalizeWindowsPath(path49) {
207049
- return path49.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
207050
+ function normalizeWindowsPath(path50) {
207051
+ return path50.replace(/^[A-Z]:/, "").replace(/\\/g, "/");
207050
207052
  }
207051
207053
  async function addSourceContext(frames) {
207052
207054
  const filesToLines = {};
@@ -207091,9 +207093,9 @@ async function addSourceContext(frames) {
207091
207093
  LRU_FILE_CONTENTS_CACHE.reduce();
207092
207094
  return frames;
207093
207095
  }
207094
- function getContextLinesFromFile(path49, ranges, output) {
207096
+ function getContextLinesFromFile(path50, ranges, output) {
207095
207097
  return new Promise((resolve12) => {
207096
- const stream2 = createReadStream2(path49);
207098
+ const stream2 = createReadStream2(path50);
207097
207099
  const lineReaded = createInterface({
207098
207100
  input: stream2
207099
207101
  });
@@ -207111,7 +207113,7 @@ function getContextLinesFromFile(path49, ranges, output) {
207111
207113
  let rangeStart = range3[0];
207112
207114
  let rangeEnd = range3[1];
207113
207115
  function onStreamError() {
207114
- LRU_FILE_CONTENTS_FS_READ_FAILED.set(path49, 1);
207116
+ LRU_FILE_CONTENTS_FS_READ_FAILED.set(path50, 1);
207115
207117
  lineReaded.close();
207116
207118
  lineReaded.removeAllListeners();
207117
207119
  destroyStreamAndResolve();
@@ -207188,8 +207190,8 @@ function clearLineContext(frame) {
207188
207190
  delete frame.context_line;
207189
207191
  delete frame.post_context;
207190
207192
  }
207191
- function shouldSkipContextLinesForFile(path49) {
207192
- return path49.startsWith("node:") || path49.endsWith(".min.js") || path49.endsWith(".min.cjs") || path49.endsWith(".min.mjs") || path49.startsWith("data:");
207193
+ function shouldSkipContextLinesForFile(path50) {
207194
+ return path50.startsWith("node:") || path50.endsWith(".min.js") || path50.endsWith(".min.cjs") || path50.endsWith(".min.mjs") || path50.startsWith("data:");
207193
207195
  }
207194
207196
  function shouldSkipContextLinesForFrame(frame) {
207195
207197
  if (frame.lineno !== void 0 && frame.lineno > MAX_CONTEXTLINES_LINENO) {
@@ -211282,6 +211284,21 @@ var init_byok_pricing = __esm({
211282
211284
  {
211283
211285
  test: /o3-mini/i,
211284
211286
  rate: { inputPerMtok: 1.1, outputPerMtok: 4.4, cacheReadPerMtok: 0.55 }
211287
+ },
211288
+ // DeepSeek bills two tariffs for the same model — off-peak is half of peak,
211289
+ // with peak at 01:00-04:00 and 06:00-10:00 UTC on weekdays. A static table
211290
+ // cannot know which applied, so these are the PEAK rates: on a figure that
211291
+ // gets published (a benchmark's reported cost, the session spend meter),
211292
+ // overstating is the safe direction and understating is the one that misleads.
211293
+ // Without these entries `rateForModel` returned null for every DeepSeek model
211294
+ // and the cost was simply absent — observed on a real V4 Flash run.
211295
+ {
211296
+ test: /deepseek.*flash/i,
211297
+ rate: { inputPerMtok: 0.44, outputPerMtok: 1.32, cacheReadPerMtok: 0.014 }
211298
+ },
211299
+ {
211300
+ test: /deepseek.*pro/i,
211301
+ rate: { inputPerMtok: 1.32, outputPerMtok: 3.96, cacheReadPerMtok: 0.044 }
211285
211302
  }
211286
211303
  ];
211287
211304
  }
@@ -213774,7 +213791,7 @@ var require_auth_config = __commonJS({
213774
213791
  });
213775
213792
  module2.exports = __toCommonJS2(auth_config_exports);
213776
213793
  var fs40 = __toESM2(__require("fs"));
213777
- var path49 = __toESM2(__require("path"));
213794
+ var path50 = __toESM2(__require("path"));
213778
213795
  var import_token_util = require_token_util();
213779
213796
  function getAuthConfigPath() {
213780
213797
  const dataDir = (0, import_token_util.getVercelDataDir)();
@@ -213783,7 +213800,7 @@ var require_auth_config = __commonJS({
213783
213800
  `Unable to find Vercel CLI data directory. Your platform: ${process.platform}. Supported: darwin, linux, win32.`
213784
213801
  );
213785
213802
  }
213786
- return path49.join(dataDir, "auth.json");
213803
+ return path50.join(dataDir, "auth.json");
213787
213804
  }
213788
213805
  function readAuthConfig() {
213789
213806
  try {
@@ -213802,7 +213819,7 @@ var require_auth_config = __commonJS({
213802
213819
  }
213803
213820
  function writeAuthConfig(config2) {
213804
213821
  const authPath = getAuthConfigPath();
213805
- const authDir = path49.dirname(authPath);
213822
+ const authDir = path50.dirname(authPath);
213806
213823
  if (!fs40.existsSync(authDir)) {
213807
213824
  fs40.mkdirSync(authDir, { mode: 504, recursive: true });
213808
213825
  }
@@ -213997,7 +214014,7 @@ var require_token_util = __commonJS({
213997
214014
  saveToken: () => saveToken
213998
214015
  });
213999
214016
  module2.exports = __toCommonJS2(token_util_exports);
214000
- var path49 = __toESM2(__require("path"));
214017
+ var path50 = __toESM2(__require("path"));
214001
214018
  var fs40 = __toESM2(__require("fs"));
214002
214019
  var import_token_error = require_token_error();
214003
214020
  var import_token_io = require_token_io();
@@ -214010,7 +214027,7 @@ var require_token_util = __commonJS({
214010
214027
  if (!dataDir) {
214011
214028
  return null;
214012
214029
  }
214013
- return path49.join(dataDir, vercelFolder);
214030
+ return path50.join(dataDir, vercelFolder);
214014
214031
  }
214015
214032
  async function getVercelToken2(options) {
214016
214033
  const authConfig = (0, import_auth_config.readAuthConfig)();
@@ -214086,7 +214103,7 @@ var require_token_util = __commonJS({
214086
214103
  "Unable to find project root directory. Have you linked your project with `vc link?`"
214087
214104
  );
214088
214105
  }
214089
- const prjPath = path49.join(dir, ".vercel", "project.json");
214106
+ const prjPath = path50.join(dir, ".vercel", "project.json");
214090
214107
  if (!fs40.existsSync(prjPath)) {
214091
214108
  throw new import_token_error.VercelOidcTokenError(
214092
214109
  "project.json not found, have you linked your project with `vc link?`"
@@ -214107,9 +214124,9 @@ var require_token_util = __commonJS({
214107
214124
  "Unable to find user data directory. Please reach out to Vercel support."
214108
214125
  );
214109
214126
  }
214110
- const tokenPath = path49.join(dir, "com.vercel.token", `${projectId}.json`);
214127
+ const tokenPath = path50.join(dir, "com.vercel.token", `${projectId}.json`);
214111
214128
  const tokenJson = JSON.stringify(token);
214112
- fs40.mkdirSync(path49.dirname(tokenPath), { mode: 504, recursive: true });
214129
+ fs40.mkdirSync(path50.dirname(tokenPath), { mode: 504, recursive: true });
214113
214130
  fs40.writeFileSync(tokenPath, tokenJson);
214114
214131
  fs40.chmodSync(tokenPath, 432);
214115
214132
  return;
@@ -214121,7 +214138,7 @@ var require_token_util = __commonJS({
214121
214138
  "Unable to find user data directory. Please reach out to Vercel support."
214122
214139
  );
214123
214140
  }
214124
- const tokenPath = path49.join(dir, "com.vercel.token", `${projectId}.json`);
214141
+ const tokenPath = path50.join(dir, "com.vercel.token", `${projectId}.json`);
214125
214142
  if (!fs40.existsSync(tokenPath)) {
214126
214143
  return null;
214127
214144
  }
@@ -240326,11 +240343,11 @@ var init_lib2 = __esm({
240326
240343
  }
240327
240344
  }
240328
240345
  },
240329
- addToPath: function addToPath(path49, added, removed, oldPosInc, options) {
240330
- var last2 = path49.lastComponent;
240346
+ addToPath: function addToPath(path50, added, removed, oldPosInc, options) {
240347
+ var last2 = path50.lastComponent;
240331
240348
  if (last2 && !options.oneChangePerToken && last2.added === added && last2.removed === removed) {
240332
240349
  return {
240333
- oldPos: path49.oldPos + oldPosInc,
240350
+ oldPos: path50.oldPos + oldPosInc,
240334
240351
  lastComponent: {
240335
240352
  count: last2.count + 1,
240336
240353
  added,
@@ -240340,7 +240357,7 @@ var init_lib2 = __esm({
240340
240357
  };
240341
240358
  } else {
240342
240359
  return {
240343
- oldPos: path49.oldPos + oldPosInc,
240360
+ oldPos: path50.oldPos + oldPosInc,
240344
240361
  lastComponent: {
240345
240362
  count: 1,
240346
240363
  added,
@@ -240922,14 +240939,14 @@ function emitRunCommandPermissionActivity(sender, chatId, label, command) {
240922
240939
  chatId
240923
240940
  });
240924
240941
  }
240925
- function emitFilePermissionActivity(sender, chatId, label, path49) {
240942
+ function emitFilePermissionActivity(sender, chatId, label, path50) {
240926
240943
  safeSend(sender, "chat:activity", {
240927
240944
  id: `file-perm-${chatId}-${Date.now()}`,
240928
240945
  type: "tool_use",
240929
240946
  // v13.8: edit_file is the single file-mutation tool (absorbed write_file).
240930
240947
  toolName: "edit_file",
240931
240948
  label,
240932
- detail: path49.slice(0, 200),
240949
+ detail: path50.slice(0, 200),
240933
240950
  status: "done",
240934
240951
  timestamp: Date.now(),
240935
240952
  chatId
@@ -242796,8 +242813,8 @@ function formatSearchMatchPreview(payload, plainText) {
242796
242813
  function formatReadFilePreview(content) {
242797
242814
  const pathMatch = content.match(/^File:\s*(.+)$/m);
242798
242815
  if (pathMatch) {
242799
- const path49 = pathMatch[1].trim();
242800
- const short = path49.length > 64 ? `\u2026${path49.slice(-61)}` : path49;
242816
+ const path50 = pathMatch[1].trim();
242817
+ const short = path50.length > 64 ? `\u2026${path50.slice(-61)}` : path50;
242801
242818
  const linesMatch = content.match(/^Lines:\s*(.+)$/m);
242802
242819
  if (linesMatch) {
242803
242820
  return `Read ${short} \u2014 lines ${linesMatch[1].trim()}`;
@@ -242921,8 +242938,8 @@ function formatToolResultPreview(registryName, rawDetail, status) {
242921
242938
  if (!envelope) return void 0;
242922
242939
  if (status === "error" || envelope.error) {
242923
242940
  const msg = envelope.error ?? extractShortField(envelope.payload) ?? "Tool failed";
242924
- const path49 = typeof envelope.payload.path === "string" && envelope.payload.path.trim() ? envelope.payload.path.trim() : void 0;
242925
- return capPreview(path49 ? `${msg} (${path49})` : msg);
242941
+ const path50 = typeof envelope.payload.path === "string" && envelope.payload.path.trim() ? envelope.payload.path.trim() : void 0;
242942
+ return capPreview(path50 ? `${msg} (${path50})` : msg);
242926
242943
  }
242927
242944
  const payload = envelope.payload;
242928
242945
  const plain = envelope.plainText;
@@ -242972,7 +242989,7 @@ function formatToolStartPreview(registryName, toolArgs) {
242972
242989
  if (!toolArgs || typeof toolArgs !== "object") {
242973
242990
  return getToolActivityLabel(registryName);
242974
242991
  }
242975
- const path49 = typeof toolArgs.path === "string" && toolArgs.path.trim() || typeof toolArgs.file_path === "string" && toolArgs.file_path.trim() || typeof toolArgs.focus_path === "string" && toolArgs.focus_path.trim() || void 0;
242992
+ const path50 = typeof toolArgs.path === "string" && toolArgs.path.trim() || typeof toolArgs.file_path === "string" && toolArgs.file_path.trim() || typeof toolArgs.focus_path === "string" && toolArgs.focus_path.trim() || void 0;
242976
242993
  const query = typeof toolArgs.query === "string" ? toolArgs.query.trim() : void 0;
242977
242994
  const pattern = (registryName === "grep" || registryName === "glob") && typeof toolArgs.pattern === "string" ? toolArgs.pattern.trim() : void 0;
242978
242995
  const command = typeof toolArgs.command === "string" ? toolArgs.command.trim() : void 0;
@@ -242981,8 +242998,8 @@ function formatToolStartPreview(registryName, toolArgs) {
242981
242998
  const p2 = pattern.length > 56 ? `${pattern.slice(0, 53)}\u2026` : pattern;
242982
242999
  return `${base}: ${p2}\u2026`;
242983
243000
  }
242984
- if (path49) {
242985
- const short = path49.length > 72 ? `${path49.slice(0, 69)}\u2026` : path49;
243001
+ if (path50) {
243002
+ const short = path50.length > 72 ? `${path50.slice(0, 69)}\u2026` : path50;
242986
243003
  return `${base} (${short})\u2026`;
242987
243004
  }
242988
243005
  if (query) {
@@ -245224,23 +245241,23 @@ function findAutonomousOp(chatId, turnId, operationId) {
245224
245241
  return sessionLogs.get(sessionKey(chatId, turnId))?.find((o2) => o2.operationId === operationId);
245225
245242
  }
245226
245243
  function autonomousOpFromPermissionExec(operationId, operationType, preview, execApproved) {
245227
- let path49;
245244
+ let path50;
245228
245245
  let summary;
245229
245246
  const p2 = preview;
245230
245247
  if (Array.isArray(p2)) {
245231
245248
  const first2 = p2[0];
245232
- path49 = first2?.path;
245249
+ path50 = first2?.path;
245233
245250
  summary = first2?.description;
245234
245251
  } else if (p2 && typeof p2 === "object") {
245235
245252
  const o2 = p2;
245236
- if (typeof o2.path === "string") path49 = o2.path;
245237
- if (typeof o2.command === "string") path49 = o2.command;
245253
+ if (typeof o2.path === "string") path50 = o2.path;
245254
+ if (typeof o2.command === "string") path50 = o2.command;
245238
245255
  if (typeof o2.description === "string") summary = o2.description;
245239
245256
  }
245240
245257
  return {
245241
245258
  operationId,
245242
245259
  type: operationType,
245243
- path: path49,
245260
+ path: path50,
245244
245261
  summary: summary ?? operationType,
245245
245262
  timestamp: Date.now(),
245246
245263
  result: execApproved ? "success" : "failed",
@@ -249403,14 +249420,14 @@ var require_polyfills2 = __commonJS({
249403
249420
  fs40.fstatSync = statFixSync(fs40.fstatSync);
249404
249421
  fs40.lstatSync = statFixSync(fs40.lstatSync);
249405
249422
  if (fs40.chmod && !fs40.lchmod) {
249406
- fs40.lchmod = function(path49, mode, cb2) {
249423
+ fs40.lchmod = function(path50, mode, cb2) {
249407
249424
  if (cb2) process.nextTick(cb2);
249408
249425
  };
249409
249426
  fs40.lchmodSync = function() {
249410
249427
  };
249411
249428
  }
249412
249429
  if (fs40.chown && !fs40.lchown) {
249413
- fs40.lchown = function(path49, uid, gid, cb2) {
249430
+ fs40.lchown = function(path50, uid, gid, cb2) {
249414
249431
  if (cb2) process.nextTick(cb2);
249415
249432
  };
249416
249433
  fs40.lchownSync = function() {
@@ -249477,9 +249494,9 @@ var require_polyfills2 = __commonJS({
249477
249494
  };
249478
249495
  })(fs40.readSync);
249479
249496
  function patchLchmod(fs41) {
249480
- fs41.lchmod = function(path49, mode, callback) {
249497
+ fs41.lchmod = function(path50, mode, callback) {
249481
249498
  fs41.open(
249482
- path49,
249499
+ path50,
249483
249500
  constants.O_WRONLY | constants.O_SYMLINK,
249484
249501
  mode,
249485
249502
  function(err2, fd2) {
@@ -249495,8 +249512,8 @@ var require_polyfills2 = __commonJS({
249495
249512
  }
249496
249513
  );
249497
249514
  };
249498
- fs41.lchmodSync = function(path49, mode) {
249499
- var fd2 = fs41.openSync(path49, constants.O_WRONLY | constants.O_SYMLINK, mode);
249515
+ fs41.lchmodSync = function(path50, mode) {
249516
+ var fd2 = fs41.openSync(path50, constants.O_WRONLY | constants.O_SYMLINK, mode);
249500
249517
  var threw = true;
249501
249518
  var ret2;
249502
249519
  try {
@@ -249517,8 +249534,8 @@ var require_polyfills2 = __commonJS({
249517
249534
  }
249518
249535
  function patchLutimes(fs41) {
249519
249536
  if (constants.hasOwnProperty("O_SYMLINK") && fs41.futimes) {
249520
- fs41.lutimes = function(path49, at2, mt2, cb2) {
249521
- fs41.open(path49, constants.O_SYMLINK, function(er2, fd2) {
249537
+ fs41.lutimes = function(path50, at2, mt2, cb2) {
249538
+ fs41.open(path50, constants.O_SYMLINK, function(er2, fd2) {
249522
249539
  if (er2) {
249523
249540
  if (cb2) cb2(er2);
249524
249541
  return;
@@ -249530,8 +249547,8 @@ var require_polyfills2 = __commonJS({
249530
249547
  });
249531
249548
  });
249532
249549
  };
249533
- fs41.lutimesSync = function(path49, at2, mt2) {
249534
- var fd2 = fs41.openSync(path49, constants.O_SYMLINK);
249550
+ fs41.lutimesSync = function(path50, at2, mt2) {
249551
+ var fd2 = fs41.openSync(path50, constants.O_SYMLINK);
249535
249552
  var ret2;
249536
249553
  var threw = true;
249537
249554
  try {
@@ -249649,11 +249666,11 @@ var require_legacy_streams = __commonJS({
249649
249666
  ReadStream: ReadStream2,
249650
249667
  WriteStream
249651
249668
  };
249652
- function ReadStream2(path49, options) {
249653
- if (!(this instanceof ReadStream2)) return new ReadStream2(path49, options);
249669
+ function ReadStream2(path50, options) {
249670
+ if (!(this instanceof ReadStream2)) return new ReadStream2(path50, options);
249654
249671
  Stream5.call(this);
249655
249672
  var self2 = this;
249656
- this.path = path49;
249673
+ this.path = path50;
249657
249674
  this.fd = null;
249658
249675
  this.readable = true;
249659
249676
  this.paused = false;
@@ -249698,10 +249715,10 @@ var require_legacy_streams = __commonJS({
249698
249715
  self2._read();
249699
249716
  });
249700
249717
  }
249701
- function WriteStream(path49, options) {
249702
- if (!(this instanceof WriteStream)) return new WriteStream(path49, options);
249718
+ function WriteStream(path50, options) {
249719
+ if (!(this instanceof WriteStream)) return new WriteStream(path50, options);
249703
249720
  Stream5.call(this);
249704
- this.path = path49;
249721
+ this.path = path50;
249705
249722
  this.fd = null;
249706
249723
  this.writable = true;
249707
249724
  this.flags = "w";
@@ -249844,14 +249861,14 @@ var require_graceful_fs = __commonJS({
249844
249861
  fs41.createWriteStream = createWriteStream;
249845
249862
  var fs$readFile = fs41.readFile;
249846
249863
  fs41.readFile = readFile12;
249847
- function readFile12(path49, options, cb2) {
249864
+ function readFile12(path50, options, cb2) {
249848
249865
  if (typeof options === "function")
249849
249866
  cb2 = options, options = null;
249850
- return go$readFile(path49, options, cb2);
249851
- function go$readFile(path50, options2, cb3, startTime) {
249852
- return fs$readFile(path50, options2, function(err2) {
249867
+ return go$readFile(path50, options, cb2);
249868
+ function go$readFile(path51, options2, cb3, startTime) {
249869
+ return fs$readFile(path51, options2, function(err2) {
249853
249870
  if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
249854
- enqueue([go$readFile, [path50, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249871
+ enqueue([go$readFile, [path51, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249855
249872
  else {
249856
249873
  if (typeof cb3 === "function")
249857
249874
  cb3.apply(this, arguments);
@@ -249861,14 +249878,14 @@ var require_graceful_fs = __commonJS({
249861
249878
  }
249862
249879
  var fs$writeFile = fs41.writeFile;
249863
249880
  fs41.writeFile = writeFile8;
249864
- function writeFile8(path49, data, options, cb2) {
249881
+ function writeFile8(path50, data, options, cb2) {
249865
249882
  if (typeof options === "function")
249866
249883
  cb2 = options, options = null;
249867
- return go$writeFile(path49, data, options, cb2);
249868
- function go$writeFile(path50, data2, options2, cb3, startTime) {
249869
- return fs$writeFile(path50, data2, options2, function(err2) {
249884
+ return go$writeFile(path50, data, options, cb2);
249885
+ function go$writeFile(path51, data2, options2, cb3, startTime) {
249886
+ return fs$writeFile(path51, data2, options2, function(err2) {
249870
249887
  if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
249871
- enqueue([go$writeFile, [path50, data2, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249888
+ enqueue([go$writeFile, [path51, data2, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249872
249889
  else {
249873
249890
  if (typeof cb3 === "function")
249874
249891
  cb3.apply(this, arguments);
@@ -249879,14 +249896,14 @@ var require_graceful_fs = __commonJS({
249879
249896
  var fs$appendFile = fs41.appendFile;
249880
249897
  if (fs$appendFile)
249881
249898
  fs41.appendFile = appendFile;
249882
- function appendFile(path49, data, options, cb2) {
249899
+ function appendFile(path50, data, options, cb2) {
249883
249900
  if (typeof options === "function")
249884
249901
  cb2 = options, options = null;
249885
- return go$appendFile(path49, data, options, cb2);
249886
- function go$appendFile(path50, data2, options2, cb3, startTime) {
249887
- return fs$appendFile(path50, data2, options2, function(err2) {
249902
+ return go$appendFile(path50, data, options, cb2);
249903
+ function go$appendFile(path51, data2, options2, cb3, startTime) {
249904
+ return fs$appendFile(path51, data2, options2, function(err2) {
249888
249905
  if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
249889
- enqueue([go$appendFile, [path50, data2, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249906
+ enqueue([go$appendFile, [path51, data2, options2, cb3], err2, startTime || Date.now(), Date.now()]);
249890
249907
  else {
249891
249908
  if (typeof cb3 === "function")
249892
249909
  cb3.apply(this, arguments);
@@ -249917,31 +249934,31 @@ var require_graceful_fs = __commonJS({
249917
249934
  var fs$readdir = fs41.readdir;
249918
249935
  fs41.readdir = readdir3;
249919
249936
  var noReaddirOptionVersions = /^v[0-5]\./;
249920
- function readdir3(path49, options, cb2) {
249937
+ function readdir3(path50, options, cb2) {
249921
249938
  if (typeof options === "function")
249922
249939
  cb2 = options, options = null;
249923
- var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path50, options2, cb3, startTime) {
249924
- return fs$readdir(path50, fs$readdirCallback(
249925
- path50,
249940
+ var go$readdir = noReaddirOptionVersions.test(process.version) ? function go$readdir2(path51, options2, cb3, startTime) {
249941
+ return fs$readdir(path51, fs$readdirCallback(
249942
+ path51,
249926
249943
  options2,
249927
249944
  cb3,
249928
249945
  startTime
249929
249946
  ));
249930
- } : function go$readdir2(path50, options2, cb3, startTime) {
249931
- return fs$readdir(path50, options2, fs$readdirCallback(
249932
- path50,
249947
+ } : function go$readdir2(path51, options2, cb3, startTime) {
249948
+ return fs$readdir(path51, options2, fs$readdirCallback(
249949
+ path51,
249933
249950
  options2,
249934
249951
  cb3,
249935
249952
  startTime
249936
249953
  ));
249937
249954
  };
249938
- return go$readdir(path49, options, cb2);
249939
- function fs$readdirCallback(path50, options2, cb3, startTime) {
249955
+ return go$readdir(path50, options, cb2);
249956
+ function fs$readdirCallback(path51, options2, cb3, startTime) {
249940
249957
  return function(err2, files) {
249941
249958
  if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
249942
249959
  enqueue([
249943
249960
  go$readdir,
249944
- [path50, options2, cb3],
249961
+ [path51, options2, cb3],
249945
249962
  err2,
249946
249963
  startTime || Date.now(),
249947
249964
  Date.now()
@@ -250012,7 +250029,7 @@ var require_graceful_fs = __commonJS({
250012
250029
  enumerable: true,
250013
250030
  configurable: true
250014
250031
  });
250015
- function ReadStream2(path49, options) {
250032
+ function ReadStream2(path50, options) {
250016
250033
  if (this instanceof ReadStream2)
250017
250034
  return fs$ReadStream.apply(this, arguments), this;
250018
250035
  else
@@ -250032,7 +250049,7 @@ var require_graceful_fs = __commonJS({
250032
250049
  }
250033
250050
  });
250034
250051
  }
250035
- function WriteStream(path49, options) {
250052
+ function WriteStream(path50, options) {
250036
250053
  if (this instanceof WriteStream)
250037
250054
  return fs$WriteStream.apply(this, arguments), this;
250038
250055
  else
@@ -250050,22 +250067,22 @@ var require_graceful_fs = __commonJS({
250050
250067
  }
250051
250068
  });
250052
250069
  }
250053
- function createReadStream3(path49, options) {
250054
- return new fs41.ReadStream(path49, options);
250070
+ function createReadStream3(path50, options) {
250071
+ return new fs41.ReadStream(path50, options);
250055
250072
  }
250056
- function createWriteStream(path49, options) {
250057
- return new fs41.WriteStream(path49, options);
250073
+ function createWriteStream(path50, options) {
250074
+ return new fs41.WriteStream(path50, options);
250058
250075
  }
250059
250076
  var fs$open = fs41.open;
250060
250077
  fs41.open = open;
250061
- function open(path49, flags, mode, cb2) {
250078
+ function open(path50, flags, mode, cb2) {
250062
250079
  if (typeof mode === "function")
250063
250080
  cb2 = mode, mode = null;
250064
- return go$open(path49, flags, mode, cb2);
250065
- function go$open(path50, flags2, mode2, cb3, startTime) {
250066
- return fs$open(path50, flags2, mode2, function(err2, fd2) {
250081
+ return go$open(path50, flags, mode, cb2);
250082
+ function go$open(path51, flags2, mode2, cb3, startTime) {
250083
+ return fs$open(path51, flags2, mode2, function(err2, fd2) {
250067
250084
  if (err2 && (err2.code === "EMFILE" || err2.code === "ENFILE"))
250068
- enqueue([go$open, [path50, flags2, mode2, cb3], err2, startTime || Date.now(), Date.now()]);
250085
+ enqueue([go$open, [path51, flags2, mode2, cb3], err2, startTime || Date.now(), Date.now()]);
250069
250086
  else {
250070
250087
  if (typeof cb3 === "function")
250071
250088
  cb3.apply(this, arguments);
@@ -250869,8 +250886,8 @@ var init_convertInputToNodeStream = __esm({
250869
250886
 
250870
250887
  // node_modules/read-excel-file/modules/export/filterZipArchiveEntry.js
250871
250888
  function filterZipArchiveEntry(_ref) {
250872
- var path49 = _ref.path;
250873
- return path49.endsWith(".xml") || path49.endsWith(".xml.rels");
250889
+ var path50 = _ref.path;
250890
+ return path50.endsWith(".xml") || path50.endsWith(".xml.rels");
250874
250891
  }
250875
250892
  var init_filterZipArchiveEntry = __esm({
250876
250893
  "node_modules/read-excel-file/modules/export/filterZipArchiveEntry.js"() {
@@ -251273,11 +251290,11 @@ function parseFilePaths(content, parseXml2) {
251273
251290
  break;
251274
251291
  }
251275
251292
  }
251276
- function getFilePathFromRelationTarget(path49) {
251277
- if (path49[0] === "/") {
251278
- return path49.slice("/".length);
251293
+ function getFilePathFromRelationTarget(path50) {
251294
+ if (path50[0] === "/") {
251295
+ return path50.slice("/".length);
251279
251296
  }
251280
- return "xl/" + path49;
251297
+ return "xl/" + path50;
251281
251298
  }
251282
251299
  }
251283
251300
  var init_parseFilePaths = __esm({
@@ -253860,18 +253877,18 @@ function parseDataRow(dataRow, schema, columns, options) {
253860
253877
  object: transformValue(value, isEmptyValue2, void 0, options)
253861
253878
  };
253862
253879
  }
253863
- function parseObject(row, schema, path49, columns, options) {
253880
+ function parseObject(row, schema, path50, columns, options) {
253864
253881
  var object4 = {};
253865
253882
  var isEmptyObject = true;
253866
253883
  var errors = [];
253867
253884
  var children = [];
253868
253885
  for (var _i2 = 0, _Object$keys = Object.keys(schema); _i2 < _Object$keys.length; _i2++) {
253869
253886
  var key = _Object$keys[_i2];
253870
- var child = parseProperty(row, schema[key], getPropertyPath(key, path49), columns, options);
253887
+ var child = parseProperty(row, schema[key], getPropertyPath(key, path50), columns, options);
253871
253888
  if (child.errors) {
253872
253889
  errors = errors.concat(child.errors);
253873
253890
  } else {
253874
- object4[key] = transformValue(child.value, child.isEmptyValue, getPropertyPath(key, path49), options);
253891
+ object4[key] = transformValue(child.value, child.isEmptyValue, getPropertyPath(key, path50), options);
253875
253892
  if (isEmptyObject && !child.isEmptyValue) {
253876
253893
  isEmptyObject = false;
253877
253894
  }
@@ -253896,13 +253913,13 @@ function parseObject(row, schema, path49, columns, options) {
253896
253913
  children
253897
253914
  };
253898
253915
  }
253899
- function parseProperty(row, schemaEntry, path49, columns, options) {
253916
+ function parseProperty(row, schemaEntry, path50, columns, options) {
253900
253917
  var columnIndex = schemaEntry.column ? columns.indexOf(schemaEntry.column) : void 0;
253901
253918
  var isMissingColumn = schemaEntry.column ? columnIndex < 0 : void 0;
253902
253919
  var _ref = schemaEntry.column ? isMissingColumn ? {
253903
253920
  value: options.propertyValueWhenColumnIsMissing,
253904
253921
  isEmptyValue: true
253905
- } : parseCellValueWithPossibleErrors(row[columnIndex], schemaEntry, columnIndex, options) : parseObject(row, schemaEntry.schema, path49, columns, options), value = _ref.value, isEmptyValue2 = _ref.isEmptyValue, errors = _ref.errors, children = _ref.children;
253922
+ } : parseCellValueWithPossibleErrors(row[columnIndex], schemaEntry, columnIndex, options) : parseObject(row, schemaEntry.schema, path50, columns, options), value = _ref.value, isEmptyValue2 = _ref.isEmptyValue, errors = _ref.errors, children = _ref.children;
253906
253923
  if (errors) {
253907
253924
  return {
253908
253925
  // Return the errors.
@@ -254121,15 +254138,15 @@ function parseSeparatedSubstrings(string4, separatorCharacter) {
254121
254138
  }
254122
254139
  return elements;
254123
254140
  }
254124
- function transformValue(value, isEmptyValue2, path49, options) {
254141
+ function transformValue(value, isEmptyValue2, path50, options) {
254125
254142
  if (isEmptyValue2) {
254126
254143
  if (isObject3(value)) {
254127
254144
  return options.transformEmptyObject(value, {
254128
- path: path49
254145
+ path: path50
254129
254146
  });
254130
254147
  } else if (Array.isArray(value)) {
254131
254148
  return options.transformEmptyArray(value, {
254132
- path: path49
254149
+ path: path50
254133
254150
  });
254134
254151
  }
254135
254152
  }
@@ -255593,8 +255610,8 @@ var init_tap = __esm({
255593
255610
  });
255594
255611
 
255595
255612
  // node_modules/underscore/modules/toPath.js
255596
- function toPath(path49) {
255597
- return isArray_default(path49) ? path49 : [path49];
255613
+ function toPath(path50) {
255614
+ return isArray_default(path50) ? path50 : [path50];
255598
255615
  }
255599
255616
  var init_toPath = __esm({
255600
255617
  "node_modules/underscore/modules/toPath.js"() {
@@ -255605,8 +255622,8 @@ var init_toPath = __esm({
255605
255622
  });
255606
255623
 
255607
255624
  // node_modules/underscore/modules/_toPath.js
255608
- function toPath2(path49) {
255609
- return _2.toPath(path49);
255625
+ function toPath2(path50) {
255626
+ return _2.toPath(path50);
255610
255627
  }
255611
255628
  var init_toPath2 = __esm({
255612
255629
  "node_modules/underscore/modules/_toPath.js"() {
@@ -255616,11 +255633,11 @@ var init_toPath2 = __esm({
255616
255633
  });
255617
255634
 
255618
255635
  // node_modules/underscore/modules/_deepGet.js
255619
- function deepGet(obj2, path49) {
255620
- var length = path49.length;
255636
+ function deepGet(obj2, path50) {
255637
+ var length = path50.length;
255621
255638
  for (var i4 = 0; i4 < length; i4++) {
255622
255639
  if (obj2 == null) return void 0;
255623
- obj2 = obj2[path49[i4]];
255640
+ obj2 = obj2[path50[i4]];
255624
255641
  }
255625
255642
  return length ? obj2 : void 0;
255626
255643
  }
@@ -255630,8 +255647,8 @@ var init_deepGet = __esm({
255630
255647
  });
255631
255648
 
255632
255649
  // node_modules/underscore/modules/get.js
255633
- function get2(object4, path49, defaultValue) {
255634
- var value = deepGet(object4, toPath2(path49));
255650
+ function get2(object4, path50, defaultValue) {
255651
+ var value = deepGet(object4, toPath2(path50));
255635
255652
  return isUndefined(value) ? defaultValue : value;
255636
255653
  }
255637
255654
  var init_get = __esm({
@@ -255643,11 +255660,11 @@ var init_get = __esm({
255643
255660
  });
255644
255661
 
255645
255662
  // node_modules/underscore/modules/has.js
255646
- function has2(obj2, path49) {
255647
- path49 = toPath2(path49);
255648
- var length = path49.length;
255663
+ function has2(obj2, path50) {
255664
+ path50 = toPath2(path50);
255665
+ var length = path50.length;
255649
255666
  for (var i4 = 0; i4 < length; i4++) {
255650
- var key = path49[i4];
255667
+ var key = path50[i4];
255651
255668
  if (!has(obj2, key)) return false;
255652
255669
  obj2 = obj2[key];
255653
255670
  }
@@ -255684,10 +255701,10 @@ var init_matcher = __esm({
255684
255701
  });
255685
255702
 
255686
255703
  // node_modules/underscore/modules/property.js
255687
- function property(path49) {
255688
- path49 = toPath2(path49);
255704
+ function property(path50) {
255705
+ path50 = toPath2(path50);
255689
255706
  return function(obj2) {
255690
- return deepGet(obj2, path49);
255707
+ return deepGet(obj2, path50);
255691
255708
  };
255692
255709
  }
255693
255710
  var init_property = __esm({
@@ -255796,8 +255813,8 @@ var init_noop = __esm({
255796
255813
  // node_modules/underscore/modules/propertyOf.js
255797
255814
  function propertyOf(obj2) {
255798
255815
  if (obj2 == null) return noop6;
255799
- return function(path49) {
255800
- return get2(obj2, path49);
255816
+ return function(path50) {
255817
+ return get2(obj2, path50);
255801
255818
  };
255802
255819
  }
255803
255820
  var init_propertyOf = __esm({
@@ -255991,14 +256008,14 @@ var init_template = __esm({
255991
256008
  });
255992
256009
 
255993
256010
  // node_modules/underscore/modules/result.js
255994
- function result(obj2, path49, fallback) {
255995
- path49 = toPath2(path49);
255996
- var length = path49.length;
256011
+ function result(obj2, path50, fallback) {
256012
+ path50 = toPath2(path50);
256013
+ var length = path50.length;
255997
256014
  if (!length) {
255998
256015
  return isFunction_default(fallback) ? fallback.call(obj2) : fallback;
255999
256016
  }
256000
256017
  for (var i4 = 0; i4 < length; i4++) {
256001
- var prop = obj2 == null ? void 0 : obj2[path49[i4]];
256018
+ var prop = obj2 == null ? void 0 : obj2[path50[i4]];
256002
256019
  if (prop === void 0) {
256003
256020
  prop = fallback;
256004
256021
  i4 = length;
@@ -256681,14 +256698,14 @@ var init_invoke = __esm({
256681
256698
  init_map();
256682
256699
  init_deepGet();
256683
256700
  init_toPath2();
256684
- invoke_default = restArguments(function(obj2, path49, args2) {
256701
+ invoke_default = restArguments(function(obj2, path50, args2) {
256685
256702
  var contextPath, func;
256686
- if (isFunction_default(path49)) {
256687
- func = path49;
256703
+ if (isFunction_default(path50)) {
256704
+ func = path50;
256688
256705
  } else {
256689
- path49 = toPath2(path49);
256690
- contextPath = path49.slice(0, -1);
256691
- path49 = path49[path49.length - 1];
256706
+ path50 = toPath2(path50);
256707
+ contextPath = path50.slice(0, -1);
256708
+ path50 = path50[path50.length - 1];
256692
256709
  }
256693
256710
  return map2(obj2, function(context) {
256694
256711
  var method = func;
@@ -256697,7 +256714,7 @@ var init_invoke = __esm({
256697
256714
  context = deepGet(context, contextPath);
256698
256715
  }
256699
256716
  if (context == null) return void 0;
256700
- method = context[path49];
256717
+ method = context[path50];
256701
256718
  }
256702
256719
  return method == null ? method : method.apply(context, args2);
256703
256720
  });
@@ -266062,8 +266079,8 @@ var require_utils = __commonJS({
266062
266079
  var result2 = transform2[inputType][outputType](input);
266063
266080
  return result2;
266064
266081
  };
266065
- exports2.resolve = function(path49) {
266066
- var parts = path49.split("/");
266082
+ exports2.resolve = function(path50) {
266083
+ var parts = path50.split("/");
266067
266084
  var result2 = [];
266068
266085
  for (var index2 = 0; index2 < parts.length; index2++) {
266069
266086
  var part = parts[index2];
@@ -271916,18 +271933,18 @@ var require_object2 = __commonJS({
271916
271933
  var object4 = new ZipObject(name29, zipObjectContent, o2);
271917
271934
  this.files[name29] = object4;
271918
271935
  };
271919
- var parentFolder = function(path49) {
271920
- if (path49.slice(-1) === "/") {
271921
- path49 = path49.substring(0, path49.length - 1);
271936
+ var parentFolder = function(path50) {
271937
+ if (path50.slice(-1) === "/") {
271938
+ path50 = path50.substring(0, path50.length - 1);
271922
271939
  }
271923
- var lastSlash = path49.lastIndexOf("/");
271924
- return lastSlash > 0 ? path49.substring(0, lastSlash) : "";
271940
+ var lastSlash = path50.lastIndexOf("/");
271941
+ return lastSlash > 0 ? path50.substring(0, lastSlash) : "";
271925
271942
  };
271926
- var forceTrailingSlash = function(path49) {
271927
- if (path49.slice(-1) !== "/") {
271928
- path49 += "/";
271943
+ var forceTrailingSlash = function(path50) {
271944
+ if (path50.slice(-1) !== "/") {
271945
+ path50 += "/";
271929
271946
  }
271930
- return path49;
271947
+ return path50;
271931
271948
  };
271932
271949
  var folderAdd = function(name29, createFolders) {
271933
271950
  createFolders = typeof createFolders !== "undefined" ? createFolders : defaults.createFolders;
@@ -272965,27 +272982,27 @@ var require_zipfile = __commonJS({
272965
272982
  };
272966
272983
  });
272967
272984
  }
272968
- function splitPath(path49) {
272969
- var lastIndex = path49.lastIndexOf("/");
272985
+ function splitPath(path50) {
272986
+ var lastIndex = path50.lastIndexOf("/");
272970
272987
  if (lastIndex === -1) {
272971
- return { dirname: "", basename: path49 };
272988
+ return { dirname: "", basename: path50 };
272972
272989
  } else {
272973
272990
  return {
272974
- dirname: path49.substring(0, lastIndex),
272975
- basename: path49.substring(lastIndex + 1)
272991
+ dirname: path50.substring(0, lastIndex),
272992
+ basename: path50.substring(lastIndex + 1)
272976
272993
  };
272977
272994
  }
272978
272995
  }
272979
272996
  function joinPath() {
272980
- var nonEmptyPaths = Array.prototype.filter.call(arguments, function(path49) {
272981
- return path49;
272997
+ var nonEmptyPaths = Array.prototype.filter.call(arguments, function(path50) {
272998
+ return path50;
272982
272999
  });
272983
273000
  var relevantPaths = [];
272984
- nonEmptyPaths.forEach(function(path49) {
272985
- if (/^\//.test(path49)) {
272986
- relevantPaths = [path49];
273001
+ nonEmptyPaths.forEach(function(path50) {
273002
+ if (/^\//.test(path50)) {
273003
+ relevantPaths = [path50];
272987
273004
  } else {
272988
- relevantPaths.push(path49);
273005
+ relevantPaths.push(path50);
272989
273006
  }
272990
273007
  });
272991
273008
  return relevantPaths.join("/");
@@ -280388,9 +280405,9 @@ var require_office_xml_reader = __commonJS({
280388
280405
  return collapseAlternateContent(document2)[0];
280389
280406
  });
280390
280407
  }
280391
- function readXmlFromZipFile(docxFile, path49) {
280392
- if (docxFile.exists(path49)) {
280393
- return docxFile.read(path49, "utf-8").then(stripUtf8Bom).then(read);
280408
+ function readXmlFromZipFile(docxFile, path50) {
280409
+ if (docxFile.exists(path50)) {
280410
+ return docxFile.read(path50, "utf-8").then(stripUtf8Bom).then(read);
280394
280411
  } else {
280395
280412
  return promises4.resolve(null);
280396
280413
  }
@@ -282154,10 +282171,10 @@ var require_body_reader = __commonJS({
282154
282171
  }
282155
282172
  }
282156
282173
  function findEmbeddedImageFile(relationshipId) {
282157
- var path49 = uris.uriToZipEntryName("word", relationships.findTargetByRelationshipId(relationshipId));
282174
+ var path50 = uris.uriToZipEntryName("word", relationships.findTargetByRelationshipId(relationshipId));
282158
282175
  return {
282159
- path: path49,
282160
- read: docxFile.read.bind(docxFile, path49)
282176
+ path: path50,
282177
+ read: docxFile.read.bind(docxFile, path50)
282161
282178
  };
282162
282179
  }
282163
282180
  function readImage(imageFile, altText) {
@@ -282394,12 +282411,12 @@ var require_content_types_reader = __commonJS({
282394
282411
  }
282395
282412
  function contentTypes(overrides, extensionDefaults) {
282396
282413
  return {
282397
- findContentType: function(path49) {
282398
- var overrideContentType = overrides[path49];
282414
+ findContentType: function(path50) {
282415
+ var overrideContentType = overrides[path50];
282399
282416
  if (overrideContentType) {
282400
282417
  return overrideContentType;
282401
282418
  } else {
282402
- var pathParts = path49.split(".");
282419
+ var pathParts = path50.split(".");
282403
282420
  var extension = pathParts[pathParts.length - 1];
282404
282421
  if (extensionDefaults.hasOwnProperty(extension)) {
282405
282422
  return extensionDefaults[extension];
@@ -282648,12 +282665,12 @@ var require_comments_reader = __commonJS({
282648
282665
  var require_path_is_absolute = __commonJS({
282649
282666
  "node_modules/path-is-absolute/index.js"(exports2, module2) {
282650
282667
  "use strict";
282651
- function posix2(path49) {
282652
- return path49.charAt(0) === "/";
282668
+ function posix2(path50) {
282669
+ return path50.charAt(0) === "/";
282653
282670
  }
282654
- function win32(path49) {
282671
+ function win32(path50) {
282655
282672
  var splitDeviceRe = /^([a-zA-Z]:|[\\\/]{2}[^\\\/]+[\\\/]+[^\\\/]+)?([\\\/])?([\s\S]*?)$/;
282656
- var result2 = splitDeviceRe.exec(path49);
282673
+ var result2 = splitDeviceRe.exec(path50);
282657
282674
  var device = result2[1] || "";
282658
282675
  var isUnc = Boolean(device && device.charAt(1) !== ":");
282659
282676
  return Boolean(result2[2] || isUnc);
@@ -282687,19 +282704,19 @@ var require_files = __commonJS({
282687
282704
  }
282688
282705
  var base = options.relativeToFile ? dirname7(options.relativeToFile) : null;
282689
282706
  function read(uri, encoding) {
282690
- return resolveUri(uri).then(function(path49) {
282691
- return readFile12(path49, encoding).caught(function(error51) {
282707
+ return resolveUri(uri).then(function(path50) {
282708
+ return readFile12(path50, encoding).caught(function(error51) {
282692
282709
  var message = "could not open external image: '" + uri + "' (document directory: '" + base + "')\n" + error51.message;
282693
282710
  return promises4.reject(new Error(message));
282694
282711
  });
282695
282712
  });
282696
282713
  }
282697
282714
  function resolveUri(uri) {
282698
- var path49 = uriToPath(uri);
282699
- if (isAbsolutePath(path49)) {
282700
- return promises4.resolve(path49);
282715
+ var path50 = uriToPath(uri);
282716
+ if (isAbsolutePath(path50)) {
282717
+ return promises4.resolve(path50);
282701
282718
  } else if (base) {
282702
- return promises4.resolve(resolvePath(base, path49));
282719
+ return promises4.resolve(resolvePath(base, path50));
282703
282720
  } else {
282704
282721
  return promises4.reject(new Error("could not find external image '" + uri + "', path of input document is unknown"));
282705
282722
  }
@@ -282715,11 +282732,11 @@ var require_files = __commonJS({
282715
282732
  }
282716
282733
  var uri = url2.parse(uriString);
282717
282734
  if (isLocalFileUri(uri) || isRelativeUri(uri)) {
282718
- var path49 = decodeURIComponent(uri.path);
282719
- if (platform === "win32" && /^\/[a-z]:/i.test(path49)) {
282720
- return path49.slice(1);
282735
+ var path50 = decodeURIComponent(uri.path);
282736
+ if (platform === "win32" && /^\/[a-z]:/i.test(path50)) {
282737
+ return path50.slice(1);
282721
282738
  } else {
282722
- return path49;
282739
+ return path50;
282723
282740
  }
282724
282741
  } else {
282725
282742
  throw new Error("Could not convert URI to path: " + uriString);
@@ -282919,18 +282936,18 @@ var require_docx_reader = __commonJS({
282919
282936
  readElement: contentTypesReader.readContentTypesFromXml,
282920
282937
  defaultValue: contentTypesReader.defaultContentTypes
282921
282938
  });
282922
- function readNumberingFromZipFile(zipFile, path49, styles) {
282939
+ function readNumberingFromZipFile(zipFile, path50, styles) {
282923
282940
  return xmlFileReader({
282924
- filename: path49,
282941
+ filename: path50,
282925
282942
  readElement: function(element) {
282926
282943
  return numberingXml.readNumberingXml(element, { styles });
282927
282944
  },
282928
282945
  defaultValue: numberingXml.defaultNumbering
282929
282946
  })(zipFile);
282930
282947
  }
282931
- function readStylesFromZipFile(zipFile, path49) {
282948
+ function readStylesFromZipFile(zipFile, path50) {
282932
282949
  return xmlFileReader({
282933
- filename: path49,
282950
+ filename: path50,
282934
282951
  readElement: stylesReader.readStylesXml,
282935
282952
  defaultValue: stylesReader.defaultStyles
282936
282953
  })(zipFile);
@@ -282961,10 +282978,10 @@ var require_style_map = __commonJS({
282961
282978
  });
282962
282979
  }
282963
282980
  function updateRelationships(docxFile) {
282964
- var path49 = "word/_rels/document.xml.rels";
282981
+ var path50 = "word/_rels/document.xml.rels";
282965
282982
  var relationshipsUri = "http://schemas.openxmlformats.org/package/2006/relationships";
282966
282983
  var relationshipElementName = "{" + relationshipsUri + "}Relationship";
282967
- return docxFile.read(path49, "utf8").then(xml.readString).then(function(relationshipsContainer) {
282984
+ return docxFile.read(path50, "utf8").then(xml.readString).then(function(relationshipsContainer) {
282968
282985
  var relationships = relationshipsContainer.children;
282969
282986
  addOrUpdateElement(relationships, relationshipElementName, "Id", {
282970
282987
  "Id": "rMammothStyleMap",
@@ -282972,21 +282989,21 @@ var require_style_map = __commonJS({
282972
282989
  "Target": styleMapAbsolutePath
282973
282990
  });
282974
282991
  var namespaces = { "": relationshipsUri };
282975
- return docxFile.write(path49, xml.writeString(relationshipsContainer, namespaces));
282992
+ return docxFile.write(path50, xml.writeString(relationshipsContainer, namespaces));
282976
282993
  });
282977
282994
  }
282978
282995
  function updateContentTypes(docxFile) {
282979
- var path49 = "[Content_Types].xml";
282996
+ var path50 = "[Content_Types].xml";
282980
282997
  var contentTypesUri = "http://schemas.openxmlformats.org/package/2006/content-types";
282981
282998
  var overrideName = "{" + contentTypesUri + "}Override";
282982
- return docxFile.read(path49, "utf8").then(xml.readString).then(function(typesElement) {
282999
+ return docxFile.read(path50, "utf8").then(xml.readString).then(function(typesElement) {
282983
283000
  var children = typesElement.children;
282984
283001
  addOrUpdateElement(children, overrideName, "PartName", {
282985
283002
  "PartName": styleMapAbsolutePath,
282986
283003
  "ContentType": "text/prs.mammoth.style-map"
282987
283004
  });
282988
283005
  var namespaces = { "": contentTypesUri };
282989
- return docxFile.write(path49, xml.writeString(typesElement, namespaces));
283006
+ return docxFile.write(path50, xml.writeString(typesElement, namespaces));
282990
283007
  });
282991
283008
  }
282992
283009
  function addOrUpdateElement(elements, name29, identifyingAttribute, attributes) {
@@ -283678,9 +283695,9 @@ var require_document_to_html = __commonJS({
283678
283695
  };
283679
283696
  var paths = [];
283680
283697
  if (run.highlight !== null) {
283681
- var path49 = findHtmlPath({ type: "highlight", color: run.highlight });
283682
- if (path49) {
283683
- paths.push(path49);
283698
+ var path50 = findHtmlPath({ type: "highlight", color: run.highlight });
283699
+ if (path50) {
283700
+ paths.push(path50);
283684
283701
  }
283685
283702
  }
283686
283703
  if (run.isSmallCaps) {
@@ -283715,15 +283732,15 @@ var require_document_to_html = __commonJS({
283715
283732
  messages.push(unrecognisedStyleWarning("run", run));
283716
283733
  }
283717
283734
  paths.push(stylePath);
283718
- paths.forEach(function(path50) {
283719
- nodes = path50.wrap.bind(path50, nodes);
283735
+ paths.forEach(function(path51) {
283736
+ nodes = path51.wrap.bind(path51, nodes);
283720
283737
  });
283721
283738
  return nodes();
283722
283739
  }
283723
283740
  function findHtmlPathForRunProperty(elementType, defaultTagName) {
283724
- var path49 = findHtmlPath({ type: elementType });
283725
- if (path49) {
283726
- return path49;
283741
+ var path50 = findHtmlPath({ type: elementType });
283742
+ if (path50) {
283743
+ return path50;
283727
283744
  } else if (defaultTagName) {
283728
283745
  return htmlPaths.element(defaultTagName, {}, { fresh: false });
283729
283746
  } else {
@@ -287269,24 +287286,24 @@ function errMessage(err2) {
287269
287286
  return err2 instanceof Error ? err2.message : String(err2);
287270
287287
  }
287271
287288
  function readFileStructuredError(err2, displayPath) {
287272
- const path49 = displayPath;
287289
+ const path50 = displayPath;
287273
287290
  const msg = errMessage(err2);
287274
287291
  const code = nodeErrno(err2);
287275
287292
  if (code === "ENOENT") {
287276
- const p2 = path49 ?? "requested path";
287293
+ const p2 = path50 ?? "requested path";
287277
287294
  return {
287278
287295
  success: false,
287279
287296
  error: "file_not_found",
287280
- path: path49,
287297
+ path: path50,
287281
287298
  message: `No file at path "${p2}". Use list_files or explore_folder to find the correct path.`
287282
287299
  };
287283
287300
  }
287284
287301
  if (code === "EISDIR" || msg.includes("is a directory") || msg.toLowerCase().includes("not a file")) {
287285
- const p2 = path49 ?? "requested path";
287302
+ const p2 = path50 ?? "requested path";
287286
287303
  return {
287287
287304
  success: false,
287288
287305
  error: "not_a_file",
287289
- path: path49,
287306
+ path: path50,
287290
287307
  message: `Path "${p2}" is a directory, not a file. Use explore_folder or list_files.`
287291
287308
  };
287292
287309
  }
@@ -287294,7 +287311,7 @@ function readFileStructuredError(err2, displayPath) {
287294
287311
  return {
287295
287312
  success: false,
287296
287313
  error: "path_not_allowed",
287297
- path: path49,
287314
+ path: path50,
287298
287315
  message: msg
287299
287316
  };
287300
287317
  }
@@ -287302,7 +287319,7 @@ function readFileStructuredError(err2, displayPath) {
287302
287319
  return {
287303
287320
  success: false,
287304
287321
  error: "path_not_allowed",
287305
- path: path49,
287322
+ path: path50,
287306
287323
  message: msg
287307
287324
  };
287308
287325
  }
@@ -289503,12 +289520,12 @@ function getMCPToolHeaderBindings(inputSchema) {
289503
289520
  const bindings = [];
289504
289521
  const headerNames = /* @__PURE__ */ new Set();
289505
289522
  let error51;
289506
- const visit3 = (value, path49, staticallyReachable) => {
289523
+ const visit3 = (value, path50, staticallyReachable) => {
289507
289524
  if (error51 != null || !isRecord(value)) {
289508
289525
  return;
289509
289526
  }
289510
289527
  if ("x-mcp-header" in value) {
289511
- if (!staticallyReachable || path49.length === 0) {
289528
+ if (!staticallyReachable || path50.length === 0) {
289512
289529
  error51 = "x-mcp-header is not on a statically reachable property";
289513
289530
  return;
289514
289531
  }
@@ -289528,7 +289545,7 @@ function getMCPToolHeaderBindings(inputSchema) {
289528
289545
  return;
289529
289546
  }
289530
289547
  headerNames.add(normalizedHeaderName);
289531
- bindings.push({ headerName, path: path49, valueType });
289548
+ bindings.push({ headerName, path: path50, valueType });
289532
289549
  }
289533
289550
  for (const [key, child] of Object.entries(value)) {
289534
289551
  if (key === "x-mcp-header") {
@@ -289536,19 +289553,19 @@ function getMCPToolHeaderBindings(inputSchema) {
289536
289553
  }
289537
289554
  if (key === "properties" && isRecord(child)) {
289538
289555
  for (const [propertyName, propertySchema] of Object.entries(child)) {
289539
- visit3(propertySchema, [...path49, propertyName], staticallyReachable);
289556
+ visit3(propertySchema, [...path50, propertyName], staticallyReachable);
289540
289557
  }
289541
289558
  } else {
289542
- visit3(child, path49, false);
289559
+ visit3(child, path50, false);
289543
289560
  }
289544
289561
  }
289545
289562
  };
289546
289563
  visit3(inputSchema, [], true);
289547
289564
  return error51 == null ? { success: true, bindings } : { success: false, error: error51 };
289548
289565
  }
289549
- function getValueAtPath(value, path49) {
289566
+ function getValueAtPath(value, path50) {
289550
289567
  let current = value;
289551
- for (const segment of path49) {
289568
+ for (const segment of path50) {
289552
289569
  if (!isRecord(current)) {
289553
289570
  return void 0;
289554
289571
  }
@@ -304862,32 +304879,32 @@ var require_URL = __commonJS({
304862
304879
  else
304863
304880
  return basepath.substring(0, lastslash + 1) + refpath;
304864
304881
  }
304865
- function remove_dot_segments(path49) {
304866
- if (!path49) return path49;
304882
+ function remove_dot_segments(path50) {
304883
+ if (!path50) return path50;
304867
304884
  var output = "";
304868
- while (path49.length > 0) {
304869
- if (path49 === "." || path49 === "..") {
304870
- path49 = "";
304885
+ while (path50.length > 0) {
304886
+ if (path50 === "." || path50 === "..") {
304887
+ path50 = "";
304871
304888
  break;
304872
304889
  }
304873
- var twochars = path49.substring(0, 2);
304874
- var threechars = path49.substring(0, 3);
304875
- var fourchars = path49.substring(0, 4);
304890
+ var twochars = path50.substring(0, 2);
304891
+ var threechars = path50.substring(0, 3);
304892
+ var fourchars = path50.substring(0, 4);
304876
304893
  if (threechars === "../") {
304877
- path49 = path49.substring(3);
304894
+ path50 = path50.substring(3);
304878
304895
  } else if (twochars === "./") {
304879
- path49 = path49.substring(2);
304896
+ path50 = path50.substring(2);
304880
304897
  } else if (threechars === "/./") {
304881
- path49 = "/" + path49.substring(3);
304882
- } else if (twochars === "/." && path49.length === 2) {
304883
- path49 = "/";
304884
- } else if (fourchars === "/../" || threechars === "/.." && path49.length === 3) {
304885
- path49 = "/" + path49.substring(4);
304898
+ path50 = "/" + path50.substring(3);
304899
+ } else if (twochars === "/." && path50.length === 2) {
304900
+ path50 = "/";
304901
+ } else if (fourchars === "/../" || threechars === "/.." && path50.length === 3) {
304902
+ path50 = "/" + path50.substring(4);
304886
304903
  output = output.replace(/\/?[^\/]*$/, "");
304887
304904
  } else {
304888
- var segment = path49.match(/(\/?([^\/]*))/)[0];
304905
+ var segment = path50.match(/(\/?([^\/]*))/)[0];
304889
304906
  output += segment;
304890
- path49 = path49.substring(segment.length);
304907
+ path50 = path50.substring(segment.length);
304891
304908
  }
304892
304909
  }
304893
304910
  return output;
@@ -319402,8 +319419,8 @@ __export(github_exports, {
319402
319419
  pollGithub: () => pollGithub,
319403
319420
  resetGithubLoginCacheForTests: () => resetGithubLoginCacheForTests
319404
319421
  });
319405
- async function ghGet(path49, token, fetchImpl) {
319406
- const res = await fetchImpl(`${GITHUB_API_BASE}${path49}`, {
319422
+ async function ghGet(path50, token, fetchImpl) {
319423
+ const res = await fetchImpl(`${GITHUB_API_BASE}${path50}`, {
319407
319424
  headers: {
319408
319425
  Authorization: `Bearer ${token}`,
319409
319426
  Accept: "application/vnd.github+json",
@@ -319411,7 +319428,7 @@ async function ghGet(path49, token, fetchImpl) {
319411
319428
  }
319412
319429
  });
319413
319430
  if (!res.ok) {
319414
- throw new Error(`GitHub ${path49} \u2192 ${res.status} ${res.statusText}`);
319431
+ throw new Error(`GitHub ${path50} \u2192 ${res.status} ${res.statusText}`);
319415
319432
  }
319416
319433
  return res.json();
319417
319434
  }
@@ -322635,10 +322652,10 @@ var init_automations2 = __esm({
322635
322652
  }
322636
322653
  });
322637
322654
 
322638
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/node_modules/axe-core/axe.min.js
322655
+ // raw-file:/home/runner/work/Atlarix/Atlarix/node_modules/axe-core/axe.min.js
322639
322656
  var axe_min_default;
322640
322657
  var init_axe_min = __esm({
322641
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/node_modules/axe-core/axe.min.js"() {
322658
+ "raw-file:/home/runner/work/Atlarix/Atlarix/node_modules/axe-core/axe.min.js"() {
322642
322659
  axe_min_default = `/*! axe v4.13.0
322643
322660
  * Copyright (c) 2015 - 2026 Deque Systems, Inc.
322644
322661
  *
@@ -322654,10 +322671,10 @@ var init_axe_min = __esm({
322654
322671
  }
322655
322672
  });
322656
322673
 
322657
- // raw-file:/Users/amariah/Documents/Github/AI/Atlarix/node_modules/web-vitals/dist/web-vitals.iife.js
322674
+ // raw-file:/home/runner/work/Atlarix/Atlarix/node_modules/web-vitals/dist/web-vitals.iife.js
322658
322675
  var web_vitals_iife_default;
322659
322676
  var init_web_vitals_iife = __esm({
322660
- "raw-file:/Users/amariah/Documents/Github/AI/Atlarix/node_modules/web-vitals/dist/web-vitals.iife.js"() {
322677
+ "raw-file:/home/runner/work/Atlarix/Atlarix/node_modules/web-vitals/dist/web-vitals.iife.js"() {
322661
322678
  web_vitals_iife_default = 'var webVitals=function(e){"use strict";let t=-1;const n=e=>{addEventListener("pageshow",n=>{n.persisted&&(t=n.timeStamp,e(n))},!0)},i=(e,t,n,i)=>{let s,o;return r=>{t.value>=0&&(r||i)&&(o=t.value-(s??0),(o||void 0===s)&&(s=t.value,t.delta=o,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},s=e=>{requestAnimationFrame(()=>requestAnimationFrame(e))},o=()=>{const e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},r=()=>o()?.activationStart??0,c=(e,n=-1)=>{const i=o();let s="navigate";t>=0?s="back-forward-cache":i&&(document.prerendering||r()>0?s="prerender":document.wasDiscarded?s="restore":i.type&&(s=i.type.replace(/_/g,"-")));return{name:e,value:n,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:s}},a=new WeakMap;function d(e,t){let n=a.get(t);return n||(n=new WeakMap,a.set(t,n)),n.get(e)||n.set(e,new t),n.get(e)}class h{t;i=0;o=[];h(e){if(e.hadRecentInput)return;const t=this.o[0],n=this.o.at(-1);this.i&&t&&n&&e.startTime-n.startTime<1e3&&e.startTime-t.startTime<5e3?(this.i+=e.value,this.o.push(e)):(this.i=e.value,this.o=[e]),this.t?.(e)}}const f=(e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const i=new PerformanceObserver(e=>{queueMicrotask(()=>{t(e.getEntries())})});return i.observe({type:e,buffered:!0,...n}),i}}catch{}},l=e=>{let t=!1;return()=>{t||(e(),t=!0)}};let u=-1;const m=new Set,g=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,p=e=>{if("hidden"===document.visibilityState){if("visibilitychange"===e.type)for(const e of m)e();isFinite(u)||(u="visibilitychange"===e.type?e.timeStamp:0,removeEventListener("prerenderingchange",p,!0))}},v=()=>{if(u<0){const e=r(),t=document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(t=>"hidden"===t.name&&t.startTime>=e)?.startTime;u=t??g(),addEventListener("visibilitychange",p,!0),addEventListener("prerenderingchange",p,!0),n(()=>{setTimeout(()=>{u=g()})})}return{get firstHiddenTime(){return u},onHidden(e){m.add(e)}}},y=e=>{document.prerendering?addEventListener("prerenderingchange",e,!0):e()},T=[1800,3e3],b=(e,t={})=>{y(()=>{const o=v();let a,d=c("FCP");const h=f("paint",e=>{for(const t of e)"first-contentful-paint"===t.name&&(h.disconnect(),t.startTime<o.firstHiddenTime&&(d.value=Math.max(t.startTime-r(),0),d.entries.push(t),a(!0)))});h&&(a=i(e,d,T,t.reportAllChanges),n(n=>{d=c("FCP"),a=i(e,d,T,t.reportAllChanges),s(()=>{d.value=performance.now()-n.timeStamp,a(!0)})}))})},E=[.1,.25];let L=0,P=1/0,_=0;const M=e=>{for(const t of e)t.interactionId&&(P=Math.min(P,t.interactionId),_=Math.max(_,t.interactionId),L=_?(_-P)/7+1:0)};let w;const C=()=>w?L:performance.interactionCount??0,I=()=>{"interactionCount"in performance||w||(w=f("event",M,{durationThreshold:0}))};let F=0;class k{l=[];u=new Map;m;p;v(){F=C(),this.l.length=0,this.u.clear()}T(){const e=Math.min(this.l.length-1,Math.floor((C()-F)/50));return this.l[e]}h(e){if(this.m?.(e),!e.interactionId&&"first-input"!==e.entryType)return;const t=this.l.at(-1);let n=this.u.get(e.interactionId);if(n||this.l.length<10||e.duration>t.L){if(n?e.duration>n.L?(n.entries=[e],n.L=e.duration):e.duration===n.L&&e.startTime===n.entries[0].startTime&&n.entries.push(e):(n={id:e.interactionId,entries:[e],L:e.duration},this.u.set(n.id,n),this.l.push(n)),this.l.sort((e,t)=>t.L-e.L),this.l.length>10){const e=this.l.splice(10);for(const t of e)this.u.delete(t.id)}this.p?.(n)}}}const A=e=>{const t=globalThis.requestIdleCallback||setTimeout,n=globalThis.cancelIdleCallback||clearTimeout;if("hidden"===document.visibilityState)e();else{const i=l(e);let s=-1;const o=()=>{n(s),i()};addEventListener("visibilitychange",o,{once:!0,capture:!0}),s=t(()=>{removeEventListener("visibilitychange",o,{capture:!0}),i()})}},B=[200,500];class S{m;h(e){this.m?.(e)}}const q=[2500,4e3],N=[800,1800],H=e=>{document.prerendering?y(()=>H(e)):"complete"!==document.readyState?addEventListener("load",()=>H(e),!0):setTimeout(e)};return e.CLSThresholds=E,e.FCPThresholds=T,e.INPThresholds=B,e.LCPThresholds=q,e.TTFBThresholds=N,e.onCLS=(e,t={})=>{const o=v();b(l(()=>{let r,a=c("CLS",0);const l=d(t,h),u=e=>{for(const t of e)l.h(t);l.i>a.value&&(a.value=l.i,a.entries=l.o,r())},m=f("layout-shift",u);m&&(r=i(e,a,E,t.reportAllChanges),o.onHidden(()=>{u(m.takeRecords()),r(!0)}),n(()=>{l.i=0,a=c("CLS",0),r=i(e,a,E,t.reportAllChanges),s(r)}),setTimeout(r))}))},e.onFCP=b,e.onINP=(e,t={})=>{if(!globalThis.PerformanceEventTiming||!("interactionId"in PerformanceEventTiming.prototype))return;const s=v();y(()=>{I();let o,r=c("INP");const a=d(t,k),h=e=>{A(()=>{for(const t of e)a.h(t);const t=a.T();t&&t.L!==r.value&&(r.value=t.L,r.entries=t.entries,o())})},l=f("event",h,{durationThreshold:t.durationThreshold??40});o=i(e,r,B,t.reportAllChanges),l&&(l.observe({type:"first-input",buffered:!0}),s.onHidden(()=>{h(l.takeRecords()),o(!0)}),n(()=>{a.v(),r=c("INP"),o=i(e,r,B,t.reportAllChanges)}))})},e.onLCP=(e,t={})=>{y(()=>{const o=v();let a,h=c("LCP");const u=d(t,S),m=e=>{t.reportAllChanges||(e=e.slice(-1));for(const t of e)u.h(t),t.startTime<o.firstHiddenTime&&(h.value=Math.max(t.startTime-r(),0),h.entries=[t],a())},g=f("largest-contentful-paint",m);if(g){a=i(e,h,q,t.reportAllChanges);const o=l(()=>{m(g.takeRecords()),g.disconnect(),a(!0)}),r=e=>{e.isTrusted&&(A(o),removeEventListener(e.type,r,{capture:!0}))};for(const e of["keydown","click","visibilitychange"])addEventListener(e,r,{capture:!0});n(n=>{h=c("LCP"),a=i(e,h,q,t.reportAllChanges),s(()=>{h.value=performance.now()-n.timeStamp,a(!0)})})}})},e.onTTFB=(e,t={})=>{let s=c("TTFB"),a=i(e,s,N,t.reportAllChanges);H(()=>{const d=o();d&&(s.value=Math.max(d.responseStart-r(),0),s.entries=[d],a(!0),n(()=>{s=c("TTFB",0),a=i(e,s,N,t.reportAllChanges),a(!0)}))})},e}({});\n';
322662
322679
  }
322663
322680
  });
@@ -326392,12 +326409,12 @@ ${body}${more}`,
326392
326409
  LIMIT ${maxHits}
326393
326410
  `);
326394
326411
  for (const h3 of hits) {
326395
- const path49 = hitPath(titleById.get(h3.session_id) ?? h3.session_id, h3.turn, h3.role);
326412
+ const path50 = hitPath(titleById.get(h3.session_id) ?? h3.session_id, h3.turn, h3.role);
326396
326413
  groups.push({
326397
- file: path49,
326414
+ file: path50,
326398
326415
  matchCount: countOccurrences2(h3.content ?? "", query)
326399
326416
  });
326400
- lines.push(`${path49}
326417
+ lines.push(`${path50}
326401
326418
  ${snippetAround(h3.content ?? "", query)}`);
326402
326419
  }
326403
326420
  const totalHits = hits.length;
@@ -326877,16 +326894,16 @@ var init_run_command_guidance = __esm({
326877
326894
  });
326878
326895
 
326879
326896
  // src/lib/agent/mutation-verify.ts
326880
- function recordUnverifiedEdit(turnId, path49) {
326897
+ function recordUnverifiedEdit(turnId, path50) {
326881
326898
  let set2 = unverifiedEditsByTurn.get(turnId);
326882
326899
  if (!set2) {
326883
326900
  set2 = /* @__PURE__ */ new Set();
326884
326901
  unverifiedEditsByTurn.set(turnId, set2);
326885
326902
  }
326886
- set2.add(path49);
326903
+ set2.add(path50);
326887
326904
  }
326888
- function clearUnverifiedEdit(turnId, path49) {
326889
- unverifiedEditsByTurn.get(turnId)?.delete(path49);
326905
+ function clearUnverifiedEdit(turnId, path50) {
326906
+ unverifiedEditsByTurn.get(turnId)?.delete(path50);
326890
326907
  }
326891
326908
  function getUnverifiedEditFeedback(turnId) {
326892
326909
  if (turnId == null) return null;
@@ -328292,6 +328309,16 @@ async function simpleStreamText(ctx, deps, {
328292
328309
  inputTokens: split?.inputTokens ?? null,
328293
328310
  outputTokens: split?.outputTokens ?? 0,
328294
328311
  totalTokens: total ?? (split?.inputTokens ?? 0) + (split?.outputTokens ?? 0),
328312
+ // The cache split, which `inputOutputTokensFromUsage`
328313
+ // already resolves and this emit used to discard. Without
328314
+ // it a consumer sees only the gross input count and has no
328315
+ // way to price it: a cached read costs a small fraction of
328316
+ // a fresh one — on DeepSeek roughly a thirtieth — so a
328317
+ // trajectory reporting gross input alone overstates spend
328318
+ // by more than an order of magnitude on a long agent run,
328319
+ // which is exactly the sort of run this is used for.
328320
+ ...split?.cachedInputTokens != null ? { cachedInputTokens: split.cachedInputTokens } : {},
328321
+ ...split?.cacheCreationInputTokens != null ? { cacheCreationInputTokens: split.cacheCreationInputTokens } : {},
328295
328322
  toolBuckets: { ...turnBuckets }
328296
328323
  });
328297
328324
  }
@@ -329115,10 +329142,10 @@ async function hasConfiguredGitIdentity(workspacePath) {
329115
329142
  return result2.exitCode === 0 && result2.stdout.trim().length > 0;
329116
329143
  }
329117
329144
  async function getCurrentCommitHash({
329118
- path: path49,
329145
+ path: path50,
329119
329146
  ref = "HEAD"
329120
329147
  }) {
329121
- const gitDir = resolveGitDir(path49);
329148
+ const gitDir = resolveGitDir(path50);
329122
329149
  if (!gitDir) return "";
329123
329150
  const result2 = await exec(["rev-parse", ref], gitDir);
329124
329151
  if (isGitMissingResult(result2)) {
@@ -329524,10 +329551,10 @@ var init_interceptor = __esm({
329524
329551
  * Update workspace path and ID (e.g. after create_workspace in same turn).
329525
329552
  * Ensures subsequent run_command/write_file in this session use the new project root.
329526
329553
  */
329527
- setWorkspace(path49, id) {
329528
- this.workspacePath = path49;
329554
+ setWorkspace(path50, id) {
329555
+ this.workspacePath = path50;
329529
329556
  if (id != null) this.workspaceId = id;
329530
- logger82.log(`[PermissionInterceptor] Workspace updated to: ${path49} (id: ${id})`);
329557
+ logger82.log(`[PermissionInterceptor] Workspace updated to: ${path50} (id: ${id})`);
329531
329558
  }
329532
329559
  // ════════════════════════════════════════════════════════════════════════════
329533
329560
  // DETECTION & PARSING
@@ -329877,7 +329904,7 @@ var init_interceptor = __esm({
329877
329904
  }
329878
329905
  }
329879
329906
  const preview = operation.request.preview;
329880
- const path49 = preview?.path;
329907
+ const path50 = preview?.path;
329881
329908
  const fileOps = /* @__PURE__ */ new Set([
329882
329909
  "write_file",
329883
329910
  "write_multiple_files",
@@ -329886,11 +329913,11 @@ var init_interceptor = __esm({
329886
329913
  "insert_code",
329887
329914
  "delete_lines"
329888
329915
  ]);
329889
- if (path49 && fileOps.has(operation.request.operation)) {
329916
+ if (path50 && fileOps.has(operation.request.operation)) {
329890
329917
  const opType = preview.type === "create" ? "create" : preview.type === "delete" ? "delete" : "update";
329891
329918
  return {
329892
329919
  success: true,
329893
- path: path49,
329920
+ path: path50,
329894
329921
  operation: opType,
329895
329922
  oldContent: preview.oldContent ?? "",
329896
329923
  newContent: preview.content ?? "",
@@ -329902,8 +329929,8 @@ var init_interceptor = __esm({
329902
329929
  ...preview.notice ? { output: preview.notice } : {}
329903
329930
  };
329904
329931
  }
329905
- if (path49) {
329906
- return { success: true, path: path49 };
329932
+ if (path50) {
329933
+ return { success: true, path: path50 };
329907
329934
  }
329908
329935
  if (operation.request.operation === "automation_write") {
329909
329936
  const autoPreview = operation.request.preview;
@@ -332593,6 +332620,10 @@ async function runBuildBranch(ctx, deps) {
332593
332620
  let activityStatus = "done";
332594
332621
  let toolResultForActivity;
332595
332622
  const isStreamTool = toolName === "stream_terminal_output";
332623
+ const recordActivityResult = (value) => {
332624
+ toolResultForActivity = value;
332625
+ return value;
332626
+ };
332596
332627
  const uiToolLabel = getToolActivityLabel(toolName);
332597
332628
  if (!isStreamTool) {
332598
332629
  safeSend(event.sender, "chat:tool:start", {
@@ -332937,34 +332968,37 @@ async function runBuildBranch(ctx, deps) {
332937
332968
  permRequest.operation,
332938
332969
  execResult
332939
332970
  );
332940
- return jsonAfterSuccessfulExec(execResult);
332971
+ return recordActivityResult(jsonAfterSuccessfulExec(execResult));
332941
332972
  }
332942
332973
  if (execResult.exitCode !== void 0) {
332943
332974
  logger86.log(
332944
332975
  `[Build Mode] Autonomous exec command failed: ${operationId} (exit ${execResult.exitCode})`
332945
332976
  );
332946
- return JSON.stringify({
332977
+ activityStatus = "error";
332978
+ return recordActivityResult(JSON.stringify({
332947
332979
  success: false,
332948
332980
  error: execResult.error || `Command failed with exit code ${execResult.exitCode}`,
332949
332981
  exitCode: execResult.exitCode,
332950
332982
  output: execResult.output,
332951
332983
  operation: permRequest.operation,
332952
332984
  path: permRequest.preview.path || permRequest.preview.command
332953
- });
332985
+ }));
332954
332986
  }
332955
- return JSON.stringify({
332987
+ activityStatus = "error";
332988
+ return recordActivityResult(JSON.stringify({
332956
332989
  success: false,
332957
332990
  error: execMeta.error ?? execResult.error ?? "Execution failed",
332958
332991
  operation: permRequest.operation,
332959
332992
  path: permRequest.preview.path
332960
- });
332993
+ }));
332961
332994
  } catch (error51) {
332962
332995
  logger86.error(`[Build Mode] Autonomous permission error: ${operationId}`, error51);
332963
- return JSON.stringify({
332996
+ activityStatus = "error";
332997
+ return recordActivityResult(JSON.stringify({
332964
332998
  success: false,
332965
332999
  error: `Permission request failed: ${error51 instanceof Error ? error51.message : String(error51)}`,
332966
333000
  timedOut: true
332967
- });
333001
+ }));
332968
333002
  }
332969
333003
  }
332970
333004
  const __enrichT0 = Date.now();
@@ -333004,12 +333038,13 @@ async function runBuildBranch(ctx, deps) {
333004
333038
  if (approved) {
333005
333039
  const execResult = permissionInterceptor.getExecutionResult(operationId);
333006
333040
  logger86.log(`[Build Mode] Permission approved: ${operationId}`);
333007
- return jsonAfterSuccessfulExec(execResult);
333041
+ return recordActivityResult(jsonAfterSuccessfulExec(execResult));
333008
333042
  } else {
333009
333043
  const execResult = permissionInterceptor.getExecutionResult(operationId);
333010
333044
  if (execResult.exitCode !== void 0) {
333011
333045
  logger86.log(`[Build Mode] Command failed: ${operationId} (exit ${execResult.exitCode})`);
333012
- return JSON.stringify({
333046
+ activityStatus = "error";
333047
+ return recordActivityResult(JSON.stringify({
333013
333048
  success: false,
333014
333049
  error: execResult.error || `Command failed with exit code ${execResult.exitCode}`,
333015
333050
  exitCode: execResult.exitCode,
@@ -333017,24 +333052,26 @@ async function runBuildBranch(ctx, deps) {
333017
333052
  // Include terminal output for AI context
333018
333053
  operation: permRequest.operation,
333019
333054
  path: permRequest.preview.path || permRequest.preview.command
333020
- });
333055
+ }));
333021
333056
  } else {
333022
333057
  logger86.log(`[Build Mode] Permission denied: ${operationId}`);
333023
- return JSON.stringify({
333058
+ activityStatus = "error";
333059
+ return recordActivityResult(JSON.stringify({
333024
333060
  success: false,
333025
333061
  error: "Permission denied by user",
333026
333062
  operation: permRequest.operation,
333027
333063
  path: permRequest.preview.path
333028
- });
333064
+ }));
333029
333065
  }
333030
333066
  }
333031
333067
  } catch (error51) {
333032
333068
  if (abortController.signal.aborted) throw error51;
333033
333069
  logger86.error(`[Build Mode] Permission error: ${operationId}`, error51);
333034
- return JSON.stringify({
333070
+ activityStatus = "error";
333071
+ return recordActivityResult(JSON.stringify({
333035
333072
  success: false,
333036
333073
  error: `Permission request failed: ${error51 instanceof Error ? error51.message : String(error51)}`
333037
- });
333074
+ }));
333038
333075
  }
333039
333076
  }
333040
333077
  }
@@ -333995,7 +334032,16 @@ async function finalizeTurn(ctx, deps) {
333995
334032
  } : null,
333996
334033
  ctx.turnActualCostUsd > 0 ? ctx.turnActualCostUsd : null
333997
334034
  );
333998
- return cost != null ? { turnCostUsd: cost } : {};
334035
+ return {
334036
+ ...cost != null ? { turnCostUsd: cost } : {},
334037
+ // The cache split, alongside the cost derived FROM it. The cost
334038
+ // is only available where a rate is known — an unpriced model
334039
+ // returns null — so a consumer that has to compute its own
334040
+ // needs the counts, and `turnTokens` alone cannot be priced:
334041
+ // a cached read is a fraction of a fresh one.
334042
+ ...ctx.turnCachedInputTokens > 0 ? { turnCachedInputTokens: ctx.turnCachedInputTokens } : {},
334043
+ ...ctx.turnCacheCreationTokens > 0 ? { turnCacheCreationTokens: ctx.turnCacheCreationTokens } : {}
334044
+ };
333999
334045
  })(),
334000
334046
  // v12 0.2 (B2): renderer passes this through to the session
334001
334047
  // store as extras.modelContent when persisting the assistant
@@ -336191,6 +336237,8 @@ var init_chat_stream_handlers = __esm({
336191
336237
 
336192
336238
  // src/headless/atlarix-headless.mts
336193
336239
  import fs39 from "node:fs";
336240
+ import path49 from "node:path";
336241
+ import { fileURLToPath as fileURLToPath2 } from "node:url";
336194
336242
 
336195
336243
  // src/headless/headless-runner.ts
336196
336244
  init_fake_sender();
@@ -336241,12 +336289,19 @@ async function autoApprove(opts) {
336241
336289
 
336242
336290
  // src/headless/trajectory-writer.ts
336243
336291
  init_thinking_tags();
336292
+ init_redact_secrets();
336244
336293
  import fs from "node:fs";
336245
336294
  var TRAJECTORY_SCHEMA_VERSION = 1;
336246
336295
  var THOUGHT_BLOCK_RE = /<(think|thinking|reasoning|redacted_thinking)>([\s\S]*?)<\/\1>/gi;
336247
336296
  var TOOL_TAGS = "atlarix-tool-call|atlarix-mcp-tool-call|atlarix-tool-result|atlarix-mcp-tool-result";
336248
- var TOOL_BLOCK_RE = new RegExp(`<(${TOOL_TAGS})>[\\s\\S]*?</\\1>`, "gi");
336249
- var TOOL_ORPHAN_TAG_RE = new RegExp(`</?(?:${TOOL_TAGS})>`, "gi");
336297
+ var TOOL_BLOCK_RE = new RegExp(
336298
+ `<(${TOOL_TAGS})(?:\\s[^>]*)?>[\\s\\S]*?</\\1\\s*>`,
336299
+ "gi"
336300
+ );
336301
+ var TOOL_ORPHAN_TAG_RE = new RegExp(
336302
+ `</?(?:${TOOL_TAGS})(?:\\s[^>]*)?>`,
336303
+ "gi"
336304
+ );
336250
336305
  function stripToolMarkup(content) {
336251
336306
  return content.replace(TOOL_BLOCK_RE, "").replace(TOOL_ORPHAN_TAG_RE, "");
336252
336307
  }
@@ -336266,7 +336321,8 @@ function createTrajectoryWriter(filePath, meta3) {
336266
336321
  const writeLine = (event) => {
336267
336322
  if (closed) return;
336268
336323
  try {
336269
- fs.writeSync(fd2, `${JSON.stringify({ ts: Date.now(), ...event })}
336324
+ const line = redactSecretsInText(JSON.stringify({ ts: Date.now(), ...event }));
336325
+ fs.writeSync(fd2, `${line}
336270
336326
  `);
336271
336327
  } catch {
336272
336328
  }
@@ -336295,6 +336351,7 @@ function createTrajectoryWriter(filePath, meta3) {
336295
336351
  switch (send.channel) {
336296
336352
  case "chat:activity": {
336297
336353
  if (p2.type !== "tool_use") return;
336354
+ if (!p2.toolCallId && !p2.toolArgs && p2.resultText === void 0) return;
336298
336355
  writeLine({
336299
336356
  type: "tool_use",
336300
336357
  ts: p2.timestamp ?? Date.now(),
@@ -336320,7 +336377,14 @@ function createTrajectoryWriter(filePath, meta3) {
336320
336377
  type: "token_usage",
336321
336378
  inputTokens: p2.inputTokens,
336322
336379
  outputTokens: p2.outputTokens,
336323
- totalTokens: p2.totalTokens
336380
+ totalTokens: p2.totalTokens,
336381
+ // Of `inputTokens`, the share served from the provider's prompt
336382
+ // cache. Load-bearing for anyone pricing this file: a cached read is
336383
+ // a fraction of a fresh one, so gross input alone reads as far more
336384
+ // spend than actually occurred — measured at ~75% hit rate on a real
336385
+ // agent turn, where ignoring it overstates cost roughly 30x.
336386
+ ...p2.cachedInputTokens != null ? { cachedInputTokens: p2.cachedInputTokens } : {},
336387
+ ...p2.cacheCreationInputTokens != null ? { cacheCreationInputTokens: p2.cacheCreationInputTokens } : {}
336324
336388
  });
336325
336389
  return;
336326
336390
  }
@@ -336332,6 +336396,8 @@ function createTrajectoryWriter(filePath, meta3) {
336332
336396
  type: "turn_end",
336333
336397
  turnTokens: p2.turnTokens,
336334
336398
  turnCostUsd: p2.turnCostUsd,
336399
+ turnCachedInputTokens: p2.turnCachedInputTokens,
336400
+ turnCacheCreationTokens: p2.turnCacheCreationTokens,
336335
336401
  totalTokens: p2.totalTokens,
336336
336402
  reasoningTokens: p2.reasoningTokens,
336337
336403
  auxTokens: p2.auxTokens,
@@ -336497,7 +336563,12 @@ async function runHeadlessAgent(opts) {
336497
336563
  }
336498
336564
 
336499
336565
  // src/headless/atlarix-headless.mts
336500
- var VERSION15 = false ? "dev" : "14.39.2";
336566
+ if (!process.env.ATLARIX_MODELS_SNAPSHOT) {
336567
+ const here = path49.dirname(fileURLToPath2(import.meta.url));
336568
+ const shipped = path49.join(here, "models-snapshot.json.gz");
336569
+ if (fs39.existsSync(shipped)) process.env.ATLARIX_MODELS_SNAPSHOT = shipped;
336570
+ }
336571
+ var VERSION15 = false ? "dev" : "14.39.3";
336501
336572
  if (process.argv[2] === "run") process.argv.splice(2, 1);
336502
336573
  function arg(name29) {
336503
336574
  const i4 = process.argv.indexOf(`--${name29}`);