claudeToolDisplay.ts ×19

Frontier kind: Code frontier

unlabeled · c_f5ed48eabe76

32 tests · 17808 LOC · 65 files · introduces 0 tests · 31 LOC · 1 file

Introduces — evidence that enters the hierarchy at this concept

Code
19 ranges31 lines · 1 files
Tests
0 tests

Contains — complete concept membership

All code (extent)
1194 ranges17808 lines · 65 files · Browse complete extent
All tests (intent)
32 testsBrowse complete intent

Neighbourhood graph

The orange circle is the focus. Violet and green circles are every ancestor and descendant, broader and narrower, at any distance; blue squares and pink diamonds are the introduced files and exact introduced tests of every visible concept, not only the focus's. Arrows point from broader to narrower concepts and bridge only concepts omitted from this view. Undirected links show source or test introduction. Concept and file size follows LOC; exact test nodes use test-count units.

Introduced files, introduced tests, and structurally relevant concept specialization

In the embedded map, ordinary wheel input scrolls the page; use the visible controls to zoom and drag to pan. Open the full-screen map for canvas navigation: wheel pans, Ctrl/Command plus wheel zooms, and arrow keys pan when this region is focused. On touch screens, open the full-screen map to pan or pinch. If JavaScript or WebGL is unavailable, use the native relationship evidence on this page.

Graph controls are ready.

Interactive rendering requires JavaScript and WebGL. Use the native relationship evidence on this page while the interactive map is unavailable.

Native relationship evidence

Every exact file and test below is linked only from the concept that introduces it.

Introduced tests

Every collected test enters the hierarchy at exactly one concept.

No tests are introduced at this concept. Its intent tests are introduced by other concepts.

Introduced code

Every collected source range enters the hierarchy at exactly one concept.

1 file ranked by introduced lines: 31 introduced LOC across 19 ranges. Expand a file to inspect source; the > gutter marks introduced lines.

src/vs/platform/agentHost/node/claude/claudeToolDisplay.ts 31 introduced LOC · 19 ranges

Open complete file

365 */
366 export function getClaudeInvocationMessage(
367 > toolName: string, claudeToolDisplay.ts
368 > displayName: string,
369 > input: unknown,
370 > ): StringOrMarkdown {
371 > const serverDisplay = getServerToolDisplay(toolName, input)?.invocationMessage;
372 > if (serverDisplay !== undefined) {
373 return serverDisplay;
374 }
375 > switch (toolName) { claudeToolDisplay.ts
376 > case 'Bash': {
377 const firstLine = firstShellLine(input);
378 if (firstLine) {
381 return localize('claude.toolInvoke.bash', "Running shell command");
382 }
383 > case 'BashOutput': claudeToolDisplay.ts
384 return localize('claude.toolInvoke.bashOutput', "Reading shell output");
385 > case 'KillBash': claudeToolDisplay.ts
386 return localize('claude.toolInvoke.killBash', "Killing shell command");
387 > case 'Read': claudeToolDisplay.ts
388 > case 'NotebookRead': {
389 const path = getClaudeToolPath(toolName, input);
390 if (path) {
393 return localize('claude.toolInvoke.read', "Reading file");
394 }
395 > case 'LS': { claudeToolDisplay.ts
396 const path = getClaudeToolPath(toolName, input);
397 if (path) {
400 return localize('claude.toolInvoke.ls', "Listing directory");
401 }
402 > case 'Write': claudeToolDisplay.ts
403 > case 'Edit':
404 > case 'MultiEdit':
405 > case 'NotebookEdit': {
406 const path = getClaudeToolPath(toolName, input);
407 if (path) {
410 return localize('claude.toolInvoke.edit', "Editing file");
411 }
412 > case 'TodoWrite': claudeToolDisplay.ts
413 return localize('claude.toolInvoke.todoWrite', "Updating todo list");
414 > case 'Grep': { claudeToolDisplay.ts
415 const pattern = readStringField(input, 'pattern');
416 if (pattern) {
419 return localize('claude.toolInvoke.grep', "Searching files");
420 }
421 > case 'Glob': { claudeToolDisplay.ts
422 const pattern = readStringField(input, 'pattern');
423 if (pattern) {
426 return localize('claude.toolInvoke.glob', "Finding files");
427 }
428 > case 'WebFetch': { claudeToolDisplay.ts
429 const url = readStringField(input, 'url');
430 if (url) {
433 return localize('claude.toolInvoke.webFetchGeneric', "Fetching URL");
434 }
435 > case 'Task': claudeToolDisplay.ts
436 > case 'Agent': {
437 const description = readStringField(input, 'description');
438 if (description) {
441 return displayName;
442 }
443 > case 'Skill': { claudeToolDisplay.ts
444 const skill = readStringField(input, 'skill');
445 if (skill) {
448 return localize('claude.toolInvoke.skill', "Running skill");
449 }
450 > case 'TaskCreate': { claudeToolDisplay.ts
451 const subject = readStringField(input, 'subject');
452 if (subject) {
455 return localize('claude.toolInvoke.taskCreate', "Creating task");
456 }
457 > case 'TaskUpdate': claudeToolDisplay.ts
458 switch (readTaskUpdateStatus(input)) {
459 case 'in_progress': return localize('claude.toolInvoke.taskStart', "Starting task");
462 default: return localize('claude.toolInvoke.taskUpdate', "Updating task");
463 }
464 > case 'TaskList': claudeToolDisplay.ts
465 return localize('claude.toolInvoke.taskList', "Reading task list");
466 > case 'TaskGet': claudeToolDisplay.ts
467 return localize('claude.toolInvoke.taskGet', "Reading task");
468 > default: claudeToolDisplay.ts
469 return displayName;
471 > }
472
473 /**