Module: TrakFlow

Defined in:
lib/trak_flow.rb,
lib/trak_flow/cli.rb,
lib/trak_flow/config.rb,
lib/trak_flow/version.rb,
lib/trak_flow/mcp/server.rb,
lib/trak_flow/models/task.rb,
lib/trak_flow/time_parser.rb,
lib/trak_flow/id_generator.rb,
lib/trak_flow/models/label.rb,
lib/trak_flow/storage/jsonl.rb,
lib/trak_flow/config/section.rb,
lib/trak_flow/models/comment.rb,
lib/trak_flow/cli/dep_commands.rb,
lib/trak_flow/storage/database.rb,
lib/trak_flow/cli/main_commands.rb,
lib/trak_flow/cli/plan_commands.rb,
lib/trak_flow/mcp/tools/dep_add.rb,
lib/trak_flow/models/dependency.rb,
lib/trak_flow/cli/admin_commands.rb,
lib/trak_flow/cli/label_commands.rb,
lib/trak_flow/mcp/tools/plan_run.rb,
lib/trak_flow/cli/config_commands.rb,
lib/trak_flow/mcp/tools/base_tool.rb,
lib/trak_flow/mcp/tools/label_add.rb,
lib/trak_flow/mcp/tools/dep_remove.rb,
lib/trak_flow/mcp/tools/plan_start.rb,
lib/trak_flow/mcp/tools/task_block.rb,
lib/trak_flow/mcp/tools/task_close.rb,
lib/trak_flow/mcp/tools/task_defer.rb,
lib/trak_flow/mcp/tools/task_start.rb,
lib/trak_flow/cli/workflow_commands.rb,
lib/trak_flow/mcp/tools/comment_add.rb,
lib/trak_flow/mcp/tools/plan_create.rb,
lib/trak_flow/mcp/tools/task_create.rb,
lib/trak_flow/mcp/tools/task_update.rb,
lib/trak_flow/graph/dependency_graph.rb,
lib/trak_flow/mcp/tools/label_remove.rb,
lib/trak_flow/mcp/resources/plan_list.rb,
lib/trak_flow/mcp/resources/task_list.rb,
lib/trak_flow/mcp/resources/task_next.rb,
lib/trak_flow/mcp/tools/plan_add_step.rb,
lib/trak_flow/mcp/resources/label_list.rb,
lib/trak_flow/mcp/resources/plan_by_id.rb,
lib/trak_flow/mcp/resources/task_by_id.rb,
lib/trak_flow/mcp/tools/workflow_discard.rb,
lib/trak_flow/mcp/resources/base_resource.rb,
lib/trak_flow/mcp/resources/workflow_list.rb,
lib/trak_flow/mcp/resources/workflow_by_id.rb,
lib/trak_flow/mcp/tools/workflow_summarize.rb,
lib/trak_flow/mcp/resources/dependency_graph.rb

Defined Under Namespace

Modules: Graph, Mcp, Models, Storage, TimeParser Classes: CLI, Config, ConfigSection, ConfigurationError, DependencyCycleError, Error, IdGenerator, NotInitializedError, TaskNotFoundError, ValidationError

Constant Summary collapse

TRAK_FLOW_DIR =
".trak_flow"
DATABASE_FILE =
"trak_flow.db"
JSONL_FILE =

Default, can be overridden via config.storage.jsonl_file

"tasks.jsonl"
CONFIG_FILE =
"config.yml"
STATUSES =
%w[open in_progress blocked deferred closed tombstone pinned].freeze
PRIORITIES =
(0..4).to_a.freeze
TYPES =
%w[bug feature task epic chore].freeze
DEPENDENCY_TYPES =
%w[blocks related parent-child discovered-from].freeze
VERSION =
'0.2.0'

Class Method Summary collapse

Class Method Details

.configObject



249
250
251
# File 'lib/trak_flow/config.rb', line 249

def config
  @config ||= Config.new
end

.config_pathObject



55
56
57
# File 'lib/trak_flow.rb', line 55

def config_path
  File.join(trak_flow_dir, CONFIG_FILE)
end

.configure {|config| ... } ⇒ Object

Yields:



253
254
255
256
# File 'lib/trak_flow/config.rb', line 253

def configure
  yield(config) if block_given?
  config
end

.database_pathObject



45
46
47
48
# File 'lib/trak_flow.rb', line 45

def database_path
  path = config.database.path
  File.expand_path(path)
end

.ensure_initialized!Object



63
64
65
# File 'lib/trak_flow.rb', line 63

def ensure_initialized!
  raise NotInitializedError, "TrakFlow not initialized. Run 'tf init' first." unless initialized?
end

.initialized?Boolean

Returns:

  • (Boolean)


59
60
61
# File 'lib/trak_flow.rb', line 59

def initialized?
  File.directory?(trak_flow_dir) && File.exist?(database_path)
end

.jsonl_pathObject



50
51
52
53
# File 'lib/trak_flow.rb', line 50

def jsonl_path
  jsonl_file = config.storage.jsonl_file rescue JSONL_FILE
  File.join(trak_flow_dir, jsonl_file)
end

.reset_config!Object



258
259
260
# File 'lib/trak_flow/config.rb', line 258

def reset_config!
  @config = nil
end

.reset_root!Object



67
68
69
# File 'lib/trak_flow.rb', line 67

def reset_root!
  @root = nil
end

.rootObject



37
38
39
# File 'lib/trak_flow.rb', line 37

def root
  @root ||= find_root
end

.trak_flow_dirObject



41
42
43
# File 'lib/trak_flow.rb', line 41

def trak_flow_dir
  File.join(root, TRAK_FLOW_DIR)
end