Skip to repository content

tenant.openagents/omega

No repository description is available.

OpenAgents Git authority 2026-07-28T06:56:22.513Z Public web read
NIP-34 coordinate30617:7649603503856e5148d571eac2766b288a8ff1e9e35d380337a1d2b0015b4f92:omega
MaintainersHidden in public view
References2 branches · 1 tag
Read-only clonegit clone https://openagents.com/git/tenant.openagents/omega.git
Browse files

settings.rs

63 lines · 2.0 KB · rust
1use collections::HashMap;
2use std::{ops::Range, sync::LazyLock};
3use tree_sitter::{Query, QueryMatch};
4
5use crate::MigrationPatterns;
6use crate::patterns::SETTINGS_NESTED_KEY_VALUE_PATTERN;
7
8pub const SETTINGS_PATTERNS: MigrationPatterns = &[(
9    SETTINGS_NESTED_KEY_VALUE_PATTERN,
10    replace_deprecated_settings_values,
11)];
12
13fn replace_deprecated_settings_values(
14    contents: &str,
15    mat: &QueryMatch,
16    query: &Query,
17) -> Option<(Range<usize>, String)> {
18    let parent_object_capture_ix = query.capture_index_for_name("parent_key")?;
19    let parent_object_range = mat
20        .nodes_for_capture_index(parent_object_capture_ix)
21        .next()?
22        .byte_range();
23    let parent_object_name = contents.get(parent_object_range)?;
24
25    let setting_name_ix = query.capture_index_for_name("setting_name")?;
26    let setting_name_range = mat
27        .nodes_for_capture_index(setting_name_ix)
28        .next()?
29        .byte_range();
30    let setting_name = contents.get(setting_name_range)?;
31
32    let setting_value_ix = query.capture_index_for_name("setting_value")?;
33    let setting_value_range = mat
34        .nodes_for_capture_index(setting_value_ix)
35        .next()?
36        .byte_range();
37    let setting_value = contents.get(setting_value_range.clone())?;
38
39    UPDATED_SETTINGS
40        .get(&(parent_object_name, setting_name))
41        .and_then(|new_values| {
42            new_values
43                .iter()
44                .find_map(|(old_value, new_value)| {
45                    (*old_value == setting_value).then(|| new_value.to_string())
46                })
47                .map(|new_value| (setting_value_range, new_value))
48        })
49}
50
51static UPDATED_SETTINGS: LazyLock<HashMap<(&str, &str), Vec<(&str, &str)>>> = LazyLock::new(|| {
52    HashMap::from_iter([
53        (
54            ("chat_panel", "button"),
55            vec![("true", "\"always\""), ("false", "\"never\"")],
56        ),
57        (
58            ("scrollbar", "diagnostics"),
59            vec![("true", "\"all\""), ("false", "\"none\"")],
60        ),
61    ])
62});
63
Served at tenant.openagents/omega Member data and write actions are omitted.