Skip to content

Transactional File System server for Model Context Protocol (MCP). Enterprise-grade tools for AI agents: atomic edits, undo/redo, code navigation, refactoring, git integration. Docker ready.

License

Notifications You must be signed in to change notification settings

Nefrols/NTS_MCP_FS

Repository files navigation

πŸ›‘οΈ NTS MCP FileSystem Server

Next Transactional Server for Model Context Protocol

Java Docker License Status Tools Languages

English | Русский


πŸ‡¬πŸ‡§ English

NTS_MCP_FS is an enterprise-grade File System server implementation for the Model Context Protocol (MCP).

It transforms standard file operations into a Transactional OS for AI Agents. Unlike basic tools that allow "blind" overwrites, NTS enforces Optimistic Locking, provides a Persistent HUD, and enables Atomic Scripting via programmable batches.

πŸš€ Key Differentiators

Feature Standard MCP Server NTS_MCP_FS
Integrity Blind Overwrites (Last Write Wins) Line Access Tokens (LATs) - Optimistic Locking
Operations One file at a time Programmable Atomic Batches (Multi-file Scripting)
Context Stateless (Agent forgets plan) AI-HUD & Built-in TODOs (Persistent Context)
Safety Basic Ctrl+Z (if any) Deep Undo & Checkpoints (Tracks file moves)
Code Intelligence None LSP Navigation & Semantic Refactoring (12 languages)
Verification Manual testing Syntax Check (Tree-sitter), Compilation & Test validation
Persistence Stateless (in-memory only) H2 Database (Transaction journal survives restarts)
Performance Blocking I/O Java Virtual Threads & Memory-Mapped I/O

🎯 The Philosophy: Disciplined AI Through Intentional Friction

"The goal is not to make the agent's job easier β€” it's to make the agent's work reliable."

Most MCP servers optimize for convenience: fewer calls, shorter responses, maximum automation. NTS takes the opposite approach. It introduces intentional friction that forces AI agents to work with surgical precision.

The Problem: Catastrophic Drift in Long Sessions

When an AI agent works on a complex task (1-2M+ tokens), context summarization inevitably loses details. The agent "forgets" what it read 50 messages ago. Then:

  1. πŸ”΄ Agent edits line 347 based on stale memory
  2. πŸ”΄ Edit breaks something β€” agent panics
  3. πŸ”΄ Agent enters an uncontrolled fix-loop
  4. πŸ”΄ Hours of work destroyed in seconds

This isn't a bug β€” it's an emergent property of how LLMs handle long contexts. NTS is designed to prevent this failure mode.

The Solution: Forced Concentration via LAT

Line Access Tokens (LATs) are not just a security feature β€” they're a cognitive constraint.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Without LAT:                                                   β”‚
β”‚  "I'll just read the whole file... it's only 400 lines"        β”‚
β”‚   β†’ Context bloated with "just in case" data                    β”‚
β”‚   β†’ Summarization drops critical details                        β”‚
β”‚   β†’ Agent edits wrong line from fuzzy memory                    β”‚
β”‚   β†’ Catastrophic error                                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  With LAT:                                                      β”‚
β”‚  "I need to edit line 47. Let me read lines 40-55."            β”‚
β”‚   β†’ Agent explicitly decides what it needs                      β”‚
β”‚   β†’ Token proves agent saw current state                        β”‚
β”‚   β†’ Context stays clean and precise                             β”‚
β”‚   β†’ Edits are surgical and verified                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

The agent cannot read an entire file in one lazy command. It must specify ranges. This forces the agent to think before acting β€” exactly the discipline that prevents drift.

Why Verbose Responses Matter

Every nts_edit_file response includes a full unified diff. This isn't optional verbosity β€” it's mandatory validation.

--- User.java (original)
+++ User.java (modified)
@@ -15,7 +15,7 @@
     }
 
-    public String getName() {
+    public String getFullName() {
         return name;
     }

The agent sees the result immediately, in the same response. No separate "verify" step needed. No chance to "forget" to check. The diff is the proof.

Real-World Impact

Scenario Standard Tools NTS
2-hour refactoring session 40% chance of catastrophic error Near-zero (checkpoint + undo)
Multi-file rename Silent corruption possible Atomic batch or full rollback
External file change mid-work Agent overwrites user's edits Token expires, agent warned
Agent "panics" after error Uncontrolled fix spiral Undo β†’ stable state β†’ retry

The Counterintuitive Truth

Spending 10% more tokens on discipline saves 100% of wasted work.

A 2-hour agent session costs ~$5-15 in API calls. A catastrophic error that destroys that work costs the same amount again to redo β€” plus human time to diagnose what went wrong.

NTS trades micro-efficiency for macro-reliability. The agent works slightly harder per-operation, but the entire session succeeds instead of collapsing at hour 1:45.

🧠 Advanced Features Deep Dive

1. πŸ“Ÿ Agent HUD (Heads-Up Display)

The server injects a status header into every tool response. The Agent never loses context.

[HUD tid:a1b2] Plan: Refactor Auth [βœ“2 β—‹1] β†’ #3: Update Login | Task: 5 edits | Unlocked: 3 files
  • Task Context: Reminds the agent of the active Task ID.
  • Progress Tracking: Shows current TODO status (Done/Pending) and the next active task.
  • Safety Stats: Shows how many files are currently unlocked for editing.

2. πŸ“œ Programmable Atomic Batches (Scripting)

The nts_batch_tools is not just a list of commands; it's a scripting engine for the file system.

  • Atomic Transactions: 10 operations in one request. If the 10th fails, the previous 9 are rolled back instantly. The project is never left in a broken state.
  • Variable Interpolation: Pass data between steps. Create a file in Step 1, then reference its path in Step 2 using {{step1.path}}.
  • Virtual Addressing: Use variables like $LAST or $PREV_END+1 to insert code relative to previous edits without calculating line numbers.
  • Virtual FS Context: When you edit a file in Step 1 and run nts_code_refactor in Step 2, the refactoring sees the modified content from Step 1, not the disk version. Enables complex chains like "edit class β†’ rename symbol across project".

Example Script: "Create a service, rename it, and add a method"

"actions": [
  { "id": "cre", "tool": "nts_file_manage", "params": { "action": "create", "path": "Temp.java", "content": "class Svc {}" } },
  { "tool": "nts_file_manage", "params": { "action": "rename", "path": "{{cre.path}}", "newName": "UserService.java" } },
  { "tool": "nts_edit_file", "params": { "path": "{{cre.path}}", "startLine": "$LAST", "operation": "insert_after", "content": "void login() {}", "accessToken": "{{cre.token}}" } }
]

Note: {{cre.path}} automatically resolves to UserService.java after the rename step!

3. πŸ”’ Enterprise Security & Sandboxing

  • Optimistic Locking (LATs): Agents must read a file to get a token (LAT:...) before editing. If the file changes externally, the token expires and the external change is automatically recorded in file history. No more race conditions.
  • Smart Token Invalidation: Tokens track Range CRC instead of file CRC. Edits outside your token's range don't invalidate it β€” only changes to the specific lines you're working on trigger re-read. This dramatically reduces unnecessary token refreshes in large files.
  • Path Aliasing: Tokens remain valid after move/rename operations. The system tracks file identity through path aliases with transitive resolution β€” even chains like A β†’ B β†’ C preserve token validity.
  • Strict Sandboxing: All paths are normalized and pinned to the project root. Impossible to escape via ../../.
  • Infrastructure Protection: Automatically blocks modification of .git, .env, and build configs unless explicitly allowed.
  • OOM Protection: Prevents reading massive files (>10MB) that would crash the context window.
  • Structured Error Codes: All errors include machine-readable codes (FILE_NOT_FOUND, TOKEN_EXPIRED, etc.) with human-readable solutions. No more cryptic exceptions β€” every error tells you exactly what went wrong and how to fix it.

4. βͺ State Management: Checkpoints & Deep Undo

  • Task Journal (H2 Database): Logs every logical step (not just file IO). Persisted in embedded H2 database β€” survives server restarts.
  • In-Memory Snapshots: Undo engine uses in-memory byte[] snapshots instead of file-based backups for faster recovery.
  • Checkpoints: Agent can run nts_task checkpoint('pre-refactor') and safely rollback if the approach fails.
  • Deep Undo: The system tracks File Lineage. If you move FileA -> FileB and then hit Undo, NTS knows to restore content to FileA.
  • Git Integration: Can create Git stashes as emergency fallbacks (git_checkpoint).

4.1. πŸ‘οΈ External Change Tracking

The server automatically detects when files are modified outside of MCP (by user, linter, IDE, or other tools).

  • CRC-based Detection: Each file read creates a snapshot. On next access, if the CRC differs, the change is detected.
  • File History: External changes are recorded in file history and can be reviewed via nts_task journal.
  • Smart Prompts: When an external change is detected, the agent receives a TIP recommending to review changes before proceeding, as they may be intentional user edits.
  • Undo Support: If needed, external changes can be undone through the standard undo mechanism.

4.2. πŸ’‘ Smart Contextual TIPs

Every tool response includes intelligent contextual hints that guide the agent through optimal workflows.

  • Workflow Guidance: After each operation, TIPs suggest the logical next step (e.g., "Token ready for editing β†’ nts_edit_file(...)").
  • Performance Hints: Large range reads trigger suggestions to use symbol-based navigation or grep for precision.
  • Error Prevention: Pattern analysis detects regex-like queries used without isRegex=true and warns proactively.
  • Token Management: When line counts change after edit, TIPs remind to use the NEW token for subsequent operations.
  • Refactoring Awareness: Signature changes trigger suggestions to check call sites via nts_code_navigate(action='references').
  • Import Updates: After move/rename of Java/Kotlin files, TIPs suggest searching for import statements that need updating.

Example TIPs in action:

[WORKFLOW: Token ready for editing -> nts_edit_file(path, startLine, content, accessToken)]
[TIP: Large range read (150 lines). Consider using 'symbol' parameter for precise symbol boundaries.]
[TIP: Pattern contains regex-like characters (.*). If you intended regex search, add isRegex=true parameter.]
[TIP: Line count changed (+5). Use NEW TOKEN above for subsequent edits to this file.]

5. βœ… Built-in TODO System

A specialized tool (nts_todo) allows the agent to maintain a Markdown-based plan.

  • The active plan state is fed into the HUD.
  • Keeps the agent focused on one task at a time.
  • Auto-updates status (todo, done, failed) in the file system.

6. 🧭 LSP Navigation (Tree-sitter)

The nts_code_navigate tool provides IDE-like code intelligence powered by Tree-sitter.

  • Go to Definition: Jump to where a symbol is defined.
  • Find References: Locate all usages across the project.
  • Hover: Get type, signature, and documentation for any symbol.
  • List Symbols: File outline with all definitions.
  • 12 Languages: Java, Kotlin, JS/TS/TSX, Python, Go, Rust, C/C++, C#, PHP, HTML.

7. πŸ”„ Semantic Refactoring (10 Operations)

The nts_code_refactor tool performs intelligent code transformations.

  • Rename: Updates ALL references across the entire project automatically.
  • Change Signature: Add, remove, rename, retype, or reorder method parameters with automatic call site updates.
  • Extract Method: Pull code into a new method with proper parameters.
  • Extract Variable: Extract repeated expressions into named variables.
  • Inline: Replace method/variable with its body/value.
  • Move: Relocate class to a different package with import updates.
  • Wrap: Wrap code in try-catch, if-block, or loop.
  • Delete: Safe symbol deletion with reference checking.
  • Generate: Create getters, setters, constructors, builders, toString, equals/hashCode.
  • Batch: Combine multiple refactoring operations atomically.
  • Preview Mode: Review diff before applying (preview: true).
  • Parallel Reference Search: Both nts_code_navigate and nts_code_refactor use parallel file scanning with pre-filtering, searching up to 15 levels deep for maximum coverage.
  • Batch Integration: Returns affectedFiles array with tokens for each modified file β€” enables chaining like refactor β†’ edit in nts_batch_tools.
{
  "action": "rename",
  "path": "src/User.java",
  "symbol": "getName",
  "newName": "getFullName",
  "preview": true
}

Response includes tokens for batch chaining:

{
  "affectedFiles": [
    { "path": "src/User.java", "accessToken": "LAT:...", "crc32c": "A1B2C3D4", "lineCount": 50 },
    { "path": "src/UserService.java", "accessToken": "LAT:...", "crc32c": "E5F6G7H8", "lineCount": 120 }
  ]
}

πŸ› οΈ The Toolchain: A Discipline System, Not Just Utilities

Each tool in NTS is designed as part of an interconnected discipline system. They don't just perform operations β€” they enforce a workflow that keeps the agent focused, verified, and recoverable.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        THE NTS DISCIPLINE LOOP                              β”‚
β”‚                                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚   β”‚  INIT    │────▢│  READ    │────▢│  EDIT    │────▢│  VERIFY  β”‚          β”‚
β”‚   β”‚  Task    β”‚     β”‚ + Token  β”‚     β”‚ + Token  β”‚     β”‚(Diff/AST)β”‚          β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β”‚
β”‚        β”‚                                                   β”‚                β”‚
β”‚        β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚                β”‚
β”‚        └─────────────▢│  UNDO    β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”‚         (if panic)    β”‚ Recovery β”‚    (if wrong)                            β”‚
β”‚                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ” nts_init β€” The Accountability Boundary

Why it exists: Creates an isolated task with its own undo history, checkpoints, and token registry.

Discipline role: Everything the agent does is tracked. There's no "anonymous" editing. If something breaks, the task journal knows exactly what happened and when.

Task Reactivation: If the server restarts or connection drops, the task can be reactivated:

{ "taskId": "your-previous-uuid" }

This restores the task directory with todos and file history. In-memory state (tokens, undo stack) starts fresh, but disk-persisted data (H2 journal) is preserved.

Connection: All other tools require taskId. This isn't bureaucracy β€” it's traceability.


πŸ“– nts_file_read β€” The Attention Gate

Why it exists: Reads file content and issues a Line Access Token (LAT).

Discipline role: The agent must explicitly decide which lines it needs. No "just read everything" shortcut.

❌ read({ path: "file.java" })                    // NOT ALLOWED
βœ… read({ path: "file.java", startLine: 10, endLine: 30 })  // Forced precision

Connection: The token returned here is required for nts_edit_file. Read β†’ Token β†’ Edit. No shortcuts.

Smart TIPs: Responses include workflow hints (e.g., "Token ready for editing") and suggest symbol-based reading for large ranges.

Bulk Read: Read multiple related files in a single request:

{
  "bulk": [
    { "path": "UserService.java", "symbol": "createUser" },
    { "path": "UserRepository.java", "symbol": "save" },
    { "path": "User.java", "startLine": 1, "endLine": 30 }
  ]
}

Each file is separated in output with its own TOKEN. Errors in one file don't affect others.


✏️ nts_edit_file β€” The Verified Mutation

Why it exists: Applies line-based edits with mandatory token validation.

Discipline role:

  1. Token required β€” proves agent read the current state
  2. Diff in response β€” agent immediately sees what changed
  3. CRC check β€” if file changed externally, edit fails safely
  4. Smart TIPs β€” contextual hints for common issues:
    • Multi-line content replacing single line without endLine β†’ suggests insert_after or range
    • Line count changed β†’ reminds to use NEW token for subsequent edits
    • Signature change detected β†’ suggests checking call sites with nts_code_navigate
    • Significant changes β†’ reminds to run tests

Connection: Consumes token from nts_file_read, produces new token for subsequent edits. Chain of custody is unbroken.


πŸ“ nts_file_manage β€” Structure with Memory

Why it exists: Create, delete, move, rename files and directories.

Discipline role:

  • create returns a token β€” new files are immediately editable
  • rename/move transfers tokens via path aliasing β€” tokens remain valid even after the file is moved (transitive chains like A β†’ B β†’ C work)
  • delete invalidates tokens β€” no editing ghosts

Connection: Works with nts_batch_tools for atomic multi-file restructuring. Path aliases persist across the task.


πŸ” nts_file_search β€” Discovery with Intent

Why it exists: Find files (glob), search content (grep), view structure.

Discipline role: grep returns tokens for matched ranges. The agent can search and immediately edit without a separate read step.

grep("TODO") β†’ finds line 47 β†’ returns TOKEN for lines 45-50
           β†’ agent can edit lines 45-50 directly

Smart TIPs: After grep, workflow hints remind that tokens are ready for direct editing. If pattern looks like regex but isRegex=false, suggests enabling it.

Connection: Bridges discovery and action. Reduces round-trips while maintaining token discipline.


βͺ nts_task β€” The Panic Button

Why it exists: Undo, redo, checkpoints, rollback, and task journal.

Discipline role: When the agent makes a mistake, it has structured recovery instead of uncontrolled fix-spiraling.

checkpoint("before-risky-refactor")
  β†’ try dangerous changes
  β†’ if wrong: rollback("before-risky-refactor")
  β†’ project restored in one command

Connection: This is the safety net that makes aggressive refactoring possible. Agents can be bold because recovery is guaranteed.


πŸ”— nts_batch_tools β€” Atomic Scripting

Why it exists: Execute multiple tools as a single atomic transaction.

Discipline role: Complex operations either fully succeed or fully rollback. No half-broken states.

{
  "actions": [
    { "id": "svc", "tool": "nts_file_manage", "params": { "action": "create", "path": "Service.java" }},
    { "tool": "nts_edit_file", "params": { "path": "{{svc.path}}", "accessToken": "{{svc.token}}", ... }}
  ]
}
// If edit fails β†’ create is rolled back β†’ project untouched

Connection: Uses {{step.token}} interpolation. Tokens flow between steps automatically. This is the culmination of the discipline system.


πŸ”„ nts_project_replace β€” Controlled Mass Mutation

Why it exists: Global search and replace across the entire project.

Discipline role:

  • dryRun: true shows all changes before applying
  • Atomic: all files changed or none
  • Creates automatic checkpoint before execution

Connection: High-risk operation with maximum safeguards.


🧭 nts_code_navigate β€” Semantic Understanding

Why it exists: Go to definition, find references, hover info, symbol listing.

Discipline role: Agent can understand code structure before editing. Reduces guesswork, increases precision.

Connection: Returns tokens for found locations. Navigate β†’ understand β†’ edit with confidence.


πŸ”§ nts_code_refactor β€” Intelligent Transformation

Why it exists: Rename symbols, change signatures, generate code, extract methods β€” with automatic reference updates.

Discipline role:

  • preview: true shows all affected files before applying
  • Semantic rename updates ALL references, not just text matches
  • Atomic: entire refactoring succeeds or fails together
  • Returns tokens for all modified files β€” enables refactor β†’ edit chains in batches

Connection: Uses tree-sitter for precision. Integrates with nts_batch_tools via {{step.affectedFiles[0].accessToken}} interpolation. Safer than manual multi-file editing.


πŸ“‹ nts_todo β€” The Focus Anchor

Why it exists: Maintains a Markdown-based task list integrated with the HUD.

Discipline role: Keeps the agent focused on one task at a time. The HUD constantly reminds what's next.

[HUD] Plan: Auth Refactor [βœ“2 β—‹3] β†’ #3: Update Login Controller

Connection: Prevents scope creep. Agent always knows the current objective even after context summarization.


πŸ”€ nts_git β€” Version Control Integration

Why it exists: Git status, diff, add, commit β€” without leaving NTS.

Discipline role:

  • git_checkpoint creates stash as emergency backup
  • commit_task auto-generates commit message from TODO progress
  • Safe operations only (no push/force)

Connection: Integrates with task journal. Commits can reference completed tasks.


πŸ“Š nts_compare_files β€” Visual Verification

Why it exists: Shows unified diff between any two files.

Discipline role: Agent can verify changes by comparing before/after states explicitly.

Connection: Useful for reviewing results of batch operations or refactoring.


βš™οΈ nts_gradle_task β€” Build Feedback Loop

Why it exists: Run Gradle tasks (build, test, check) with parsed output.

Discipline role: Agent gets immediate feedback on whether changes broke the build. Errors are parsed and actionable.

Connection: Closes the loop: Edit β†’ Build β†’ Fix β†’ Repeat.


βœ… nts_verify β€” Multi-Level Validation

Why it exists: Verify code correctness at three levels: syntax, compilation, and tests.

Discipline role:

  • syntax β€” Fast tree-sitter AST check (no build needed). Catches errors instantly after edits.
  • compile β€” Runs gradlew build -x test for compilation verification.
  • test β€” Runs gradlew test for full test validation.

Connection: Bridges editing and building. Agent verifies syntax without a full build cycle, escalating to compilation/tests only when needed.


πŸ” nts_workspace_status β€” Context Recovery

Why it exists: Provides compact workspace summary for re-orientation after context compression.

Discipline role: When the agent loses context due to prompt summarization, this tool returns:

  • Current task ID and stats
  • TODO progress (if active)
  • Recently modified files
  • Recent journal entries (last 5 operations)
  • Suggested next action

Connection: Acts as an emergency compass. The agent can always ask "where am I?" and get a precise answer.


πŸ–₯️ nts_process β€” Background Process Management

Why it exists: Monitor and control long-running background processes (Gradle builds, Git operations).

Discipline role: Agent can retrieve logs or kill async processes without blocking the main workflow.

Connection: Works with nts_gradle_task and nts_git for async operations.


The System as a Whole

These tools aren't independent utilities. They form a closed discipline loop:

  1. Task establishes accountability
  2. Read forces attention and issues tokens
  3. Edit requires tokens and shows results
  4. Verify validates changes (syntax β†’ compile β†’ test)
  5. Task provides recovery when needed
  6. Batch enables complex operations atomically
  7. HUD + TODO maintains focus across long sessions
  8. Workspace Status recovers context after compression

Every tool reinforces the others. There's no escape hatch to "just edit blindly." The discipline is architectural.


πŸ“¦ Installation & Usage

Prerequisites: Java 25+ (Virtual Threads, enhanced performance).

1. Quick Start (Auto-Integration)

Build and run the integrator to automatically configure supported clients (Gemini CLI, Claude Code, Qwen CLI, Cursor, LM Studio, Antigravity, Copilot VS Code).

./gradlew shadowJar
java -jar app/build/libs/app-all.jar --integrate

2. Manual Configuration

Add to your mcp-config.json:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "java",
      "args": [
        "-jar",
        "/absolute/path/to/nts-mcp-fs/app/build/libs/app-all.jar"
      ]
    }
  }
}

3. Docker (No Java Required)

Docker eliminates the need to install Java 25+ locally. The server runs in a container with project directories mounted as volumes.

Important: Docker Mode and Roots

In Docker, you must explicitly mount directories and specify them via NTS_DOCKER_ROOTS. These roots override any roots sent by the MCP client, because the client sends host paths that don't exist inside the container.

Option A: Use pre-built image (recommended)

docker pull ghcr.io/nefrols/nts-mcp-fs:latest

Single project:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/home/user/myproject:/mnt/project",
        "-e", "NTS_DOCKER_ROOTS=/mnt/project",
        "ghcr.io/nefrols/nts-mcp-fs:latest"
      ]
    }
  }
}

Multiple projects:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/home/user/project1:/mnt/p1",
        "-v", "/home/user/project2:/mnt/p2",
        "-e", "NTS_DOCKER_ROOTS=/mnt/p1:/mnt/p2",
        "ghcr.io/nefrols/nts-mcp-fs:latest"
      ]
    }
  }
}

Option B: Build locally

docker build -t nts-mcp-fs .
docker run -i --rm \
  -v /path/to/project:/mnt/project \
  -e NTS_DOCKER_ROOTS=/mnt/project \
  nts-mcp-fs

Environment variables:

Variable Description
NTS_DOCKER_ROOTS Required. Colon-separated list of root paths inside the container. Must match your -v mount points. Overrides client roots.
JAVA_OPTS JVM options (default: -XX:+UseZGC -Xmx512m)
MCP_DEBUG Set to true for debug logging
MCP_LOG_FILE Path to log file (for clients that merge stderr/stdout)

Available image tags:

Tag Description
latest Latest stable release
1.2.3 Specific version
1.2 Latest patch of minor version
edge Latest development build (main branch)

πŸ‡·πŸ‡Ί Русский

NTS_MCP_FS β€” это сСрвСр Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Model Context Protocol (MCP) уровня Enterprise.

Он ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΡƒΡŽ ОБ для ИИ-Π°Π³Π΅Π½Ρ‚ΠΎΠ². Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ простых инструмСнтов, Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‰ΠΈΡ… "ΡΠ»Π΅ΠΏΡƒΡŽ" ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ, NTS обСспСчиваСт ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, прСдоставляСт ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ HUD ΠΈ позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ АтомарныС скрипты Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π±Π°Ρ‚Ρ‡ΠΈ.

πŸš€ ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отличия

Ѐункция ΠžΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ MCP Π‘Π΅Ρ€Π²Π΅Ρ€ NTS_MCP_FS
Π¦Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ БлСпая ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡŒ (ΠΊΡ‚ΠΎ послСдний, Ρ‚ΠΎΡ‚ ΠΈ ΠΏΡ€Π°Π²) Line Access Tokens (LATs) - ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°
ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ По ΠΎΠ΄Π½ΠΎΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ Π·Π° Ρ€Π°Π· ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ АтомарныС Π‘Π°Ρ‚Ρ‡ΠΈ (Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΠ½Π³)
ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ НСт памяти (АгСнт Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠ»Π°Π½) AI-HUD ΠΈ ВстроСнный TODO (ΠŸΠΎΡΡ‚ΠΎΡΠ½Π½Ρ‹ΠΉ контСкст)
Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Ctrl+Z (Ссли ΠΏΠΎΠ²Π΅Π·Π΅Ρ‚) Deep Undo ΠΈ Π§Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹ (Π£Ρ‡Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²)
Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ ΠΊΠΎΠ΄Π° ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ LSP-навигация ΠΈ БСмантичСский Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (12 языков)
ВСрификация Π ΡƒΡ‡Π½ΠΎΠ΅ тСстированиС ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° синтаксиса (Tree-sitter), компиляция ΠΈ тСсты
ΠŸΠ΅Ρ€ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π‘Π΅Π· состояния (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² памяти) H2 Database (ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ пСрСзапуски)
Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ I/O Java Virtual Threads ΠΈ Memory-Mapped I/O

🎯 Ѐилософия: Дисциплина ИИ Ρ‡Π΅Ρ€Π΅Π· осознанноС услоТнСниС

«ЦСль Π½Π΅ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π»Π΅Π³Ρ‡ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π°Π³Π΅Π½Ρ‚Π° β€” Π° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΠΉ.Β»

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ MCP-сСрвСров ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ удобство: мСньшС Π²Ρ‹Π·ΠΎΠ²ΠΎΠ², ΠΊΠΎΡ€ΠΎΡ‡Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹, максимум Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ. NTS ΠΈΠ΄Ρ‘Ρ‚ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ. Он создаёт осознанноС Ρ‚Ρ€Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ заставляСт ИИ-Π°Π³Π΅Π½Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с хирургичСской Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ°: ΠšΠ°Ρ‚Π°ΡΡ‚Ρ€ΠΎΡ„ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ Π΄Ρ€Π΅ΠΉΡ„ Π² Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… сСссиях

Когда ИИ-Π°Π³Π΅Π½Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π°Π΄ слоТной Π·Π°Π΄Π°Ρ‡Π΅ΠΉ (1-2М+ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²), суммаризация контСкста Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ тСряСт Π΄Π΅Ρ‚Π°Π»ΠΈ. АгСнт Β«Π·Π°Π±Ρ‹Π²Π°Π΅Ρ‚Β», Ρ‡Ρ‚ΠΎ Ρ‡ΠΈΡ‚Π°Π» 50 сообщСний Π½Π°Π·Π°Π΄. Π”Π°Π»ΡŒΡˆΠ΅:

  1. πŸ”΄ АгСнт Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚ строку 347 ΠΏΠΎ ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ памяти
  2. πŸ”΄ ΠŸΡ€Π°Π²ΠΊΠ° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π»ΠΎΠΌΠ°Π΅Ρ‚ β€” Π°Π³Π΅Π½Ρ‚ ΠΏΠ°Π½ΠΈΠΊΡƒΠ΅Ρ‚
  3. πŸ”΄ АгСнт Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ†ΠΈΠΊΠ» исправлСний
  4. πŸ”΄ Часы Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠ΅Π½Ρ‹ Π·Π° сСкунды

Π­Ρ‚ΠΎ Π½Π΅ Π±Π°Π³ β€” это эмСрдТСнтноС свойство Ρ€Π°Π±ΠΎΡ‚Ρ‹ LLM с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ контСкстом. NTS спроСктирован для прСдотвращСния этого сцСнария.

РСшСниС: ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ концСнтрация Ρ‡Π΅Ρ€Π΅Π· LAT

Line Access Tokens (LATs) β€” это Π½Π΅ просто ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ бСзопасности, это ΠΊΠΎΠ³Π½ΠΈΡ‚ΠΈΠ²Π½ΠΎΠ΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Π‘Π΅Π· LAT:                                                       β”‚
β”‚  Β«ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΡŽ вСсь Ρ„Π°ΠΉΠ»... Ρ‚Π°ΠΌ всСго 400 строк»                   β”‚
β”‚   β†’ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Ρ€Π°Π·Π΄ΡƒΡ‚ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Β«Π½Π° всякий случай»                 β”‚
β”‚   β†’ Буммаризация тСряСт ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ                       β”‚
β”‚   β†’ АгСнт ΠΏΡ€Π°Π²ΠΈΡ‚ Π½Π΅ Ρ‚Ρƒ строку ΠΏΠΎ Ρ€Π°Π·ΠΌΡ‹Ρ‚ΠΎΠΉ памяти               β”‚
β”‚   β†’ ΠšΠ°Ρ‚Π°ΡΡ‚Ρ€ΠΎΡ„ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка                                    β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Π‘ LAT:                                                         β”‚
β”‚  «МнС Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ строку 47. ΠŸΡ€ΠΎΡ‡ΠΈΡ‚Π°ΡŽ строки 40-55.Β»         β”‚
β”‚   β†’ АгСнт явно Ρ€Π΅ΡˆΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ                           β”‚
β”‚   β†’ Π’ΠΎΠΊΠ΅Π½ Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚ Π²ΠΈΠ΄Π΅Π» Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ состояниС     β”‚
β”‚   β†’ ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ остаётся чистым ΠΈ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌ                          β”‚
β”‚   β†’ ΠŸΡ€Π°Π²ΠΊΠΈ хирургичСски Ρ‚ΠΎΡ‡Π½Ρ‹ ΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹                 β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

АгСнт Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ вСсь Ρ„Π°ΠΉΠ» ΠΎΠ΄Π½ΠΎΠΉ Π»Π΅Π½ΠΈΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ. Он обязан ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ строк. Π­Ρ‚ΠΎ заставляСт Π°Π³Π΅Π½Ρ‚Π° Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ дСйствиСм β€” ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π° дисциплина, которая ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΄Ρ€Π΅ΠΉΡ„.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹ Π²Π°ΠΆΠ½Ρ‹

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ nts_edit_file содСрТит ΠΏΠΎΠ»Π½Ρ‹ΠΉ unified diff. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠ»ΠΎΠ²Π½ΠΎΡΡ‚ΡŒ β€” это ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°Ρ валидация.

--- User.java (original)
+++ User.java (modified)
@@ -15,7 +15,7 @@
     }
 
-    public String getName() {
+    public String getFullName() {
         return name;
     }

АгСнт Π²ΠΈΠ΄ΠΈΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ, Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π΅. НС Π½ΡƒΠΆΠ΅Π½ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ шаг Β«ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΒ». НСт шанса Β«Π·Π°Π±Ρ‹Ρ‚ΡŒΒ» ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ. Diff β€” это Π΄ΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ.

РСальноС влияниС

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ инструмСнты NTS
2-часовая сСссия Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° 40% шанс катастрофы Около нуля (checkpoint + undo)
ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Π° тихая ΠΏΠΎΡ€Ρ‡Π° Атомарный batch ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚
Π’Π½Π΅ΡˆΠ½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ АгСнт Π·Π°Ρ‚Ρ€Ρ‘Ρ‚ ΠΏΡ€Π°Π²ΠΊΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π’ΠΎΠΊΠ΅Π½ сгораСт, Π°Π³Π΅Π½Ρ‚ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Ρ‘Π½
АгСнт Β«ΠΏΠ°Π½ΠΈΠΊΡƒΠ΅Ρ‚Β» послС ошибки НСконтролируСмая ΡΠΏΠΈΡ€Π°Π»ΡŒ фиксов Undo β†’ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ΅ состояниС β†’ ΠΏΠΎΠ²Ρ‚ΠΎΡ€

ΠšΠΎΠ½Ρ‚Ρ€ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½Π°Ρ истина

ΠŸΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° 10% большС Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π½Π° дисциплину β€” Π·Π½Π°Ρ‡ΠΈΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ 100% Ρ€Π°Π±ΠΎΡ‚Ρ‹.

2-часовая сСссия Π°Π³Π΅Π½Ρ‚Π° стоит ~$5-15 Π² API-Π²Ρ‹Π·ΠΎΠ²Π°Ρ…. ΠšΠ°Ρ‚Π°ΡΡ‚Ρ€ΠΎΡ„ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ошибка, ΡƒΠ½ΠΈΡ‡Ρ‚ΠΎΠΆΠΈΠ²ΡˆΠ°Ρ эту Ρ€Π°Π±ΠΎΡ‚Ρƒ, стоит ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ β€” плюс врСмя Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π½Π° диагностику.

NTS мСняСт ΠΌΠΈΠΊΡ€ΠΎ-ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π° ΠΌΠ°ΠΊΡ€ΠΎ-Π½Π°Π΄Ρ‘ΠΆΠ½ΠΎΡΡ‚ΡŒ. АгСнт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ усСрднСС Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, Π½ΠΎ вся сСссия Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π° Π½Π΅ Ρ€ΡƒΡˆΠΈΡ‚ΡΡ Π½Π° 1:45.

🧠 ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

1. πŸ“Ÿ HUD для АгСнта (Heads-Up Display)

Π‘Π΅Ρ€Π²Π΅Ρ€ внСдряСт строку статуса Π² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ инструмСнта. АгСнт Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ тСряСт контСкст.

[HUD tid:a1b2] Plan: Refactor Auth [βœ“2 β—‹1] β†’ #3: Update Login | Task: 5 edits | Unlocked: 3 files
  • ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ Π·Π°Π΄Π°Ρ‡ΠΈ: НапоминаСт Π°Π³Π΅Π½Ρ‚Ρƒ ID Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.
  • Π’Ρ€Π΅ΠΊΠΈΠ½Π³ прогрСсса: ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ состояниС TODO (Π“ΠΎΡ‚ΠΎΠ²ΠΎ/Π’ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠΈ) ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ.
  • Бтатус бСзопасности: ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, сколько Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎ для рСдактирования.

2. πŸ“œ ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ АтомарныС Π‘Π°Ρ‚Ρ‡ΠΈ (Π‘ΠΊΡ€ΠΈΠΏΡ‚ΠΈΠ½Π³)

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ nts_batch_tools β€” это Π½Π΅ просто список ΠΊΠΎΠΌΠ°Π½Π΄, это Π΄Π²ΠΈΠΆΠΎΠΊ скриптинга Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

  • АтомарныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ: 10 дСйствий Π² ΠΎΠ΄Π½ΠΎΠΌ запросС. Если 10-Π΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ 9 откатятся ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ останСтся "сломанным".
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…: ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ шагами. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» Π½Π° Π¨Π°Π³Π΅ 1 ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π΅Π³ΠΎ ΠΏΡƒΡ‚ΡŒ Π½Π° Π¨Π°Π³Π΅ 2 Ρ‡Π΅Ρ€Π΅Π· {{step1.path}}.
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ адрСсация: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ $LAST (ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»Π°) ΠΈΠ»ΠΈ $PREV_END+1 (вставка сразу послС ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΏΡ€Π°Π²ΠΊΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π²Ρ‹ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° строк Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ контСкст FS: Когда Π²Ρ‹ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» Π½Π° Π¨Π°Π³Π΅ 1 ΠΈ запускаСтС nts_code_refactor Π½Π° Π¨Π°Π³Π΅ 2, Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ Π²ΠΈΠ΄ΠΈΡ‚ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ ΠΈΠ· Π¨Π°Π³Π° 1, Π° Π½Π΅ Π²Π΅Ρ€ΡΠΈΡŽ с диска. ΠŸΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ Π²Ρ€ΠΎΠ΄Π΅ Β«ΠΏΡ€Π°Π²ΠΊΠ° класса β†’ ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ символа ΠΏΠΎ всСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡƒΒ».

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ скрипта: "Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвис, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄"

"actions": [
  { "id": "cre", "tool": "nts_file_manage", "params": { "action": "create", "path": "Temp.java", "content": "class Svc {}" } },
  { "tool": "nts_file_manage", "params": { "action": "rename", "path": "{{cre.path}}", "newName": "UserService.java" } },
  { "tool": "nts_edit_file", "params": { "path": "{{cre.path}}", "startLine": "$LAST", "operation": "insert_after", "content": "void login() {}", "accessToken": "{{cre.token}}" } }
]

Π—Π°ΠΌΠ΅Ρ‚ΡŒΡ‚Π΅: {{cre.path}} автоматичСски прСвратится Π² UserService.java послС шага пСрСимСнования!

3. πŸ”’ ΠšΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΠŸΠ΅ΡΠΎΡ‡Π½ΠΈΡ†Π°

  • ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π½Π°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° (LATs): АгСнт обязан ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ (LAT:...) ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€Π°Π²ΠΊΠΎΠΉ. Если Ρ„Π°ΠΉΠ» измСнился ΠΈΠ·Π²Π½Π΅ β€” Ρ‚ΠΎΠΊΠ΅Π½ сгораСт, Π° внСшнСС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ автоматичСски записываСтся Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ Ρ„Π°ΠΉΠ»Π°. Никаких состояний Π³ΠΎΠ½ΠΊΠΈ (Race Conditions).
  • Умная инвалидация Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ²: Π’ΠΎΠΊΠ΅Π½Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°ΡŽΡ‚ CRC Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°, Π° Π½Π΅ всСго Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€Π°Π²ΠΊΠΈ Π²Π½Π΅ вашСго Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π½Π΅ ΠΈΠ½Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΡŽΡ‚ Ρ‚ΠΎΠΊΠ΅Π½ β€” Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… строк, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ пСрСчитывания. Π­Ρ‚ΠΎ Ρ€Π°Π΄ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎ сокращаСт Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ обновлСния Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ….
  • Path Aliasing: Π’ΠΎΠΊΠ΅Π½Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ move/rename. БистСма отслСТиваСт ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΎΡΡ‚ΡŒ Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π· алиасы ΠΏΡƒΡ‚Π΅ΠΉ с Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ β€” Π΄Π°ΠΆΠ΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ A β†’ B β†’ C ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ Π²Π°Π»ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ².
  • Бтрогая пСсочница: ВсС ΠΏΡƒΡ‚ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΊ ΠΊΠΎΡ€Π½ΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°. Π’Ρ‹Ρ…ΠΎΠ΄ Ρ‡Π΅Ρ€Π΅Π· ../../ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½.
  • Π—Π°Ρ‰ΠΈΡ‚Π° инфраструктуры: Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ .git, .env ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠ² сборки (ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ).
  • Π—Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ OOM: Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° чтСния гигантских Ρ„Π°ΠΉΠ»ΠΎΠ² (>10MB), способных ΠΎΠ±Ρ€ΡƒΡˆΠΈΡ‚ΡŒ контСкстноС ΠΎΠΊΠ½ΠΎ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
  • Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ ошибок: ВсС ошибки содСрТат ΠΌΠ°ΡˆΠΈΠ½ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹Π΅ ΠΊΠΎΠ΄Ρ‹ (FILE_NOT_FOUND, TOKEN_EXPIRED ΠΈ Π΄Ρ€.) с понятными Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ. Никаких Π·Π°Π³Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” каТдая ошибка ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ пошло Π½Π΅ Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΊ это ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ.

4. βͺ Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ состояниСм: Π§Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹ ΠΈ Deep Undo

  • Π–ΡƒΡ€Π½Π°Π» Π·Π°Π΄Π°Ρ‡ΠΈ (H2 Database): Π›ΠΎΠ³ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ логичСский шаг. Π₯ранится Π²ΠΎ встроСнной H2 Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… β€” ΠΏΠ΅Ρ€Π΅ΠΆΠΈΠ²Π°Π΅Ρ‚ пСрСзапуски сСрвСра.
  • In-Memory ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹: Π”Π²ΠΈΠΆΠΎΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ byte[] ΡΠ½Π°ΠΏΡˆΠΎΡ‚Ρ‹ Π² памяти вмСсто Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… бэкапов для быстрого восстановлСния.
  • Π§Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹: АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ nts_task checkpoint('pre-refactor') ΠΈ бСзопасно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ rollback, Ссли Π³ΠΈΠΏΠΎΡ‚Π΅Π·Π° Π½Π΅ сработала.
  • Deep Undo (Π£ΠΌΠ½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Ρ‚): БистСма отслСТиваСт Π ΠΎΠ΄ΠΎΡΠ»ΠΎΠ²Π½ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ² (Lineage). Если ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ FileA -> FileB ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ Undo, NTS ΠΏΠΎΠΉΠΌΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ Π½ΡƒΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² FileA.
  • Git интСграция: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Git stashes ΠΊΠ°ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ сохранСния (git_checkpoint).

4.1. πŸ‘οΈ ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΠ΅ Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ

Π‘Π΅Ρ€Π²Π΅Ρ€ автоматичСски опрСдСляСт, ΠΊΠΎΠ³Π΄Π° Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ Π²Π½Π΅ MCP (ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π»ΠΈΠ½Ρ‚Π΅Ρ€ΠΎΠΌ, IDE ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ инструмСнтами).

  • ДСтСкция ΠΏΠΎ CRC: ΠŸΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° создаётся ΡΠ½Π°ΠΏΡˆΠΎΡ‚. ΠŸΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ доступС, Ссли CRC отличаСтся β€” ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ обнаруТиваСтся.
  • Π˜ΡΡ‚ΠΎΡ€ΠΈΡ Ρ„Π°ΠΉΠ»Π°: Π’Π½Π΅ΡˆΠ½ΠΈΠ΅ измСнСния Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈ доступны Ρ‡Π΅Ρ€Π΅Π· nts_task journal.
  • Π£ΠΌΠ½Ρ‹Π΅ подсказки: ΠŸΡ€ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠΈ внСшнСго измСнСния Π°Π³Π΅Π½Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ TIP с Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠ΅ΠΉ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ измСнСния ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ‚.ΠΊ. ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅Π΄Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½ΠΎΠΉ ΠΏΡ€Π°Π²ΠΊΠΎΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΡ‚ΠΊΠ°Ρ‚Π°: ΠŸΡ€ΠΈ нСобходимости внСшниС измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· стандартный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ undo.

4.2. πŸ’‘ Π£ΠΌΠ½Ρ‹Π΅ контСкстныС подсказки (Smart TIPs)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚ инструмСнта содСрТит ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ контСкстныС подсказки, Π½Π°ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Π°Π³Π΅Π½Ρ‚Π° ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ workflow.

  • Руководство ΠΏΠΎ workflow: ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ TIPs ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«Π’ΠΎΠΊΠ΅Π½ Π³ΠΎΡ‚ΠΎΠ² для рСдактирования β†’ nts_edit_file(...)Β»).
  • Подсказки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π§Ρ‚Π΅Π½ΠΈΠ΅ большого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ symbol-Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ grep для точности.
  • ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ошибок: Анализ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ΠΎΠ² опрСдСляСт regex-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ запросы Π±Π΅Π· isRegex=true ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅Ρ‚ Π·Π°Ρ€Π°Π½Π΅Π΅.
  • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ: ΠŸΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ количСства строк послС ΠΏΡ€Π°Π²ΠΊΠΈ TIPs Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΠžΠ’Π«Π™ Ρ‚ΠΎΠΊΠ΅Π½.
  • ΠžΡΠ²Π΅Π΄ΠΎΠΌΠ»Ρ‘Π½Π½ΠΎΡΡ‚ΡŒ ΠΎ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π΅: ИзмСнСния сигнатуры ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ мСста Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· nts_code_navigate(action='references').
  • ОбновлСниС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²: ПослС move/rename Java/Kotlin Ρ„Π°ΠΉΠ»ΠΎΠ² TIPs ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ import-Ρ‹ для обновлСния.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ TIPs Π² дСйствии:

[WORKFLOW: Token ready for editing -> nts_edit_file(path, startLine, content, accessToken)]
[TIP: Large range read (150 lines). Consider using 'symbol' parameter for precise symbol boundaries.]
[TIP: Pattern contains regex-like characters (.*). If you intended regex search, add isRegex=true parameter.]
[TIP: Line count changed (+5). Use NEW TOKEN above for subsequent edits to this file.]

5. βœ… ВстроСнная систСма TODO

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт nts_todo позволяСт Π°Π³Π΅Π½Ρ‚Ρƒ вСсти ΠΏΠ»Π°Π½ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Markdown.

  • Активный ΠΏΠ»Π°Π½ транслируСтся Π² HUD.
  • Π£Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ фокус Π°Π³Π΅Π½Ρ‚Π° Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅.
  • АвтоматичСски обновляСт статусы (todo, done, failed) Π² Ρ„Π°ΠΉΠ»Π΅.

6. 🧭 LSP-навигация (Tree-sitter)

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ nts_code_navigate обСспСчиваСт IDE-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Π½Π°Π²ΠΈΠ³Π°Ρ†ΠΈΡŽ Π½Π° Π±Π°Π·Π΅ Tree-sitter.

  • Go to Definition: ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ символа.
  • Find References: Поиск всСх использований ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.
  • Hover: Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Ρ‚ΠΈΠΏΠ΅, сигнатурС ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.
  • List Symbols: Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° Ρ„Π°ΠΉΠ»Π° со всСми опрСдСлСниями.
  • 12 языков: Java, Kotlin, JS/TS/TSX, Python, Go, Rust, C/C++, C#, PHP, HTML.

7. πŸ”„ БСмантичСский Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ (10 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ)

Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ nts_code_refactor выполняСт ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ прСобразования ΠΊΠΎΠ΄Π°.

  • Rename: ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ с автоматичСским ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π’Π‘Π•Π₯ ссылок ΠΏΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.
  • Change Signature: Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° ΠΈ порядка ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² с Π°Π²Ρ‚ΠΎΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ².
  • Extract Method: Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ с ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
  • Extract Variable: Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰ΠΈΡ…ΡΡ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π² ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.
  • Inline: ВстраиваниС ΠΌΠ΅Ρ‚ΠΎΠ΄Π°/ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.
  • Move: ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ класса Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠ°ΠΊΠ΅Ρ‚ с ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ².
  • Wrap: ΠžΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π² try-catch, if-Π±Π»ΠΎΠΊ ΠΈΠ»ΠΈ Ρ†ΠΈΠΊΠ».
  • Delete: БСзопасноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ символа с ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ ссылок.
  • Generate: ГСнСрация getters, setters, конструкторов, builder, toString, equals/hashCode.
  • Batch: ОбъСдинСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ.
  • Preview Mode: ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ (preview: true).
  • ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΉ поиск ссылок: И nts_code_navigate, ΠΈ nts_code_refactor ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠ΅ сканированиС Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠ΅ΠΉ, ΠΈΡ‰ΡƒΡ‚ Π½Π° Π³Π»ΡƒΠ±ΠΈΠ½Ρƒ Π΄ΠΎ 15 ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ для максимального покрытия.
  • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с Batch: Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ массив affectedFiles с Ρ‚ΠΎΠΊΠ΅Π½Π°ΠΌΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° β€” позволяСт ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ refactor β†’ edit Π² nts_batch_tools.
{
  "action": "rename",
  "path": "src/User.java",
  "symbol": "getName",
  "newName": "getFullName",
  "preview": true
}

ΠžΡ‚Π²Π΅Ρ‚ содСрТит Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ для Ρ†Π΅ΠΏΠΎΡ‡Π΅ΠΊ Π² batch:

{
  "affectedFiles": [
    { "path": "src/User.java", "accessToken": "LAT:...", "crc32c": "A1B2C3D4", "lineCount": 50 },
    { "path": "src/UserService.java", "accessToken": "LAT:...", "crc32c": "E5F6G7H8", "lineCount": 120 }
  ]
}

πŸ› οΈ Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ: БистСма дисциплины, Π° Π½Π΅ просто ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт NTS спроСктирован ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ взаимосвязанной систСмы дисциплины. Они Π½Π΅ просто Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” ΠΎΠ½ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π°Π³Π΅Π½Ρ‚ остаётся сфокусированным, Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΈ восстанавливаСмым.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        Π¦Π˜ΠšΠ› Π”Π˜Π‘Π¦Π˜ΠŸΠ›Π˜ΠΠ« NTS                                  β”‚
β”‚                                                                             β”‚
β”‚   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          β”‚
β”‚   β”‚  INIT    │────▢│  READ    │────▢│  EDIT    │────▢│ ΠŸΠ ΠžΠ’Π•Π ΠšΠ β”‚          β”‚
β”‚   β”‚ Π—Π°Π΄Π°Ρ‡Π°   β”‚     β”‚ + Π’ΠΎΠΊΠ΅Π½  β”‚     β”‚ + Π’ΠΎΠΊΠ΅Π½  β”‚     β”‚(Diff/AST)β”‚          β”‚
β”‚   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”˜          β”‚
β”‚        β”‚                                                   β”‚                β”‚
β”‚        β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                         β”‚                β”‚
β”‚        └─────────────▢│  UNDO    β”‚β—€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                β”‚
β”‚        (ΠΏΡ€ΠΈ ΠΏΠ°Π½ΠΈΠΊΠ΅)   │Восстановл│    (ΠΏΡ€ΠΈ ошибкС)                          β”‚
β”‚                       β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ” nts_init β€” Π“Ρ€Π°Π½ΠΈΡ†Π° отвСтствСнности

Π—Π°Ρ‡Π΅ΠΌ: Π‘ΠΎΠ·Π΄Π°Ρ‘Ρ‚ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ с собствСнной историСй undo, Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Π°ΠΌΠΈ ΠΈ рССстром Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ².

Роль Π² дисциплинС: Всё, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π°Π³Π΅Π½Ρ‚, отслСТиваСтся. НСт Β«Π°Π½ΠΎΠ½ΠΈΠΌΠ½ΠΎΠ³ΠΎΒ» рСдактирования. Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ сломаСтся β€” ΠΆΡƒΡ€Π½Π°Π» Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΠΈ ΠΊΠΎΠ³Π΄Π°.

РСактивация Π·Π°Π΄Π°Ρ‡ΠΈ: Если сСрвСр пСрСзапустился ΠΈΠ»ΠΈ соСдинСниС ΠΏΡ€Π΅Ρ€Π²Π°Π»ΠΎΡΡŒ, Π·Π°Π΄Π°Ρ‡Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ:

{ "taskId": "ваш-ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ-uuid" }

Π­Ρ‚ΠΎ восстанавливаСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π·Π°Π΄Π°Ρ‡ΠΈ с todos ΠΈ историСй Ρ„Π°ΠΉΠ»ΠΎΠ². БостояниС Π² памяти (Ρ‚ΠΎΠΊΠ΅Π½Ρ‹, стСк undo) начинаСтся с чистого листа, Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° дискС (H2 ΠΆΡƒΡ€Π½Π°Π») ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ.

Бвязь: ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ taskId. Π­Ρ‚ΠΎ Π½Π΅ Π±ΡŽΡ€ΠΎΠΊΡ€Π°Ρ‚ΠΈΡ β€” это ΠΏΡ€ΠΎΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ.


πŸ“– nts_file_read β€” Шлюз внимания

Π—Π°Ρ‡Π΅ΠΌ: Π§ΠΈΡ‚Π°Π΅Ρ‚ содСрТимоС Ρ„Π°ΠΉΠ»Π° ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Line Access Token (LAT).

Роль Π² дисциплинС: АгСнт обязан явно Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ строки Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½Ρ‹. НСт Π»Ρ‘Π³ΠΊΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ «просто ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ всё».

❌ read({ path: "file.java" })                    // Π—ΠΠŸΠ Π•Π©Π•ΠΠž
βœ… read({ path: "file.java", startLine: 10, endLine: 30 })  // ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ

Бвязь: Π’ΠΎΠΊΠ΅Π½, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Ρ‘Π½Π½Ρ‹ΠΉ здСсь, обязатСлСн для nts_edit_file. Read β†’ Token β†’ Edit. Π‘Π΅Π· сокращСний.

Π£ΠΌΠ½Ρ‹Π΅ TIPs: ΠžΡ‚Π²Π΅Ρ‚Ρ‹ содСрТат подсказки workflow (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Β«Π’ΠΎΠΊΠ΅Π½ Π³ΠΎΡ‚ΠΎΠ² для рСдактирования») ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ symbol-Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ².

МассовоС Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ (Bulk Read): Π§Ρ‚Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… связанных Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΠ΄Π½ΠΈΠΌ запросом:

{
  "bulk": [
    { "path": "UserService.java", "symbol": "createUser" },
    { "path": "UserRepository.java", "symbol": "save" },
    { "path": "User.java", "startLine": 1, "endLine": 30 }
  ]
}

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΎΡ‚Π΄Π΅Π»Ρ‘Π½ Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свой TOKEN. Ошибка Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ Π½Π΅ влияСт Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅.


✏️ nts_edit_file β€” ВСрифицированная мутация

Π—Π°Ρ‡Π΅ΠΌ: ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ построчныС ΠΏΡ€Π°Π²ΠΊΠΈ с ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠ΅ΠΉ Ρ‚ΠΎΠΊΠ΅Π½Π°.

Роль Π² дисциплинС:

  1. Π’ΠΎΠΊΠ΅Π½ обязатСлСн β€” Π΄ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π°Π³Π΅Π½Ρ‚ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π» Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС
  2. Diff Π² ΠΎΡ‚Π²Π΅Ρ‚Π΅ β€” Π°Π³Π΅Π½Ρ‚ сразу Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ измСнилось
  3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° CRC β€” Ссли Ρ„Π°ΠΉΠ» ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½ ΠΈΠ·Π²Π½Π΅, ΠΏΡ€Π°Π²ΠΊΠ° бСзопасно отклоняСтся
  4. Π£ΠΌΠ½Ρ‹Π΅ TIPs β€” контСкстныС подсказки для Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ситуаций:
    • ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚ замСняСт ΠΎΠ΄Π½Ρƒ строку Π±Π΅Π· endLine β†’ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ insert_after ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½
    • ИзмСнилось количСство строк β†’ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΠžΠ’Π«Π™ Ρ‚ΠΎΠΊΠ΅Π½
    • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сигнатуры β†’ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ мСста Π²Ρ‹Π·ΠΎΠ²Π° Ρ‡Π΅Ρ€Π΅Π· nts_code_navigate
    • Π—Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ измСнСния β†’ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ тСсты

Бвязь: ΠŸΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ ΠΎΡ‚ nts_file_read, Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΎΠΊ. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠ° владСния Π½Π΅ прСрываСтся.


πŸ“ nts_file_manage β€” Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ

Π—Π°Ρ‡Π΅ΠΌ: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅, ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ.

Роль Π² дисциплинС:

  • create Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½ β€” Π½ΠΎΠ²Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ сразу Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ
  • rename/move пСрСносят Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· path aliasing β€” Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ Π΄Π°ΠΆΠ΅ послС пСрСмСщСния Ρ„Π°ΠΉΠ»Π° (Ρ‚Ρ€Π°Π½Π·ΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ A β†’ B β†’ C Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚)
  • delete ΠΈΠ½Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ β€” нСльзя Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Β«ΠΏΡ€ΠΈΠ·Ρ€Π°ΠΊΠΎΠ²Β»

Бвязь: Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с nts_batch_tools для Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ рСструктуризации. Алиасы ΠΏΡƒΡ‚Π΅ΠΉ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π½Π° протяТСнии Π·Π°Π΄Π°Ρ‡ΠΈ.


πŸ” nts_file_search β€” Поиск с Π½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ

Π—Π°Ρ‡Π΅ΠΌ: Поиск Ρ„Π°ΠΉΠ»ΠΎΠ² (glob), поиск Π² содСрТимом (grep), просмотр структуры.

Роль Π² дисциплинС: grep Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ для Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠ². АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ сразу Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ шага чтСния.

grep("TODO") β†’ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ строку 47 β†’ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ TOKEN для строк 45-50
           β†’ Π°Π³Π΅Π½Ρ‚ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ строки 45-50 Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ

Π£ΠΌΠ½Ρ‹Π΅ TIPs: ПослС grep подсказки workflow Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для прямого рСдактирования. Если ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΠΏΠΎΡ…ΠΎΠΆ Π½Π° regex, Π½ΠΎ isRegex=false, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ.

Бвязь: ΠœΠΎΡΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ дСйствиСм. Π‘ΠΎΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ обращСния, сохраняя Ρ‚ΠΎΠΊΠ΅Π½Π½ΡƒΡŽ дисциплину.


βͺ nts_task β€” Кнопка ΠΏΠ°Π½ΠΈΠΊΠΈ

Π—Π°Ρ‡Π΅ΠΌ: Undo, redo, Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚Ρ‹, ΠΎΡ‚ΠΊΠ°Ρ‚ ΠΈ ΠΆΡƒΡ€Π½Π°Π» Π·Π°Π΄Π°Ρ‡ΠΈ.

Роль Π² дисциплинС: Когда Π°Π³Π΅Π½Ρ‚ ΠΎΡˆΠΈΠ±Π°Π΅Ρ‚ΡΡ, Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ структурированноС восстановлСниС вмСсто Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ спирали исправлСний.

checkpoint("before-risky-refactor")
  β†’ ΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ опасныС измСнСния
  β†’ Ссли Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ: rollback("before-risky-refactor")
  β†’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ восстановлСн ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

Бвязь: Π­Ρ‚ΠΎ страховочная ΡΠ΅Ρ‚ΡŒ, которая Π΄Π΅Π»Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ агрСссивный Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³. АгСнты ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ смСлыми, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ восстановлСниС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ.


πŸ”— nts_batch_tools β€” Атомарный скриптинг

Π—Π°Ρ‡Π΅ΠΌ: ВыполняСт нСсколько инструмСнтов ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½ΡƒΡŽ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΡƒΡŽ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ.

Роль Π² дисциплинС: Π‘Π»ΠΎΠΆΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹, Π»ΠΈΠ±ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Никаких Π½Π°ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρƒ сломанных состояний.

{
  "actions": [
    { "id": "svc", "tool": "nts_file_manage", "params": { "action": "create", "path": "Service.java" }},
    { "tool": "nts_edit_file", "params": { "path": "{{svc.path}}", "accessToken": "{{svc.token}}", ... }}
  ]
}
// Если edit ΠΏΠ°Π΄Π°Π΅Ρ‚ β†’ create откатываСтся β†’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚

Бвязь: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ {{step.token}}. Π’ΠΎΠΊΠ΅Π½Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ‚Π΅ΠΊΠ°ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ шагами автоматичСски. Π­Ρ‚ΠΎ ΠΊΡƒΠ»ΡŒΠΌΠΈΠ½Π°Ρ†ΠΈΡ систСмы дисциплины.


πŸ”„ nts_project_replace β€” ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠ°Ρ массовая мутация

Π—Π°Ρ‡Π΅ΠΌ: Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ поиск ΠΈ Π·Π°ΠΌΠ΅Π½Π° ΠΏΠΎ всСму ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ.

Роль Π² дисциплинС:

  • dryRun: true ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС измСнСния Π΄ΠΎ примСнСния
  • ΠΡ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ: всС Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄ΠΈΠ½
  • АвтоматичСский Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ

Бвязь: Высокорисковая опСрация с ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ гарантиями.


🧭 nts_code_navigate β€” БСмантичСскоС ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅

Π—Π°Ρ‡Π΅ΠΌ: Go to definition, find references, hover info, список символов.

Роль Π² дисциплинС: АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½ΡΡ‚ΡŒ структуру ΠΊΠΎΠ΄Π° Π΄ΠΎ рСдактирования. МСньшС Π΄ΠΎΠ³Π°Π΄ΠΎΠΊ, большС точности.

Бвязь: Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ для Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Ρ… мСст. Навигация β†’ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ β†’ увСрСнная ΠΏΡ€Π°Π²ΠΊΠ°.


πŸ”§ nts_code_refactor β€” Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°Ρ трансформация

Π—Π°Ρ‡Π΅ΠΌ: ΠŸΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ символов, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ сигнатур, гСнСрация ΠΊΠΎΠ΄Π°, ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² β€” с автоматичСским ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ссылок.

Роль Π² дисциплинС:

  • preview: true ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ всС Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΡ‚Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π΄ΠΎ примСнСния
  • БСмантичСскоС ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ обновляСт Π’Π‘Π• ссылки, Π° Π½Π΅ просто тСкстовыС совпадСния
  • ΠΡ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΡΡ‚ΡŒ: вСсь Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³ ΡƒΡΠΏΠ΅ΡˆΠ΅Π½ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΌΠ΅Π½Ρ‘Π½ Ρ†Π΅Π»ΠΈΠΊΠΎΠΌ
  • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ для всСх ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² β€” позволяСт ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ refactor β†’ edit Π² Π±Π°Ρ‚Ρ‡Π°Ρ…

Бвязь: Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ tree-sitter для точности. Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ с nts_batch_tools Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΠΎΠ»ΡΡ†ΠΈΡŽ {{step.affectedFiles[0].accessToken}}. БСзопаснСС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ рСдактирования Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ².


πŸ“‹ nts_todo β€” Π―ΠΊΠΎΡ€ΡŒ фокуса

Π—Π°Ρ‡Π΅ΠΌ: Π’Π΅Π΄Ρ‘Ρ‚ Markdown-список Π·Π°Π΄Π°Ρ‡, ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ с HUD.

Роль Π² дисциплинС: Π”Π΅Ρ€ΠΆΠΈΡ‚ Π°Π³Π΅Π½Ρ‚Π° сфокусированным Π½Π° ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡Π΅ Π·Π° Ρ€Π°Π·. HUD постоянно Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ дальшС.

[HUD] Plan: Auth Refactor [βœ“2 β—‹3] β†’ #3: Update Login Controller

Бвязь: ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ расползаниС скоупа. АгСнт всСгда Π·Π½Π°Π΅Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Ρ†Π΅Π»ΡŒ Π΄Π°ΠΆΠ΅ послС суммаризации контСкста.


πŸ”€ nts_git β€” Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ вСрсий

Π—Π°Ρ‡Π΅ΠΌ: Git status, diff, add, commit β€” Π½Π΅ покидая NTS.

Роль Π² дисциплинС:

  • git_checkpoint создаёт stash ΠΊΠ°ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ бэкап
  • commit_task Π°Π²Ρ‚ΠΎΠ³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ сообщСниС ΠΊΠΎΠΌΠΌΠΈΡ‚Π° ΠΈΠ· прогрСсса TODO
  • Волько бСзопасныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π±Π΅Π· push/force)

Бвязь: Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ с ΠΆΡƒΡ€Π½Π°Π»ΠΎΠΌ Π·Π°Π΄Π°Ρ‡ΠΈ. ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΡΡΡ‹Π»Π°Ρ‚ΡŒΡΡ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ.


πŸ“Š nts_compare_files β€” Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Π°Ρ вСрификация

Π—Π°Ρ‡Π΅ΠΌ: ΠŸΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ unified diff ΠΌΠ΅ΠΆΠ΄Ρƒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ двумя Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.

Роль Π² дисциплинС: АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ явно Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ измСнСния, сравнивая состояния Π΄ΠΎ/послС.

Бвязь: ПолСзСн для Ρ€Π΅Π²ΡŒΡŽ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² batch-ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈΠ»ΠΈ Ρ€Π΅Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.


βš™οΈ nts_gradle_task β€” Π¦ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ связи ΠΎΡ‚ сборки

Π—Π°Ρ‡Π΅ΠΌ: Запуск Gradle-Π·Π°Π΄Π°Ρ‡ (build, test, check) с парсингом Π²Ρ‹Π²ΠΎΠ΄Π°.

Роль Π² дисциплинС: АгСнт Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ фидбэк, сломали Π»ΠΈ измСнСния сборку. Ошибки распарсСны ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΊ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ.

Бвязь: Π—Π°ΠΌΡ‹ΠΊΠ°Π΅Ρ‚ Ρ†ΠΈΠΊΠ»: Edit β†’ Build β†’ Fix β†’ Repeat.


βœ… nts_verify β€” ΠœΠ½ΠΎΠ³ΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Π°Ρ валидация

Π—Π°Ρ‡Π΅ΠΌ: ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° коррСктности ΠΊΠΎΠ΄Π° Π½Π° Ρ‚Ρ€Ρ‘Ρ… уровнях: синтаксис, компиляция, тСсты.

Роль Π² дисциплинС:

  • syntax β€” Быстрая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° AST Ρ‡Π΅Ρ€Π΅Π· tree-sitter (Π±Π΅Π· сборки). Π›ΠΎΠ²ΠΈΡ‚ ошибки ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ послС ΠΏΡ€Π°Π²ΠΎΠΊ.
  • compile β€” ЗапускаСт gradlew build -x test для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ компиляции.
  • test β€” ЗапускаСт gradlew test для ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ тСстами.

Бвязь: ΠœΠΎΡΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ сборкой. АгСнт провСряСт синтаксис Π±Π΅Π· ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° сборки, пСрСходя ΠΊ компиляции/тСстам Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ нСобходимости.


πŸ” nts_workspace_status β€” ВосстановлСниС контСкста

Π—Π°Ρ‡Π΅ΠΌ: ΠšΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π°Ρ сводка Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ пространства для ΠΏΠ΅Ρ€Π΅ΠΎΡ€ΠΈΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ послС сТатия контСкста.

Роль Π² дисциплинС: Когда Π°Π³Π΅Π½Ρ‚ тСряСт контСкст ΠΈΠ·-Π·Π° суммаризации ΠΏΡ€ΠΎΠΌΠΏΡ‚Π°, этот инструмСнт Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚:

  • ID Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ статистику
  • ΠŸΡ€ΠΎΠ³Ρ€Π΅ΡΡ TODO (Ссли Π°ΠΊΡ‚ΠΈΠ²Π΅Π½)
  • НСдавно ΠΈΠ·ΠΌΠ΅Π½Ρ‘Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹
  • ПослСдниС записи ΠΆΡƒΡ€Π½Π°Π»Π° (5 ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ)
  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ дСйствия

Бвязь: ДСйствуСт ΠΊΠ°ΠΊ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΉ компас. АгСнт всСгда ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Β«Π³Π΄Π΅ я?Β» ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.


πŸ–₯️ nts_process β€” Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ процСссами

Π—Π°Ρ‡Π΅ΠΌ: ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ ΠΈ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»Π³ΠΈΠΌΠΈ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΌΠΈ процСссами (сборки Gradle, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Git).

Роль Π² дисциплинС: АгСнт ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈ ΠΈΠ»ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ асинхронныС процСссы Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ основного workflow.

Бвязь: Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с nts_gradle_task ΠΈ nts_git для асинхронных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.


БистСма ΠΊΠ°ΠΊ Ρ†Π΅Π»ΠΎΠ΅

Π­Ρ‚ΠΈ инструмСнты β€” Π½Π΅ нСзависимыС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹. Они ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ Ρ†ΠΈΠΊΠ» дисциплины:

  1. Task устанавливаСт ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ
  2. Read ΠΏΡ€ΠΈΠ½ΡƒΠΆΠ΄Π°Π΅Ρ‚ ΠΊ вниманию ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹
  3. Edit Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ ΠΈ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹
  4. Verify Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΡƒΠ΅Ρ‚ измСнСния (синтаксис β†’ компиляция β†’ тСсты)
  5. Task обСспСчиваСт восстановлСниС ΠΏΡ€ΠΈ нСобходимости
  6. Batch позволяСт слоТныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ
  7. HUD + TODO ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ фокус Π½Π° протяТСнии Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… сСссий
  8. Workspace Status восстанавливаСт контСкст послС сТатия

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ инструмСнт усиливаСт ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅. НСт Π»Π°Π·Π΅ΠΉΠΊΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ «просто Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΡΠ»Π΅ΠΏΡƒΡŽΒ». Дисциплина β€” архитСктурная.


πŸ“¦ Установка ΠΈ запуск

ВрСбования: Java 25+ (Virtual Threads, ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π½Π°Ρ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ).

1. Быстрый старт (Авто-интСграция)

Π‘ΠΎΠ±Π΅Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈ запуститС ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ‚ΠΎΡ€ для автоматичСской настройки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² (Gemini CLI, Claude Code, Qwen CLI, Cursor, LM Studio, Antigravity, Copilot VS Code).

./gradlew shadowJar
java -jar app/build/libs/app-all.jar --integrate

2. Ручная конфигурация

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ этот Π±Π»ΠΎΠΊ Π² ваш mcp-config.json:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "java",
      "args": [
        "-jar",
        "/Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ/ΠΏΡƒΡ‚ΡŒ/ΠΊ/nts-mcp-fs/app/build/libs/app-all.jar"
      ]
    }
  }
}

3. Docker (Π‘Π΅Π· установки Java)

Docker избавляСт ΠΎΡ‚ нСобходимости ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Java 25+ локально. Π‘Π΅Ρ€Π²Π΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅, Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ volumes.

Π’Π°ΠΆΠ½ΠΎ: Docker-Ρ€Π΅ΠΆΠΈΠΌ ΠΈ Roots

Π’ Docker Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ явно ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‡Π΅Ρ€Π΅Π· NTS_DOCKER_ROOTS. Π­Ρ‚ΠΈ roots ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π»ΡŽΠ±Ρ‹Π΅ roots ΠΎΡ‚ MCP-ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΠΏΡƒΡ‚ΠΈ хост-систСмы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ А: Π“ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π· (рСкомСндуСтся)

docker pull ghcr.io/nefrols/nts-mcp-fs:latest

Один ΠΏΡ€ΠΎΠ΅ΠΊΡ‚:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/home/user/myproject:/mnt/project",
        "-e", "NTS_DOCKER_ROOTS=/mnt/project",
        "ghcr.io/nefrols/nts-mcp-fs:latest"
      ]
    }
  }
}

НСсколько ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ²:

{
  "mcpServers": {
    "NTS-FileSystem-MCP": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-v", "/home/user/project1:/mnt/p1",
        "-v", "/home/user/project2:/mnt/p2",
        "-e", "NTS_DOCKER_ROOTS=/mnt/p1:/mnt/p2",
        "ghcr.io/nefrols/nts-mcp-fs:latest"
      ]
    }
  }
}

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚ Π‘: Π›ΠΎΠΊΠ°Π»ΡŒΠ½Π°Ρ сборка

docker build -t nts-mcp-fs .
docker run -i --rm \
  -v /ΠΏΡƒΡ‚ΡŒ/ΠΊ/ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ:/mnt/project \
  -e NTS_DOCKER_ROOTS=/mnt/project \
  nts-mcp-fs

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния:

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ ОписаниС
NTS_DOCKER_ROOTS ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Π°. Бписок ΠΏΡƒΡ‚Π΅ΠΉ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Ρ‡Π΅Ρ€Π΅Π· Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅. Π”ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡ΠΊΠ°ΠΌ монтирования -v. ΠŸΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΠ΅Ρ‚ roots ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
JAVA_OPTS ΠžΠΏΡ†ΠΈΠΈ JVM (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ: -XX:+UseZGC -Xmx512m)
MCP_DEBUG УстановитС true для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠ³ΠΎ логирования
MCP_LOG_FILE ΠŸΡƒΡ‚ΡŒ ΠΊ Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Ρƒ (для ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‰ΠΈΡ… stderr/stdout)

ДоступныС Ρ‚Π΅Π³ΠΈ ΠΎΠ±Ρ€Π°Π·Π°:

ВСг ОписаниС
latest ПослСдний ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ·
1.2.3 ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π°Ρ вСрсия
1.2 ПослСдний ΠΏΠ°Ρ‚Ρ‡ ΠΌΠΈΠ½ΠΎΡ€Π½ΠΎΠΉ вСрсии
edge ПослСдняя dev-сборка (Π²Π΅Ρ‚ΠΊΠ° main)

Built with ❀️ by Nefrols

About

Transactional File System server for Model Context Protocol (MCP). Enterprise-grade tools for AI agents: atomic edits, undo/redo, code navigation, refactoring, git integration. Docker ready.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages