@myagentroam/node 0.1.1 → 0.1.2

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.
@@ -41,13 +41,9 @@ export interface WorkspaceDirectoryListing {
41
41
  readonly entries: readonly WorkspaceDirectoryEntry[];
42
42
  readonly truncated: boolean;
43
43
  }
44
- interface FileAccessOptions {
45
- readonly privateRoots?: readonly string[];
46
- }
47
44
  /** A per-workspace, process-local index for the Quick Open file picker. */
48
45
  export declare class WorkspaceFileIndex {
49
46
  private readonly workspaceRoot;
50
- private readonly options;
51
47
  private readonly limits;
52
48
  private entries;
53
49
  private truncated;
@@ -58,7 +54,7 @@ export declare class WorkspaceFileIndex {
58
54
  private expiryTimer;
59
55
  private fallbackTimer;
60
56
  private signature;
61
- constructor(workspaceRoot: string, options?: FileAccessOptions, limits?: {
57
+ constructor(workspaceRoot: string, limits?: {
62
58
  readonly entryLimit?: number;
63
59
  readonly idleTtlMs?: number;
64
60
  readonly onInvalidated?: () => void;
@@ -80,11 +76,11 @@ export declare class WorkspaceFileIndex {
80
76
  * browse boundary and terminal default.
81
77
  */
82
78
  export declare function listWorkspaceDirectories(requestedPath: string | undefined, allowedRoots: readonly string[], homePath?: string): Promise<WorkspaceDirectoryListing>;
83
- export declare function listWorkspaceFiles(workspaceRoot: string, requestedPath?: string, cursor?: string, limit?: number, options?: FileAccessOptions): Promise<WorkspaceFilePage>;
79
+ export declare function listWorkspaceFiles(workspaceRoot: string, requestedPath?: string, cursor?: string, limit?: number): Promise<WorkspaceFilePage>;
84
80
  /** Validates an upload destination without following an existing target symlink. */
85
- export declare function preflightWorkspaceUpload(workspaceRoot: string, requestedDirectory: string, name: string, options?: FileAccessOptions): Promise<WorkspaceUploadTarget>;
81
+ export declare function preflightWorkspaceUpload(workspaceRoot: string, requestedDirectory: string, name: string): Promise<WorkspaceUploadTarget>;
86
82
  export declare function workspaceUploadTemporaryName(uploadId: string): string;
87
- export declare function readWorkspaceTextFile(workspaceRoot: string, requestedPath: string, offset?: number, limit?: number, options?: FileAccessOptions): Promise<{
83
+ export declare function readWorkspaceTextFile(workspaceRoot: string, requestedPath: string, offset?: number, limit?: number): Promise<{
88
84
  readonly path: string;
89
85
  readonly encoding: 'utf-8' | 'base64';
90
86
  readonly size: number;
@@ -93,7 +89,7 @@ export declare function readWorkspaceTextFile(workspaceRoot: string, requestedPa
93
89
  readonly nextOffset: number | null;
94
90
  }>;
95
91
  /** Reads one absolute file only when the resolved target remains within a Node allowed root. */
96
- export declare function readAllowedTextFile(requestedPath: string, allowedRoots: readonly string[], offset?: number, limit?: number, options?: FileAccessOptions): Promise<{
92
+ export declare function readAllowedTextFile(requestedPath: string, allowedRoots: readonly string[], offset?: number, limit?: number): Promise<{
97
93
  readonly path: string;
98
94
  readonly encoding: 'utf-8' | 'base64';
99
95
  readonly size: number;
@@ -102,7 +98,7 @@ export declare function readAllowedTextFile(requestedPath: string, allowedRoots:
102
98
  readonly nextOffset: number | null;
103
99
  }>;
104
100
  /** Searches file names only, so an exploratory request cannot exfiltrate file contents. */
105
- export declare function searchWorkspaceFiles(workspaceRoot: string, query: string, cursor?: string, limit?: number, options?: FileAccessOptions): Promise<WorkspaceFileSearchPage>;
101
+ export declare function searchWorkspaceFiles(workspaceRoot: string, query: string, cursor?: string, limit?: number): Promise<WorkspaceFileSearchPage>;
106
102
  export declare function normalizeWorkspacePath(input: string, platform?: NodeJS.Platform): string;
107
103
  export declare function isWithinAllowedRoot(target: string, roots: readonly string[], platform?: NodeJS.Platform): boolean;
108
104
  /** Resolving both candidate and roots rejects Linux symlinks which point outside a root. */
@@ -137,7 +133,9 @@ export declare function readCurrentChangeDiff(workspacePath: string, requestedPa
137
133
  readonly afterText?: string;
138
134
  readonly afterTruncated?: boolean;
139
135
  }>;
140
- export declare function restoreCurrentChange(workspacePath: string, requestedPath: string, state: 'STAGED' | 'UNSTAGED' | 'UNTRACKED', options?: FileAccessOptions): Promise<void>;
136
+ /** Current Changes must not expose an external link. */
137
+ export declare function isWorkspaceChangeVisible(workspacePath: string, requestedPath: string): Promise<boolean>;
138
+ export declare function restoreCurrentChange(workspacePath: string, requestedPath: string, state: 'STAGED' | 'UNSTAGED' | 'UNTRACKED'): Promise<void>;
141
139
  export declare class GitCommandError extends Error {
142
140
  readonly code: number;
143
141
  readonly stderr: string;
package/dist/workspace.js CHANGED
@@ -44,7 +44,6 @@ const REF_PATTERN = /^(?!-)(?!.*\.\.)(?!.*@\{)[A-Za-z0-9][A-Za-z0-9._/-]{0,254}$
44
44
  /** A per-workspace, process-local index for the Quick Open file picker. */
45
45
  export class WorkspaceFileIndex {
46
46
  workspaceRoot;
47
- options;
48
47
  limits;
49
48
  entries = [];
50
49
  truncated = false;
@@ -55,9 +54,8 @@ export class WorkspaceFileIndex {
55
54
  expiryTimer;
56
55
  fallbackTimer;
57
56
  signature = '';
58
- constructor(workspaceRoot, options = {}, limits = {}) {
57
+ constructor(workspaceRoot, limits = {}) {
59
58
  this.workspaceRoot = workspaceRoot;
60
- this.options = options;
61
59
  this.limits = limits;
62
60
  }
63
61
  /** Starts/renews the lightweight index observer without exposing file data. */
@@ -122,7 +120,6 @@ export class WorkspaceFileIndex {
122
120
  }
123
121
  async rebuild() {
124
122
  const root = await realpath(this.workspaceRoot);
125
- assertNotPrivate(root, this.options.privateRoots);
126
123
  const excludes = [...DEFAULT_QUICK_OPEN_EXCLUDES, ...(await workspaceExcludePatterns(root))];
127
124
  const indexed = [];
128
125
  const entryLimit = this.limits.entryLimit ?? FILE_INDEX_ENTRY_LIMIT;
@@ -130,7 +127,7 @@ export class WorkspaceFileIndex {
130
127
  const directories = ['.'];
131
128
  while (directories.length > 0 && !truncated) {
132
129
  const relativeDirectory = directories.shift();
133
- const directory = await resolveWorkspaceEntry(root, relativeDirectory, true, this.options).catch(() => undefined);
130
+ const directory = await resolveWorkspaceEntry(root, relativeDirectory, true).catch(() => undefined);
134
131
  if (directory === undefined)
135
132
  continue;
136
133
  const children = await readdir(directory, { withFileTypes: true }).catch(() => undefined);
@@ -142,7 +139,7 @@ export class WorkspaceFileIndex {
142
139
  candidatePath.startsWith('.git/') ||
143
140
  isExcluded(candidatePath, excludes))
144
141
  continue;
145
- const resolved = await resolveWorkspaceEntry(root, candidatePath, false, this.options).catch(() => undefined);
142
+ const resolved = await resolveWorkspaceEntry(root, candidatePath, false).catch(() => undefined);
146
143
  if (resolved === undefined)
147
144
  continue;
148
145
  const metadata = await lstat(resolved).catch(() => undefined);
@@ -307,10 +304,10 @@ export async function listWorkspaceDirectories(requestedPath, allowedRoots, home
307
304
  truncated: entries.length > DIRECTORY_PICKER_LIMIT
308
305
  };
309
306
  }
310
- export async function listWorkspaceFiles(workspaceRoot, requestedPath = '.', cursor, limit = DIRECTORY_PAGE_LIMIT, options = {}) {
307
+ export async function listWorkspaceFiles(workspaceRoot, requestedPath = '.', cursor, limit = DIRECTORY_PAGE_LIMIT) {
311
308
  if (!Number.isSafeInteger(limit) || limit < 1 || limit > DIRECTORY_PAGE_LIMIT)
312
309
  throw new Error('DIRECTORY_CURSOR_INVALID');
313
- const directory = await resolveWorkspaceEntry(workspaceRoot, requestedPath, true, options);
310
+ const directory = await resolveWorkspaceEntry(workspaceRoot, requestedPath, true);
314
311
  const entries = await readdir(directory, { withFileTypes: true });
315
312
  const root = await realpath(workspaceRoot);
316
313
  const cursorValue = decodeDirectoryCursor(cursor, requestedPath);
@@ -324,10 +321,18 @@ export async function listWorkspaceFiles(workspaceRoot, requestedPath = '.', cur
324
321
  const pageNames = names.slice(start, start + limit);
325
322
  const output = [];
326
323
  for (const name of pageNames) {
327
- const child = await resolveWorkspaceEntry(root, relative(root, resolve(directory, name)), false, options).catch(() => undefined);
324
+ const child = await resolveWorkspaceEntry(root, relative(root, resolve(directory, name)), false).catch((error) => {
325
+ if (isSkippableWorkspaceEntryError(error))
326
+ return undefined;
327
+ throw error;
328
+ });
328
329
  if (child === undefined)
329
330
  continue;
330
- const metadata = await lstat(child).catch(() => undefined);
331
+ const metadata = await lstat(child).catch((error) => {
332
+ if (error.code === 'ENOENT')
333
+ return undefined;
334
+ throw error;
335
+ });
331
336
  if (metadata === undefined || (!metadata.isFile() && !metadata.isDirectory()))
332
337
  continue;
333
338
  output.push({
@@ -347,8 +352,14 @@ export async function listWorkspaceFiles(workspaceRoot, requestedPath = '.', cur
347
352
  truncated: nextName !== undefined
348
353
  };
349
354
  }
355
+ function isSkippableWorkspaceEntryError(error) {
356
+ return (error instanceof Error &&
357
+ (error.message === 'FILE_PATH_ESCAPE' ||
358
+ error.message === 'FILE_NOT_FOUND' ||
359
+ error.message === 'FILE_NOT_REGULAR'));
360
+ }
350
361
  /** Validates an upload destination without following an existing target symlink. */
351
- export async function preflightWorkspaceUpload(workspaceRoot, requestedDirectory, name, options = {}) {
362
+ export async function preflightWorkspaceUpload(workspaceRoot, requestedDirectory, name) {
352
363
  if (name.length === 0 ||
353
364
  name === '.' ||
354
365
  name === '..' ||
@@ -359,11 +370,10 @@ export async function preflightWorkspaceUpload(workspaceRoot, requestedDirectory
359
370
  return { path: '', absolutePath: '', status: 'INVALID_NAME' };
360
371
  }
361
372
  const root = await realpath(workspaceRoot);
362
- const directory = await resolveWorkspaceEntry(root, requestedDirectory, true, options);
373
+ const directory = await resolveWorkspaceEntry(root, requestedDirectory, true);
363
374
  const absolutePath = resolve(directory, name);
364
375
  if (dirname(absolutePath) !== directory)
365
376
  throw new Error('FILE_PATH_ESCAPE');
366
- assertNotPrivate(absolutePath, options.privateRoots);
367
377
  const relativePath = relative(root, absolutePath).split(sep).join('/');
368
378
  const metadata = await lstat(absolutePath).catch((error) => {
369
379
  if (error.code === 'ENOENT')
@@ -384,7 +394,7 @@ export function workspaceUploadTemporaryName(uploadId) {
384
394
  function isWorkspaceUploadTemporaryName(name) {
385
395
  return /^\.mar-upload-[0-9a-f-]{36}\.part$/i.test(name);
386
396
  }
387
- export async function readWorkspaceTextFile(workspaceRoot, requestedPath, offset = 0, limit = FILE_READ_LIMIT, options = {}) {
397
+ export async function readWorkspaceTextFile(workspaceRoot, requestedPath, offset = 0, limit = FILE_READ_LIMIT) {
388
398
  if (!Number.isSafeInteger(offset) ||
389
399
  offset < 0 ||
390
400
  !Number.isSafeInteger(limit) ||
@@ -392,7 +402,7 @@ export async function readWorkspaceTextFile(workspaceRoot, requestedPath, offset
392
402
  limit > FILE_READ_LIMIT)
393
403
  throw new Error('FILE_RANGE_INVALID');
394
404
  const root = await realpath(workspaceRoot);
395
- const file = await resolveWorkspaceEntry(root, requestedPath, false, options);
405
+ const file = await resolveWorkspaceEntry(root, requestedPath, false);
396
406
  const metadata = await lstat(file);
397
407
  if (!metadata.isFile())
398
408
  throw new Error('FILE_NOT_REGULAR');
@@ -437,7 +447,7 @@ export async function readWorkspaceTextFile(workspaceRoot, requestedPath, offset
437
447
  };
438
448
  }
439
449
  /** Reads one absolute file only when the resolved target remains within a Node allowed root. */
440
- export async function readAllowedTextFile(requestedPath, allowedRoots, offset = 0, limit = FILE_READ_LIMIT, options = {}) {
450
+ export async function readAllowedTextFile(requestedPath, allowedRoots, offset = 0, limit = FILE_READ_LIMIT) {
441
451
  if (!isAbsolute(requestedPath))
442
452
  throw new Error('FILE_PATH_ESCAPE');
443
453
  const file = await realpath(requestedPath).catch((error) => {
@@ -448,7 +458,6 @@ export async function readAllowedTextFile(requestedPath, allowedRoots, offset =
448
458
  const roots = await Promise.all(allowedRoots.map((root) => realpath(root)));
449
459
  if (!isWithinAllowedRoot(file, roots))
450
460
  throw new Error('FILE_PATH_ESCAPE');
451
- assertNotPrivate(file, options.privateRoots);
452
461
  const metadata = await lstat(file);
453
462
  if (!metadata.isFile())
454
463
  throw new Error('FILE_NOT_REGULAR');
@@ -509,8 +518,8 @@ function isUtf8ContinuationByte(value) {
509
518
  return (value & 0b1100_0000) === 0b1000_0000;
510
519
  }
511
520
  /** Searches file names only, so an exploratory request cannot exfiltrate file contents. */
512
- export async function searchWorkspaceFiles(workspaceRoot, query, cursor, limit = SEARCH_RESULT_LIMIT, options = {}) {
513
- const index = new WorkspaceFileIndex(workspaceRoot, options);
521
+ export async function searchWorkspaceFiles(workspaceRoot, query, cursor, limit = SEARCH_RESULT_LIMIT) {
522
+ const index = new WorkspaceFileIndex(workspaceRoot);
514
523
  try {
515
524
  return await index.search(query, cursor, limit);
516
525
  }
@@ -518,7 +527,7 @@ export async function searchWorkspaceFiles(workspaceRoot, query, cursor, limit =
518
527
  index.dispose();
519
528
  }
520
529
  }
521
- async function resolveWorkspaceEntry(workspaceRoot, requestedPath, directory, options = {}) {
530
+ async function resolveWorkspaceEntry(workspaceRoot, requestedPath, directory) {
522
531
  if (requestedPath.includes('\0') ||
523
532
  requestedPath.length === 0 ||
524
533
  requestedPath.startsWith('/') ||
@@ -542,20 +551,11 @@ async function resolveWorkspaceEntry(workspaceRoot, requestedPath, directory, op
542
551
  pathToCandidate === '..' ||
543
552
  pathToCandidate.startsWith(`..${sep}`))
544
553
  throw new Error('FILE_PATH_ESCAPE');
545
- assertNotPrivate(candidate, options.privateRoots);
546
554
  const metadata = await lstat(candidate);
547
555
  if (directory ? !metadata.isDirectory() : !metadata.isFile() && !metadata.isDirectory())
548
556
  throw new Error(directory ? 'FILE_NOT_DIRECTORY' : 'FILE_NOT_REGULAR');
549
557
  return candidate;
550
558
  }
551
- function assertNotPrivate(candidate, privateRoots) {
552
- if (privateRoots?.some((privateRoot) => isSameOrDescendant(privateRoot, candidate)))
553
- throw new Error('FILE_PATH_ESCAPE');
554
- }
555
- function isSameOrDescendant(root, candidate) {
556
- const relativePath = relative(root, candidate);
557
- return (relativePath === '' || (!relativePath.startsWith('..') && !relativePath.startsWith(`..${sep}`)));
558
- }
559
559
  function encodeDirectoryCursor(path, name) {
560
560
  return Buffer.from(JSON.stringify({ path, name })).toString('base64url');
561
561
  }
@@ -743,6 +743,7 @@ export async function readCurrentChanges(workspacePath) {
743
743
  }
744
744
  export async function readCurrentChangeDiff(workspacePath, requestedPath) {
745
745
  const path = safeGitWorkspacePath(requestedPath);
746
+ await assertCurrentChangePathAccessible(workspacePath, path);
746
747
  const result = await runGit(workspacePath, [
747
748
  'diff',
748
749
  '--no-ext-diff',
@@ -768,6 +769,33 @@ export async function readCurrentChangeDiff(workspacePath, requestedPath) {
768
769
  ...(after === undefined ? {} : { afterTruncated: after.truncated })
769
770
  };
770
771
  }
772
+ /** Current Changes must not expose an external link. */
773
+ export async function isWorkspaceChangeVisible(workspacePath, requestedPath) {
774
+ try {
775
+ await assertCurrentChangePathAccessible(workspacePath, safeGitWorkspacePath(requestedPath));
776
+ return true;
777
+ }
778
+ catch (error) {
779
+ if (error instanceof Error &&
780
+ (error.message === 'FILE_PATH_ESCAPE' ||
781
+ error.message === 'FILE_NOT_FOUND' ||
782
+ error.message === 'FILE_NOT_REGULAR'))
783
+ return false;
784
+ throw error;
785
+ }
786
+ }
787
+ async function assertCurrentChangePathAccessible(workspacePath, path) {
788
+ const root = await realpath(workspacePath);
789
+ const candidate = resolve(root, path);
790
+ const metadata = await lstat(candidate).catch((error) => {
791
+ if (error.code === 'ENOENT')
792
+ return undefined;
793
+ throw error;
794
+ });
795
+ if (metadata === undefined)
796
+ return;
797
+ await resolveWorkspaceEntry(root, path, false);
798
+ }
771
799
  async function readWorkingTreeText(workspacePath, path) {
772
800
  const root = await realpath(workspacePath);
773
801
  let file;
@@ -790,7 +818,7 @@ function diffTextFromBuffer(source, truncated) {
790
818
  end -= 1;
791
819
  return { binary: false, text: source.subarray(0, end).toString('utf8'), truncated };
792
820
  }
793
- export async function restoreCurrentChange(workspacePath, requestedPath, state, options = {}) {
821
+ export async function restoreCurrentChange(workspacePath, requestedPath, state) {
794
822
  const path = safeGitWorkspacePath(requestedPath);
795
823
  const pathspec = `:(literal)${path}`;
796
824
  if (state === 'UNTRACKED') {
@@ -808,7 +836,6 @@ export async function restoreCurrentChange(workspacePath, requestedPath, state,
808
836
  throw new Error('GIT_CHANGE_RESTORE_UNAVAILABLE');
809
837
  const root = await realpath(workspacePath);
810
838
  const file = resolve(root, path);
811
- assertNotPrivate(file, options.privateRoots);
812
839
  const metadata = await lstat(file);
813
840
  if (!metadata.isFile() || metadata.isSymbolicLink())
814
841
  throw new Error('GIT_CHANGE_RESTORE_UNAVAILABLE');
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@myagentroam/node",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "MyAgentRoam Node runtime CLI.",
5
5
  "type": "module",
6
6
  "files": [
@@ -23,7 +23,7 @@
23
23
  "node-pty": "1.1.0",
24
24
  "ws": "^8.21.3",
25
25
  "zod": "4.4.3",
26
- "@myagentroam/protocol": "^0.1.1"
26
+ "@myagentroam/protocol": "^0.1.2"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@types/ws": "^8.18.1"