diff --git a/install.py b/install.py index 8ee0b09..5628a8e 100755 --- a/install.py +++ b/install.py @@ -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)