Class: Aircana::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/aircana/configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



13
14
15
16
17
18
19
20
# File 'lib/aircana/configuration.rb', line 13

def initialize
  setup_directory_paths
  setup_plugin_paths
  setup_claude_code_paths
  setup_stream
  setup_confluence_config
  setup_llm_config
end

Instance Attribute Details

#agents_dirObject

Returns the value of attribute agents_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def agents_dir
  @agents_dir
end

#bedrock_modelObject

Returns the value of attribute bedrock_model.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def bedrock_model
  @bedrock_model
end

#bedrock_regionObject

Returns the value of attribute bedrock_region.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def bedrock_region
  @bedrock_region
end

#claude_code_config_pathObject

Returns the value of attribute claude_code_config_path.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def claude_code_config_path
  @claude_code_config_path
end

#claude_code_project_config_pathObject

Returns the value of attribute claude_code_project_config_path.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def claude_code_project_config_path
  @claude_code_project_config_path
end

#commands_dirObject

Returns the value of attribute commands_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def commands_dir
  @commands_dir
end

#confluence_api_tokenObject

Returns the value of attribute confluence_api_token.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def confluence_api_token
  @confluence_api_token
end

#confluence_base_urlObject

Returns the value of attribute confluence_base_url.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def confluence_base_url
  @confluence_base_url
end

#confluence_usernameObject

Returns the value of attribute confluence_username.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def confluence_username
  @confluence_username
end

#global_dirObject

Returns the value of attribute global_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def global_dir
  @global_dir
end

#hooks_dirObject

Returns the value of attribute hooks_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def hooks_dir
  @hooks_dir
end

#kb_knowledge_dirObject

Returns the value of attribute kb_knowledge_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def kb_knowledge_dir
  @kb_knowledge_dir
end

#llm_providerObject

Returns the value of attribute llm_provider.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def llm_provider
  @llm_provider
end

#output_dirObject

Returns the value of attribute output_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def output_dir
  @output_dir
end

#plugin_manifest_dirObject

Returns the value of attribute plugin_manifest_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def plugin_manifest_dir
  @plugin_manifest_dir
end

#plugin_rootObject

Returns the value of attribute plugin_root.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def plugin_root
  @plugin_root
end

#project_dirObject

Returns the value of attribute project_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def project_dir
  @project_dir
end

#scripts_dirObject

Returns the value of attribute scripts_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def scripts_dir
  @scripts_dir
end

#skills_dirObject

Returns the value of attribute skills_dir.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def skills_dir
  @skills_dir
end

#streamObject

Returns the value of attribute stream.



7
8
9
# File 'lib/aircana/configuration.rb', line 7

def stream
  @stream
end

Instance Method Details

#hooks_manifest_pathObject

Returns the path to the hooks manifest file



33
34
35
# File 'lib/aircana/configuration.rb', line 33

def hooks_manifest_path
  File.join(@hooks_dir, "hooks.json")
end

#kb_knowledge_path(kb_name) ⇒ Object

Returns the knowledge directory for a specific KB (same as kb_path for now) Kept for API compatibility during refactoring



62
63
64
# File 'lib/aircana/configuration.rb', line 62

def kb_knowledge_path(kb_name)
  kb_path(kb_name)
end

#kb_path(kb_name) ⇒ Object

Returns the knowledge directory path for a KB Format: .claude/skills// All knowledge files stored directly in the skill directory



56
57
58
# File 'lib/aircana/configuration.rb', line 56

def kb_path(kb_name)
  File.join(@skills_dir, kb_name)
end

#plugin_manifest_pathObject

Returns the path to the plugin manifest file



28
29
30
# File 'lib/aircana/configuration.rb', line 28

def plugin_manifest_path
  File.join(@plugin_manifest_dir, "plugin.json")
end

#plugin_mode?Boolean

Returns true if the current directory is a plugin (has .claude-plugin/plugin.json)

Returns:

  • (Boolean)


23
24
25
# File 'lib/aircana/configuration.rb', line 23

def plugin_mode?
  File.exist?(File.join(@plugin_root, ".claude-plugin", "plugin.json"))
end

#plugin_nameObject

Returns the plugin name from plugin.json, or falls back to directory name



38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/aircana/configuration.rb', line 38

def plugin_name
  return @plugin_name if defined?(@plugin_name)

  @plugin_name = if plugin_mode?
                   manifest = JSON.parse(File.read(plugin_manifest_path))
                   manifest["name"]
                 else
                   # Fallback to directory name if not in plugin mode
                   File.basename(@plugin_root).downcase.gsub(/[^a-z0-9]+/, "-")
                 end
rescue StandardError
  # If anything fails, use directory name as fallback
  File.basename(@plugin_root).downcase.gsub(/[^a-z0-9]+/, "-")
end