bankai/cli/parser
CLI argument parsing helpers and response envelopes.
Types
pub type CreateArgs {
CreateArgs(
title: String,
description: String,
labels: List(String),
priority: option.Option(String),
parent: option.Option(String),
kind: option.Option(String),
)
}
Constructors
-
CreateArgs( title: String, description: String, labels: List(String), priority: option.Option(String), parent: option.Option(String), kind: option.Option(String), )
pub type UpdateArgs {
UpdateArgs(
id: String,
status: option.Option(String),
claim: option.Option(String),
force: Bool,
ttl: option.Option(String),
heartbeat: Bool,
labels: List(String),
remove_labels: List(String),
priority: option.Option(String),
fence: option.Option(String),
release: Bool,
reopen: Bool,
undefer: Bool,
defer_until: option.Option(String),
satisfy_gate: Bool,
close: option.Option(String),
)
}
Constructors
-
UpdateArgs( id: String, status: option.Option(String), claim: option.Option(String), force: Bool, ttl: option.Option(String), heartbeat: Bool, labels: List(String), remove_labels: List(String), priority: option.Option(String), fence: option.Option(String), release: Bool, reopen: Bool, undefer: Bool, defer_until: option.Option(String), satisfy_gate: Bool, close: option.Option(String), )
Values
pub fn parse_create_args(
args: List(String),
) -> Result(CreateArgs, String)
create <title> [flags] or create --title <title> [flags].
Whitelisted flags: –description –label –priority –parent –kind
–due –satisfied –expires-at –ttl –actor –reason (gate/wisp).
pub fn parse_days(args: List(String)) -> Int
pub fn parse_description(args: List(String)) -> String
–description D: the single argv token after the flag (“” when absent).
pub fn parse_export_format(args: List(String)) -> String
pub fn parse_from(args: List(String)) -> option.Option(String)
pub fn parse_kind(args: List(String)) -> types.TaskKind
pub fn parse_label_filter(
args: List(String),
) -> option.Option(String)
pub fn parse_labels(args: List(String)) -> List(String)
pub fn parse_parent(args: List(String)) -> option.Option(String)
pub fn parse_port(args: List(String), default: Int) -> Int
pub fn parse_priority(args: List(String)) -> Int
pub fn parse_relation_type(
args: List(String),
) -> types.RelationType
pub fn parse_threshold(
args: List(String),
default: Float,
) -> Float
pub fn parse_update_args(
args: List(String),
) -> Result(UpdateArgs, String)
update <id> [status] [--claim [a]] [--label l]... [--priority n] ...
Every recognized flag composes in one call; anything else errors loudly.
pub fn validate_priority(priority: Int) -> Result(Int, String)
Validation bounds shared by every create/update path (daemon + embedded). Beads priorities run 0..4; bankai accepts 0..5 so existing 1-5 usage keeps working, but anything outside that is rejected loudly instead of silently skewing the ready sort (round-3 audit: priority 99 / -1 landed in store).
pub fn validate_title(title: String) -> Result(String, String)
Titles are identity in listings and search; an empty title is a garbage
ledger entry (round-3 audit: bankai create "" succeeded).