@cryptotaxi247 / CoPilot / commits / dbabbebd

Refactor parameters to replace RepoURL and ScriptName with ScriptURL in Copilot Action (#506)

taylor_socfortress committed Sep 10, 2025 at 15:37 UTC dbabbebddc25138b640fdbe3388b7a6c82f703f7
2 files changed +19 -30
backend/app/integrations/copilot_action/routes/copilot_action.py
+10 -20
@@ -91,11 +91,9 @@ def build_velociraptor_parameters(copilot_params: dict, script_params: list) ->
91
92 env_array = []
93
94 - # Always add RepoURL and ScriptName first
95 - if "RepoURL" in copilot_params:
96 - env_array.append({"key": "RepoURL", "value": str(copilot_params["RepoURL"])})
97 - if "ScriptName" in copilot_params:
98 - env_array.append({"key": "ScriptName", "value": str(copilot_params["ScriptName"])})
94 + # Always add ScriptURL first
95 + if "ScriptURL" in copilot_params:
96 + env_array.append({"key": "ScriptURL", "value": str(copilot_params["ScriptURL"])})
97
98 # Create a mapping of parameter names to their arg_position
99 param_position_map = {}
@@ -109,9 +107,9 @@ def build_velociraptor_parameters(copilot_params: dict, script_params: list) ->
107 arg_key = f"Arg{param_position_map[param_name]}"
108 env_array.append({"key": arg_key, "value": str(param_value)})
109
112 - # Add other parameters (those without arg_position and not RepoURL/ScriptName)
110 + # Add other parameters (those without arg_position and not ScriptURL)
111 for param_name, param_value in copilot_params.items():
114 - if param_name not in param_position_map and param_name not in ["RepoURL", "ScriptName"]:
112 + if param_name not in param_position_map and param_name not in ["ScriptURL"]:
113 env_array.append({"key": param_name, "value": str(param_value)})
114
115 return {"env": env_array}
@@ -138,15 +136,9 @@ async def validate_parameters(provided_params: dict, script_params: list) -> Non
136 required_params = {param.name for param in script_params if param.required}
137 provided_param_keys = set(provided_params.keys())
138
141 - # Add RepoURL and ScriptName as required parameters for Copilot Actions
142 - required_params.add("RepoURL")
143 - required_params.add("ScriptName")
144 - valid_param_names.add("RepoURL")
145 - valid_param_names.add("ScriptName")
146 -
147 - logger.info(f"Valid parameters: {valid_param_names}")
148 - logger.info(f"Required parameters: {required_params}")
149 - logger.info(f"Provided parameters: {provided_param_keys}")
139 + # Add ScriptURL as required parameters for Copilot Actions
140 + required_params.add("ScriptURL")
141 + valid_param_names.add("ScriptURL")
142
143 # Validate: no invalid parameters
144 invalid_params = provided_param_keys - valid_param_names
@@ -371,11 +363,9 @@ async def invoke_action(body: InvokeCopilotActionBody, session: AsyncSession = D
363 # Step 3: Prepare parameters (do this once for all agents)
364 final_parameters = body.parameters or {}
365
374 - # Add the `repo_url` and the `script_name` to the parameters
366 + # Add the `repo_url` and the to the parameters
367 if copilot_action_details.copilot_action.repo_url:
376 - final_parameters["RepoURL"] = copilot_action_details.copilot_action.repo_url
377 - if copilot_action_details.copilot_action.script_name:
378 - final_parameters["ScriptName"] = copilot_action_details.copilot_action.script_name
368 + final_parameters["ScriptURL"] = copilot_action_details.copilot_action.repo_url
369
370 logger.info(f"Parameters after adding repo and script: {final_parameters}")
371
frontend/src/components/copilotAction/InvokeActionForm.vue
+9 -10
@@ -250,16 +250,15 @@ async function handleSubmit() {
250
251 loading.value = true
252 try {
253 - // Prepare the payload
254 - const payload: InvokeCopilotActionRequest = {
255 - copilot_action_name: action.copilot_action_name,
256 - agent_names: form.value.agent_names,
257 - parameters: {
258 - RepoURL: action.repo_url,
259 - ScriptName: action.script_name || action.copilot_action_name,
260 - ...form.value.parameters
261 - }
262 - }
253 + // Prepare the payload
254 + const payload: InvokeCopilotActionRequest = {
255 + copilot_action_name: action.copilot_action_name,
256 + agent_names: form.value.agent_names,
257 + parameters: {
258 + ScriptURL: action.repo_url,
259 + ...form.value.parameters
260 + }
261 + }
262
263 const response = await Api.copilotAction.invokeAction(payload)
264