Add type=agent and type=role to bead schema (gt-ikyo1, gt-gzp2y)
- Add TypeAgent and TypeRole to IssueType enum in types.go - Update IsValid() to include new types - Add UI styles with distinct colors (cyan for agent, green for role) - Add RenderType cases for consistent display This enables creating agent beads (identity) and role beads (behavior definitions) as part of the agent-as-bead architecture. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -340,12 +340,14 @@ const (
|
|||||||
TypeMergeRequest IssueType = "merge-request" // Merge queue entry for refinery processing
|
TypeMergeRequest IssueType = "merge-request" // Merge queue entry for refinery processing
|
||||||
TypeMolecule IssueType = "molecule" // Template molecule for issue hierarchies (beads-1ra)
|
TypeMolecule IssueType = "molecule" // Template molecule for issue hierarchies (beads-1ra)
|
||||||
TypeGate IssueType = "gate" // Async coordination gate (bd-udsi)
|
TypeGate IssueType = "gate" // Async coordination gate (bd-udsi)
|
||||||
|
TypeAgent IssueType = "agent" // Agent identity bead (gt-ikyo1)
|
||||||
|
TypeRole IssueType = "role" // Agent role definition (gt-gzp2y)
|
||||||
)
|
)
|
||||||
|
|
||||||
// IsValid checks if the issue type value is valid
|
// IsValid checks if the issue type value is valid
|
||||||
func (t IssueType) IsValid() bool {
|
func (t IssueType) IsValid() bool {
|
||||||
switch t {
|
switch t {
|
||||||
case TypeBug, TypeFeature, TypeTask, TypeEpic, TypeChore, TypeMessage, TypeMergeRequest, TypeMolecule, TypeGate:
|
case TypeBug, TypeFeature, TypeTask, TypeEpic, TypeChore, TypeMessage, TypeMergeRequest, TypeMolecule, TypeGate, TypeAgent, TypeRole:
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -105,6 +105,14 @@ var (
|
|||||||
Light: "", // standard text color
|
Light: "", // standard text color
|
||||||
Dark: "",
|
Dark: "",
|
||||||
}
|
}
|
||||||
|
ColorTypeAgent = lipgloss.AdaptiveColor{
|
||||||
|
Light: "#59c2ff", // cyan - agent identity
|
||||||
|
Dark: "#59c2ff",
|
||||||
|
}
|
||||||
|
ColorTypeRole = lipgloss.AdaptiveColor{
|
||||||
|
Light: "#7fd962", // green - role definition
|
||||||
|
Dark: "#7fd962",
|
||||||
|
}
|
||||||
|
|
||||||
// === Issue ID Color ===
|
// === Issue ID Color ===
|
||||||
// IDs use standard text color - subtle, not attention-grabbing
|
// IDs use standard text color - subtle, not attention-grabbing
|
||||||
@@ -151,6 +159,8 @@ var (
|
|||||||
TypeTaskStyle = lipgloss.NewStyle().Foreground(ColorTypeTask)
|
TypeTaskStyle = lipgloss.NewStyle().Foreground(ColorTypeTask)
|
||||||
TypeEpicStyle = lipgloss.NewStyle().Foreground(ColorTypeEpic)
|
TypeEpicStyle = lipgloss.NewStyle().Foreground(ColorTypeEpic)
|
||||||
TypeChoreStyle = lipgloss.NewStyle().Foreground(ColorTypeChore)
|
TypeChoreStyle = lipgloss.NewStyle().Foreground(ColorTypeChore)
|
||||||
|
TypeAgentStyle = lipgloss.NewStyle().Foreground(ColorTypeAgent)
|
||||||
|
TypeRoleStyle = lipgloss.NewStyle().Foreground(ColorTypeRole)
|
||||||
)
|
)
|
||||||
|
|
||||||
// CategoryStyle for section headers - bold with accent color
|
// CategoryStyle for section headers - bold with accent color
|
||||||
@@ -296,6 +306,10 @@ func RenderType(issueType string) string {
|
|||||||
return TypeEpicStyle.Render(issueType)
|
return TypeEpicStyle.Render(issueType)
|
||||||
case "chore":
|
case "chore":
|
||||||
return TypeChoreStyle.Render(issueType)
|
return TypeChoreStyle.Render(issueType)
|
||||||
|
case "agent":
|
||||||
|
return TypeAgentStyle.Render(issueType)
|
||||||
|
case "role":
|
||||||
|
return TypeRoleStyle.Render(issueType)
|
||||||
default:
|
default:
|
||||||
return issueType
|
return issueType
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user