Commit Graph

596 Commits

Author SHA1 Message Date
Bill
ca01fc6744 Step 338: EnumDeclaration + NamespaceDeclaration (12/12 tests)
Added EnumDeclaration, EnumMember, NamespaceDeclaration, TypeAlias AST nodes with
full serialization roundtrip and CompactAST support. Enums support scoped/unscoped,
underlying type, member values. Namespaces support nesting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:38:34 -07:00
Bill
96799dd51f Step 337: Preprocessor AST Nodes (12/12 tests)
Added IncludeDirective, PragmaDirective, MacroDefinition as first-class AST nodes.
Full serialization roundtrip and CompactAST support. Preprocessor directives are
statement-level nodes with macro bodies kept as unparsed text.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:36:25 -07:00
Bill
2eef074fa1 Step 336: Phase 12c Integration Tests — Inheritance + Template pipeline (8/8 tests)
Full integration: parse C++ classes with multiple inheritance/CRTP via tree-sitter,
generate cross-language output (Java extends+implements, Python multi-base), verify
diamond detection and JSON serialization roundtrip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:32:52 -07:00
Bill
6464c88483 Step 335: C++ Generator — Inheritance + Templates (12/12 tests)
Updated CppGenerator, PythonGenerator, JavaGenerator for multiple inheritance
output using getBases(). C++ emits template prefix + access specifiers + virtual.
Python uses direct multi-base. Java uses extends + implements adaptation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:29:54 -07:00
Bill
b75fba72d8 Step 334: C++ Parser — Inheritance + Templates (12/12 tests)
Multiple inheritance with access specifiers and virtual flags from tree-sitter
CST. Template class type parameters, CRTP detection, struct support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:24:56 -07:00
Bill
6b2b5bf13b Step 333: Template Class Declarations (12/12 tests)
isClassTemplate/isVariadic serialization, isCRTPClass detection helper,
CompactAST getNodeName for GenericType/TypeParameter.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-16 00:18:56 -07:00
Bill
b1654f0b85 Step 332: Multiple Inheritance in ClassDeclaration (12/12 tests)
BaseClass struct with access specifiers and virtual flags. Backward-compatible
getBases() migration from legacy superClass. Diamond inheritance detection via
BFS. Updated Serialization for baseClasses array roundtrip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:31:55 -07:00
Bill
6784281489 Step 331: Phase 12b Integration Tests — full routing pipeline (8/8 tests)
8 integration tests covering skeleton→workflow→route→execute→review lifecycle:
mixed worker routing, getter auto-approve, LLM context, human routing,
dependency chains, rejection flow, review policy, 5-function mixed skeleton.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:27:29 -07:00
Bill
a026743676 Step 330: Review Gates (12/12 tests)
Configurable auto-approve rules for review gate. Default policy auto-approves
deterministic/template with >=0.9 confidence. @Review(required) always
overrides. Policy serialization, wildcard rules, and 2 new MCP tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:23:06 -07:00
Bill
6352a04836 Step 329: Routing RPC + MCP Tools (12/12 tests)
4 new RPC methods and MCP tools for routing and worker dispatch:
routeTask, routeAllReady, executeTask, getRoutingExplanation.
Template workers auto-approve getter/setter patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:20:00 -07:00
Bill
1d931abdf2 Step 328: ContextAssembler — Context Window Assembly + Budget (12/12 tests)
Builds context windows at local/file/project/cross-project widths with
token budget enforcement and priority-ordered truncation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:14:39 -07:00
Bill
63de321b6d Step 327: WorkerRegistry — Worker Abstractions (12/12 tests)
5 worker types: deterministic (intent-based), template (getter/setter),
SLM/LLM (context bundle prep for external invocation), human (review
marking). Registry with type lookup and canHandle filtering.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:11:36 -07:00
Bill
2a2aef3fef Step 326: RoutingEngine — Annotation-to-Dispatch Logic (12/12 tests)
Routing engine maps WorkItem annotations to dispatch decisions: worker
type, context budget, review requirements. Priority cascade from explicit
overrides through pattern detection to context-based defaults.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:09:12 -07:00
Bill
08c8f0b085 Step 325: Phase 12a Integration Tests (8/8 tests)
End-to-end workflow lifecycle: skeleton→workflow, priority ordering,
dependency cascading, full lifecycle with results, rejection flow,
persistence, and combined 5-item workflow. Phase 12a complete (68/68).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 19:06:15 -07:00
Bill
cc352af68e Step 324: Workflow RPC + MCP Tools (12/12 tests)
8 new RPC methods and MCP tools for workflow lifecycle management:
create, inspect, assign, complete, reject, save. Role-based access
control enforced — Linter read-only, Refactor/Generator can mutate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 17:00:52 -07:00
Bill
ec0509f6ef Step 323: Workflow Sidecar Persistence (12/12 tests)
Save/load workflow state to .whetstone/<project>.workflow.json with
directory creation, overwrite, delete, and multi-workflow support.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:36:20 -07:00
Bill
39555929d5 Step 322: WorkflowState — Project-Level Workflow Tracking (12/12 tests)
Top-level workflow state with auto-detected phases, statistics,
audit trail, skeleton population, and full JSON serialization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:28:59 -07:00
Bill
b6cdd10f6d Step 321: TaskQueue — Priority Queue with Dependencies (12/12 tests)
Ordered queue with priority scheduling and dependency resolution. Items
blocked by unsatisfied dependencies stay pending; completing an item
cascades to unblock dependents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:23:32 -07:00
Bill
25ab38d185 Step 320: WorkItem — Core Execution Model (12/12 tests)
Sprint 12 Phase 12a start. WorkItem extends SkeletonTask with execution
lifecycle tracking: 7-state machine, worker assignment, timestamps, results,
and full JSON serialization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 16:17:35 -07:00
Bill
0d51a6fe4c Steps 309-319: Sprint 11 Phases 11d-e — Kotlin/C# languages + workflow annotation foundation
Phase 11d (Steps 309-313): Kotlin + C# parsers and generators
- KotlinParser (regex-based): fun, suspend fun, class, data class, val/var
- KotlinGenerator: idiomatic Kotlin output with type mappings
- CSharpParser (regex-based): methods, async, class, interface
- CSharpGenerator: Allman braces, foreach, Task async, LINQ types
- Pipeline integration for both languages, 10 parsers + 10 generators

Phase 11e (Steps 314-319): Workflow annotation foundation
- AnnotationInference: generalized multi-subject inference engine
- Subject 9 routing annotations: ContextWidth, Review, Ambiguity,
  Automatability, Priority, ImplementationStatus
- SkeletonAST: project specification before code exists
- Architect tooling: createSkeleton, addSkeletonNode, getProjectModel,
  inferAnnotations RPCs + 4 MCP tools (42+ total)
- Inference-to-routing bridge: complexity→ambiguity, getter→deterministic
- TrainingDataExporter + TrainingDataGenerator scaffolding

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:50:06 -07:00
Bill
a2a9fe6f97 Step 308: All 8 generators produce language-appropriate output for 9 new AST node types (8/8 tests)
Phase 11c complete (80/80 tests). Added visitor implementations for
ClassDeclaration, InterfaceDeclaration, MethodDeclaration, GenericType,
TypeParameter, AsyncFunction, AwaitExpression, LambdaExpression, and
DecoratorAnnotation to Rust, Go, Java, JavaScript/TypeScript, and Elisp
generators. Each generator emits idiomatic syntax: Rust struct+impl/trait/async fn/.await/|closure|,
Go type struct/interface/func receiver/<-channel/func(), Java class extends/interface/CompletableFuture/(x)->/@annotation,
JS class extends/async function/await/(x)=>/class, Elisp cl-defstruct/cl-defgeneric/cl-defmethod/(lambda).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 15:08:55 +00:00
Bill
dc462e8941 Step 307: Go + C++ + Elisp parser deepening — struct/interface, class, template, lambda (12/12 tests)
Go: struct → ClassDeclaration, interface → InterfaceDeclaration, method receiver → MethodDeclaration, func literal → LambdaExpression, expression_list unwrapping
C++: class/struct → ClassDeclaration, template → TypeParameter, methods → MethodDeclaration, lambda_expression → LambdaExpression
Elisp: (lambda ...) special_form → LambdaExpression

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 05:22:56 +00:00
Bill
30e718a996 Step 306: JS/TS + Rust parser deepening — class, async, await, arrow/closure, struct, trait, impl (12/12 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 03:34:22 +00:00
Bill
91152e4cf1 Step 305: Python + Java parser deepening — class, async, lambda, decorator, generics (12/12 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 02:49:09 +00:00
Bill
d3e26d9216 Step 304: Serialization + dispatch for 9 new AST node types — Python + C++ generators (12/12 tests)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 17:11:00 +00:00
Bill
15230df621 Step 303: New AST nodes — AsyncFunction, AwaitExpression, LambdaExpression, DecoratorAnnotation (12/12 tests)
4 modern language construct nodes with full JSON roundtrip serialization.
AsyncFunction extends Function with isAsync flag, AwaitExpression wraps
awaited expressions, LambdaExpression captures variables with captureList,
DecoratorAnnotation models @decorator(args) patterns.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:57:10 +00:00
Bill
87615a7187 Steps 297-302: Phase 11b complete + Phase 11c step 302 (68/68 tests)
Phase 11b — Validation & Conflict Completion:
- Step 297: Subject 2-4 validation rules E0600-E0805 (12/12)
- Step 298: Subject 5-8 validation rules E0900-E1202 (12/12)
- Step 299: Cross-type conflict detection, 6 conflict pairs (12/12)
- Step 300: TransformEngineExtended — float folding, dead var, annotation-aware (12/12)
- Step 301: Phase 11b integration tests (8/8)

Phase 11c — Parser Deepening (start):
- Step 302: New AST nodes — ClassDeclaration, InterfaceDeclaration,
  MethodDeclaration, GenericType, TypeParameter with JSON roundtrip (12/12)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 16:53:23 +00:00
Bill
023809ef4b Sprint 20-25 architecture plans — completing the roadmap
Sprint 20: Legacy code ingestion + modernization workflows
Sprint 21: Semantic cross-language transpilation engine
Sprint 22: Assembly languages (x86/ARM) + C++ remaining gaps
Sprint 23: Architect mode — problem description to tech stack + skeleton
Sprint 24: Security annotations, OWASP detection, secure transpilation
Sprint 25: Self-hosting, end-to-end scenarios, polish, release prep

Cumulative: ~508 steps, ~5000 tests, 19+ languages, 90+ MCP tools,
80+ annotation types across 10 subjects. Post-25 training data harvest
builds on real workflow decisions accumulated across all sprints.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 05:19:22 +00:00
Bill
4f5542a47f Sprint 12-19 architecture plans + roadmap through Sprint 25
Revised Sprint 11e from training data export to workflow annotation
foundation (routing types, skeleton AST, inference-to-routing bridge).
Detailed plans for Sprints 12-19 covering workflow model, GUI overhaul,
6 new languages, orchestration engine, C++ self-hosting, Claude Code
plugin, and workflow visualization. Created ARCHITECT.md with core
thesis and design principles. Training data deferred to post-25 where
real workflow decisions provide superior signal.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 05:14:45 +00:00
Bill
43ccafbdc7 Sprint 11a: complete steps 295-296 semanno sidecar + integration tests 2026-02-13 19:42:28 +00:00
Bill
d4a3609050 Steps 290-294: Phase 11a — Semanno format, annotation codegen, visitor dispatch (60/60 tests)
Semanno comment format standard (@semanno:type(key=value)) with emitter/parser
covering all 67+ annotation types. SemannoAnnotationImpl CRTP mixin provides
default visitor implementations for all 56 extended annotation methods across
7 language generators. Virtual inheritance resolves diamond ambiguity between
ProjectionGenerator and SemannoAnnotationImpl.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 18:41:31 +00:00
Bill
8cbeef5af4 Steps 284-289: Phase 10e — environment layer, host boundary nodes, MCP env tools (200/200 tests)
Completes Sprint 10. Adds EnvironmentSpec AST node, capability validation
(E0501), annotation compatibility checks (E0502-E0505), env-aware lowering
hints, 3 host boundary AST nodes (HostCall, ScheduleTask, ModuleLoad),
and 4 MCP environment tools. 38 MCP tools total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 05:56:02 +00:00
Bill
ed8618e49f Phase 10e WIP: environment layer core + host boundary nodes
EnvironmentSpec, CapabilityRequirement, HostCall, ScheduleTask, ModuleLoad
classes created. All wired through Serialization.h, CompactAST.h,
SidecarPersistence.h, HeadlessAgentRPCHandler.h (setEnvironment,
getEnvironment, validateEnvironment, getLoweringHints RPCs).
Tests for steps 284-285 written. Steps 286-289 tests remaining.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:41:16 +00:00
Bill
090320f165 Steps 278-283: Phase 10d — shims, optimization, meta-programming & policy annotations (117/117 tests)
- Step 278: Shim/escape hatch — Intrinsic, Raw, CallingConv, Link, Shim, PointerArithmetic, Opaque (25 tests)
- Step 279: Platform/provenance — Target, Feature, Original, Mapping (19 tests)
- Step 280: Optimization completion — TailCall, Loop, Data, Align, Pack, BoundsCheck, Overflow (22 tests)
- Step 281: Meta-programming — Meta, Symbol, Evaluate, Template, Synthetic (20 tests)
- Step 282: Strategy/policy — Policy, Ambiguity, Candidate, Tradeoff, Choice, Decision (22 tests)
- Step 283: Integration tests — FFI workflow, sidecar roundtrip, RPC, taxonomy completeness (9 tests)
- 29 new annotation classes with JSON roundtrip, compact AST, sidecar persistence
- All 58 semantic annotation types recognized across 8 subjects

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:29:43 +00:00
Bill
e2d1872f35 Steps 272-277: Phase 10c — type system, concurrency & scope annotations (68/68 tests)
- Step 272: Type layout/constraints — BitWidth, Endian, Layout, Nullability, Variance (37 tests)
- Step 273: Type identity/mutability — Identity, Mut, TypeState (25 tests)
- Step 274: Concurrency primitives — Atomic, Sync, ThreadModel, MemoryBarrier (25 tests)
- Step 275: Async/error handling — Exec, Blocking, Parallel, Trap, Exception, Panic (36 tests)
- Step 276: Scope/namespace — Binding, Lookup, Capture, Visibility, Namespace, Scope (32 tests)
- Step 277: Integration tests — cross-subject workflows, sidecar roundtrip, RPC (16 tests)
- 24 new annotation classes with JSON roundtrip, compact AST, sidecar persistence
- Generic fallback in getSemanticAnnotations RPC for extensible annotation queries

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 18:15:21 +00:00
Bill
a049d6010b Steps 269-271: Phase 10b — annotation agent interface (32/32 tests)
- Step 269: RPC annotation methods (set/get/remove/unannotated) with permission enforcement (12 tests)
- Step 270: MCP prompt templates for annotation workflows (12 tests)
- Step 271: Integration tests for full agent annotation pipeline (8 tests)
- Fixed sideEffectHint heuristic to check descendants of body statements

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:18:25 +00:00
Bill
976161dc4a Steps 266-268: Phase 10a — semantic annotation core + sidecar persistence (32/32 tests)
Step 266: 5 semantic annotation AST types (Intent, Complexity, Risk,
Contract, SemanticTag) with JSON roundtrip and compact AST integration.
Step 267: Sidecar AST persistence (.whetstone/<file>.ast.json) with
save/load/list RPC methods, MCP tools, and permission enforcement.
Step 268: Phase 10a integration tests — multi-file sidecar workflow,
all 5 types in compact view, idempotent roundtrip, source isolation.

Also includes Sprint 10 plan, GUI/installer polish, and Emacs integration fixes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 16:01:56 +00:00
Bill
c36fd92045 Steps 263-265: Phase 9e — save buffer to disk, undo/redo, integration tests
Step 263: saveBuffer/saveAllBuffers RPC methods write editBuf to disk with
workspace path resolution and parent dir creation. 12/12 tests.

Step 264: State-based undo/redo via HeadlessUndoStack. Snapshots recorded
automatically before mutations; undo/redo restore AST + editBuf. 12/12 tests.

Step 265: Phase 9e integration tests — save after undo/redo, mixed undo
states across buffers, full open→mutate→diagnose→undo→redo→save. 8/8 tests.

Phase 9e complete: 32/32 tests. Sprint 9 total: 244/244 across 5 phases.
34 MCP tools.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 01:27:23 +00:00
Bill
872ef493d2 Step 262: Phase 9d multi-file project integration tests (Phase 9d complete)
End-to-end tests for the full multi-file workflow: open 3 files, switch
buffers, cross-file symbols, import graph, project diagnostics, search,
rename across files, and batch query verification. 8/8 tests passing.
Sprint 9 complete: 212/212 tests across all 4 phases (Steps 245-262).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 00:46:59 +00:00
Bill
eab979bae3 Step 261: project-wide search and refactor (searchProject, renameSymbol)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:27:47 +00:00
Bill
8a461df47e Step 260: project-wide diagnostics (getProjectDiagnostics)
Diagnostics across all open files in one call, grouped by file path.
Includes cross-file E0400 warnings for undefined imports, with optional
severity filter and file glob filter. 12/12 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:13:46 +00:00
Bill
f0417bccce Step 259: cross-file symbol resolution and import graph
getInScopeSymbols gains crossFile parameter to include exported symbols from
all open buffers. Import graph tracks file dependencies, auto-maintained on
openFile/closeFile. Text-based fallback for parsers without Import AST nodes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 20:06:46 +00:00
Bill
ac5b7e21c8 Step 258: project model and workspace indexing (Phase 9d start)
Adds multi-buffer management via openFile/closeFile/listBuffers/setActiveBuffer
RPC methods, plus indexWorkspace for scanning workspace files without opening
them. Language auto-detected from extension. 27 MCP tools total (was 22).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 19:43:53 +00:00
Bill
5830361463 Step 257: token efficiency tests + benchmarks (Phase 9c complete)
Systematic validation of all Phase 9c token-saving features: compact AST
(6-7% of full size), lean scope (4% of detailed), diagnostic deltas, budget
pagination across 3 pages, batch queries, and combined 95% savings. Benchmark
confirms sub-millisecond parse->mutate->diagnose cycles. Also adds Environment
Layer feature request to docs/annotations.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 19:34:58 +00:00
Bill
850bb8f927 Step 256: batch query endpoint for multi-query round-trips
batchQuery accepts array of sub-queries, returns all results in one
response. Errors in individual sub-queries don't affect others.
22 MCP tools total. 12/12 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:06:54 +00:00
Bill
92e2f2493a Step 255: symbol-only mode for scope queries (lean vs detailed)
getInScopeSymbols, getCallHierarchy, getDependencyGraph now default
to lean "symbols" mode returning names/IDs only. Pass detailed:true
for full node JSON. 12/12 tests pass.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 16:00:56 +00:00
Bill
ba9da3fd55 Step 254: response budget system (truncation, continuation, pagination)
Optional budget parameter on getAST and getDiagnostics. Responses exceeding
the budget are truncated with continuation tokens for paginated follow-up.
Binary search finds max array elements fitting the budget. Diagnostics sorted
by severity (errors first) before truncation.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:54:01 +00:00
Bill
d6941da793 Step 253: diagnostic pipeline integration tests (Phase 9b complete)
End-to-end tests: valid code → zero diags, annotation errors with nodeIds,
quick fix application clearing diagnostics, delta showing removals/additions,
combined parser+annotation streams, severity filtering. Phase 9b: 44/44 tests
across steps 250–253.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:48:06 +00:00
Bill
fcccaeb866 Step 252: diagnostic delta streaming (getDiagnosticsDelta, version tracking)
DiagnosticVersionTracker records snapshots and computes added/removed deltas
between versions. Agents can efficiently check if their fix resolved an error
without re-fetching all diagnostics. 21 MCP tools total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:45:31 +00:00
Bill
fbc7b6bce2 Step 251: quick-fix actions as RPC mutations (getQuickFixes, applyQuickFix)
Concrete mutation objects for each diagnostic fix. getQuickFixes returns
reviewable fixes with categories; applyQuickFix applies the fix and reports
whether the diagnostic cleared. Heuristic fixes for missing return and
unused variables. 20 MCP tools total.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 15:41:56 +00:00