@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix cli: <urn:unrdf:cli:> .

# AUTO-GENERATED from CLI source code via packages/daemon/src/mcp/generate.mjs
# DO NOT edit this file manually. To update, run: node packages/daemon/src/mcp/generate.mjs

# =============================================================================
# VOCABULARY — Classes and Properties
# =============================================================================

cli:Command a rdfs:Class ;
  rdfs:label "CLI Command" ;
  rdfs:comment "Represents a unrdf CLI command to be exposed as an MCP tool" .

cli:Argument a rdfs:Class ;
  rdfs:label "Command Argument" ;
  rdfs:comment "Represents a command-line argument or option" .

cli:toolName a rdf:Property ;
  rdfs:domain cli:Command ;
  rdfs:range xsd:string ;
  rdfs:comment "MCP tool name (snake_case)" .

cli:description a rdf:Property ;
  rdfs:domain cli:Command ;
  rdfs:range xsd:string ;
  rdfs:comment "Human-readable description" .

cli:cliPath a rdf:Property ;
  rdfs:domain cli:Command ;
  rdfs:range xsd:string ;
  rdfs:comment "Full CLI invocation path (e.g., 'graph create')" .

cli:hasArgument a rdf:Property ;
  rdfs:domain cli:Command ;
  rdfs:range cli:Argument ;
  rdfs:comment "Links Command to its Arguments" .

cli:argName a rdf:Property ;
  rdfs:domain cli:Argument ;
  rdfs:range xsd:string ;
  rdfs:comment "Argument name" .

cli:argType a rdf:Property ;
  rdfs:domain cli:Argument ;
  rdfs:range xsd:string ;
  rdfs:comment "Argument type: string, boolean, number" .

cli:required a rdf:Property ;
  rdfs:domain cli:Argument ;
  rdfs:range xsd:boolean ;
  rdfs:comment "Whether argument is required" .

cli:argDescription a rdf:Property ;
  rdfs:domain cli:Argument ;
  rdfs:range xsd:string ;
  rdfs:comment "Argument description" .

cli:defaultValue a rdf:Property ;
  rdfs:domain cli:Argument ;
  rdfs:range xsd:string ;
  rdfs:comment "Default value if not provided" .

# =============================================================================
# INSTANCES — AUTO-DISCOVERED CLI COMMANDS
# =============================================================================

{% for cmd in commands %}
cli:{{ cmd.toolName }} a cli:Command ;
  cli:toolName "{{ cmd.toolName }}" ;
  cli:description "{{ cmd.description }}" ;
  cli:cliPath "{{ cmd.cliPath }}"{% if cmd.args %}{% for arg in cmd.args %} ;
  cli:hasArgument [ a cli:Argument ; cli:argName "{{ arg.argName }}" ; cli:argType "{{ arg.argType }}" ; cli:required {{ arg.required|string|lower }} ; cli:argDescription "{{ arg.argDescription }}"{% if arg.defaultValue %} ; cli:defaultValue "{{ arg.defaultValue }}"{% endif %} ]{% endfor %}{% endif %} .

{% endfor %}
