@sourcegraph/amp 0.0.1749211345-g16cdfc → 0.0.1749229550-g9694e5

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 +3 -3
  2. package/dist/{client-Dd8T5Ydk.js → client-ds-4Gesv.js} +2 -2
  3. package/dist/{client-Dd8T5Ydk.js.map → client-ds-4Gesv.js.map} +1 -1
  4. package/dist/{console-D_ZxbRrA.js → console-IMaFTNO_.js} +5235 -5196
  5. package/dist/console-IMaFTNO_.js.map +1 -0
  6. package/dist/{create_file.node-D_xwgdhJ.js → create_file.node-BEncCC8j.js} +2 -2
  7. package/dist/{create_file.node-D_xwgdhJ.js.map → create_file.node-BEncCC8j.js.map} +1 -1
  8. package/dist/{edit_file.node-Cv9nC-uR.js → edit_file.node-r6enrufx.js} +3 -3
  9. package/dist/{edit_file.node-Cv9nC-uR.js.map → edit_file.node-r6enrufx.js.map} +1 -1
  10. package/dist/{executable-BTpHtmPV.js → executable-C191JUDZ.js} +2 -2
  11. package/dist/{executable-BTpHtmPV.js.map → executable-C191JUDZ.js.map} +1 -1
  12. package/dist/{files-CNmw2a6V.js → files-DX1Rcv-b.js} +2 -2
  13. package/dist/{files-CNmw2a6V.js.map → files-DX1Rcv-b.js.map} +1 -1
  14. package/dist/fuzzy-server.js +116 -113
  15. package/dist/fuzzy-server.js.map +1 -1
  16. package/dist/{glob.node-Dbygwo7q.js → glob.node-V26WhViL.js} +4 -4
  17. package/dist/{glob.node-Dbygwo7q.js.map → glob.node-V26WhViL.js.map} +1 -1
  18. package/dist/{index-DGuVA6oK.js → index-s2jl_p7T.js} +2 -2
  19. package/dist/{index-DGuVA6oK.js.map → index-s2jl_p7T.js.map} +1 -1
  20. package/dist/{list_directory.node-DJCJkqLg.js → list_directory.node-DHdCh83K.js} +2 -2
  21. package/dist/{list_directory.node-DJCJkqLg.js.map → list_directory.node-DHdCh83K.js.map} +1 -1
  22. package/dist/{load-profile-CXHBU_AI.js → load-profile-DhjYljBm.js} +2 -2
  23. package/dist/{load-profile-CXHBU_AI.js.map → load-profile-DhjYljBm.js.map} +1 -1
  24. package/dist/{main-CtHA5Ylu.js → main-CViFqnHd.js} +20 -16
  25. package/dist/{main-CtHA5Ylu.js.map → main-CViFqnHd.js.map} +1 -1
  26. package/dist/{node-DZCyuAqY.js → node-5bqApaH4.js} +2 -2
  27. package/dist/{node-DZCyuAqY.js.map → node-5bqApaH4.js.map} +1 -1
  28. package/dist/{node-BOIz1I5S.js → node-B7MBixqa.js} +3 -3
  29. package/dist/{node-BOIz1I5S.js.map → node-B7MBixqa.js.map} +1 -1
  30. package/dist/{node-DaL4eJRQ.js → node-Co79r24v.js} +3 -3
  31. package/dist/{node-DaL4eJRQ.js.map → node-Co79r24v.js.map} +1 -1
  32. package/dist/{node-DPPbAAw0.js → node-DA-2Nx8c.js} +2 -2
  33. package/dist/{node-DPPbAAw0.js.map → node-DA-2Nx8c.js.map} +1 -1
  34. package/dist/{node-D9dPV0eu.js → node-DlbeIkGB.js} +4 -4
  35. package/dist/{node-D9dPV0eu.js.map → node-DlbeIkGB.js.map} +1 -1
  36. package/dist/{node-C2cKbj9k.js → node-EUyk2vx1.js} +3 -3
  37. package/dist/{node-C2cKbj9k.js.map → node-EUyk2vx1.js.map} +1 -1
  38. package/dist/{read_file.node-CAD-I3qI.js → read_file.node-DX2hfbZk.js} +2 -2
  39. package/dist/{read_file.node-CAD-I3qI.js.map → read_file.node-DX2hfbZk.js.map} +1 -1
  40. package/dist/{stdio-7mSc8Mj0.js → stdio-DcomcMVs.js} +3 -3
  41. package/dist/{stdio-7mSc8Mj0.js.map → stdio-DcomcMVs.js.map} +1 -1
  42. package/dist/storybook.js +1 -1
  43. package/dist/{undo_edit.node-BYH1ok_y.js → undo_edit.node-Bptlgp-M.js} +2 -2
  44. package/dist/{undo_edit.node-BYH1ok_y.js.map → undo_edit.node-Bptlgp-M.js.map} +1 -1
  45. package/package.json +1 -1
  46. package/dist/console-D_ZxbRrA.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 { C as l, aJ as n } from "./console-D_ZxbRrA.js";
7
+ import { C as l, aJ as n } from "./console-IMaFTNO_.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-DZCyuAqY.js.map
113
+ //# sourceMappingURL=node-5bqApaH4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-DZCyuAqY.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-5bqApaH4.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,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  import * as le from "node:os";
3
3
  import ee, { resolve as fe } from "node:path";
4
- import { aT as de, aU as _e, C as pe, aV as ne, aW as ge, aX as ve, aI as oe, aQ as me, aH as be, aC as Se, O as se } from "./console-D_ZxbRrA.js";
5
- import { loadProfileEnvironmentVariables as Ce } from "./load-profile-CXHBU_AI.js";
4
+ import { aT as de, aU as _e, C as pe, aV as ne, aW as ge, aX as ve, aI as oe, aQ as me, aH as be, aC as Se, O as se } from "./console-IMaFTNO_.js";
5
+ import { loadProfileEnvironmentVariables as Ce } from "./load-profile-DhjYljBm.js";
6
6
  const ye = [
7
7
  // Basic read/info operations
8
8
  "ls",
@@ -3824,4 +3824,4 @@ function Ie(L) {
3824
3824
  export {
3825
3825
  Ne as nodeBashTool
3826
3826
  };
3827
- //# sourceMappingURL=node-BOIz1I5S.js.map
3827
+ //# sourceMappingURL=node-B7MBixqa.js.map