{
  "slug": "pulumi-neo-adds-local-filesystem-grep-and-filesystem-content-replace-tools-91a7058ae1d8",
  "title": "pulumi neo adds local filesystem__grep and filesystem__content_replace tools",
  "tools": [
    "pulumi"
  ],
  "tags": [
    "agent"
  ],
  "introduced_at": "2026-04-30T16:58:26.000Z",
  "announced_at": "2026-04-30T16:58:26.000Z",
  "effective_at": null,
  "date_basis": "source-publication",
  "status": "unknown",
  "how": {
    "incantation": "When searching or replacing project files with the experimental Pulumi Neo agent, use `filesystem__grep` for regex searches and `filesystem__content_replace` for literal replacements. Both operate within the project root; replacement supports a dry-run preview.",
    "examples": [
      "filesystem__grep({\"pattern\":\"<Go-compatible regex>\",\"path\":\"<project-relative path>\",\"include\":\"<basename glob>\"})",
      "filesystem__content_replace({\"pattern\":\"<literal text>\",\"replacement\":\"<replacement text>\",\"path\":\"<project-relative path>\",\"file_pattern\":\"<glob>\",\"dry_run\":true})"
    ],
    "gotchas": [
      "Version: 3.233.0",
      "Availability: For pulumi neo; experimental status is not specified in this span.",
      "filesystem__grep.pattern (required): Go-compatible regular expression to search for.",
      "filesystem__grep.path: Search path; defaults to the project root.",
      "filesystem__grep.include: Glob filter on file basename; defaults to `*`.",
      "filesystem__content_replace.pattern (required): Literal text to find; this is not a regular expression.",
      "filesystem__content_replace.replacement (required): Text to substitute for the literal pattern.",
      "filesystem__content_replace.path (required): Path for the replacement operation.",
      "filesystem__content_replace.file_pattern: Glob filter for files; defaults to `*`.",
      "filesystem__content_replace.dry_run: When true, previews the replacement and leaves files untouched; defaults to false.",
      "Prerequisite: Use Pulumi CLI 3.233.0 or later, which implements these local tools for `pulumi neo`.",
      "Prerequisite: The tools are for the experimental `pulumi neo` agent.",
      "grep returns results in path:lineno: line form.",
      "Both tools skip binary files, hidden directories, and node_modules.",
      "Both tools reject paths outside the project root.",
      "Input schemas match the cloud-side tool definitions."
    ]
  },
  "why_it_matters": "Search or replace text across files in a project while using the experimental pulumi neo agent.",
  "sources": [
    "https://github.com/pulumi/pulumi/releases/tag/v3.233.0",
    "https://github.com/pulumi/pulumi/pull/22655"
  ],
  "rank": 0.97033,
  "judge": {
    "publish": true,
    "judge_model": "codex-cli/gpt-6-luna+typesafe/jev-1.13.0",
    "prompt_version": "extract-v7+enrich-v2+judge-v2x3+jev-publish-v1"
  },
  "review_state": "approved",
  "provenance": {
    "run_id": "wave1b-20261016",
    "verdict_id": "wave1b-20261016:wave1b-20261016-d199bcb80ea951b8-2:gate",
    "evidence_hash": "a37270c2c341c3bdd1fd71890178f75bb10cfcf1695555d317225b9e72ba2093"
  },
  "review": {
    "draft_hash": "5e98c9d3b6d99ca0b09c926f7063e79884ef9ed0cc391aa16d603c384edbe049",
    "reviewer": "publication-gate",
    "reviewed_at": "2026-10-07T00:00:00.000Z",
    "decision": "wave1b-20261016:gate",
    "reason": "3 of 3 judge runs approved with p_yes >= 0.9 (mean 0.97 >= 0.9; 2 needed) and Jev gave 0.80 (>= 0.6 needed)."
  }
}
