feat: Add plugin configuration options to installer

- Max gems per turn (2/5/10/custom)
- Minimum similarity score (0.5/0.7/0.9/custom)
- Plugin config written to plugin-config.json
- Summary shows plugin settings
This commit is contained in:
root
2026-02-24 20:59:59 -06:00
parent 79fb9c6cb3
commit 56cacd6585

View File

@@ -132,6 +132,21 @@ def install_full():
}, "1", True),
]
# Plugin config prompts (full mode only)
plugin_prompts = [
("max_recall_results", "Max gems per turn (injection)", {
"1": ("2", "conservative, less context bloat"),
"2": ("5", "balanced, recommended"),
"3": ("10", "more context, higher recall")
}, "2", True),
("min_recall_score", "Minimum similarity score", {
"1": ("0.5", "loose matching, more gems"),
"2": ("0.7", "balanced, recommended"),
"3": ("0.9", "strict matching, only strong matches")
}, "2", True),
]
idx = 0
while idx < len(prompts):
key, question, options, default_key, allow_custom = prompts[idx]
@@ -151,6 +166,23 @@ def install_full():
config[key] = value
idx += 1
# Process plugin prompts
idx = 0
while idx < len(plugin_prompts):
key, question, options, default_key, allow_custom = plugin_prompts[idx]
value, go_back = prompt_inline(question, options, default_key, allow_custom)
if go_back:
if idx > 0:
idx -= 1
continue
else:
# Go back to main prompts
return False
config[key] = value
idx += 1
return True
def install_simple():
@@ -222,6 +254,19 @@ def write_config():
with open(config_path, 'w') as f:
json.dump(output, f, indent=2)
# Write plugin config for full mode
if config["mode"] == "full":
plugin_config = {
"collectionName": config["target_collection"],
"captureCollection": config["source_collection"],
"maxRecallResults": int(config.get("max_recall_results", 5)),
"minRecallScore": float(config.get("min_recall_score", 0.7)),
"qdrantUrl": config["qdrant_url"]
}
plugin_path = script_dir / "plugin-config.json"
with open(plugin_path, 'w') as f:
json.dump(plugin_config, f, indent=2)
return config_path
def show_summary():
@@ -241,8 +286,12 @@ def show_summary():
print(f"Ollama URL: {config['ollama_url']}")
print(f"Curator LLM: {config['curator_model']}")
print(f"Target collection: {config['target_collection']}")
print(f"\nPlugin settings:")
print(f" Max gems per turn: {config.get('max_recall_results', 5)}")
print(f" Min similarity score: {config.get('min_recall_score', 0.7)}")
else:
print("Target collection: (none - simple mode)")
print("Plugin injection: (disabled - simple mode)")
print("=" * 60)