Add hq- prefix agent bead ID helpers
Add new helper functions for town-level agent bead IDs: - MayorBeadIDTown() → "hq-mayor" - DeaconBeadIDTown() → "hq-deacon" - DogBeadIDTown(name) → "hq-dog-<name>" - RoleBeadIDTown(role) → "hq-<role>-role" These use the hq- prefix for town-level beads storage, distinct from the gt- prefix used for rig-level beads. Mark MayorBeadID() and DeaconBeadID() as deprecated in favor of the new *Town() variants. (gt-y24km) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
52
internal/beads/agent_ids.go
Normal file
52
internal/beads/agent_ids.go
Normal file
@@ -0,0 +1,52 @@
|
||||
// Package beads provides a wrapper for the bd (beads) CLI.
|
||||
package beads
|
||||
|
||||
import "fmt"
|
||||
|
||||
// Town-level agent bead IDs use the "hq-" prefix and are stored in town beads.
|
||||
// These are global agents that operate at the town level (mayor, deacon, dogs).
|
||||
//
|
||||
// The naming convention is:
|
||||
// - hq-<role> for singletons (mayor, deacon)
|
||||
// - hq-dog-<name> for named agents (dogs)
|
||||
// - hq-<role>-role for role definition beads
|
||||
|
||||
// MayorBeadIDTown returns the Mayor agent bead ID for town-level beads.
|
||||
// This uses the "hq-" prefix for town-level storage.
|
||||
func MayorBeadIDTown() string {
|
||||
return "hq-mayor"
|
||||
}
|
||||
|
||||
// DeaconBeadIDTown returns the Deacon agent bead ID for town-level beads.
|
||||
// This uses the "hq-" prefix for town-level storage.
|
||||
func DeaconBeadIDTown() string {
|
||||
return "hq-deacon"
|
||||
}
|
||||
|
||||
// DogBeadIDTown returns a Dog agent bead ID for town-level beads.
|
||||
// Dogs are town-level agents, so they follow the pattern: hq-dog-<name>
|
||||
func DogBeadIDTown(name string) string {
|
||||
return fmt.Sprintf("hq-dog-%s", name)
|
||||
}
|
||||
|
||||
// RoleBeadIDTown returns the role bead ID for town-level storage.
|
||||
// Role beads define lifecycle configuration for each agent type.
|
||||
// Uses "hq-" prefix for town-level storage: hq-<role>-role
|
||||
func RoleBeadIDTown(role string) string {
|
||||
return fmt.Sprintf("hq-%s-role", role)
|
||||
}
|
||||
|
||||
// MayorRoleBeadIDTown returns the Mayor role bead ID for town-level storage.
|
||||
func MayorRoleBeadIDTown() string {
|
||||
return RoleBeadIDTown("mayor")
|
||||
}
|
||||
|
||||
// DeaconRoleBeadIDTown returns the Deacon role bead ID for town-level storage.
|
||||
func DeaconRoleBeadIDTown() string {
|
||||
return RoleBeadIDTown("deacon")
|
||||
}
|
||||
|
||||
// DogRoleBeadIDTown returns the Dog role bead ID for town-level storage.
|
||||
func DogRoleBeadIDTown() string {
|
||||
return RoleBeadIDTown("dog")
|
||||
}
|
||||
Reference in New Issue
Block a user