@sourcegraph/amp 0.0.1748548891-gfb902f → 0.0.1748581425-ga69905

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/amp.js +2 -2
  2. package/dist/{color-Bs5UNAQf.js → color-ldrInzKB.js} +4901 -4944
  3. package/dist/color-ldrInzKB.js.map +1 -0
  4. package/dist/{create_file.node-DhqtPKLL.js → create_file.node-pHiRAwrz.js} +2 -2
  5. package/dist/{create_file.node-DhqtPKLL.js.map → create_file.node-pHiRAwrz.js.map} +1 -1
  6. package/dist/{edit_file.node-_jUhb0Ej.js → edit_file.node-nAUP_3bW.js} +3 -3
  7. package/dist/{edit_file.node-_jUhb0Ej.js.map → edit_file.node-nAUP_3bW.js.map} +1 -1
  8. package/dist/{executable-De4-Iq-q.js → executable-D9Dr9Z2U.js} +2 -2
  9. package/dist/{executable-De4-Iq-q.js.map → executable-D9Dr9Z2U.js.map} +1 -1
  10. package/dist/{files-Cahfcbk6.js → files-C7vv9BDa.js} +2 -2
  11. package/dist/{files-Cahfcbk6.js.map → files-C7vv9BDa.js.map} +1 -1
  12. package/dist/{glob.node-DMC-mbKX.js → glob.node-Mg2vA9hM.js} +3 -3
  13. package/dist/{glob.node-DMC-mbKX.js.map → glob.node-Mg2vA9hM.js.map} +1 -1
  14. package/dist/{list_directory.node-BiNTY-zJ.js → list_directory.node-BQq4XK-y.js} +2 -2
  15. package/dist/{list_directory.node-BiNTY-zJ.js.map → list_directory.node-BQq4XK-y.js.map} +1 -1
  16. package/dist/{load-profile-Gn3gm8Ha.js → load-profile-D7KCxFft.js} +2 -2
  17. package/dist/{load-profile-Gn3gm8Ha.js.map → load-profile-D7KCxFft.js.map} +1 -1
  18. package/dist/{main-e0U8PkGs.js → main-Dtt0cp07.js} +24 -18
  19. package/dist/main-Dtt0cp07.js.map +1 -0
  20. package/dist/{node-B-VoRsW5.js → node-C2XZ5nUw.js} +2 -2
  21. package/dist/{node-B-VoRsW5.js.map → node-C2XZ5nUw.js.map} +1 -1
  22. package/dist/{node-IbYXJXx-.js → node-CCnEMObW.js} +3 -3
  23. package/dist/{node-IbYXJXx-.js.map → node-CCnEMObW.js.map} +1 -1
  24. package/dist/{node-T5hkN-Bz.js → node-Ca_JziST.js} +3 -3
  25. package/dist/{node-T5hkN-Bz.js.map → node-Ca_JziST.js.map} +1 -1
  26. package/dist/{node-CD0uLwWO.js → node-CjTxUnpu.js} +3 -3
  27. package/dist/{node-CD0uLwWO.js.map → node-CjTxUnpu.js.map} +1 -1
  28. package/dist/{node-CKT_qFZU.js → node-Zpxvi1Je.js} +3 -3
  29. package/dist/{node-CKT_qFZU.js.map → node-Zpxvi1Je.js.map} +1 -1
  30. package/dist/{node-BeQHJ-gW.js → node-mEGuz3HH.js} +2 -2
  31. package/dist/{node-BeQHJ-gW.js.map → node-mEGuz3HH.js.map} +1 -1
  32. package/dist/{read_file.node-D_famz3I.js → read_file.node-Da0ma4-1.js} +2 -2
  33. package/dist/{read_file.node-D_famz3I.js.map → read_file.node-Da0ma4-1.js.map} +1 -1
  34. package/dist/{stdio-BWNPoNat.js → stdio-C1EzrjO6.js} +3 -3
  35. package/dist/{stdio-BWNPoNat.js.map → stdio-C1EzrjO6.js.map} +1 -1
  36. package/dist/storybook.js +1 -1
  37. package/dist/{undo_edit.node-C8sU5262.js → undo_edit.node-BH-4_Rkm.js} +2 -2
  38. package/dist/{undo_edit.node-C8sU5262.js.map → undo_edit.node-BH-4_Rkm.js.map} +1 -1
  39. package/package.json +1 -1
  40. package/dist/color-Bs5UNAQf.js.map +0 -1
  41. package/dist/main-e0U8PkGs.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"load-profile-Gn3gm8Ha.js","sources":["../../core/src/tools/builtin/bash/load-profile.ts"],"sourcesContent":["import { catchError, Observable, tap } from '@sourcegraph/observable'\nimport { spawn } from 'node:child_process'\nimport os from 'node:os'\nimport logger from '../../../common/logger'\nimport type { ResolvedConfiguration } from '../../../configuration/resolver'\n\ninterface CachedLoginEnvironment {\n\ttimestamp: number\n\tenv: Record<string, string>\n}\nconst dailyTimeout = 24 * 60 * 60 * 1000 // Expire the login environment daily\nconst shellEnvCache = new Map<string, CachedLoginEnvironment>()\nconst defaultEnv = process.env as Record<string, string>\n\n// Adaptation of the equivalent logic from Zed here:\n// https://sourcegraph.com/github.com/zed-industries/zed/-/blob/crates/util/src/util.rs?L309\nexport function loadProfileEnvironmentVariables(\n\tdir: string,\n\tconfig: ResolvedConfiguration['settings']['terminal.commands.nodeSpawn.loadProfile'] = 'always',\n): Observable<Record<string, string>> {\n\tif (config === 'never') {\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (import.meta.env.VITE_PLATFORM === 'node') {\n\t\t// Skipping automatic environment detection for the CLI since the user\n\t\t// is presumably already running in a shell.\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (isNixShell()) {\n\t\t// Skip automatic detection for Nix users, because they're smart enough\n\t\t// to figure out how to run `code .`\n\t\tlogger.info(\n\t\t\t'Detected Nix Shell, skipping automatic detection of login environment. To skip this Nix detection, set the environment variable IN_NIX_SHELL=false.',\n\t\t)\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (config === 'always') {\n\t\treturn loadProfileEnvironmentVariablesUnchached(dir)\n\t}\n\tif (config !== 'daily') {\n\t\tlogger.warn(\n\t\t\t`Unknown setting value for loadLoginShellEnvironment. Valid values are \"never\", \"always\", \"daily\". Falling back to default \"daily\"`,\n\t\t\t{\n\t\t\t\tsetting: config,\n\t\t\t},\n\t\t)\n\t}\n\n\t// Regularly clean up old cached to avoid holding onto an infinitely growing\n\t// number of cached environments.\n\tevictExpiredCache()\n\n\tconst cachedEnv = shellEnvCache.get(dir)\n\tif (cachedEnv) {\n\t\treturn Observable.of(cachedEnv.env)\n\t}\n\treturn loadProfileEnvironmentVariablesUnchached(dir).pipe(\n\t\ttap((env) => {\n\t\t\tshellEnvCache.set(dir, { timestamp: Date.now(), env })\n\t\t}),\n\t\tcatchError((error) => {\n\t\t\tlogger.error('failed to read login environment. Falling back to default environment', {\n\t\t\t\terror,\n\t\t\t})\n\t\t\treturn Observable.of(defaultEnv)\n\t\t}),\n\t)\n}\n\nfunction loadProfileEnvironmentVariablesUnchached(dir: string): Observable<Record<string, string>> {\n\t// For non-Unix systems, just return the current environment\n\tif (os.platform() !== 'darwin' && os.platform() !== 'linux') {\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tconst start = Date.now()\n\n\treturn new Observable<Record<string, string>>((observer) => {\n\t\t// For Unix-like systems, get environment from login shell\n\t\tconst shell = os.userInfo().shell ?? process.env.SHELL ?? '/bin/bash'\n\t\tconst marker = 'AMP_SHELL_ENV_MARKER'\n\n\t\t// Try to cd into the directory to trigger directory-specific env tools\n\t\tconst shellCmdPrefix = dir ? `cd '${dir.replace(/'/g, \"\\\\'\")}';` : ''\n\t\tconst shellCmd = `${shellCmdPrefix}printf '%s' ${marker}; /usr/bin/env;`\n\n\t\t// Set timeout to prevent hanging\n\t\tconst timeout = setTimeout(() => {\n\t\t\tlogger.error('Shell environment collection timed out')\n\t\t\tchild.kill()\n\t\t\tobserver.next(defaultEnv)\n\t\t\tobserver.complete()\n\t\t}, 5000)\n\n\t\t// Run login shell\n\t\tconst child = spawn(shell, ['-l', '-i', '-c', shellCmd], {\n\t\t\tstdio: ['ignore', 'pipe', 'pipe'],\n\t\t\tdetached: true, // Prevent shell from taking control of the terminal\n\t\t\tenv: {\n\t\t\t\t...process.env,\n\t\t\t\tNONINTERACTIVE: '1',\n\t\t\t\tDEBIAN_FRONTEND: 'noninteractive',\n\t\t\t},\n\t\t})\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tif (child.stdout) {\n\t\t\tchild.stdout.on('data', (data) => {\n\t\t\t\tstdout += data.toString()\n\t\t\t})\n\t\t}\n\n\t\tif (child.stderr) {\n\t\t\tchild.stderr.on('data', (data) => {\n\t\t\t\tstderr += data.toString()\n\t\t\t})\n\t\t}\n\n\t\tchild.on('error', (err) => {\n\t\t\tlogger.error('Failed to spawn shell:', { err })\n\t\t\tclearTimeout(timeout)\n\t\t\tobserver.next(defaultEnv)\n\t\t\tobserver.complete()\n\t\t})\n\n\t\tchild.on('close', (code) => {\n\t\t\tclearTimeout(timeout)\n\t\t\tconst end = Date.now()\n\t\t\tconst durationMillis = end - start\n\n\t\t\tif (code !== 0) {\n\t\t\t\tlogger.error(`Shell process exited with code ${code}`)\n\t\t\t\tobserver.next(defaultEnv)\n\t\t\t\tobserver.complete()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Parse environment variables after marker\n\t\t\tconst envVars: Record<string, string> = {}\n\t\t\tconst markerIndex = stdout.indexOf(marker)\n\n\t\t\tif (markerIndex !== -1) {\n\t\t\t\tconst envOutput = stdout.substring(markerIndex + marker.length)\n\t\t\t\t// Parse KEY=VALUE lines\n\t\t\t\tenvOutput.split('\\n').forEach((line) => {\n\t\t\t\t\tconst match = line.match(/^([^=]+)=(.*)$/)\n\t\t\t\t\tif (match && match[1] && match[2]) {\n\t\t\t\t\t\tconst key = match[1]\n\t\t\t\t\t\tconst value = match[2]\n\t\t\t\t\t\tenvVars[key] = value\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// Fallback to current environment\n\t\t\t\tObject.assign(envVars, defaultEnv)\n\t\t\t}\n\n\t\t\tlogger.info('Loaded login shell environment', {\n\t\t\t\tdurationMillis,\n\t\t\t\tdirectory: dir,\n\t\t\t\tloadedVariableCount: Object.keys(envVars).length,\n\t\t\t})\n\t\t\tobserver.next(envVars)\n\t\t\tobserver.complete()\n\t\t})\n\n\t\treturn () => {\n\t\t\tclearTimeout(timeout)\n\t\t\tchild.kill()\n\t\t}\n\t})\n}\nfunction evictExpiredCache(): void {\n\tfor (const [key, value] of Object.entries(shellEnvCache)) {\n\t\tif (isExpiredCache(value)) {\n\t\t\tshellEnvCache.delete(key)\n\t\t}\n\t}\n}\n\nfunction isExpiredCache(env: CachedLoginEnvironment): boolean {\n\treturn env.timestamp + dailyTimeout > Date.now()\n}\n\nconst pathDelimeter = os.platform() === 'win32' ? ';' : ':'\nfunction isNixShell(): boolean {\n\tif (process.env.IN_NIX_SHELL === 'false') {\n\t\t// Escape hatch to disable this detection.\n\t\treturn false\n\t}\n\n\tif (process.env.IN_NIX_SHELL) {\n\t\treturn true\n\t}\n\n\t// Check for new `nix shell` using PATH using a heuristic. Borrowed from Starship:\n\t// https://github.com/starship/starship/blob/fccf4ccebf1533989234ec13c5a0f6d44e47e937/src/modules/nix_shell.rs#L14C1-L40C6\n\tconst path = process.env.PATH ?? ''\n\treturn path.split(pathDelimeter).some((p) => p.startsWith('/nix/store'))\n}\n"],"names":["defaultEnv","loadProfileEnvironmentVariables","dir","config","Observable","os"],"mappings":";;;AAYA,MAAMA,IAAa,QAAQ;AAIX,SAAAC,EACfC,GACAC,IAAuF,UAClD;AACrC,SAAIA,MAAW,UACPC,EAAW,GAAGJ,CAAU,IAKxBI,EAAW,GAAGJ,CAAU;AAyCjC;AAsHsBK,EAAG,SAAS;"}
1
+ {"version":3,"file":"load-profile-D7KCxFft.js","sources":["../../core/src/tools/builtin/bash/load-profile.ts"],"sourcesContent":["import { catchError, Observable, tap } from '@sourcegraph/observable'\nimport { spawn } from 'node:child_process'\nimport os from 'node:os'\nimport logger from '../../../common/logger'\nimport type { ResolvedConfiguration } from '../../../configuration/resolver'\n\ninterface CachedLoginEnvironment {\n\ttimestamp: number\n\tenv: Record<string, string>\n}\nconst dailyTimeout = 24 * 60 * 60 * 1000 // Expire the login environment daily\nconst shellEnvCache = new Map<string, CachedLoginEnvironment>()\nconst defaultEnv = process.env as Record<string, string>\n\n// Adaptation of the equivalent logic from Zed here:\n// https://sourcegraph.com/github.com/zed-industries/zed/-/blob/crates/util/src/util.rs?L309\nexport function loadProfileEnvironmentVariables(\n\tdir: string,\n\tconfig: ResolvedConfiguration['settings']['terminal.commands.nodeSpawn.loadProfile'] = 'always',\n): Observable<Record<string, string>> {\n\tif (config === 'never') {\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (import.meta.env.VITE_PLATFORM === 'node') {\n\t\t// Skipping automatic environment detection for the CLI since the user\n\t\t// is presumably already running in a shell.\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (isNixShell()) {\n\t\t// Skip automatic detection for Nix users, because they're smart enough\n\t\t// to figure out how to run `code .`\n\t\tlogger.info(\n\t\t\t'Detected Nix Shell, skipping automatic detection of login environment. To skip this Nix detection, set the environment variable IN_NIX_SHELL=false.',\n\t\t)\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tif (config === 'always') {\n\t\treturn loadProfileEnvironmentVariablesUnchached(dir)\n\t}\n\tif (config !== 'daily') {\n\t\tlogger.warn(\n\t\t\t`Unknown setting value for loadLoginShellEnvironment. Valid values are \"never\", \"always\", \"daily\". Falling back to default \"daily\"`,\n\t\t\t{\n\t\t\t\tsetting: config,\n\t\t\t},\n\t\t)\n\t}\n\n\t// Regularly clean up old cached to avoid holding onto an infinitely growing\n\t// number of cached environments.\n\tevictExpiredCache()\n\n\tconst cachedEnv = shellEnvCache.get(dir)\n\tif (cachedEnv) {\n\t\treturn Observable.of(cachedEnv.env)\n\t}\n\treturn loadProfileEnvironmentVariablesUnchached(dir).pipe(\n\t\ttap((env) => {\n\t\t\tshellEnvCache.set(dir, { timestamp: Date.now(), env })\n\t\t}),\n\t\tcatchError((error) => {\n\t\t\tlogger.error('failed to read login environment. Falling back to default environment', {\n\t\t\t\terror,\n\t\t\t})\n\t\t\treturn Observable.of(defaultEnv)\n\t\t}),\n\t)\n}\n\nfunction loadProfileEnvironmentVariablesUnchached(dir: string): Observable<Record<string, string>> {\n\t// For non-Unix systems, just return the current environment\n\tif (os.platform() !== 'darwin' && os.platform() !== 'linux') {\n\t\treturn Observable.of(defaultEnv)\n\t}\n\tconst start = Date.now()\n\n\treturn new Observable<Record<string, string>>((observer) => {\n\t\t// For Unix-like systems, get environment from login shell\n\t\tconst shell = os.userInfo().shell ?? process.env.SHELL ?? '/bin/bash'\n\t\tconst marker = 'AMP_SHELL_ENV_MARKER'\n\n\t\t// Try to cd into the directory to trigger directory-specific env tools\n\t\tconst shellCmdPrefix = dir ? `cd '${dir.replace(/'/g, \"\\\\'\")}';` : ''\n\t\tconst shellCmd = `${shellCmdPrefix}printf '%s' ${marker}; /usr/bin/env;`\n\n\t\t// Set timeout to prevent hanging\n\t\tconst timeout = setTimeout(() => {\n\t\t\tlogger.error('Shell environment collection timed out')\n\t\t\tchild.kill()\n\t\t\tobserver.next(defaultEnv)\n\t\t\tobserver.complete()\n\t\t}, 5000)\n\n\t\t// Run login shell\n\t\tconst child = spawn(shell, ['-l', '-i', '-c', shellCmd], {\n\t\t\tstdio: ['ignore', 'pipe', 'pipe'],\n\t\t\tdetached: true, // Prevent shell from taking control of the terminal\n\t\t\tenv: {\n\t\t\t\t...process.env,\n\t\t\t\tNONINTERACTIVE: '1',\n\t\t\t\tDEBIAN_FRONTEND: 'noninteractive',\n\t\t\t},\n\t\t})\n\n\t\tlet stdout = ''\n\t\tlet stderr = ''\n\n\t\tif (child.stdout) {\n\t\t\tchild.stdout.on('data', (data) => {\n\t\t\t\tstdout += data.toString()\n\t\t\t})\n\t\t}\n\n\t\tif (child.stderr) {\n\t\t\tchild.stderr.on('data', (data) => {\n\t\t\t\tstderr += data.toString()\n\t\t\t})\n\t\t}\n\n\t\tchild.on('error', (err) => {\n\t\t\tlogger.error('Failed to spawn shell:', { err })\n\t\t\tclearTimeout(timeout)\n\t\t\tobserver.next(defaultEnv)\n\t\t\tobserver.complete()\n\t\t})\n\n\t\tchild.on('close', (code) => {\n\t\t\tclearTimeout(timeout)\n\t\t\tconst end = Date.now()\n\t\t\tconst durationMillis = end - start\n\n\t\t\tif (code !== 0) {\n\t\t\t\tlogger.error(`Shell process exited with code ${code}`)\n\t\t\t\tobserver.next(defaultEnv)\n\t\t\t\tobserver.complete()\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Parse environment variables after marker\n\t\t\tconst envVars: Record<string, string> = {}\n\t\t\tconst markerIndex = stdout.indexOf(marker)\n\n\t\t\tif (markerIndex !== -1) {\n\t\t\t\tconst envOutput = stdout.substring(markerIndex + marker.length)\n\t\t\t\t// Parse KEY=VALUE lines\n\t\t\t\tenvOutput.split('\\n').forEach((line) => {\n\t\t\t\t\tconst match = line.match(/^([^=]+)=(.*)$/)\n\t\t\t\t\tif (match && match[1] && match[2]) {\n\t\t\t\t\t\tconst key = match[1]\n\t\t\t\t\t\tconst value = match[2]\n\t\t\t\t\t\tenvVars[key] = value\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\t// Fallback to current environment\n\t\t\t\tObject.assign(envVars, defaultEnv)\n\t\t\t}\n\n\t\t\tlogger.info('Loaded login shell environment', {\n\t\t\t\tdurationMillis,\n\t\t\t\tdirectory: dir,\n\t\t\t\tloadedVariableCount: Object.keys(envVars).length,\n\t\t\t})\n\t\t\tobserver.next(envVars)\n\t\t\tobserver.complete()\n\t\t})\n\n\t\treturn () => {\n\t\t\tclearTimeout(timeout)\n\t\t\tchild.kill()\n\t\t}\n\t})\n}\nfunction evictExpiredCache(): void {\n\tfor (const [key, value] of Object.entries(shellEnvCache)) {\n\t\tif (isExpiredCache(value)) {\n\t\t\tshellEnvCache.delete(key)\n\t\t}\n\t}\n}\n\nfunction isExpiredCache(env: CachedLoginEnvironment): boolean {\n\treturn env.timestamp + dailyTimeout > Date.now()\n}\n\nconst pathDelimeter = os.platform() === 'win32' ? ';' : ':'\nfunction isNixShell(): boolean {\n\tif (process.env.IN_NIX_SHELL === 'false') {\n\t\t// Escape hatch to disable this detection.\n\t\treturn false\n\t}\n\n\tif (process.env.IN_NIX_SHELL) {\n\t\treturn true\n\t}\n\n\t// Check for new `nix shell` using PATH using a heuristic. Borrowed from Starship:\n\t// https://github.com/starship/starship/blob/fccf4ccebf1533989234ec13c5a0f6d44e47e937/src/modules/nix_shell.rs#L14C1-L40C6\n\tconst path = process.env.PATH ?? ''\n\treturn path.split(pathDelimeter).some((p) => p.startsWith('/nix/store'))\n}\n"],"names":["defaultEnv","loadProfileEnvironmentVariables","dir","config","Observable","os"],"mappings":";;;AAYA,MAAMA,IAAa,QAAQ;AAIX,SAAAC,EACfC,GACAC,IAAuF,UAClD;AACrC,SAAIA,MAAW,UACPC,EAAW,GAAGJ,CAAU,IAKxBI,EAAW,GAAGJ,CAAU;AAyCjC;AAsHsBK,EAAG,SAAS;"}
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { B as _i, O as Qt, s as fn, c as $E, a as Jn, b as tc, f as pt, d as ta, p as es, m as Et, e as da, g as un, h as ha, i as zO, j as UE, k as rc, M as Qn, l as KO, n as ae, N as gu, o as Dm, r as Pr, q as Fm, t as JO, u as YO, v as $m, w as jO, x as ZO, y as Ky, z as Ru, A as QO, C as Sn, D as dW, E as ra, F as XO, G as eM, H as tM, I as Qi, J as qE, K as rM, L as wi, P as BE, Q as VE, R as nM, S as iM, T as Kp, U as oM, V as sM, W as aM, X as lM, Y as uM, Z as rd, _ as cM, $ as HE, a0 as Jy, a1 as fM, a2 as dM, a3 as hM, a4 as pM, a5 as mM, a6 as GE, a7 as gM, a8 as vM, a9 as yM, aa as _M, ab as Yy, ac as wM, ad as bM, ae as SM, af as EM, ag as TM, ah as CM, ai as AM, aj as PM, ak as IM, al as RM, am as xM, an as kM, ao as OM, ap as MM, aq as LM, ar as NM, as as xu, at as DM, au as FM, av as $M, aw as UM, ax as qM, ay as BM, az as WE, aA as Jp, aB as Tt, aC as VM, aD as HM, aE as zE, aF as KE, aG as GM, aH as WM, aI as zM, aJ as KM, aK as jy, aL as Zy } from "./color-Bs5UNAQf.js";
2
+ import { B as _i, O as Qt, s as fn, c as $E, a as Jn, b as tc, f as pt, d as ta, p as es, m as Et, e as da, g as un, h as ha, i as zO, j as UE, k as rc, M as Qn, l as KO, n as ae, N as gu, o as Dm, r as Pr, q as Fm, t as JO, u as YO, v as $m, w as jO, x as ZO, y as Ky, z as Ru, A as QO, C as Sn, D as dW, E as ra, F as XO, G as eM, H as tM, I as Qi, J as qE, K as rM, L as wi, P as BE, Q as VE, R as nM, S as iM, T as Kp, U as oM, V as sM, W as aM, X as lM, Y as uM, Z as rd, _ as cM, $ as HE, a0 as Jy, a1 as fM, a2 as dM, a3 as hM, a4 as pM, a5 as mM, a6 as GE, a7 as gM, a8 as vM, a9 as yM, aa as _M, ab as Yy, ac as wM, ad as bM, ae as SM, af as EM, ag as TM, ah as CM, ai as AM, aj as PM, ak as IM, al as RM, am as xM, an as kM, ao as OM, ap as MM, aq as LM, ar as NM, as as xu, at as DM, au as FM, av as $M, aw as UM, ax as qM, ay as BM, az as WE, aA as Jp, aB as Tt, aC as VM, aD as HM, aE as zE, aF as KE, aG as GM, aH as WM, aI as zM, aJ as KM, aK as jy, aL as Zy } from "./color-ldrInzKB.js";
3
3
  import * as JM from "node:fs/promises";
4
4
  import Yo, { readdir as YM, stat as JE, readFile as Ji, mkdir as Um, writeFile as qm, unlink as jM, readlink as ZM } from "node:fs/promises";
5
5
  import * as QM from "node:path";
@@ -17,7 +17,7 @@ import aL from "node:zlib";
17
17
  import lL from "node:string_decoder";
18
18
  import uL, { createServer as ZE } from "node:http";
19
19
  import cL from "node:https";
20
- import { r as fL } from "./executable-De4-Iq-q.js";
20
+ import { r as fL } from "./executable-D9Dr9Z2U.js";
21
21
  function dL() {
22
22
  const i = /* @__PURE__ */ new Set(), e = new _i(i);
23
23
  return {
@@ -7752,10 +7752,10 @@ async function c2(i, e, t) {
7752
7752
  if ("url" in i)
7753
7753
  n = new l2(new URL(i.url));
7754
7754
  else {
7755
- const { loadProfileEnvironmentVariables: r } = await import("./load-profile-Gn3gm8Ha.js"), o = t.loadProfile === "never" || !t.workingDirectory ? process.env : await pt(
7755
+ const { loadProfileEnvironmentVariables: r } = await import("./load-profile-D7KCxFft.js"), o = t.loadProfile === "never" || !t.workingDirectory ? process.env : await pt(
7756
7756
  r(t.workingDirectory, t.loadProfile)
7757
7757
  );
7758
- n = await import("./stdio-BWNPoNat.js").then(
7758
+ n = await import("./stdio-C1EzrjO6.js").then(
7759
7759
  ({ StdioClientTransport: s }) => new s({
7760
7760
  ...i,
7761
7761
  stderr: "pipe",
@@ -8055,7 +8055,7 @@ This tool converts web content to markdown format for better readability.`,
8055
8055
  requiresNetwork: !0
8056
8056
  }
8057
8057
  },
8058
- fn: import("./node-B-VoRsW5.js").then(({ nodeReadWebPageTool: i }) => i)
8058
+ fn: import("./node-C2XZ5nUw.js").then(({ nodeReadWebPageTool: i }) => i)
8059
8059
  }, v2 = "web_search", y2 = `Search the web for information.
8060
8060
 
8061
8061
  Returns search result titles, associated URLs, and a small summary of the
@@ -8103,7 +8103,7 @@ the \`${cm}\` with the url.
8103
8103
  requiresNetwork: !0
8104
8104
  }
8105
8105
  },
8106
- fn: import("./node-CKT_qFZU.js").then(({ nodeWebSearchTool: i }) => i)
8106
+ fn: import("./node-Zpxvi1Je.js").then(({ nodeWebSearchTool: i }) => i)
8107
8107
  };
8108
8108
  function w2(i) {
8109
8109
  const { interval: e, fn: t, cacheKey: n } = i, r = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map();
@@ -24941,7 +24941,7 @@ async function o4(i, e) {
24941
24941
  }
24942
24942
  }
24943
24943
  async function s4(i, e) {
24944
- return (await import("./list_directory.node-BiNTY-zJ.js")).resolveArgumentDirectoryNode(i, e);
24944
+ return (await import("./list_directory.node-BQq4XK-y.js")).resolveArgumentDirectoryNode(i, e);
24945
24945
  }
24946
24946
  function a4(i) {
24947
24947
  if (!i._regex)
@@ -26113,7 +26113,7 @@ async function m4({
26113
26113
  fileMentions: void 0,
26114
26114
  userState: void 0
26115
26115
  };
26116
- const o = (await import("./files-Cahfcbk6.js").then(
26116
+ const o = (await import("./files-C7vv9BDa.js").then(
26117
26117
  ({ getFileMentions: a }) => a(
26118
26118
  VE(t.content),
26119
26119
  r,
@@ -26943,7 +26943,7 @@ IMPORTANT: The result of this tool (if any) should be displayed directly to the
26943
26943
  },
26944
26944
  source: "builtin"
26945
26945
  },
26946
- fn: import("./node-T5hkN-Bz.js").then(({ runRoutine: i }) => i)
26946
+ fn: import("./node-Ca_JziST.js").then(({ runRoutine: i }) => i)
26947
26947
  };
26948
26948
  let $w = !1;
26949
26949
  async function YC(i, e = !1) {
@@ -29507,7 +29507,7 @@ function Pu(i) {
29507
29507
  changes: t
29508
29508
  };
29509
29509
  }
29510
- const M4 = import("./node-BeQHJ-gW.js").then(
29510
+ const M4 = import("./node-mEGuz3HH.js").then(
29511
29511
  ({ nodeFileSystem: i }) => i
29512
29512
  );
29513
29513
  class L4 {
@@ -37871,6 +37871,11 @@ const L1 = {
37871
37871
  visible: !1,
37872
37872
  description: "Enable tab completion features"
37873
37873
  },
37874
+ "tab.disabledLanguages": {
37875
+ value: [],
37876
+ visible: !1,
37877
+ description: "List of language IDs for which tab completion is disabled"
37878
+ },
37874
37879
  "tab.verboseLogs": {
37875
37880
  value: !1,
37876
37881
  visible: !1,
@@ -38037,7 +38042,7 @@ async function D3(i, e) {
38037
38042
  }), s.on("error", (c) => {
38038
38043
  ae.error("Ripgrep process error", c), r(c);
38039
38044
  }), s.on("exit", async (c) => {
38040
- if (c === 0)
38045
+ if (c === 0 || c === 1)
38041
38046
  try {
38042
38047
  await i.addFiles(u), ae.debug(`Indexed ${u.length} files`), n();
38043
38048
  } catch (d) {
@@ -39352,7 +39357,7 @@ async function Iu(i, e) {
39352
39357
  Pg({
39353
39358
  logLevel: e.logLevel || process.env.AMP_LOG_LEVEL,
39354
39359
  logFile: e.logFile || process.env.AMP_LOG_FILE
39355
- }), zM("0.0.1748548891-gfb902f");
39360
+ }), zM("0.0.1748581425-ga69905");
39356
39361
  const t = e.settingsFile ?? process.env.AMP_SETTINGS_FILE;
39357
39362
  ae.info("Using settings file", { settingsFile: t });
39358
39363
  const n = Pu(), r = e1({ settingsFile: t }), o = process.env.AMP_API_KEY;
@@ -39368,7 +39373,7 @@ async function Iu(i, e) {
39368
39373
  if (i.isInteractiveMode) {
39369
39374
  d = new wE(), await d.start();
39370
39375
  try {
39371
- D3(d, process.cwd());
39376
+ await D3(d, process.cwd());
39372
39377
  } catch (h) {
39373
39378
  ae.error("Failed to index files for fuzzy completion", h);
39374
39379
  }
@@ -39449,7 +39454,7 @@ Login failed: ${r instanceof Error ? r.message : String(r)}
39449
39454
  }
39450
39455
  }
39451
39456
  function nW(i) {
39452
- const e = new C4().name("amp").description("AI-powered coding assistant").version("0.0.1748548891-gfb902f").option("--thread-id [THREAD_ID]", "ID of the thread to continue running", void 0);
39457
+ const e = new C4().name("amp").description("AI-powered coding assistant").version("0.0.1748581425-ga69905").option("--thread-id [THREAD_ID]", "ID of the thread to continue running", void 0);
39453
39458
  e.addHelpText(
39454
39459
  "after",
39455
39460
  (() => {
@@ -39844,7 +39849,8 @@ async function FE(i, e) {
39844
39849
  ze.disable(), Ye.write(`Shutting down...
39845
39850
  `), await d?.sync().catch((I) => {
39846
39851
  ae.error("Thread sync error", I, { threadID: _ });
39847
- }), T.dispose(), d && d.dispose(), u.dispose(), await a.dispose(), v.dispose(), w.dispose(), process.exit(0);
39852
+ }), T.dispose(), d && d.dispose(), u.dispose(), await a.dispose(), v.dispose(), w.dispose(), ct.write(i.printer.print(`Thread ID: ${_}`, { foreground: "gray" }) + `
39853
+ `), process.exit(0);
39848
39854
  }
39849
39855
  i.isInteractiveMode && (ze.enable(), Ye.write(
39850
39856
  `${i.printer.print("Type ", { foreground: "gray" })}${i.printer.print("\\", { foreground: "gray", style: "bold" })}${i.printer.print(" followed by ", { foreground: "gray" })}${i.printer.print("Enter", { foreground: "gray", style: "bold" })}${i.printer.print(" to insert newlines, or use ", { foreground: "gray" })}${i.printer.print("Shift+Enter", { foreground: "gray", style: "bold" })}${i.printer.print(` in supported terminals.
@@ -40643,7 +40649,7 @@ function Tr() {
40643
40649
  }
40644
40650
  async function lW(i, e) {
40645
40651
  try {
40646
- const t = await KG("0.0.1748548891-gfb902f");
40652
+ const t = await KG("0.0.1748581425-ga69905");
40647
40653
  t.hasUpdate && t.latestVersion ? e ? (i.next({ type: "update-start-updating" }), setTimeout(async () => {
40648
40654
  try {
40649
40655
  await ZG(t.latestVersion), i.next({
@@ -40658,7 +40664,7 @@ async function lW(i, e) {
40658
40664
  version: t.latestVersion
40659
40665
  });
40660
40666
  }
40661
- }, 100)) : ae.info(`New version available: 0.0.1748548891-gfb902f → ${t.latestVersion}`) : ae.info("No update available");
40667
+ }, 100)) : ae.info(`New version available: 0.0.1748581425-ga69905 → ${t.latestVersion}`) : ae.info("No update available");
40662
40668
  } catch (t) {
40663
40669
  ae.debug("Update check failed", t);
40664
40670
  }
@@ -40713,4 +40719,4 @@ export {
40713
40719
  ve as s,
40714
40720
  lr as u
40715
40721
  };
40716
- //# sourceMappingURL=main-e0U8PkGs.js.map
40722
+ //# sourceMappingURL=main-Dtt0cp07.js.map