Skip to content

Commit 246c8e5

Browse files
committed
fixed the redundent logs, added login, added reasoning in the chat, added todo tool call
1 parent 13f6af4 commit 246c8e5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+4599
-2428
lines changed

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,3 +446,7 @@ releases/
446446
backend/vertex-ai-key.json
447447
bin/
448448
*.wasm
449+
450+
# Exclude test/example projects
451+
backend/orca-web/
452+
backend/dodge_the_creeps/

backend/Godot_tools.py

Lines changed: 119 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,38 @@
577577
}
578578
}
579579
},
580+
{
581+
"type": "function",
582+
"function": {
583+
"name": "graph_manager",
584+
"description": "REQUIRED: Always specify 'op' parameter. Explore the Godot project graph (scene↔script relationships, signals, resources). Use this before editing to understand connected files.",
585+
"parameters": {
586+
"type": "object",
587+
"additionalProperties": False,
588+
"properties": {
589+
"op": {
590+
"type": "string",
591+
"enum": ["graph.neighbors", "graph.walk"],
592+
"description": "Graph operations. 'graph.neighbors' inspects a specific file; 'graph.walk' traverses multiple hops automatically."
593+
},
594+
"file_path": {"type": "string", "description": "Primary file to explore (e.g., 'res://player.gd')."},
595+
"file_paths": {"type": "array", "items": {"type": "string"}, "description": "Optional list of additional files to include."},
596+
"start_file": {"type": "string", "description": "graph.walk: single starting file/scene."},
597+
"start_files": {"type": "array", "items": {"type": "string"}, "description": "graph.walk: list of starting files/scenes."},
598+
"project_root": {"type": "string", "description": "Project root path (used to derive project_id if not provided)."},
599+
"project_id": {"type": "string", "description": "Project identifier (MD5 hash of project root)."},
600+
"depth": {"type": "integer", "default": 1, "minimum": 1, "maximum": 3, "description": "Neighbor expansion depth (currently limited to 1-3)."},
601+
"edge_types": {"type": "array", "items": {"type": "string"}, "description": "Filter to specific relationship types (e.g., ['attached_script','scene_ref'])."},
602+
"max_nodes": {"type": "integer", "default": 12, "minimum": 1, "maximum": 50, "description": "Maximum nodes to return per file."},
603+
"max_edges": {"type": "integer", "default": 24, "minimum": 1, "maximum": 200, "description": "Maximum edges to return per file."},
604+
"graph_preview": {"type": "boolean", "default": True, "description": "Return trimmed preview for UI display."},
605+
"include_summary": {"type": "boolean", "default": True, "description": "Include aggregate graph statistics."},
606+
"include_raw": {"type": "boolean", "default": False, "description": "Return the full raw graph context (can be large)."}
607+
},
608+
"required": ["op"]
609+
}
610+
}
611+
},
580612

581613
{
582614
"type": "function",
@@ -592,21 +624,56 @@
592624
"scene_path": {"type": "string"},
593625
"clear_errors": {"type": "boolean", "default": True},
594626

595-
"include_warnings": {"type": "boolean", "default": True},
596-
"file_filter": {"type": "string"},
597-
"max_count": {"type": "integer", "default": 20},
598-
"message_contains": {"type": "string"},
599-
"group_duplicates": {"type": "boolean", "default": True},
627+
"include_warnings": {
628+
"type": "boolean",
629+
"default": True,
630+
"description": "errors.* ops: include warnings alongside errors when summarizing logs."
631+
},
632+
"file_filter": {
633+
"type": "string",
634+
"description": "errors.* ops: only include entries whose file path contains this substring (e.g., 'player.gd')."
635+
},
636+
"max_count": {
637+
"type": "integer",
638+
"default": 20,
639+
"description": "errors.* ops: limit number of error instances to return after filtering."
640+
},
641+
"message_contains": {
642+
"type": "string",
643+
"description": "errors.* ops: only include messages that contain this substring."
644+
},
645+
"group_duplicates": {
646+
"type": "boolean",
647+
"default": True,
648+
"description": "errors.summary: when true, collapse identical errors into a single entry with counts."
649+
},
600650

601651
# Screenshot parameters (TEMP disabled)
602652
# "filename": {"type": "string", "default": "screenshot_debug.png"},
603653
# "target": {"type": "string", "enum": ["editor", "game", "both"], "default": "game"},
604654
# "return_base64": {"type": "boolean", "default": True},
605655

606656
# Console output parameters
607-
"output_type": {"type": "string", "enum": ["all", "print", "error", "warning"], "default": "all"},
608-
"max_lines": {"type": "integer", "default": 50, "description": "Maximum console lines to retrieve"},
609-
"since_timestamp": {"type": "integer", "description": "Only get output since this timestamp (milliseconds)"},
657+
"lookback_seconds": {
658+
"type": "number",
659+
"minimum": 0,
660+
"description": "errors.* ops: only include runtime errors from the last N seconds (0 = all history)."
661+
},
662+
"output_type": {
663+
"type": "string",
664+
"enum": ["all", "print", "error", "warning"],
665+
"default": "all",
666+
"description": "console.get_output: which messages to return (filters by Godot log category)."
667+
},
668+
"max_lines": {
669+
"type": "integer",
670+
"default": 50,
671+
"description": "console.get_output: maximum number of filtered game log lines to return."
672+
},
673+
"since_timestamp": {
674+
"type": "integer",
675+
"description": "console.get_output: reserved for future incremental log streaming (currently ignored)."
676+
},
610677

611678
# Input testing parameters
612679
"action_name": {"type": "string", "description": "Input action name to test"},
@@ -733,6 +800,50 @@
733800
"required": ["op"]
734801
}
735802
}
803+
},
804+
805+
{
806+
"type": "function",
807+
"function": {
808+
"name": "todo_manager",
809+
"description": "Plan tracker for the AI. ONLY call after you've already run semantic search + graph.walk + file reads and need to organize the next steps.",
810+
"parameters": {
811+
"type": "object",
812+
"additionalProperties": False,
813+
"properties": {
814+
"op": {
815+
"type": "string",
816+
"enum": ["todo.list", "todo.add", "todo.add_batch", "todo.update", "todo.remove", "todo.clear"],
817+
"description": "Todo operation (list/add/update/remove/clear)."
818+
},
819+
"project_root": {"type": "string", "description": "Project root/path used to scope the todo list."},
820+
"content": {"type": "string", "description": "Todo text (required for todo.add)."},
821+
"status": {
822+
"type": "string",
823+
"enum": ["pending", "in_progress", "completed", "cancelled"],
824+
"description": "Status for todo.add/todo.update (defaults to 'pending')."
825+
},
826+
"items": {
827+
"type": "array",
828+
"items": {
829+
"type": "object",
830+
"properties": {
831+
"content": {"type": "string"},
832+
"status": {
833+
"type": "string",
834+
"enum": ["pending", "in_progress", "completed", "cancelled"],
835+
"default": "pending"
836+
}
837+
},
838+
"required": ["content"]
839+
},
840+
"description": "Batch payload for todo.add_batch"
841+
},
842+
"todo_id": {"type": "string", "description": "Todo identifier for update/remove operations."}
843+
},
844+
"required": ["op"]
845+
}
846+
}
736847
}
737848
]
738849

0 commit comments

Comments
 (0)