@poping/yome 0.0.9 → 0.0.11

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 (40) hide show
  1. package/dist/agent.js +13 -7
  2. package/dist/agent.js.map +1 -1
  3. package/dist/commands/mesh.js +2 -0
  4. package/dist/commands/mesh.js.map +1 -1
  5. package/dist/llm.d.ts +1 -0
  6. package/dist/llm.js +35 -3
  7. package/dist/llm.js.map +1 -1
  8. package/dist/mesh/device-registrar.d.ts +3 -0
  9. package/dist/mesh/device-registrar.js +3 -0
  10. package/dist/mesh/device-registrar.js.map +1 -1
  11. package/dist/mesh/index.d.ts +2 -0
  12. package/dist/mesh/index.js +4 -1
  13. package/dist/mesh/index.js.map +1 -1
  14. package/dist/mesh/rpc-handler-path.test.js +34 -5
  15. package/dist/mesh/rpc-handler-path.test.js.map +1 -1
  16. package/dist/mesh/rpc-handler.d.ts +12 -7
  17. package/dist/mesh/rpc-handler.js +48 -38
  18. package/dist/mesh/rpc-handler.js.map +1 -1
  19. package/dist/mesh/thread-stream.d.ts +15 -0
  20. package/dist/mesh/thread-stream.js +12 -7
  21. package/dist/mesh/thread-stream.js.map +1 -1
  22. package/dist/mesh/types.d.ts +3 -1
  23. package/dist/tools/glob.js +16 -6
  24. package/dist/tools/glob.js.map +1 -1
  25. package/dist/tools/grep.js +24 -3
  26. package/dist/tools/grep.js.map +1 -1
  27. package/dist/tools/ls.js +33 -15
  28. package/dist/tools/ls.js.map +1 -1
  29. package/dist/tools/read.js +98 -14
  30. package/dist/tools/read.js.map +1 -1
  31. package/dist/ui/App.js +36 -1
  32. package/dist/ui/App.js.map +1 -1
  33. package/dist/ui/MeshApp.js +123 -11
  34. package/dist/ui/MeshApp.js.map +1 -1
  35. package/dist/ui/ThreadPicker.d.ts +11 -0
  36. package/dist/ui/ThreadPicker.js +62 -0
  37. package/dist/ui/ThreadPicker.js.map +1 -0
  38. package/dist/ui/ToolResult.js +4 -0
  39. package/dist/ui/ToolResult.js.map +1 -1
  40. package/package.json +1 -1
@@ -21,10 +21,9 @@
21
21
  // IMPORTANT path conventions on Linux mesh (different from macOS sandbox!):
22
22
  // - There is NO Desktop/Downloads/Documents sandbox; full POSIX paths allowed.
23
23
  // - `~` and `~/foo` are expanded to the daemon user's $HOME.
24
- // - A missing/empty path is treated as $HOME (NOT process.cwd(), because the
25
- // daemon's cwd is wherever systemd/the background launcher started it,
26
- // which is meaningless to the LLM).
27
- // - A relative path is resolved against $HOME (matches `cd ~` then `ls foo`).
24
+ // - A missing/empty path is treated as the mesh working directory captured
25
+ // when `yome mesh start` was launched.
26
+ // - A relative path is resolved against that mesh working directory.
28
27
  import { spawn } from 'child_process';
29
28
  import { promises as fsp } from 'fs';
30
29
  import { homedir } from 'os';
@@ -48,22 +47,22 @@ function expandTilde(p) {
48
47
  }
49
48
  /**
50
49
  * Resolve a user-supplied path with consistent semantics on Linux mesh:
51
- * - empty / undefined → $HOME (NOT cwd — the daemon's cwd is opaque)
50
+ * - empty / undefined → mesh working directory
52
51
  * - leading `~` → $HOME-relative
53
52
  * - absolute → kept as-is
54
- * - relative → resolved against $HOME
53
+ * - relative → resolved against mesh working directory
55
54
  */
56
- function resolveUserPath(raw, fallbackToHome = true) {
55
+ function resolveUserPath(raw, fallbackToWorkingDirectory = true, workingDirectory = process.cwd()) {
57
56
  const s = (raw ?? '').trim();
58
57
  if (!s) {
59
- if (fallbackToHome)
60
- return homedir();
58
+ if (fallbackToWorkingDirectory)
59
+ return workingDirectory;
61
60
  return '';
62
61
  }
63
62
  const expanded = expandTilde(s);
64
63
  if (isAbsolute(expanded))
65
64
  return expanded;
66
- return resolvePath(homedir(), expanded);
65
+ return resolvePath(workingDirectory, expanded);
67
66
  }
68
67
  /**
69
68
  * Extract the path argument from a parsed fs command.
@@ -71,10 +70,10 @@ function resolveUserPath(raw, fallbackToHome = true) {
71
70
  * (see Server/agent/commandParser.ts:558). Older code paths and the
72
71
  * yome-skill-fs signature use `--path=`, so we accept both.
73
72
  */
74
- function pathArg(args, fallbackToHome = true) {
73
+ function pathArg(args, fallbackToWorkingDirectory = true, workingDirectory = process.cwd()) {
75
74
  const fromPath = typeof args.path === 'string' ? args.path : '';
76
75
  const fromPos = typeof args.positional === 'string' ? args.positional : '';
77
- return resolveUserPath(fromPath || fromPos, fallbackToHome);
76
+ return resolveUserPath(fromPath || fromPos, fallbackToWorkingDirectory, workingDirectory);
78
77
  }
79
78
  function intArg(args, key, dflt) {
80
79
  const v = args[key];
@@ -106,9 +105,11 @@ export class RpcHandler {
106
105
  client;
107
106
  opts;
108
107
  detach = null;
108
+ workingDirectory;
109
109
  constructor(client, opts = {}) {
110
110
  this.client = client;
111
111
  this.opts = opts;
112
+ this.workingDirectory = resolvePath(opts.workingDirectory ?? process.cwd());
112
113
  }
113
114
  start() {
114
115
  this.detach = this.client.onMessage((frame) => {
@@ -165,6 +166,7 @@ export class RpcHandler {
165
166
  const domain = req.parsed?.domain;
166
167
  switch (domain) {
167
168
  case 'bash':
169
+ case 'sh':
168
170
  return this.handleBash(req);
169
171
  case 'fs':
170
172
  return this.handleFs(req);
@@ -185,26 +187,33 @@ export class RpcHandler {
185
187
  default:
186
188
  return {
187
189
  stdout: '',
188
- stderr: `[mesh] unknown domain: ${domain} (linux cli implements: bash, fs). For shell access use \`bash exec --cmd="..."\`.`,
190
+ stderr: `[mesh] unknown domain: ${domain} (linux cli implements: sh, fs). For shell access use \`sh <command>\`.`,
189
191
  exitCode: 127,
190
192
  };
191
193
  }
192
194
  }
193
195
  /**
194
- * `bash exec --cmd="..."` or any other action where args.cmd is the
195
- * shell line. We deliberately only honour --cmd (not raw `command`)
196
- * to match the existing domain-RPC parser shape that other domains
197
- * use; if cmd is absent we fall back to req.command.
196
+ * Handles both `bash` (legacy: --cmd=…) and `sh` (new top-level shell
197
+ * domain: everything after the leading `sh ` token is the shell
198
+ * line). Resolution order:
199
+ * 1. parsed.args.cmd legacy `bash exec --cmd="..."`
200
+ * 2. req.command with leading `sh ` / `bash ` stripped — `sh find / | xargs grep ...`
201
+ * 3. raw req.command as last resort.
198
202
  */
199
203
  handleBash(req) {
200
- const shellLine = req.parsed?.args?.cmd ?? req.command ?? '';
204
+ let shellLine = req.parsed?.args?.cmd ?? '';
205
+ if (!shellLine) {
206
+ const raw = (req.command ?? '').trim();
207
+ const stripped = raw.replace(/^(?:sh|bash)\s+/i, '');
208
+ shellLine = stripped || raw;
209
+ }
201
210
  if (!shellLine.trim()) {
202
211
  return Promise.resolve({ stdout: '', stderr: '[bash] empty command', exitCode: 2 });
203
212
  }
204
213
  return new Promise((resolveP) => {
205
214
  const proc = spawn('sh', ['-c', shellLine], {
206
215
  stdio: ['ignore', 'pipe', 'pipe'],
207
- cwd: homedir(),
216
+ cwd: this.workingDirectory,
208
217
  });
209
218
  let stdout = '';
210
219
  let stderr = '';
@@ -235,16 +244,17 @@ export class RpcHandler {
235
244
  }
236
245
  /**
237
246
  * `fs <action> [<path>] [--key=value ...]`
238
- * Path resolution: see `resolveUserPath` — empty → $HOME, ~ expanded,
239
- * relative → resolved against $HOME, full POSIX paths allowed.
247
+ * Path resolution: see `resolveUserPath` — empty → mesh working directory,
248
+ * ~ expanded, relative → mesh working directory, full POSIX paths allowed.
240
249
  */
241
250
  async handleFs(req) {
242
251
  const action = req.parsed?.action ?? '';
243
252
  const args = (req.parsed?.args ?? {});
253
+ const root = this.workingDirectory;
244
254
  try {
245
255
  switch (action) {
246
256
  case 'ls': {
247
- const target = pathArg(args);
257
+ const target = pathArg(args, true, root);
248
258
  const entries = await fsp.readdir(target, { withFileTypes: true });
249
259
  // Output TSV: `name\ttype\tsize` so the Server-side fsDomain.ls
250
260
  // compress() (which filters on `\t`) actually sees rows. Header
@@ -271,14 +281,14 @@ export class RpcHandler {
271
281
  return { stdout: `${target}:\n${rows.join('\n')}`, stderr: '', exitCode: 0 };
272
282
  }
273
283
  case 'tree': {
274
- const target = pathArg(args);
284
+ const target = pathArg(args, true, root);
275
285
  const depth = Math.max(1, intArg(args, 'depth', 2));
276
286
  const out = [target];
277
287
  await walkTree(target, depth, '', out);
278
288
  return { stdout: out.join('\n'), stderr: '', exitCode: 0 };
279
289
  }
280
290
  case 'stat': {
281
- const target = pathArg(args, false);
291
+ const target = pathArg(args, false, root);
282
292
  if (!target)
283
293
  return { stdout: '', stderr: '[fs stat] path is required', exitCode: 2 };
284
294
  const st = await fsp.stat(target);
@@ -296,7 +306,7 @@ export class RpcHandler {
296
306
  }
297
307
  case 'find': {
298
308
  // fs find <path> --name=GLOB [--type=file|dir] [--limit=20]
299
- const target = pathArg(args);
309
+ const target = pathArg(args, true, root);
300
310
  const namePat = strArg(args, 'name');
301
311
  if (!namePat)
302
312
  return { stdout: '', stderr: '[fs find] --name is required', exitCode: 2 };
@@ -324,7 +334,7 @@ export class RpcHandler {
324
334
  }
325
335
  case 'cat':
326
336
  case 'read': {
327
- const target = pathArg(args, false);
337
+ const target = pathArg(args, false, root);
328
338
  if (!target)
329
339
  return { stdout: '', stderr: '[fs read] path is required', exitCode: 2 };
330
340
  const st = await fsp.stat(target);
@@ -346,7 +356,7 @@ export class RpcHandler {
346
356
  return { stdout: slice, stderr: '', exitCode: 0 };
347
357
  }
348
358
  case 'head': {
349
- const target = pathArg(args, false);
359
+ const target = pathArg(args, false, root);
350
360
  if (!target)
351
361
  return { stdout: '', stderr: '[fs head] path is required', exitCode: 2 };
352
362
  const lines = Math.max(1, intArg(args, 'lines', 10));
@@ -354,7 +364,7 @@ export class RpcHandler {
354
364
  return { stdout: content.split('\n').slice(0, lines).join('\n'), stderr: '', exitCode: 0 };
355
365
  }
356
366
  case 'tail': {
357
- const target = pathArg(args, false);
367
+ const target = pathArg(args, false, root);
358
368
  if (!target)
359
369
  return { stdout: '', stderr: '[fs tail] path is required', exitCode: 2 };
360
370
  const lines = Math.max(1, intArg(args, 'lines', 10));
@@ -362,14 +372,14 @@ export class RpcHandler {
362
372
  return { stdout: content.split('\n').slice(-lines).join('\n'), stderr: '', exitCode: 0 };
363
373
  }
364
374
  case 'mkdir': {
365
- const target = pathArg(args, false);
375
+ const target = pathArg(args, false, root);
366
376
  if (!target)
367
377
  return { stdout: '', stderr: '[fs mkdir] path is required', exitCode: 2 };
368
378
  await fsp.mkdir(target, { recursive: true });
369
379
  return { stdout: `created ${target}`, stderr: '', exitCode: 0 };
370
380
  }
371
381
  case 'write': {
372
- const target = pathArg(args, false);
382
+ const target = pathArg(args, false, root);
373
383
  if (!target)
374
384
  return { stdout: '', stderr: '[fs write] path is required', exitCode: 2 };
375
385
  const content = strArg(args, 'content');
@@ -386,7 +396,7 @@ export class RpcHandler {
386
396
  return { stdout: `wrote ${content.length} bytes to ${target}`, stderr: '', exitCode: 0 };
387
397
  }
388
398
  case 'append': {
389
- const target = pathArg(args, false);
399
+ const target = pathArg(args, false, root);
390
400
  if (!target)
391
401
  return { stdout: '', stderr: '[fs append] path is required', exitCode: 2 };
392
402
  const content = strArg(args, 'content');
@@ -395,7 +405,7 @@ export class RpcHandler {
395
405
  return { stdout: `appended ${content.length} bytes to ${target}`, stderr: '', exitCode: 0 };
396
406
  }
397
407
  case 'edit': {
398
- const target = pathArg(args, false);
408
+ const target = pathArg(args, false, root);
399
409
  if (!target)
400
410
  return { stdout: '', stderr: '[fs edit] path is required', exitCode: 2 };
401
411
  const oldStr = strArg(args, 'old');
@@ -435,8 +445,8 @@ export class RpcHandler {
435
445
  }
436
446
  case 'cp':
437
447
  case 'mv': {
438
- const src = pathArg(args, false);
439
- const dst = resolveUserPath(strArg(args, 'to'), false);
448
+ const src = pathArg(args, false, root);
449
+ const dst = resolveUserPath(strArg(args, 'to'), false, root);
440
450
  if (!src || !dst) {
441
451
  return { stdout: '', stderr: `[fs ${action}] both <path> and --to=<dest> are required`, exitCode: 2 };
442
452
  }
@@ -459,7 +469,7 @@ export class RpcHandler {
459
469
  return { stdout: `${action} ${src} → ${dst}`, stderr: '', exitCode: 0 };
460
470
  }
461
471
  case 'rm': {
462
- const target = pathArg(args, false);
472
+ const target = pathArg(args, false, root);
463
473
  if (!target)
464
474
  return { stdout: '', stderr: '[fs rm] path is required', exitCode: 2 };
465
475
  const recursive = boolArg(args, 'recursive');
@@ -489,7 +499,7 @@ export class RpcHandler {
489
499
  * `fs grep <pattern> [path] [--type=ts] [--glob=*.md] [--context=2] [-i]
490
500
  * [--fixed=true] [--limit=200]` — ripgrep when present, fallback to grep.
491
501
  * Both pattern and path support positional/--flag entry, with ~ expansion
492
- * via resolveUserPath.
502
+ * via resolveUserPath and relative paths rooted at the mesh working directory.
493
503
  */
494
504
  handleFsGrep(req) {
495
505
  const args = (req.parsed?.args ?? {});
@@ -500,7 +510,7 @@ export class RpcHandler {
500
510
  return Promise.resolve({ stdout: '', stderr: '[fs grep] pattern is required', exitCode: 2 });
501
511
  }
502
512
  const pathRaw = strArg(args, 'path') || strArg(args, 'positional2');
503
- const searchPath = resolveUserPath(pathRaw, true);
513
+ const searchPath = resolveUserPath(pathRaw, true, this.workingDirectory);
504
514
  const caseInsensitive = boolArg(args, 'i');
505
515
  const fixed = boolArg(args, 'fixed');
506
516
  const globFilter = strArg(args, 'glob');
@@ -590,7 +600,7 @@ export class RpcHandler {
590
600
  if (rawPatterns.length === 0) {
591
601
  return { stdout: '', stderr: '[fs glob] at least one pattern is required', exitCode: 2 };
592
602
  }
593
- const folder = resolveUserPath(strArg(args, 'folder'), true);
603
+ const folder = resolveUserPath(strArg(args, 'folder'), true, this.workingDirectory);
594
604
  const ignore = (() => {
595
605
  const base = ['**/node_modules/**', '**/.git/**'];
596
606
  const ex = args.exclude;
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-handler.js","sourceRoot":"","sources":["../../src/mesh/rpc-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rpc-handler.js","sourceRoot":"","sources":["../../src/mesh/rpc-handler.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import type { PartyKitClient } from './partykit-client.js';
2
2
  export type ThreadEvent = {
3
+ type: 'connected';
4
+ clientType?: string;
5
+ userId?: string;
6
+ } | {
7
+ type: 'thread:list';
8
+ threads: ThreadSummary[];
9
+ } | {
3
10
  type: 'thread:sync';
4
11
  threadId: string;
5
12
  } | {
@@ -31,6 +38,7 @@ export type ThreadEvent = {
31
38
  } | {
32
39
  type: 'agent:text-done';
33
40
  runId: string;
41
+ text?: string;
34
42
  fullText?: string;
35
43
  threadId?: string;
36
44
  } | {
@@ -74,6 +82,11 @@ export type ThreadEvent = {
74
82
  [k: string]: unknown;
75
83
  };
76
84
  export type ThreadEventHandler = (event: ThreadEvent) => void;
85
+ export interface ThreadSummary {
86
+ id: string;
87
+ title: string | null;
88
+ updatedAt: number;
89
+ }
77
90
  export interface ThreadStreamOpts {
78
91
  client: PartyKitClient;
79
92
  /** Initial thread id (if resuming). Otherwise the first `thread:sync` wins. */
@@ -93,6 +106,8 @@ export declare class ThreadStream {
93
106
  /** Subscribe to all thread/agent events. Returns an unsubscribe fn. */
94
107
  on(handler: ThreadEventHandler): () => void;
95
108
  get threadId(): string | undefined;
109
+ setThreadId(threadId: string | undefined): void;
110
+ requestThreadList(): Promise<void>;
96
111
  /**
97
112
  * Send a chat message as if it were typed in iOS / macOS Yome.app.
98
113
  * The server treats the connection's authenticated userId as the
@@ -7,12 +7,13 @@
7
7
  //
8
8
  // incoming (subscribe):
9
9
  // thread:sync { threadId }
10
+ // thread:list { threads: [...] }
10
11
  // thread:created { threadId, title }
11
12
  // thread:user-message { threadId, content, imageURLs?, ... }
12
13
  // agent:start { runId, agentType, sessionId? }
13
14
  // agent:user-message { runId, content }
14
15
  // agent:text-delta { runId, delta, agentType }
15
- // agent:text-done { runId, fullText? }
16
+ // agent:text-done { runId, text? / fullText? }
16
17
  // agent:tool-use { runId, toolUseId, name, input }
17
18
  // agent:tool-result { runId, toolUseId, exitCode, result? }
18
19
  // agent:done { runId }
@@ -57,6 +58,12 @@ export class ThreadStream {
57
58
  get threadId() {
58
59
  return this.currentThreadId;
59
60
  }
61
+ setThreadId(threadId) {
62
+ this.currentThreadId = threadId;
63
+ }
64
+ async requestThreadList() {
65
+ await this.client.send({ type: 'thread:list' });
66
+ }
60
67
  /**
61
68
  * Send a chat message as if it were typed in iOS / macOS Yome.app.
62
69
  * The server treats the connection's authenticated userId as the
@@ -88,15 +95,13 @@ export class ThreadStream {
88
95
  }
89
96
  if (!parsed || typeof parsed !== 'object' || typeof parsed.type !== 'string')
90
97
  return;
91
- // Latch threadId from the first authoritative server frame so the
92
- // next user message round-trips cleanly even before the user
93
- // explicitly switches threads.
98
+ // Latch threadId from the authoritative server sync frame so the
99
+ // next user message round-trips cleanly. Do not latch thread:created:
100
+ // the room broadcasts thread creation for every thread, including
101
+ // threads this TUI is not attached to.
94
102
  if (parsed.type === 'thread:sync' && typeof parsed.threadId === 'string') {
95
103
  this.currentThreadId = parsed.threadId;
96
104
  }
97
- if (parsed.type === 'thread:created' && !this.currentThreadId && typeof parsed.threadId === 'string') {
98
- this.currentThreadId = parsed.threadId;
99
- }
100
105
  for (const h of this.handlers) {
101
106
  try {
102
107
  h(parsed);
@@ -1 +1 @@
1
- {"version":3,"file":"thread-stream.js","sourceRoot":"","sources":["../../src/mesh/thread-stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"thread-stream.js","sourceRoot":"","sources":["../../src/mesh/thread-stream.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- export type CommandDomain = 'bash' | 'fs' | 'git' | 'docker' | 'k8s' | 'systemd' | 'pkg' | 'log' | 'net' | 'svc' | 'cal' | 'rem' | 'note' | 'xl' | 'ppt' | 'doc' | 'kn' | 'num' | 'pg' | 'web' | 'mind' | 'term' | 'lark' | 'ps' | 'sp' | 'notif' | 'chat' | 'app' | 'cur' | 'cap' | 'wf' | 'watch';
1
+ export type CommandDomain = 'bash' | 'sh' | 'fs' | 'git' | 'docker' | 'k8s' | 'systemd' | 'pkg' | 'log' | 'net' | 'svc' | 'cal' | 'rem' | 'note' | 'xl' | 'ppt' | 'doc' | 'kn' | 'num' | 'pg' | 'web' | 'mind' | 'term' | 'lark' | 'ps' | 'sp' | 'notif' | 'chat' | 'app' | 'cur' | 'cap' | 'wf' | 'watch';
2
2
  export interface WsDeviceRegister {
3
3
  type: 'mesh:register';
4
4
  hostname: string;
5
5
  model: string;
6
6
  capabilities: string[];
7
7
  installedApps: string[];
8
+ workingDirectory?: string;
8
9
  alias?: string;
9
10
  deviceDescription?: string;
10
11
  }
@@ -51,6 +52,7 @@ export interface WsDeviceUpdated {
51
52
  status: 'online' | 'busy' | 'offline';
52
53
  capabilities: string[];
53
54
  installedApps: string[];
55
+ workingDirectory?: string;
54
56
  currentTask?: string;
55
57
  lastHeartbeat: number;
56
58
  alias?: string;
@@ -1,5 +1,6 @@
1
1
  import fg from 'fast-glob';
2
2
  import { resolve } from 'path';
3
+ const MAX_RESULTS = 100;
3
4
  export const globTool = {
4
5
  name: 'Glob',
5
6
  description: 'Find files matching a glob pattern. Returns file paths.',
@@ -22,20 +23,29 @@ export const globTool = {
22
23
  async execute(input) {
23
24
  const pattern = input.pattern;
24
25
  const searchPath = resolve(input.path || process.cwd());
25
- const files = await fg(pattern, {
26
+ const stream = fg.stream(pattern, {
26
27
  cwd: searchPath,
27
28
  ignore: ['**/node_modules/**', '**/.git/**'],
28
29
  dot: true,
29
30
  onlyFiles: true,
30
31
  absolute: false,
31
32
  });
32
- files.sort();
33
- const limit = 100;
34
- const truncated = files.length > limit;
35
- const shown = truncated ? files.slice(0, limit) : files;
33
+ const shown = [];
34
+ let truncated = false;
35
+ for await (const entry of stream) {
36
+ if (shown.length >= MAX_RESULTS) {
37
+ truncated = true;
38
+ stream.destroy?.();
39
+ break;
40
+ }
41
+ shown.push(String(entry));
42
+ }
36
43
  if (shown.length === 0)
37
44
  return 'No files found';
38
- let result = `Found ${files.length} file(s)\n${shown.join('\n')}`;
45
+ shown.sort();
46
+ let result = truncated
47
+ ? `Found at least ${MAX_RESULTS + 1} file(s)\n${shown.join('\n')}`
48
+ : `Found ${shown.length} file(s)\n${shown.join('\n')}`;
39
49
  if (truncated)
40
50
  result += '\n(Results truncated. Use a more specific pattern.)';
41
51
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yDAAyD;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;YAClF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,KAAK;QACjB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAA0B,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,OAAO,CAAC,KAAK;QACjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAE,KAAK,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpE,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,EAAE;YAC9B,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;YAC5C,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,KAAK,GAAG,GAAG,CAAC;QAClB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAExD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAEhD,IAAI,MAAM,GAAG,SAAS,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClE,IAAI,SAAS;YAAE,MAAM,IAAI,qDAAqD,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"glob.js","sourceRoot":"","sources":["../../src/tools/glob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,MAAM,WAAW,GAAG,GAAG,CAAC;AAExB,MAAM,CAAC,MAAM,QAAQ,GAAY;IAC/B,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,yDAAyD;IACtE,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,wCAAwC,EAAE;YAClF,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uCAAuC,EAAE;SAC/E;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;IACD,UAAU,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC7B,aAAa,CAAC,KAAK;QACjB,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/D,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QACxD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,IAA0B,CAAC,CAAC,CAAC;IAC3D,KAAK,CAAC,OAAO,CAAC,KAAK;QACjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAiB,CAAC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAE,KAAK,CAAC,IAAe,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE;YAChC,GAAG,EAAE,UAAU;YACf,MAAM,EAAE,CAAC,oBAAoB,EAAE,YAAY,CAAC;YAC5C,GAAG,EAAE,IAAI;YACT,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;QAEH,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAwC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;gBAChC,SAAS,GAAG,IAAI,CAAC;gBAChB,MAAc,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC5B,MAAM;YACR,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QAEhD,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,MAAM,GAAG,SAAS;YACpB,CAAC,CAAC,kBAAkB,WAAW,GAAG,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAClE,CAAC,CAAC,SAAS,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACzD,IAAI,SAAS;YAAE,MAAM,IAAI,qDAAqD,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { spawn } from 'child_process';
2
2
  import { resolve } from 'path';
3
+ const MAX_CAPTURE_CHARS = 80_000;
3
4
  function runGrep(args, cwd) {
4
5
  return new Promise((resolveP) => {
5
6
  const proc = spawn(args[0], args.slice(1), {
@@ -9,10 +10,30 @@ function runGrep(args, cwd) {
9
10
  });
10
11
  let stdout = '';
11
12
  let stderr = '';
12
- proc.stdout.on('data', (d) => { stdout += d.toString(); });
13
- proc.stderr.on('data', (d) => { stderr += d.toString(); });
13
+ let capped = false;
14
+ const appendCapped = (current, chunk) => {
15
+ if (current.length >= MAX_CAPTURE_CHARS) {
16
+ capped = true;
17
+ return current;
18
+ }
19
+ const next = current + chunk.toString();
20
+ if (next.length > MAX_CAPTURE_CHARS) {
21
+ capped = true;
22
+ try {
23
+ proc.kill('SIGTERM');
24
+ }
25
+ catch { /* noop */ }
26
+ return next.slice(0, MAX_CAPTURE_CHARS);
27
+ }
28
+ return next;
29
+ };
30
+ proc.stdout.on('data', (d) => { stdout = appendCapped(stdout, d); });
31
+ proc.stderr.on('data', (d) => { stderr = appendCapped(stderr, d); });
14
32
  proc.on('close', (code) => {
15
- if (code === 1 && !stdout.trim()) {
33
+ if (capped && stdout.trim()) {
34
+ resolveP(`${stdout.trim()}\n\n[Search output capped at ${MAX_CAPTURE_CHARS} chars]`);
35
+ }
36
+ else if (code === 1 && !stdout.trim()) {
16
37
  resolveP('No matches found');
17
38
  }
18
39
  else if (code !== 0 && code !== 1) {