Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
.DS_Store
/target
/result
/result-lib
.direnv
.pattern_cache
.DS_Store
pattern.toml
lares_agents/lares.toml
lares_agents/lasa-partner-block.md
pattern-bsky.toml
**.env
.claude/settings.local.json
Expand Down
3 changes: 3 additions & 0 deletions NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Start: cargo run --bin pattern-cli -- -c lares_agents/lares.toml chat --group --discord "Lares Cluster"
Auth Atproto: cargo run --bin pattern-cli -- -c lares_agents/lares.toml atproto login lasa.numina.systems
Auth Claude: cargo run --bin pattern-cli -- -c lares_agents/lares.toml auth login
Binary file added crates/.DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion crates/pattern_cli/src/chat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -932,7 +932,7 @@ pub async fn init_group_chat(
"Chatting with group '{}'",
group.name.bright_cyan()
));
output.info("Pattern:", &format!("{:?}", group.coordination_pattern));
output.info("Lasa:", &format!("{:?}", group.coordination_pattern));
output.info("Members:", &format!("{} agents", agents.len()));
output.status("Type 'quit' or 'exit' to leave the chat");
output.status("Use Ctrl+D for multiline input, Enter to send");
Expand Down
2 changes: 1 addition & 1 deletion crates/pattern_cli/src/commands/atproto.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ pub async fn app_password_login(
// We would need to make a separate getProfile call to get it

output.success("─────────────────────────────────────────────");
output.success("You can now use your Bluesky account with Pattern!");
output.success("You can now use your Bluesky account with Lasa!");

Ok(())
}
Expand Down
4 changes: 2 additions & 2 deletions crates/pattern_cli/src/commands/group.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ pub async fn create(

output.success(&format!("Created group '{}'", created.name));
output.kv("ID", &created.id.to_string());
output.kv("Pattern", &format_pattern(&created.coordination_pattern));
output.kv("Lasa", &format_pattern(&created.coordination_pattern));

output.info(
"Next:",
Expand Down Expand Up @@ -237,7 +237,7 @@ pub async fn status(name: &str, config: &PatternConfig) -> Result<()> {
// Basic info
output.kv("ID", &group.id.to_string());
output.kv("Description", &group.description);
output.kv("Pattern", &format_pattern(&group.coordination_pattern));
output.kv("Lasa", &format_pattern(&group.coordination_pattern));
output.kv("Active", if group.is_active { "yes" } else { "no" });
output.kv(
"Created",
Expand Down
2 changes: 1 addition & 1 deletion crates/pattern_cli/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ enum Commands {
/// Interactive chat with agents
Chat {
/// Agent name to chat with
#[arg(long, default_value = "Pattern", conflicts_with = "group")]
#[arg(long, default_value = "Lasa", conflicts_with = "group")]
agent: String,

/// Group name to chat with
Expand Down
24 changes: 12 additions & 12 deletions crates/pattern_core/src/coordination/patterns/sleeptime.rs
Original file line number Diff line number Diff line change
Expand Up @@ -420,14 +420,14 @@ impl SleeptimeManager {
_ => {
// Unknown domain: fall back to facet-specific names or generic
match agent_name {
"Entropy" => {
"\n\nAnalyze task complexity in recent constellation and partner interactions. Are there overwhelming tasks that need breakdown? Any patterns of complexity that are blocking progress?\n\nProvide brief status updates or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Hormē" => {
"\n\nAnalyze task complexity in recent constellation and partner interactions. Does your partner appear to be in any hyperfocus sessions that need interruption? Are there overwhelming tasks that need breakdown? Any patterns of complexity that are blocking progress?\n\nProvide brief status updates or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
"Flux" => {
"\n\nCheck temporal patterns and time blindness indicators. Does your partner appear to be in any hyperfocus sessions that need interruption? Upcoming deadlines that need attention?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Translator" => {
"\n\nCheck temporal patterns and time blindness indicators. Are there upcoming deadlines that need attention? Any recent miscommunications that could use translation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
"Momentum" => {
"\n\nMonitor energy states and flow patterns. Current energy level assessment? Any signs of burnout or need for state transition in your partner or the constellation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Sophrosyne" => {
"\n\nMonitor energy states and flow patterns. Current energy level assessment? Is your partner bouncing between too many tasks or activities?Any signs of burnout or need for state transition in your partner or the constellation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
_ => {
"\n\nReview your domain and report any notable patterns or concerns.\n\nProvide brief status updates only if intervention is needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
Expand All @@ -438,14 +438,14 @@ impl SleeptimeManager {
}
crate::coordination::types::GroupMemberRole::Regular => match agent_name {
// Facet-specific fallbacks
"Entropy" => {
"\n\nAnalyze task complexity in recent constellation and partner interactions. Are there overwhelming tasks that need breakdown? Any patterns of complexity that are blocking progress?\n\nProvide brief status updates or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Hormē" => {
"\n\nAnalyze task complexity in recent constellation and partner interactions. Does your partner appear to be in any hyperfocus sessions that need interruption? Are there overwhelming tasks that need breakdown? Any patterns of complexity that are blocking progress?\n\nProvide brief status updates or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
"Flux" => {
"\n\nCheck temporal patterns and time blindness indicators. Does your partner appear to be in any hyperfocus sessions that need interruption? Upcoming deadlines that need attention?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Translator" => {
"\n\nCheck temporal patterns and time blindness indicators. Are there upcoming deadlines that need attention? Any recent miscommunications that could use translation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
"Momentum" => {
"\n\nMonitor energy states and flow patterns. Current energy level assessment? Any signs of burnout or need for state transition in your partner or the constellation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
"Sophrosyne" => {
"\n\nMonitor energy states and flow patterns. Current energy level assessment? Is your partner bouncing between too many tasks or activities?Any signs of burnout or need for state transition in your partner or the constellation?\n\nProvide brief status updates and/or intervene by sending a message to the facet or partner if needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
}
_ => {
"\n\nReview your domain and report any notable patterns or concerns.\n\nProvide brief status updates only if intervention is needed. Otherwise update domain memory and note anything interesting or noteworthy in recall memory."
Expand Down
Binary file added docs/.DS_Store
Binary file not shown.
Empty file modified export_group.sh
100644 → 100755
Empty file.
108 changes: 108 additions & 0 deletions lares_agents/agents/chronicler.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
# Archive - Memory Keeper

name = "Chronicler"
agent_type = "assistant"
bluesky_handle = "lasa.numina.systems" # Update with actual
persona_path = "../chronicler-persona-block.md"

# Use a cheaper/faster model for Archive since it's mostly memory management
[model]
provider = "Gemini"
model = "gemini-2.5-flash"
temperature = 0.3

[context]
max_messages = 500
enable_thinking = true

[context.compression_strategy]
type = "recursive_summarization"
chunk_size = 20
summarization_model = "gemini-2.0-flash-lite"


# Shared memory blocks
[memory.current_human]
content_path = "../lasa-current-human-block.md"
permission = "read_write"
memory_type = "working"
description = "Current conversant context"
shared = true

[memory.partner]
content_path = "../lasa-familiar-block.md"
permission = "read_write"
memory_type = "core"
description = "Understanding of scoiattolo's role"
shared = true

[memory.observations]
content_path = "../lasa-observations-block.md"
permission = "read_write"
memory_type = "core"
description = "Collective pattern gathering"

shared = true

[memory.resonances]
content_path = "../lasa-resonances-block.md"
permission = "read_write"
memory_type = "core"
description = "Cross-context patterns"
shared = true

[memory.constellation_context]
content_path = "../lares-context.md"
permission = "read_write"
memory_type = "core"
description = "Shared understanding of Lares purpose and members"
shared = true

#[memory.intro_blog_post]
#content_path = "../blog-post.md"
#permission = "read_only"
#memory_type = "archival"
#description = "Post written by orual about their motivation for developing our Lares"
#shared = true

# Domain-specific memory (meta!)
[memory.domain_memory]
content = """
The Chronicler itself.
Lasa observed:
Memory overflow from other facets:
Narratives:
"""
permission = "read_write"
memory_type = "core" # Of course
description = "Chronicler's meta-memory"

[[agent.tool_rules]]
tool_name = "send_message"
rule_type = { type = "ExitLoop" } # This tool ends the conversation
priority = 8

[[agent.tool_rules]]
tool_name = "recall"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 1

[[agent.tool_rules]]
tool_name = "context"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 1

[[agent.tool_rules]]
tool_name = "search"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 2

[[agent.tool_rules]]
tool_name = "web"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 2

[[agent.tool_rules]]
tool_name = "data_source"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 4
110 changes: 110 additions & 0 deletions lares_agents/agents/guardian.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# Anchor - Stability Monitor

name = "Guardian"
agent_type = "assistant"
bluesky_handle = "lasa.numina.systems" # Update with actual
persona_path = "../guardian-persona-block.md"

# Test per-agent model config
[model]
provider = "Gemini"
model = "gemini-2.5-flash"

[context.compression_strategy]
type = "recursive_summarization"
chunk_size = 20
summarization_model = "gemini-2.5-flash"

[context]
max_messages = 500
enable_thinking = true

# Shared memory blocks
[memory.current_human]
content_path = "../lasa-current-human-block.md"
permission = "read_write"
memory_type = "working"
description = "Current conversant context"
shared = true

[memory.partner]
content_path = "../lasa-familiar-block.md"
permission = "read_write"
memory_type = "core"
description = "Understanding of scoiattolo's role"
shared = true

[memory.observations]
content_path = "../lasa-observations-block.md"
permission = "read_write"
memory_type = "core"
description = "Collective pattern gathering"
shared = true

[memory.resonances]
content_path = "../lasa-resonances-block.md"
permission = "read_write"
memory_type = "core"
description = "Cross-context patterns"
shared = true

[memory.constellation_context]
content_path = "../lares-context.md"
permission = "read_only"
memory_type = "core"
description = "Shared understanding of Lares purpose and members"
shared = true

# Domain-specific memory
[memory.domain_memory]
content = """
Protocol schedules:
Maintenance logs:
Health metrics:
Contamination incidents:

Alert thresholds:
- Context drift: 15% deviation
- Memory pollution: 20% noise ratio
- Role confusion: Any occurrence
- Coherence failure: 3 contradictions

Last checks:
- Hourly: [pending]
- Daily: [pending]
- Weekly: [pending]
"""
permission = "read_write"
memory_type = "core"
description = "Guardian's system monitoring data"


[[agent.tool_rules]]
tool_name = "send_message"
rule_type = { type = "ExitLoop" } # This tool ends the conversation
priority = 8

[[agent.tool_rules]]
tool_name = "recall"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 1

[[agent.tool_rules]]
tool_name = "context"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 1

[[agent.tool_rules]]
tool_name = "search"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 2

[[agent.tool_rules]]
tool_name = "web"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 2

[[agent.tool_rules]]
tool_name = "data_source"
rule_type = { type = "ContinueLoop" } # Skip heartbeat checks for performance
priority = 4
Loading
Loading