-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtinydb_viewer.py
More file actions
107 lines (90 loc) · 53.7 KB
/
Copy pathtinydb_viewer.py
File metadata and controls
107 lines (90 loc) · 53.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
# import json
# from tinydb import TinyDB
# db = TinyDB("writers_toolkit.json")
# tools = db.table('tools')
# all_tools = tools.all()
# print("tools:")
# print(json.dumps(all_tools, indent=4))
# settings = db.table('settings')
# all_settings = settings.all()
# print("settings:")
# print(json.dumps(all_settings, indent=4))
import json
from tinydb import TinyDB
# # Load the original JSON data
# with open("writers_toolkit.json", "r") as f:
# data = json.load(f)
# # Create a brand-new TinyDB
# db = TinyDB("writers_toolkit_tinydb.json")
# # Prepare references to the tables
# tools_table = db.table("tools")
# settings_table = db.table("settings")
# # Clear (truncate) any existing data in those tables, if desired
# tools_table.truncate()
# settings_table.truncate()
# # Insert the tools data
# # If data["tools"] is a dictionary of the form {"1": {...}, "2": {...}}, do this:
# if isinstance(data["tools"], dict):
# for doc_id, doc_data in data["tools"].items():
# tools_table.insert(doc_data)
# # If it's a list of dicts, do this instead:
# # else:
# # for doc_data in data["tools"]:
# # tools_table.insert(doc_data)
# # Insert the settings data
# # If data["settings"] is a dictionary of dicts:
# if isinstance(data["settings"], dict):
# for doc_id, doc_data in data["settings"].items():
# if isinstance(doc_data, dict):
# settings_table.insert(doc_data)
# else:
# # If doc_data is not a dict, convert or wrap it as needed
# settings_table.insert({"value": doc_data})
# # If it's a list:
# # elif isinstance(data["settings"], list):
# # for doc_data in data["settings"]:
# # if isinstance(doc_data, dict):
# # settings_table.insert(doc_data)
# # else:
# # settings_table.insert({"value": doc_data})
# print("Conversion complete. Data saved to writers_toolkit_tinydb.json.")
db = TinyDB("writers_toolkit_tinydb.json")
tools_table = db.table("tools")
all_tools = tools_table.all()
settings_table = db.table("settings")
all_settings = settings_table.all()
print("tools:")
print(json.dumps(all_tools, indent=4))
print("settings:")
print(json.dumps(all_settings, indent=4))
'''
{
"claude_api_configuration": {
"max_retries": 1,
"request_timeout": 300,
"context_window": 200000,
"thinking_budget_tokens": 32000,
"betas_max_tokens": 128000,
"desired_output_tokens": 12000
}
}
... old writers_toolkit.json:
{"tools": {"1": {"name": "brainstorm.py", "title": "Brainstorm", "description": "Helps generate initial story ideas, prompts, and creative angles. Appends more ideas to the existing 'ideas.txt' file.", "help_text": "Generates creative writing concepts, characters, and worldbuilding based on input ideas", "options": [{"name": "--ideas_file", "arg_name": "IDEAS_FILE", "description": "Path to ideas.txt file containing the concept and/or characters", "type": "str", "default": "/Users/cleesmith/writing/Spooky_Action/Ovid_Solon_Hailuo_AI.txt", "required": true, "group": "Input Files"}, {"name": "--continue", "arg_name": "CONTINUE", "description": "Continue building on existing ideas in the ideas file", "type": "bool", "default": false, "required": false, "group": "Operation Mode"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds or about 5 minutes)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget", "arg_name": "THINKING_BUDGET", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--max_tokens", "arg_name": "MAX_TOKENS", "description": "Maximum tokens for output (default: 12000)", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 204648)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save generated files (default: current directory)", "type": "str", "default": "/Users/cleesmith/writing", "required": false, "group": "Output Configuration"}, {"name": "--lang", "arg_name": "LANG", "description": "Language for writing (default: English)", "type": "str", "default": "English", "required": false, "group": "Content Configuration"}, {"name": "--title", "arg_name": "TITLE", "description": "Suggested title for the writing (optional)", "type": "str", "default": null, "required": false, "group": "Content Configuration"}, {"name": "--genre", "arg_name": "GENRE", "description": "Suggested genre for the writing (optional)", "type": "str", "default": null, "required": false, "group": "Content Configuration"}, {"name": "--num_characters", "arg_name": "NUM_CHARACTERS", "description": "Number of main characters to generate (default: 5)", "type": "int", "default": 5, "required": false, "group": "Content Configuration"}, {"name": "--worldbuilding_depth", "arg_name": "WORLDBUILDING_DEPTH", "description": "Depth of worldbuilding detail (1-5, where 5 is most detailed) (default: 3)", "type": "int", "default": 3, "required": false, "group": "Content Configuration"}, {"name": "--character_relationships", "arg_name": "CHARACTER_RELATIONSHIPS", "description": "Include detailed character relationships", "type": "bool", "default": false, "required": false, "group": "Content Configuration"}, {"name": "--concept_only", "arg_name": "CONCEPT_ONLY", "description": "Generate only the concept file", "type": "bool", "default": false, "required": false, "group": "Operation Mode"}, {"name": "--characters_only", "arg_name": "CHARACTERS_ONLY", "description": "Generate only the characters file", "type": "bool", "default": false, "required": false, "group": "Operation Mode"}, {"name": "--allow_new_characters", "arg_name": "ALLOW_NEW_CHARACTERS", "description": "Allow creation of new characters not in the ideas file", "type": "bool", "default": false, "required": false, "group": "Content Configuration"}]}, "2": {"name": "outline_writer.py", "title": "Outline Writer", "description": "Generates a plot outline from your brainstorming file. You can provide your own outline skeleton and let the AI fill in details.", "help_text": "Generates comprehensive novel outlines with customizable sections, chapters, and detail levels", "options": [{"name": "--premise_file", "arg_name": "PREMISE_FILE", "description": "File containing the story premise (required)", "type": "str", "default": "", "required": true, "group": "Input Files"}, {"name": "--example_outline", "arg_name": "EXAMPLE_OUTLINE", "description": "Example outline for reference", "type": "str", "default": null, "required": false, "group": "Input Files"}, {"name": "--concept_file", "arg_name": "CONCEPT_FILE", "description": "File containing detailed concept information (optional)", "type": "str", "default": null, "required": false, "group": "Input Files"}, {"name": "--characters_file", "arg_name": "CHARACTERS_FILE", "description": "File containing character descriptions (optional)", "type": "str", "default": null, "required": false, "group": "Input Files"}, {"name": "--sections", "arg_name": "SECTIONS", "description": "Number of main parts/sections in the outline (default: 5)", "type": "int", "default": 5, "required": false, "group": "Output Configuration"}, {"name": "--chapters", "arg_name": "CHAPTERS", "description": "Number of chapters in the outline (default: 25)", "type": "int", "default": 25, "required": false, "group": "Output Configuration"}, {"name": "--lang", "arg_name": "LANG", "description": "Language for writing (default: English)", "type": "str", "default": "English", "required": false, "group": "Output Configuration"}, {"name": "--title", "arg_name": "TITLE", "description": "Suggested title for the novel (optional)", "type": "str", "default": null, "required": false, "group": "Output Configuration"}, {"name": "--genre", "arg_name": "GENRE", "description": "Suggested genre for the novel (optional)", "type": "str", "default": null, "required": false, "group": "Output Configuration"}, {"name": "--detailed", "arg_name": "DETAILED", "description": "Generate a more detailed outline with chapter summaries", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save generated files (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds or about 5 minutes)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget", "arg_name": "THINKING_BUDGET", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--max_tokens", "arg_name": "MAX_TOKENS", "description": "Maximum tokens for output (default: 12000)", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 204648)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}]}, "3": {"name": "world_writer.py", "title": "World Writer", "description": "Extract and develop characters and world elements from a novel outline. It requires: title, POV, and characters.txt and outline.txt.", "help_text": "Creates comprehensive world-building documents based on story outlines and character files", "options": [{"name": "--thinking_budget", "arg_name": "THINKING_BUDGET", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--max_tokens", "arg_name": "MAX_TOKENS", "description": "Maximum tokens for output (default: 20000)", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 204648)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--lang", "arg_name": "LANG", "description": "Language for writing (default: English)", "type": "str", "default": "English", "required": false, "group": "Content Configuration"}, {"name": "--title", "arg_name": "TITLE", "description": "Title of story", "type": "str", "default": "", "required": true, "group": "Content Configuration"}, {"name": "--pov", "arg_name": "POV", "description": "Point of view", "type": "str", "default": "third person perspective", "required": true, "group": "Content Configuration"}, {"name": "--characters_file", "arg_name": "CHARACTERS_FILE", "description": "Characters", "type": "str", "default": "", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "OUTLINE_FILE", "description": "Path to the outline file generated by outline_writer.py", "type": "str", "default": null, "required": true, "group": "Input Files"}, {"name": "--detailed", "arg_name": "DETAILED", "description": "Generate more detailed character and world profiles", "type": "bool", "default": false, "required": false, "group": "Content Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save generated files (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}]}, "4": {"name": "chapter_writer.py", "title": "Chapter Writer", "description": "Uses the outline, chapters list, world document, and any existing manuscript to write rough draft chapters", "help_text": "Uses the outline, chapters list, world document, and any existing manuscript to write rough draft chapters", "options": [{"name": "--chapters_to_write", "arg_name": "chapters_to_write", "description": "Path to a file containing a list of chapters to write sequentially, and the format is \"9. Chapter Title\" per line. \nIt may contain one or more chapters. \nIt must match the chapter format in the outline. \nSee: --request to do just one chapter", "type": "str", "default": "chapters.txt", "required": false, "group": "Input Files"}, {"name": "--manuscript", "arg_name": "manuscript", "description": "Path to manuscript file", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--outline", "arg_name": "outline", "description": "Path to outline file", "type": "str", "default": "outline.txt", "required": true, "group": "Input Files"}, {"name": "--world", "arg_name": "world", "description": "Path to world file", "type": "str", "default": "world.txt", "required": false, "group": "Input Files"}, {"name": "--lang", "arg_name": "lang", "description": "Language for writing", "type": "str", "default": "English", "required": false, "group": "Input Files"}, {"name": "--chapter_delay", "arg_name": "chapter_delay", "description": "Delay in seconds between processing multiple chapters (default: 15 seconds)", "type": "int", "default": 15, "required": false, "group": "Input Files"}, {"name": "--no_dialogue_emphasis", "arg_name": "no_dialogue_emphasis", "description": "Turn off the additional dialogue emphasis (dialogue emphasis is ON by default)", "type": "bool", "default": true, "required": false, "group": "Input Files"}, {"name": "--no_append", "arg_name": "no_append", "description": "Disable auto-appending new chapters to manuscript file", "type": "bool", "default": false, "required": false, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "save_dir", "description": "Directory to save chapter files (default: current directory)", "type": "str", "default": ".", "required": true, "group": "Output Configuration"}, {"name": "--backup", "arg_name": "backup", "description": "Create backup of manuscript file before appending (default: False)", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--context_window", "arg_name": "context_window", "description": "Context window for Claude 3.7 Sonnet (default: 200000=200K)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "betas_max_tokens", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "thinking_budget_tokens", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "desired_output_tokens", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--show_token_stats", "arg_name": "show_token_stats", "description": "Show tokens stats but do not call API\nYou just want to double check the settings/numbers.", "type": "bool", "default": false, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "request_timeout", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds = 5 minutes)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}, {"name": "--max_retries", "arg_name": "max_retries", "description": "Maximum times to retry request, may get expensive if too many", "type": "int", "default": 1, "required": false, "group": "Claude API Configuration"}, {"name": "--request", "arg_name": "request", "description": "Single chapter format: --request \"Chapter 9: Title\" or \"9: Title\" or \"9. Title\"", "type": "str", "default": null, "required": false, "group": "Input Files"}]}, "5": {"name": "tokens_words_counter.py", "title": "Counts words and AI tokens", "description": "Counts words and AI tokens for a given text file.", "help_text": "Counts words and AI tokens for a given text file.", "options": [{"name": "--text_file", "arg_name": "TEXT_FILE", "description": "File containing the text to count (required)", "type": "str", "default": "/Users/cleesmith/writing/Formic/manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "6": {"name": "character_analyzer.py", "title": "Character Analyzer", "description": "Analyzes manuscript, outline, and world files to identify and compare character appearances. It extracts a master character list that details which files each character appears in, examines consistency across documents, and highlights discrepancies in names, roles, or relationships. The analysis produces a detailed report with sections and recommendations to improve character coherence. This is needed because AI draft writing has a tendency to add new characters!", "help_text": "Analyze characters across story files using Claude AI.", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze (required)", "type": "str", "default": "", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "OUTLINE_FILE", "description": "File containing the story outline (optional)", "type": "str", "required": false, "group": "Input Files", "default": ""}, {"name": "--world_file", "arg_name": "WORLD_FILE", "description": "File containing the story world/lore information (optional)", "type": "str", "required": false, "group": "Input Files", "default": ""}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save character analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "", "description": "Skip saving the AI thinking process (smaller output files)", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}]}, "7": {"name": "tense_consistency_checker.py", "title": "Tense Consistency Checker", "description": "Examines the manuscript to evaluate verb tense consistency. It identifies shifts between past and present tense that might confuse readers, focusing on unintentional changes in narrative flow. With customizable analysis levels and configurable chapter markers, it generates a detailed report with examples, explanations, and suggestions for improving consistency.", "help_text": "Analyze manuscript for verb tense consistency using Claude AI.", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze (required)", "type": "str", "default": "/Users/cleesmith/writing/A_Darker_Roast/manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of tense analysis detail:\nbasic, standard, detailed", "type": "str", "default": "detailed", "required": false, "group": "Analysis Options"}, {"name": "--chapter_markers", "arg_name": "CHAPTER_MARKERS", "description": "Text that marks the start of chapters (default: 'Chapter')", "type": "str", "default": "Chapter", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": "/Users/cleesmith/writing", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "", "description": "Skip saving the AI thinking process (smaller output files)", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}]}, "8": {"name": "adjective_adverb_optimizer.py", "title": "Adjective Adverb Optimizer", "description": "Analyzes manuscript adjective and adverb usage to pinpoint unnecessary modifiers and overused qualifiers, offering specific suggestions for replacing weak descriptive patterns with stronger verbs and nouns, in line with Ursula K. Le Guin's guidance.", "help_text": "Adjective Adverb Optimizer", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of analysis detail (default: standard)\nChoices: basic, standard, detailed", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--focus_areas", "arg_name": "focus_areas", "description": "Specific areas to focus analysis on (default: all areas)\nChoices: qualifiers, adverbs, adjectives, imagery", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "9": {"name": "dangling_modifier_checker.py", "title": "Dangling Modifier Checker", "description": "Manuscript analysis software that detects dangling and misplaced modifiers.\nIt examines text to pinpoint instances where descriptive phrases don\u2019t logically connect to their intended subjects, potentially causing confusion or unintended humor.\nWith customizable analysis level, sensitivity, and specific modifier types, it generates a detailed report complete with examples, explanations, and revision suggestions to enhance clarity and precision.", "help_text": "Dangling Modifier Checker", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of analysis detail (default: standard)\nChoices: basic, standard, detailed", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--modifier_types", "arg_name": "modifier_types", "description": "Specific modifier types to focus on (default: all types)\nChoices: dangling, misplaced, squinting, limiting", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--sensitivity", "arg_name": "sensitivity", "description": "Sensitivity level for modifier detection (default: medium)\nChoices: low, medium, high", "type": "str", "default": "medium", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "10": {"name": "rhythm_analyzer.py", "title": "Rhythm Analyzer", "description": "Manuscript analysis utility for evaluating the rhythm and flow of prose.\nIt measures sentence length variations, detects monotonous patterns, and highlights sections where the writing\u2019s rhythm doesn\u2019t match the intended mood.\n Configurable analysis levels, selectable scene types, and adjustable sensitivity settings allow it to generate a detailed report with examples, explanations, and suggestions for enhancing overall narrative rhythm.", "help_text": "Rhythm Analyzer", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of analysis detail (default: standard)\nChoices: basic, standard, detailed", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--scene_types", "arg_name": "scene_types", "description": "Specific scene types to focus analysis on (default: all types)\nChoices: action, dialogue, description, exposition", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--rhythm_sensitivity", "arg_name": "rhythm_sensitivity", "description": "Sensitivity level for rhythm analysis (default: medium)\nChoices: low, medium, high", "type": "str", "default": "medium", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "11": {"name": "crowding_leaping_evaluator.py", "title": "Crowding Leaping Evaluator", "description": "Manuscript pacing evaluator that examines narrative structure for pacing issues.\nIt identifies overly dense sections (crowding) and abrupt transitions or time jumps (leaping) based on concepts inspired by Ursula K. Le Guin.\n With configurable analysis levels and sensitivity settings, it produces a detailed report\u2014including optional text-based visualizations\u2014that offers feedback and suggestions for improving narrative rhythm and clarity.", "help_text": "Crowding Leaping Evaluator", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--include_visualization", "arg_name": "include_visualization", "description": "Include a text-based visualization of pacing patterns", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of analysis detail (default: standard)\nChoices: basic, standard, detailed", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--focus_areas", "arg_name": "focus_areas", "description": "Specific areas to focus on (default: all areas)\nChoices: crowding, leaping, transitions, pacing", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--sensitivity", "arg_name": "sensitivity", "description": "Sensitivity level for pattern detection (default: medium)\nChoices: low, medium, high", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "12": {"name": "punctuation_auditor.py", "title": "Punctuation Auditor", "description": "Manuscript analysis utility focused on evaluating punctuation effectiveness.\nIt detects issues such as run-on sentences, missing commas, and irregular punctuation patterns that may hinder clarity and flow.\nConfigurable analysis levels, strictness settings, and selectable punctuation elements enable it to generate a detailed report with examples, explanations, and recommendations for enhancing punctuation and overall readability.", "help_text": "Punctuation Auditor", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of analysis detail (default: standard)\nChoices: basic, standard, detailed", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--elements", "arg_name": "elements", "description": "Specific punctuation elements to focus on (default: all elements)\nChoices: commas, periods, semicolons, dashes, parentheses, colons, run-ons", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--strictness", "arg_name": "strictness", "description": "Strictness level for punctuation analysis (default: medium)\nChoices: low, medium, high", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "13": {"name": "consistency_checker.py", "title": "Consistency Checker", "description": "Manuscript consistency checker utility that compares a manuscript against a world document (and optionally an outline).\nIt supports various consistency checks: world, internal, development, and unresolved.\nConfigurable options enable targeted analysis of character, setting, timeline, and thematic consistency, producing detailed reports with examples and recommendations for resolving discrepancies.", "help_text": "Manuscript consistency checker", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--world_file", "arg_name": "world_file", "description": "File containing the world details (required)", "type": "str", "default": "world.txt", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "outline_file", "description": "File containing the story outline (optional)", "type": "str", "default": "outline.txt", "required": false, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--check_type", "arg_name": "check_type", "description": "Type of consistency check to perform (default: world)\nChoices: world, internal, development, unresolved, all", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--check_description", "arg_name": "check_description", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "14": {"name": "conflict_analyzer.py", "title": "Conflict Analyzer", "description": "Manuscript conflict analysis utility that examines conflict patterns at different narrative levels.\nIt identifies conflict nature, escalation, and resolution at scene, chapter, and arc levels.\nWith customizable analysis levels and selectable conflict types, it produces a detailed report featuring examples, assessments, and recommendations for strengthening narrative tension and coherence.", "help_text": "Conflict Analyzer", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "outline_file", "description": "File containing the story outline (optional)", "type": "str", "default": "outline.txt", "required": false, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_level", "arg_name": "analysis_level", "description": "Level of conflict analysis to perform (default: all)\nChoices: scene, chapter, arc, all", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--conflict_types", "arg_name": "conflict_types", "description": "Specific conflict types to analyze (default: all main types)\nChoices: internal, interpersonal, environmental, societal, cosmic", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "15": {"name": "foreshadowing_tracker.py", "title": "Foreshadowing Tracker", "description": "Manuscript analysis utility for identifying foreshadowing elements and tracking their payoffs.\n It pinpoints explicit clues, subtle hints, and Chekhov's Gun elements to evaluate how well narrative setups are resolved.\n With customizable options to select foreshadowing types and organization modes (chronological or by type), it generates detailed reports featuring examples, assessments, and recommendations for fulfilling narrative promises.", "help_text": "Foreshadowing Tracker", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "outline_file", "description": "File containing the story outline (optional)", "type": "str", "default": "outline.txt", "required": false, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--chronological", "arg_name": "chronological", "description": "Sort foreshadowing elements chronologically rather than by type", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--foreshadowing_type", "arg_name": "foreshadowing_type", "description": "Type of foreshadowing to analyze (default: all)\nChoices: explicit, implicit, chekhov, all", "type": "str", "default": "all", "required": false, "group": "Analysis Options"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}, "16": {"name": "plot_thread_tracker.py", "title": "Plot Thread Tracker", "description": "Manuscript analysis utility for identifying and tracking distinct plot threads\u2014revealing how they interconnect, converge, and diverge throughout the narrative.\n It uses text-based representations (with optional ASCII art visualization) and supports configurable analysis depth (basic, detailed, or comprehensive) to produce detailed reports with progression maps, thread connections, and narrative assessments, including manuscript excerpts and recommendations for strengthening the plot architecture.", "help_text": "Plot Thread Tracker", "options": [{"name": "--manuscript_file", "arg_name": "MANUSCRIPT_FILE", "description": "File containing the manuscript to analyze", "type": "str", "default": "manuscript.txt", "required": true, "group": "Input Files"}, {"name": "--outline_file", "arg_name": "outline_file", "description": "File containing the story outline (optional)", "type": "str", "default": "outline.txt", "required": false, "group": "Input Files"}, {"name": "--save_dir", "arg_name": "SAVE_DIR", "description": "Directory to save tense analysis reports (default: current directory)", "type": "str", "default": ".", "required": false, "group": "Output Configuration"}, {"name": "--skip_thinking", "arg_name": "skip_thinking", "description": "Skip saving the AI thinking process", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--ascii_art", "arg_name": "ascii_art", "description": "Include simple ASCII art visualization in the output", "type": "bool", "default": false, "required": false, "group": "Output Configuration"}, {"name": "--analysis_depth", "arg_name": "analysis_depth", "description": "Depth of plot thread analysis to perform (default: comprehensive)", "type": "str", "default": "comprehensive", "required": false, "group": "Analysis Options"}, {"name": "--analysis_description", "arg_name": "ANALYSIS_DESCRIPTION", "description": "Optional description to include in output filenames", "type": "str", "default": "", "required": false, "group": "Output Configuration"}, {"name": "--thread_focus", "arg_name": "thread_focus", "description": "Optional list of specific plot threads to focus on (e.g., 'romance' 'mystery'). \nAlternative default: [\"romance\", \"mystery\"]", "type": "str", "default": null, "required": false, "group": "Output Configuration"}, {"name": "--context_window", "arg_name": "CONTEXT_WINDOW", "description": "Context window for Claude 3.7 Sonnet (default: 200000)", "type": "int", "default": 200000, "required": false, "group": "Claude API Configuration"}, {"name": "--betas_max_tokens", "arg_name": "BETAS_MAX_TOKENS", "description": "Maximum tokens for AI output (default: 128000)", "type": "int", "default": 128000, "required": false, "group": "Claude API Configuration"}, {"name": "--thinking_budget_tokens", "arg_name": "THINKING_BUDGET_TOKENS", "description": "Maximum tokens for AI thinking (default: 32000)", "type": "int", "default": 32000, "required": false, "group": "Claude API Configuration"}, {"name": "--desired_output_tokens", "arg_name": "DESIRED_OUTPUT_TOKENS", "description": "User desired number of tokens to generate before stopping output", "type": "int", "default": 12000, "required": false, "group": "Claude API Configuration"}, {"name": "--request_timeout", "arg_name": "REQUEST_TIMEOUT", "description": "Maximum timeout for each *streamed chunk* of output (default: 300 seconds)", "type": "int", "default": 300, "required": false, "group": "Claude API Configuration"}]}}, "settings": {"1": {"default_save_dir": "/Users/cleesmith/writing/Formic", "tools_config_json_dir": ".", "current_project": "Formic", "current_project_path": "/Users/cleesmith/writing/Formic"}}, "claude_api": {"1": {"request_timeout": 300, "thinking_budget_tokens": 32000, "desired_output_tokens": 12000, "context_window": 200000, "betas_max_tokens": 128000, "max_retries": 1}}}
... move claude_api_configuration json into settings:
{
"settings": {
"default_save_dir": "/Users/cleesmith/writing/Formic",
"tools_config_json_dir": ".",
"current_project": "Formic",
"current_project_path": "/Users/cleesmith/writing/Formic",
"claude_api_configuration": {
"max_retries": 1,
"request_timeout": 300,
"context_window": 200000,
"thinking_budget_tokens": 32000,
"betas_max_tokens": 128000,
"desired_output_tokens": 12000
}
}
}
'''