claudeToolDisplay.ts ×24

Frontier kind: Joint frontier

unlabeled · c_0a3c45d861fb

1 test · 18236 LOC · 65 files · introduces 1 test · 59 LOC · 1 file

Introduces — evidence that enters the hierarchy at this concept

Code
24 ranges59 lines · 1 files
Tests
1 test

Contains — complete concept membership

All code (extent)
1359 ranges18236 lines · 65 files · Browse complete extent
All tests (intent)
1 testBrowse 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.

1 test introduced at this concept.

Introduced code

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

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

src/vs/platform/agentHost/node/claude/claudeToolDisplay.ts 59 introduced LOC · 24 ranges

Open complete file

382 }
383 case 'BashOutput':
384 > return localize('claude.toolInvoke.bashOutput', "Reading shell output"); claudeToolDisplay.ts
385 case 'KillBash':
386 > return localize('claude.toolInvoke.killBash', "Killing shell command"); claudeToolDisplay.ts
387 case 'Read':
388 case 'NotebookRead': {
394 }
395 case 'LS': {
396 > const path = getClaudeToolPath(toolName, input); claudeToolDisplay.ts
397 > if (path) {
398 > return md(localize('claude.toolInvoke.lsPath', "Listing {0}", formatPathAsMarkdownLink(path)));
399 > }
400 return localize('claude.toolInvoke.ls', "Listing directory");
401 }
404 case 'MultiEdit':
405 case 'NotebookEdit': {
406 > const path = getClaudeToolPath(toolName, input); claudeToolDisplay.ts
407 > if (path) {
408 > return md(localize('claude.toolInvoke.editFile', "Editing {0}", formatPathAsMarkdownLink(path)));
409 > }
410 return localize('claude.toolInvoke.edit', "Editing file");
411 }
412 case 'TodoWrite':
413 > return localize('claude.toolInvoke.todoWrite', "Updating todo list"); claudeToolDisplay.ts
414 case 'Grep': {
415 const pattern = readStringField(input, 'pattern');
416 if (pattern) {
417 > return md(localize('claude.toolInvoke.grepPattern', "Searching for {0}", appendEscapedMarkdownInlineCode(truncate(pattern, 80)))); claudeToolDisplay.ts
418 > }
419 return localize('claude.toolInvoke.grep', "Searching files");
420 }
427 }
428 case 'WebFetch': {
429 > const url = readStringField(input, 'url'); claudeToolDisplay.ts
430 > if (url) {
431 > return md(localize('claude.toolInvoke.webFetch', "Fetching {0}", `[${escapeMarkdownLinkLabel(truncate(url, 80))}](${url})`));
432 > }
433 return localize('claude.toolInvoke.webFetchGeneric', "Fetching URL");
434 }
442 }
443 case 'Skill': {
444 > const skill = readStringField(input, 'skill'); claudeToolDisplay.ts
445 > if (skill) {
446 > return md(localize('claude.toolInvoke.skillNamed', "Running skill {0}", appendEscapedMarkdownInlineCode(truncate(skill, 80))));
447 > }
448 return localize('claude.toolInvoke.skill', "Running skill");
449 }
450 case 'TaskCreate': {
451 > const subject = readStringField(input, 'subject'); claudeToolDisplay.ts
452 > if (subject) {
453 > return localize('claude.toolInvoke.taskCreateNamed', "Creating task: {0}", truncate(subject, 80));
454 > }
455 return localize('claude.toolInvoke.taskCreate', "Creating task");
456 }
463 }
464 case 'TaskList':
465 > return localize('claude.toolInvoke.taskList', "Reading task list"); claudeToolDisplay.ts
466 case 'TaskGet':
467 > return localize('claude.toolInvoke.taskGet', "Reading task"); claudeToolDisplay.ts
468 default:
469 return displayName;
501 }
502 case 'BashOutput':
503 > return localize('claude.toolComplete.bashOutput', "Read shell output"); claudeToolDisplay.ts
504 case 'KillBash':
505 > return localize('claude.toolComplete.killBash', "Killed shell command"); claudeToolDisplay.ts
506 case 'Read':
507 case 'NotebookRead': {
508 const path = getClaudeToolPath(toolName, input);
509 if (path) {
510 > return md(localize('claude.toolComplete.readFile', "Read {0}", formatPathAsMarkdownLink(path))); claudeToolDisplay.ts
511 > }
512 return localize('claude.toolComplete.read', "Read file");
513 }
514 case 'LS': {
515 > const path = getClaudeToolPath(toolName, input); claudeToolDisplay.ts
516 > if (path) {
517 > return md(localize('claude.toolComplete.lsPath', "Listed {0}", formatPathAsMarkdownLink(path)));
518 > }
519 return localize('claude.toolComplete.ls', "Listed directory");
520 }
523 case 'MultiEdit':
524 case 'NotebookEdit': {
525 > const path = getClaudeToolPath(toolName, input); claudeToolDisplay.ts
526 > if (path) {
527 > return md(localize('claude.toolComplete.editFile', "Edited {0}", formatPathAsMarkdownLink(path)));
528 > }
529 return localize('claude.toolComplete.edit', "Edited file");
530 }
531 case 'TodoWrite':
532 > return localize('claude.toolComplete.todoWrite', "Updated todo list"); claudeToolDisplay.ts
533 case 'Grep': {
534 > const pattern = readStringField(input, 'pattern'); claudeToolDisplay.ts
535 > if (pattern) {
536 > return md(localize('claude.toolComplete.grepPattern', "Searched for {0}", appendEscapedMarkdownInlineCode(truncate(pattern, 80))));
537 > }
538 return localize('claude.toolComplete.grep', "Searched files");
539 }
546 }
547 case 'WebFetch': {
548 > const url = readStringField(input, 'url'); claudeToolDisplay.ts
549 > if (url) {
550 > return md(localize('claude.toolComplete.webFetch', "Fetched {0}", `[${escapeMarkdownLinkLabel(truncate(url, 80))}](${url})`));
551 > }
552 return localize('claude.toolComplete.webFetchGeneric', "Fetched URL");
553 }
556 return localize('claude.toolComplete.task', "Ran subagent");
557 case 'Skill': {
558 > const skill = readStringField(input, 'skill'); claudeToolDisplay.ts
559 > if (skill) {
560 > return md(localize('claude.toolComplete.skillNamed', "Ran skill {0}", appendEscapedMarkdownInlineCode(truncate(skill, 80))));
561 > }
562 return localize('claude.toolComplete.skill', "Ran skill");
563 }
564 case 'TaskCreate': {
565 > const subject = readStringField(input, 'subject'); claudeToolDisplay.ts
566 > if (subject) {
567 > return localize('claude.toolComplete.taskCreateNamed', "Created task: {0}", truncate(subject, 80));
568 > }
569 return localize('claude.toolComplete.taskCreate', "Created task");
570 }
577 }
578 case 'TaskList':
579 > return localize('claude.toolComplete.taskList', "Read task list"); claudeToolDisplay.ts
580 case 'TaskGet':
581 > return localize('claude.toolComplete.taskGet', "Read task"); claudeToolDisplay.ts
582 default:
583 > return displayName; claudeToolDisplay.ts
584 }
585 }