@sourcegraph/amp 0.0.1748419293-g63ac77 → 0.0.1748426527-g057e02

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 (46) hide show
  1. package/dist/amp.js +2 -3
  2. package/dist/amp.js.map +1 -1
  3. package/dist/{color-Cj45sRkS.js → color-DGLUYaqf.js} +5462 -5641
  4. package/dist/color-DGLUYaqf.js.map +1 -0
  5. package/dist/{create_file.node-0vS2hejR.js → create_file.node-BJ9db1t8.js} +2 -2
  6. package/dist/{create_file.node-0vS2hejR.js.map → create_file.node-BJ9db1t8.js.map} +1 -1
  7. package/dist/{edit_file.node-it4wJ5TR.js → edit_file.node-BMxxYIGr.js} +9 -9
  8. package/dist/{edit_file.node-it4wJ5TR.js.map → edit_file.node-BMxxYIGr.js.map} +1 -1
  9. package/dist/{executable-9B5WLKFI.js → executable-D-KMMXSM.js} +2 -2
  10. package/dist/{executable-9B5WLKFI.js.map → executable-D-KMMXSM.js.map} +1 -1
  11. package/dist/{files-B2BG6wGh.js → files-CfkeQImL.js} +2 -2
  12. package/dist/{files-B2BG6wGh.js.map → files-CfkeQImL.js.map} +1 -1
  13. package/dist/{glob.node-CSXwSKG2.js → glob.node-B0mTFFtz.js} +60 -60
  14. package/dist/{glob.node-CSXwSKG2.js.map → glob.node-B0mTFFtz.js.map} +1 -1
  15. package/dist/{list_directory.node-BFm1qTEf.js → list_directory.node-DHsYGwWf.js} +2 -2
  16. package/dist/{list_directory.node-BFm1qTEf.js.map → list_directory.node-DHsYGwWf.js.map} +1 -1
  17. package/dist/{load-profile-Cj-UxFl1.js → load-profile-OVWYid8R.js} +2 -2
  18. package/dist/load-profile-OVWYid8R.js.map +1 -0
  19. package/dist/{main-B3QXAnGP.js → main-DDGwGm6L.js} +10632 -10257
  20. package/dist/main-DDGwGm6L.js.map +1 -0
  21. package/dist/{node-goKryvqE.js → node--2i4ls_e.js} +19 -19
  22. package/dist/{node-goKryvqE.js.map → node--2i4ls_e.js.map} +1 -1
  23. package/dist/{node--F98eUbP.js → node-BZRHbCOQ.js} +2 -2
  24. package/dist/{node--F98eUbP.js.map → node-BZRHbCOQ.js.map} +1 -1
  25. package/dist/{node-3f9fJ7aL.js → node-C_IajzJJ.js} +2 -2
  26. package/dist/{node-3f9fJ7aL.js.map → node-C_IajzJJ.js.map} +1 -1
  27. package/dist/{node-z_wuLuYG.js → node-DOR8bmJd.js} +5 -5
  28. package/dist/{node-z_wuLuYG.js.map → node-DOR8bmJd.js.map} +1 -1
  29. package/dist/{node-COM1O9lA.js → node-KD2UfqlA.js} +8 -8
  30. package/dist/node-KD2UfqlA.js.map +1 -0
  31. package/dist/{node-CPx25-dA.js → node-h3Rv9R3v.js} +3 -3
  32. package/dist/{node-CPx25-dA.js.map → node-h3Rv9R3v.js.map} +1 -1
  33. package/dist/{read_file.node-BPyNHNAZ.js → read_file.node-Bju6vvoS.js} +2 -2
  34. package/dist/{read_file.node-BPyNHNAZ.js.map → read_file.node-Bju6vvoS.js.map} +1 -1
  35. package/dist/{stdio-BHqN64gs.js → stdio-BuwcA4il.js} +3 -3
  36. package/dist/{stdio-BHqN64gs.js.map → stdio-BuwcA4il.js.map} +1 -1
  37. package/dist/storybook.js +4 -4
  38. package/dist/{undo_edit.node-BdqjDOxO.js → undo_edit.node-DlNuubCp.js} +4 -4
  39. package/dist/{undo_edit.node-BdqjDOxO.js.map → undo_edit.node-DlNuubCp.js.map} +1 -1
  40. package/package.json +1 -1
  41. package/dist/client-BG3r9aH9.js +0 -35
  42. package/dist/client-BG3r9aH9.js.map +0 -1
  43. package/dist/color-Cj45sRkS.js.map +0 -1
  44. package/dist/load-profile-Cj-UxFl1.js.map +0 -1
  45. package/dist/main-B3QXAnGP.js.map +0 -1
  46. package/dist/node-COM1O9lA.js.map +0 -1
@@ -4,7 +4,7 @@ import * as i from "node:fs";
4
4
  import * as o from "node:path";
5
5
  import { join as f } from "node:path";
6
6
  import { promisify as p } from "node:util";
7
- import { n as l, aP as n } from "./color-Cj45sRkS.js";
7
+ import { n as l, aN as n } from "./color-DGLUYaqf.js";
8
8
  import { homedir as w } from "node:os";
9
9
  const d = f(w(), ".amp", "file-changes"), u = p(m);
10
10
  function b(a) {
@@ -110,4 +110,4 @@ export {
110
110
  y as listFilesGit,
111
111
  b as nodeFileSystem
112
112
  };
113
- //# sourceMappingURL=node-3f9fJ7aL.js.map
113
+ //# sourceMappingURL=node-C_IajzJJ.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-3f9fJ7aL.js","sources":["../../core/src/platform/fs/backups.node.ts","../../core/src/platform/fs/node.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport const BACKUP_DIR_NODE = join(homedir(), '.amp', 'file-changes')\n","import { execFile } from 'node:child_process'\nimport * as fs from 'node:fs'\nimport * as path from 'node:path'\nimport { promisify } from 'node:util'\nimport logger from '../../common/logger'\nimport { type FileChangeRecord } from '../../threads/file-tracking/common'\nimport type { ThreadID } from '../../threads/thread'\nimport { BACKUP_DIR_NODE } from './backups.node'\nimport { FileNotExistError, type FileSystem } from './fs'\n\nconst execFileAsync = promisify(execFile)\n\nexport function nodeFileSystem(threadID: ThreadID): FileSystem {\n\tconst backupDir = path.join(BACKUP_DIR_NODE, threadID)\n\treturn {\n\t\trelativePath: (a: string, b: string) => path.relative(a, b),\n\t\tjoinPath: (...paths: string[]) => path.join(...paths),\n\n\t\treadFile: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\treturn await fs.promises.readFile(path, { encoding: 'utf8', signal })\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\treadBinaryFile: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\t// Read as Buffer without encoding\n\t\t\t\treturn await fs.promises.readFile(path, { signal })\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tgetMtime: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\t// Node.js stat doesn't support AbortSignal directly\n\t\t\t\tconst stats = await fs.promises.stat(path)\n\t\t\t\treturn stats.mtimeMs\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tstat: async (path: string) => {\n\t\t\ttry {\n\t\t\t\tconst stats = await fs.promises.stat(path)\n\t\t\t\treturn {\n\t\t\t\t\tsize: stats.size,\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\twriteFile: async (path, content, signal) => {\n\t\t\tawait fs.promises.writeFile(path, content, { encoding: 'utf-8', signal })\n\t\t},\n\t\tdeleteFile: async (path, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\tawait fs.promises.unlink(path)\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tmkdirp: async (path) => {\n\t\t\tawait fs.promises.mkdir(path, { recursive: true })\n\t\t},\n\t\tstoreFileChange: async (backupFileName: string, fileChange: FileChangeRecord) => {\n\t\t\tconst backupPath = path.join(backupDir, backupFileName)\n\t\t\tawait fs.promises.writeFile(backupPath, JSON.stringify(fileChange, null, 2), 'utf8')\n\t\t},\n\t\tlistBackupFiles: async () => {\n\t\t\ttry {\n\t\t\t\t// Ensure backup directory exists\n\t\t\t\tif (\n\t\t\t\t\t!(await fs.promises\n\t\t\t\t\t\t.stat(backupDir)\n\t\t\t\t\t\t.then((s) => s.isDirectory())\n\t\t\t\t\t\t.catch(() => false))\n\t\t\t\t) {\n\t\t\t\t\tawait fs.promises.mkdir(backupDir, { recursive: true })\n\t\t\t\t\treturn []\n\t\t\t\t}\n\t\t\t\treturn await fs.promises.readdir(backupDir)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error listing backup files:', error)\n\t\t\t\treturn []\n\t\t\t}\n\t\t},\n\t\tloadFileChange: async (backupFileName: string) => {\n\t\t\ttry {\n\t\t\t\tconst backupPath = path.join(backupDir, backupFileName)\n\t\t\t\tconst content = await fs.promises.readFile(backupPath, 'utf8')\n\t\t\t\treturn JSON.parse(content) as FileChangeRecord\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error loading backup file ${backupFileName}:`, error)\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\t\tcleanupBackupFiles: async () => {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tawait fs.promises\n\t\t\t\t\t\t.stat(backupDir)\n\t\t\t\t\t\t.then((s) => s.isDirectory())\n\t\t\t\t\t\t.catch(() => false)\n\t\t\t\t) {\n\t\t\t\t\tawait fs.promises.rm(backupDir, { recursive: true, force: true })\n\t\t\t\t\tlogger.debug(`Cleaned up backup directory: ${backupDir}`)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error cleaning up backup files in ${backupDir}:`, error)\n\t\t\t}\n\t\t},\n\t\tlistFiles: async (dir: string) => listFilesGit(dir),\n\t\texclusiveWriter: false,\n\t}\n}\n\nfunction isNodeFSNotExistError(error: unknown): boolean {\n\treturn (\n\t\terror !== null &&\n\t\ttypeof error === 'object' &&\n\t\t'code' in error &&\n\t\t(error as { code: string }).code === 'ENOENT'\n\t)\n}\n\n/**\n * Lists files in a directory using git ls-files.\n * Exported for reuse by other filesystem implementations.\n */\nexport async function listFilesGit(dir: string): Promise<string[]> {\n\ttry {\n\t\tconst { stdout: trackedFiles } = await execFileAsync('git', ['ls-files'], {\n\t\t\tcwd: dir,\n\t\t})\n\n\t\tconst { stdout: untrackedFiles } = await execFileAsync(\n\t\t\t'git',\n\t\t\t['ls-files', '--others', '--exclude-standard'],\n\t\t\t{\n\t\t\t\tcwd: dir,\n\t\t\t},\n\t\t)\n\n\t\treturn [...trackedFiles.split('\\n'), ...untrackedFiles.split('\\n')].filter(Boolean)\n\t} catch {\n\t\treturn []\n\t}\n}\n"],"names":["BACKUP_DIR_NODE","join","homedir","execFileAsync","promisify","execFile","nodeFileSystem","threadID","backupDir","path","a","b","paths","signal","fs","error","isNodeFSNotExistError","FileNotExistError","content","backupFileName","fileChange","backupPath","s","logger","dir","listFilesGit","trackedFiles","untrackedFiles"],"mappings":"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"}
1
+ {"version":3,"file":"node-C_IajzJJ.js","sources":["../../core/src/platform/fs/backups.node.ts","../../core/src/platform/fs/node.ts"],"sourcesContent":["import { homedir } from 'node:os'\nimport { join } from 'node:path'\n\nexport const BACKUP_DIR_NODE = join(homedir(), '.amp', 'file-changes')\n","import { execFile } from 'node:child_process'\nimport * as fs from 'node:fs'\nimport * as path from 'node:path'\nimport { promisify } from 'node:util'\nimport logger from '../../common/logger'\nimport { type FileChangeRecord } from '../../threads/file-tracking/common'\nimport type { ThreadID } from '../../threads/thread'\nimport { BACKUP_DIR_NODE } from './backups.node'\nimport { FileNotExistError, type FileSystem } from './fs'\n\nconst execFileAsync = promisify(execFile)\n\nexport function nodeFileSystem(threadID: ThreadID): FileSystem {\n\tconst backupDir = path.join(BACKUP_DIR_NODE, threadID)\n\treturn {\n\t\trelativePath: (a: string, b: string) => path.relative(a, b),\n\t\tjoinPath: (...paths: string[]) => path.join(...paths),\n\n\t\treadFile: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\treturn await fs.promises.readFile(path, { encoding: 'utf8', signal })\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\treadBinaryFile: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\t// Read as Buffer without encoding\n\t\t\t\treturn await fs.promises.readFile(path, { signal })\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tgetMtime: async (path: string, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\t// Node.js stat doesn't support AbortSignal directly\n\t\t\t\tconst stats = await fs.promises.stat(path)\n\t\t\t\treturn stats.mtimeMs\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tstat: async (path: string) => {\n\t\t\ttry {\n\t\t\t\tconst stats = await fs.promises.stat(path)\n\t\t\t\treturn {\n\t\t\t\t\tsize: stats.size,\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\twriteFile: async (path, content, signal) => {\n\t\t\tawait fs.promises.writeFile(path, content, { encoding: 'utf-8', signal })\n\t\t},\n\t\tdeleteFile: async (path, signal?: AbortSignal) => {\n\t\t\ttry {\n\t\t\t\tawait fs.promises.unlink(path)\n\t\t\t} catch (error) {\n\t\t\t\tif (isNodeFSNotExistError(error)) {\n\t\t\t\t\tthrow new FileNotExistError(path)\n\t\t\t\t}\n\t\t\t\tthrow error\n\t\t\t}\n\t\t},\n\t\tmkdirp: async (path) => {\n\t\t\tawait fs.promises.mkdir(path, { recursive: true })\n\t\t},\n\t\tstoreFileChange: async (backupFileName: string, fileChange: FileChangeRecord) => {\n\t\t\tconst backupPath = path.join(backupDir, backupFileName)\n\t\t\tawait fs.promises.writeFile(backupPath, JSON.stringify(fileChange, null, 2), 'utf8')\n\t\t},\n\t\tlistBackupFiles: async () => {\n\t\t\ttry {\n\t\t\t\t// Ensure backup directory exists\n\t\t\t\tif (\n\t\t\t\t\t!(await fs.promises\n\t\t\t\t\t\t.stat(backupDir)\n\t\t\t\t\t\t.then((s) => s.isDirectory())\n\t\t\t\t\t\t.catch(() => false))\n\t\t\t\t) {\n\t\t\t\t\tawait fs.promises.mkdir(backupDir, { recursive: true })\n\t\t\t\t\treturn []\n\t\t\t\t}\n\t\t\t\treturn await fs.promises.readdir(backupDir)\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error('Error listing backup files:', error)\n\t\t\t\treturn []\n\t\t\t}\n\t\t},\n\t\tloadFileChange: async (backupFileName: string) => {\n\t\t\ttry {\n\t\t\t\tconst backupPath = path.join(backupDir, backupFileName)\n\t\t\t\tconst content = await fs.promises.readFile(backupPath, 'utf8')\n\t\t\t\treturn JSON.parse(content) as FileChangeRecord\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error loading backup file ${backupFileName}:`, error)\n\t\t\t\treturn null\n\t\t\t}\n\t\t},\n\t\tcleanupBackupFiles: async () => {\n\t\t\ttry {\n\t\t\t\tif (\n\t\t\t\t\tawait fs.promises\n\t\t\t\t\t\t.stat(backupDir)\n\t\t\t\t\t\t.then((s) => s.isDirectory())\n\t\t\t\t\t\t.catch(() => false)\n\t\t\t\t) {\n\t\t\t\t\tawait fs.promises.rm(backupDir, { recursive: true, force: true })\n\t\t\t\t\tlogger.debug(`Cleaned up backup directory: ${backupDir}`)\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(`Error cleaning up backup files in ${backupDir}:`, error)\n\t\t\t}\n\t\t},\n\t\tlistFiles: async (dir: string) => listFilesGit(dir),\n\t\texclusiveWriter: false,\n\t}\n}\n\nfunction isNodeFSNotExistError(error: unknown): boolean {\n\treturn (\n\t\terror !== null &&\n\t\ttypeof error === 'object' &&\n\t\t'code' in error &&\n\t\t(error as { code: string }).code === 'ENOENT'\n\t)\n}\n\n/**\n * Lists files in a directory using git ls-files.\n * Exported for reuse by other filesystem implementations.\n */\nexport async function listFilesGit(dir: string): Promise<string[]> {\n\ttry {\n\t\tconst { stdout: trackedFiles } = await execFileAsync('git', ['ls-files'], {\n\t\t\tcwd: dir,\n\t\t})\n\n\t\tconst { stdout: untrackedFiles } = await execFileAsync(\n\t\t\t'git',\n\t\t\t['ls-files', '--others', '--exclude-standard'],\n\t\t\t{\n\t\t\t\tcwd: dir,\n\t\t\t},\n\t\t)\n\n\t\treturn [...trackedFiles.split('\\n'), ...untrackedFiles.split('\\n')].filter(Boolean)\n\t} catch {\n\t\treturn []\n\t}\n}\n"],"names":["BACKUP_DIR_NODE","join","homedir","execFileAsync","promisify","execFile","nodeFileSystem","threadID","backupDir","path","a","b","paths","signal","fs","error","isNodeFSNotExistError","FileNotExistError","content","backupFileName","fileChange","backupPath","s","logger","dir","listFilesGit","trackedFiles","untrackedFiles"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { aV as c, g, m as p, b3 as l, b4 as f, b5 as m, aT as h, c as d, O as b } from "./color-Cj45sRkS.js";
3
- import { r as E } from "./executable-9B5WLKFI.js";
4
- const A = ({ args: a }, { dirs: t }) => {
2
+ import { aT as c, g, m as p, b1 as l, b2 as f, b3 as m, aR as h, c as d, O as b } from "./color-DGLUYaqf.js";
3
+ import { r as E } from "./executable-D-KMMXSM.js";
4
+ const v = ({ args: a }, { dirs: t }) => {
5
5
  for (const e of t)
6
6
  c(e);
7
7
  return g(...t.map((e) => _(e, a))).pipe(
@@ -67,6 +67,6 @@ function _(a, t) {
67
67
  );
68
68
  }
69
69
  export {
70
- A as nodeGrepTool
70
+ v as nodeGrepTool
71
71
  };
72
- //# sourceMappingURL=node-z_wuLuYG.js.map
72
+ //# sourceMappingURL=node-DOR8bmJd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-z_wuLuYG.js","sources":["../../core/src/tools/builtin/grep/node.ts"],"sourcesContent":["import { catchError, combineLatest, map, Observable } from '@sourcegraph/observable'\nimport type { URI } from 'vscode-uri'\nimport type { ToolRun } from '../../tool-service'\nimport { checkArgSafety, checkDirURIIsFile, spawnAndObserveChildProcess } from '../node-helpers'\nimport type { GrepToolArgs } from './common'\nimport {\n\tGREP_MAX_COLUMN_LENGTH,\n\tGREP_MAX_RESULTS_PER_FILE,\n\ttype GrepToolDef,\n\ttype grepToolReg,\n} from './common'\nimport { ripgrepExecutable } from './executable'\n\nexport const nodeGrepTool: NonNullable<(typeof grepToolReg)['fn']> = ({ args }, { dirs }) => {\n\tfor (const dir of dirs) {\n\t\tcheckDirURIIsFile(dir)\n\t}\n\treturn combineLatest(...dirs.map((dir) => ripgrepFiles(dir, args))).pipe(\n\t\tmap<ToolRun<GrepToolDef>[], ToolRun<GrepToolDef>>((results) => {\n\t\t\tconst progress: string[] = []\n\t\t\tfor (const result of results) {\n\t\t\t\tif (result.status === 'in-progress') {\n\t\t\t\t\tprogress.push(...(result?.progress ?? []))\n\t\t\t\t} else if (result.status === 'done') {\n\t\t\t\t\tprogress.push(...result.result)\n\t\t\t\t} else if (result.status === 'cancelled') {\n\t\t\t\t\tprogress.push(...(result.progress ?? []))\n\t\t\t\t} else if (result.status === 'error') {\n\t\t\t\t\tprogress.push(...(result.progress ?? []))\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst errors = results.filter((result) => result.status === 'error')\n\t\t\tif (errors.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\tprogress,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tmessage: errors\n\t\t\t\t\t\t\t.map<string>((error) => error?.error?.message ?? '')\n\t\t\t\t\t\t\t.join('\\n'),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst status = results.every((result) => result.status === 'done')\n\t\t\t\t? 'done'\n\t\t\t\t: results.some((result) => result.status === 'cancelled')\n\t\t\t\t\t? 'cancelled'\n\t\t\t\t\t: 'in-progress'\n\t\t\treturn {\n\t\t\t\tstatus,\n\t\t\t\tprogress,\n\t\t\t\tresult: progress,\n\t\t\t}\n\t\t}),\n\t)\n}\n\nfunction ripgrepFiles(dir: URI, args: GrepToolArgs): Observable<ToolRun<GrepToolDef>> {\n\tconst ripgrepArgs: string[] = [\n\t\t'--with-filename',\n\t\t'--line-number',\n\t\t'--no-heading',\n\t\t'--no-require-git',\n\t\t'--max-columns',\n\t\tGREP_MAX_COLUMN_LENGTH.toString(),\n\t\t'--trim',\n\t\t'--max-count',\n\t\tGREP_MAX_RESULTS_PER_FILE.toString(),\n\t]\n\tif (!args.caseSensitive) {\n\t\tripgrepArgs.push('-i')\n\t}\n\tripgrepArgs.push('--regexp', args.pattern)\n\tif (args.path) {\n\t\tcheckArgSafety(args.path)\n\t\tripgrepArgs.push(args.path)\n\t}\n\n\treturn spawnAndObserveChildProcess(ripgrepExecutable(), ripgrepArgs, {\n\t\tcwd: dir.fsPath,\n\t\tstdio: ['ignore', 'pipe', 'pipe'],\n\t}).pipe(\n\t\tmap(({ stdout, stderr: _stderr, exitCode, exited }): ToolRun<GrepToolDef> => {\n\t\t\tconst matches = stdout\n\t\t\t\t.trim()\n\t\t\t\t.split('\\n')\n\t\t\t\t.filter((line) => line.length > 0)\n\n\t\t\tif (!exited) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'in-progress',\n\t\t\t\t\tprogress: matches,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ripgrep exit code 1 means \"no matches found\"\n\t\t\tif (exited && exitCode && exitCode >= 2) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\tprogress: matches,\n\t\t\t\t\terror: { message: `ripgrep exited with code ${exitCode}` },\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'done',\n\t\t\t\tprogress: matches,\n\t\t\t\tresult: matches,\n\t\t\t}\n\t\t}),\n\t\tcatchError((error) =>\n\t\t\tObservable.of({\n\t\t\t\tstatus: 'error',\n\t\t\t\tprogress: [],\n\t\t\t\terror: { message: String(error) },\n\t\t\t}),\n\t\t),\n\t)\n}\n"],"names":["nodeGrepTool","args","dirs","dir","checkDirURIIsFile","combineLatest","ripgrepFiles","map","results","progress","result","errors","error","ripgrepArgs","GREP_MAX_COLUMN_LENGTH","GREP_MAX_RESULTS_PER_FILE","checkArgSafety","spawnAndObserveChildProcess","ripgrepExecutable","stdout","_stderr","exitCode","exited","matches","line","catchError","Observable"],"mappings":";;;AAaO,MAAMA,IAAwD,CAAC,EAAE,MAAAC,KAAQ,EAAE,MAAAC,QAAW;AAC5F,aAAWC,KAAOD;AACjB,IAAAE,EAAkBD,CAAG;AAEf,SAAAE,EAAc,GAAGH,EAAK,IAAI,CAACC,MAAQG,EAAaH,GAAKF,CAAI,CAAC,CAAC,EAAE;AAAA,IACnEM,EAAkD,CAACC,MAAY;AAC9D,YAAMC,IAAqB,CAAC;AAC5B,iBAAWC,KAAUF;AAChB,QAAAE,EAAO,WAAW,gBACrBD,EAAS,KAAK,GAAIC,GAAQ,YAAY,CAAA,CAAG,IAC/BA,EAAO,WAAW,SACnBD,EAAA,KAAK,GAAGC,EAAO,MAAM,IACpBA,EAAO,WAAW,cAC5BD,EAAS,KAAK,GAAIC,EAAO,YAAY,CAAA,CAAG,IAC9BA,EAAO,WAAW,WAC5BD,EAAS,KAAK,GAAIC,EAAO,YAAY,CAAA,CAAG;AAG1C,YAAMC,IAASH,EAAQ,OAAO,CAACE,MAAWA,EAAO,WAAW,OAAO;AAC/D,aAAAC,EAAO,SAAS,IACZ;AAAA,QACN,QAAQ;AAAA,QACR,UAAAF;AAAA,QACA,OAAO;AAAA,UACN,SAASE,EACP,IAAY,CAACC,MAAUA,GAAO,OAAO,WAAW,EAAE,EAClD,KAAK;AAAA,CAAI;AAAA,QAAA;AAAA,MAEb,IAOM;AAAA,QACN,QANcJ,EAAQ,MAAM,CAACE,MAAWA,EAAO,WAAW,MAAM,IAC9D,SACAF,EAAQ,KAAK,CAACE,MAAWA,EAAO,WAAW,WAAW,IACrD,cACA;AAAA,QAGH,UAAAD;AAAA,QACA,QAAQA;AAAA,MACT;AAAA,IACA,CAAA;AAAA,EACF;AACD;AAEA,SAASH,EAAaH,GAAUF,GAAsD;AACrF,QAAMY,IAAwB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAC,EAAuB,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,IACAC,EAA0B,SAAS;AAAA,EACpC;AACI,SAACd,EAAK,iBACTY,EAAY,KAAK,IAAI,GAEVA,EAAA,KAAK,YAAYZ,EAAK,OAAO,GACrCA,EAAK,SACRe,EAAef,EAAK,IAAI,GACZY,EAAA,KAAKZ,EAAK,IAAI,IAGpBgB,EAA4BC,EAAkB,GAAGL,GAAa;AAAA,IACpE,KAAKV,EAAI;AAAA,IACT,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,EAChC,CAAA,EAAE;AAAA,IACFI,EAAI,CAAC,EAAE,QAAAY,GAAQ,QAAQC,GAAS,UAAAC,GAAU,QAAAC,QAAmC;AAC5E,YAAMC,IAAUJ,EACd,KAAK,EACL,MAAM;AAAA,CAAI,EACV,OAAO,CAACK,MAASA,EAAK,SAAS,CAAC;AAElC,aAAKF,IAQDA,KAAUD,KAAYA,KAAY,IAC9B;AAAA,QACN,QAAQ;AAAA,QACR,UAAUE;AAAA,QACV,OAAO,EAAE,SAAS,4BAA4BF,CAAQ,GAAG;AAAA,MAC1D,IAGM;AAAA,QACN,QAAQ;AAAA,QACR,UAAUE;AAAA,QACV,QAAQA;AAAA,MACT,IAnBQ;AAAA,QACN,QAAQ;AAAA,QACR,UAAUA;AAAA,MACX;AAAA,IAgBD,CACA;AAAA,IACDE;AAAA,MAAW,CAACb,MACXc,EAAW,GAAG;AAAA,QACb,QAAQ;AAAA,QACR,UAAU,CAAC;AAAA,QACX,OAAO,EAAE,SAAS,OAAOd,CAAK,EAAE;AAAA,MAChC,CAAA;AAAA,IAAA;AAAA,EAEH;AACD;"}
1
+ {"version":3,"file":"node-DOR8bmJd.js","sources":["../../core/src/tools/builtin/grep/node.ts"],"sourcesContent":["import { catchError, combineLatest, map, Observable } from '@sourcegraph/observable'\nimport type { URI } from 'vscode-uri'\nimport type { ToolRun } from '../../tool-service'\nimport { checkArgSafety, checkDirURIIsFile, spawnAndObserveChildProcess } from '../node-helpers'\nimport type { GrepToolArgs } from './common'\nimport {\n\tGREP_MAX_COLUMN_LENGTH,\n\tGREP_MAX_RESULTS_PER_FILE,\n\ttype GrepToolDef,\n\ttype grepToolReg,\n} from './common'\nimport { ripgrepExecutable } from './executable'\n\nexport const nodeGrepTool: NonNullable<(typeof grepToolReg)['fn']> = ({ args }, { dirs }) => {\n\tfor (const dir of dirs) {\n\t\tcheckDirURIIsFile(dir)\n\t}\n\treturn combineLatest(...dirs.map((dir) => ripgrepFiles(dir, args))).pipe(\n\t\tmap<ToolRun<GrepToolDef>[], ToolRun<GrepToolDef>>((results) => {\n\t\t\tconst progress: string[] = []\n\t\t\tfor (const result of results) {\n\t\t\t\tif (result.status === 'in-progress') {\n\t\t\t\t\tprogress.push(...(result?.progress ?? []))\n\t\t\t\t} else if (result.status === 'done') {\n\t\t\t\t\tprogress.push(...result.result)\n\t\t\t\t} else if (result.status === 'cancelled') {\n\t\t\t\t\tprogress.push(...(result.progress ?? []))\n\t\t\t\t} else if (result.status === 'error') {\n\t\t\t\t\tprogress.push(...(result.progress ?? []))\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst errors = results.filter((result) => result.status === 'error')\n\t\t\tif (errors.length > 0) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\tprogress,\n\t\t\t\t\terror: {\n\t\t\t\t\t\tmessage: errors\n\t\t\t\t\t\t\t.map<string>((error) => error?.error?.message ?? '')\n\t\t\t\t\t\t\t.join('\\n'),\n\t\t\t\t\t},\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst status = results.every((result) => result.status === 'done')\n\t\t\t\t? 'done'\n\t\t\t\t: results.some((result) => result.status === 'cancelled')\n\t\t\t\t\t? 'cancelled'\n\t\t\t\t\t: 'in-progress'\n\t\t\treturn {\n\t\t\t\tstatus,\n\t\t\t\tprogress,\n\t\t\t\tresult: progress,\n\t\t\t}\n\t\t}),\n\t)\n}\n\nfunction ripgrepFiles(dir: URI, args: GrepToolArgs): Observable<ToolRun<GrepToolDef>> {\n\tconst ripgrepArgs: string[] = [\n\t\t'--with-filename',\n\t\t'--line-number',\n\t\t'--no-heading',\n\t\t'--no-require-git',\n\t\t'--max-columns',\n\t\tGREP_MAX_COLUMN_LENGTH.toString(),\n\t\t'--trim',\n\t\t'--max-count',\n\t\tGREP_MAX_RESULTS_PER_FILE.toString(),\n\t]\n\tif (!args.caseSensitive) {\n\t\tripgrepArgs.push('-i')\n\t}\n\tripgrepArgs.push('--regexp', args.pattern)\n\tif (args.path) {\n\t\tcheckArgSafety(args.path)\n\t\tripgrepArgs.push(args.path)\n\t}\n\n\treturn spawnAndObserveChildProcess(ripgrepExecutable(), ripgrepArgs, {\n\t\tcwd: dir.fsPath,\n\t\tstdio: ['ignore', 'pipe', 'pipe'],\n\t}).pipe(\n\t\tmap(({ stdout, stderr: _stderr, exitCode, exited }): ToolRun<GrepToolDef> => {\n\t\t\tconst matches = stdout\n\t\t\t\t.trim()\n\t\t\t\t.split('\\n')\n\t\t\t\t.filter((line) => line.length > 0)\n\n\t\t\tif (!exited) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'in-progress',\n\t\t\t\t\tprogress: matches,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// ripgrep exit code 1 means \"no matches found\"\n\t\t\tif (exited && exitCode && exitCode >= 2) {\n\t\t\t\treturn {\n\t\t\t\t\tstatus: 'error',\n\t\t\t\t\tprogress: matches,\n\t\t\t\t\terror: { message: `ripgrep exited with code ${exitCode}` },\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tstatus: 'done',\n\t\t\t\tprogress: matches,\n\t\t\t\tresult: matches,\n\t\t\t}\n\t\t}),\n\t\tcatchError((error) =>\n\t\t\tObservable.of({\n\t\t\t\tstatus: 'error',\n\t\t\t\tprogress: [],\n\t\t\t\terror: { message: String(error) },\n\t\t\t}),\n\t\t),\n\t)\n}\n"],"names":["nodeGrepTool","args","dirs","dir","checkDirURIIsFile","combineLatest","ripgrepFiles","map","results","progress","result","errors","error","ripgrepArgs","GREP_MAX_COLUMN_LENGTH","GREP_MAX_RESULTS_PER_FILE","checkArgSafety","spawnAndObserveChildProcess","ripgrepExecutable","stdout","_stderr","exitCode","exited","matches","line","catchError","Observable"],"mappings":";;;AAaO,MAAMA,IAAwD,CAAC,EAAE,MAAAC,KAAQ,EAAE,MAAAC,QAAW;AAC5F,aAAWC,KAAOD;AACjB,IAAAE,EAAkBD,CAAG;AAEf,SAAAE,EAAc,GAAGH,EAAK,IAAI,CAACC,MAAQG,EAAaH,GAAKF,CAAI,CAAC,CAAC,EAAE;AAAA,IACnEM,EAAkD,CAACC,MAAY;AAC9D,YAAMC,IAAqB,CAAC;AAC5B,iBAAWC,KAAUF;AAChB,QAAAE,EAAO,WAAW,gBACrBD,EAAS,KAAK,GAAIC,GAAQ,YAAY,CAAA,CAAG,IAC/BA,EAAO,WAAW,SACnBD,EAAA,KAAK,GAAGC,EAAO,MAAM,IACpBA,EAAO,WAAW,cAC5BD,EAAS,KAAK,GAAIC,EAAO,YAAY,CAAA,CAAG,IAC9BA,EAAO,WAAW,WAC5BD,EAAS,KAAK,GAAIC,EAAO,YAAY,CAAA,CAAG;AAG1C,YAAMC,IAASH,EAAQ,OAAO,CAACE,MAAWA,EAAO,WAAW,OAAO;AAC/D,aAAAC,EAAO,SAAS,IACZ;AAAA,QACN,QAAQ;AAAA,QACR,UAAAF;AAAA,QACA,OAAO;AAAA,UACN,SAASE,EACP,IAAY,CAACC,MAAUA,GAAO,OAAO,WAAW,EAAE,EAClD,KAAK;AAAA,CAAI;AAAA,QAAA;AAAA,MAEb,IAOM;AAAA,QACN,QANcJ,EAAQ,MAAM,CAACE,MAAWA,EAAO,WAAW,MAAM,IAC9D,SACAF,EAAQ,KAAK,CAACE,MAAWA,EAAO,WAAW,WAAW,IACrD,cACA;AAAA,QAGH,UAAAD;AAAA,QACA,QAAQA;AAAA,MACT;AAAA,IACA,CAAA;AAAA,EACF;AACD;AAEA,SAASH,EAAaH,GAAUF,GAAsD;AACrF,QAAMY,IAAwB;AAAA,IAC7B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAC,EAAuB,SAAS;AAAA,IAChC;AAAA,IACA;AAAA,IACAC,EAA0B,SAAS;AAAA,EACpC;AACI,SAACd,EAAK,iBACTY,EAAY,KAAK,IAAI,GAEVA,EAAA,KAAK,YAAYZ,EAAK,OAAO,GACrCA,EAAK,SACRe,EAAef,EAAK,IAAI,GACZY,EAAA,KAAKZ,EAAK,IAAI,IAGpBgB,EAA4BC,EAAkB,GAAGL,GAAa;AAAA,IACpE,KAAKV,EAAI;AAAA,IACT,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,EAChC,CAAA,EAAE;AAAA,IACFI,EAAI,CAAC,EAAE,QAAAY,GAAQ,QAAQC,GAAS,UAAAC,GAAU,QAAAC,QAAmC;AAC5E,YAAMC,IAAUJ,EACd,KAAK,EACL,MAAM;AAAA,CAAI,EACV,OAAO,CAACK,MAASA,EAAK,SAAS,CAAC;AAElC,aAAKF,IAQDA,KAAUD,KAAYA,KAAY,IAC9B;AAAA,QACN,QAAQ;AAAA,QACR,UAAUE;AAAA,QACV,OAAO,EAAE,SAAS,4BAA4BF,CAAQ,GAAG;AAAA,MAC1D,IAGM;AAAA,QACN,QAAQ;AAAA,QACR,UAAUE;AAAA,QACV,QAAQA;AAAA,MACT,IAnBQ;AAAA,QACN,QAAQ;AAAA,QACR,UAAUA;AAAA,MACX;AAAA,IAgBD,CACA;AAAA,IACDE;AAAA,MAAW,CAACb,MACXc,EAAW,GAAG;AAAA,QACb,QAAQ;AAAA,QACR,UAAU,CAAC;AAAA,QACX,OAAO,EAAE,SAAS,OAAOd,CAAK,EAAE;AAAA,MAChC,CAAA;AAAA,IAAA;AAAA,EAEH;AACD;"}
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import * as oe from "node:os";
3
3
  import { resolve as he } from "node:path";
4
- import { aQ as ce, aR as le, aS as re, aT as ue, aU as fe, aV as _e, O as te, aW as de, aX as ie, aY as pe } from "./color-Cj45sRkS.js";
5
- import { loadProfileEnvironmentVariables as ge } from "./load-profile-Cj-UxFl1.js";
4
+ import { aO as ce, aP as le, aQ as re, aR as ue, aS as fe, aT as _e, O as te, aU as de, aV as ie, aW as pe } from "./color-DGLUYaqf.js";
5
+ import { loadProfileEnvironmentVariables as ge } from "./load-profile-OVWYid8R.js";
6
6
  var se = {}, ne;
7
7
  function ve() {
8
8
  return ne || (ne = 1, function(W) {
@@ -3429,7 +3429,7 @@ function ye(W, V, X) {
3429
3429
  const O = Se();
3430
3430
  return ge(
3431
3431
  W,
3432
- V.settings["terminal.commands.node-spawn.load-profile"]
3432
+ V.settings["terminal.commands.nodeSpawn.loadProfile"]
3433
3433
  ).pipe(
3434
3434
  re(
3435
3435
  (q) => ue(X.cmd, [], {
@@ -3444,12 +3444,12 @@ function ye(W, V, X) {
3444
3444
  const i = q?.subarray() ?? new Uint8Array();
3445
3445
  O.write(i, () => {
3446
3446
  const { output: l } = Ce(O);
3447
- U || B({
3448
- status: "in-progress",
3449
- progress: { output: l }
3450
- }), B({
3447
+ B(U ? {
3451
3448
  status: "done",
3452
3449
  result: { output: l, exitCode: j ?? -1 }
3450
+ } : {
3451
+ status: "in-progress",
3452
+ progress: { output: l }
3453
3453
  });
3454
3454
  });
3455
3455
  })
@@ -3498,4 +3498,4 @@ function Ee(W) {
3498
3498
  export {
3499
3499
  ke as nodeBashTool
3500
3500
  };
3501
- //# sourceMappingURL=node-COM1O9lA.js.map
3501
+ //# sourceMappingURL=node-KD2UfqlA.js.map