"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getNodeDoc = void 0;
exports.getNodeDoc = {
    name: 'get_node',
    category: 'configuration',
    essentials: {
        description: 'Unified node information tool with progressive detail levels and multiple modes. Get node schema, docs, search properties, or version info.',
        keyParameters: ['nodeType', 'detail', 'mode', 'includeTypeInfo', 'includeExamples'],
        example: 'get_node({nodeType: "nodes-base.httpRequest", detail: "standard"})',
        performance: 'Instant (<10ms) for minimal/standard, moderate for full',
        tips: [
            'Use detail="standard" (default) for most tasks - shows required fields',
            'Use mode="docs" for readable markdown documentation',
            'Use mode="search_properties" with propertyQuery to find specific fields',
            'Use mode="versions" to check version history and breaking changes',
            'Add includeExamples=true to get real-world configuration examples'
        ]
    },
    full: {
        description: `**Detail Levels (mode="info", default):**
- minimal (~200 tokens): Basic metadata only - nodeType, displayName, description, category
- standard (~1-2K tokens): Essential properties + operations - recommended for most tasks
- full (~3-8K tokens): Complete node schema - use only when standard insufficient

**Operation Modes:**
- info (default): Node schema with configurable detail level
- docs: Readable markdown documentation with examples and patterns
- search_properties: Find specific properties within a node
- versions: List all available versions with breaking changes summary
- compare: Compare two versions with property-level changes
- breaking: Show only breaking changes between versions
- migrations: Show auto-migratable changes between versions`,
        parameters: {
            nodeType: { type: 'string', required: true, description: 'Full node type with prefix: "nodes-base.httpRequest" or "nodes-langchain.agent"' },
            detail: { type: 'string', required: false, description: 'Detail level for mode=info: "minimal", "standard" (default), "full"' },
            mode: { type: 'string', required: false, description: 'Operation mode: "info" (default), "docs", "search_properties", "versions", "compare", "breaking", "migrations"' },
            includeTypeInfo: { type: 'boolean', required: false, description: 'Include type structure metadata (validation rules, JS types). Adds ~80-120 tokens per property' },
            includeExamples: { type: 'boolean', required: false, description: 'Include real-world configuration examples from templates. Adds ~200-400 tokens per example' },
            propertyQuery: { type: 'string', required: false, description: 'For mode=search_properties: search term to find properties (e.g., "auth", "header", "body")' },
            maxPropertyResults: { type: 'number', required: false, description: 'For mode=search_properties: max results (default 20)' },
            fromVersion: { type: 'string', required: false, description: 'For compare/breaking/migrations modes: source version (e.g., "1.0")' },
            toVersion: { type: 'string', required: false, description: 'For compare mode: target version (e.g., "2.0"). Defaults to latest' }
        },
        returns: `Depends on mode:
- info: Node schema with properties based on detail level
- docs: Markdown documentation string
- search_properties: Array of matching property paths with descriptions
- versions: Version history with breaking changes flags
- compare/breaking/migrations: Version comparison details`,
        examples: [
            '// Standard detail (recommended for AI agents)\nget_node({nodeType: "nodes-base.httpRequest"})',
            '// Minimal for quick metadata check\nget_node({nodeType: "nodes-base.slack", detail: "minimal"})',
            '// Full detail with examples\nget_node({nodeType: "nodes-base.googleSheets", detail: "full", includeExamples: true})',
            '// Get readable documentation\nget_node({nodeType: "nodes-base.webhook", mode: "docs"})',
            '// Search for authentication properties\nget_node({nodeType: "nodes-base.httpRequest", mode: "search_properties", propertyQuery: "auth"})',
            '// Check version history\nget_node({nodeType: "nodes-base.executeWorkflow", mode: "versions"})',
            '// Compare specific versions\nget_node({nodeType: "nodes-base.httpRequest", mode: "compare", fromVersion: "3.0", toVersion: "4.1"})'
        ],
        useCases: [
            'Configure nodes for workflow building (use detail=standard)',
            'Find specific configuration options (use mode=search_properties)',
            'Get human-readable node documentation (use mode=docs)',
            'Check for breaking changes before version upgrades (use mode=breaking)',
            'Understand complex types with includeTypeInfo=true'
        ],
        performance: `Token costs by detail level:
- minimal: ~200 tokens
- standard: ~1000-2000 tokens (default)
- full: ~3000-8000 tokens
- includeTypeInfo: +80-120 tokens per property
- includeExamples: +200-400 tokens per example
- Version modes: ~400-1200 tokens`,
        bestPractices: [
            'Start with detail="standard" - it covers 95% of use cases',
            'Only use detail="full" if standard is missing required properties',
            'Use mode="docs" when explaining nodes to users',
            'Combine includeTypeInfo=true for complex nodes (filter, resourceMapper)',
            'Check version history before configuring versioned nodes'
        ],
        pitfalls: [
            'detail="full" returns large responses (~100KB) - use sparingly',
            'Node type must include prefix (nodes-base. or nodes-langchain.)',
            'includeExamples only works with mode=info and detail=standard',
            'Version modes require nodes with multiple versions in database'
        ],
        relatedTools: ['search_nodes', 'validate_node', 'validate_workflow']
    }
};
//# sourceMappingURL=get-node.js.map