feat: add auto_backgrounded field to python and terminal tool responses and final output prefix for completed processes

This commit is contained in:
2026-01-29 06:52:58 +00:00
parent d0a17cd3c9
commit 5a2a16f0ff
8 changed files with 197 additions and 27 deletions
+1
View File
@@ -78,6 +78,7 @@ static char *python_execute_execute(tool_t *self, struct json_object *args) {
json_object_object_add(root, "output", json_object_new_string(res->output));
json_object_object_add(root, "is_running", json_object_new_boolean(res->is_running));
json_object_object_add(root, "timed_out", json_object_new_boolean(res->timed_out));
json_object_object_add(root, "auto_backgrounded", json_object_new_boolean(res->timed_out));
if (!res->is_running) {
json_object_object_add(root, "exit_status", json_object_new_int(res->exit_status));
}
+12 -1
View File
@@ -123,7 +123,17 @@ static char *process_status_execute(tool_t *self, struct json_object *args) {
struct json_object *root = json_object_new_object();
json_object_object_add(root, "pid", json_object_new_int(pid));
json_object_object_add(root, "is_running", json_object_new_boolean(running));
json_object_object_add(root, "output", json_object_new_string(content ? content : ""));
char *final_output = NULL;
if (!running) {
if (asprintf(&final_output, "[Final Output Captured]\n%s", content ? content : "") == -1) {
final_output = strdup(content ? content : "");
}
} else {
final_output = strdup(content ? content : "");
}
json_object_object_add(root, "output", json_object_new_string(final_output));
if (!running) {
json_object_object_add(root, "exit_status", json_object_new_int(exit_status));
}
@@ -143,6 +153,7 @@ static char *process_status_execute(tool_t *self, struct json_object *args) {
char *out_str = strdup(json_object_to_json_string_ext(root, JSON_C_TO_STRING_PRETTY));
json_object_put(root);
free(content);
free(final_output);
return out_str;
}
+1
View File
@@ -80,6 +80,7 @@ static char *terminal_execute(tool_t *self, struct json_object *args) {
json_object_object_add(root, "output", json_object_new_string(res->output));
json_object_object_add(root, "is_running", json_object_new_boolean(res->is_running));
json_object_object_add(root, "timed_out", json_object_new_boolean(res->timed_out));
json_object_object_add(root, "auto_backgrounded", json_object_new_boolean(res->timed_out));
if (!res->is_running) {
json_object_object_add(root, "exit_status", json_object_new_int(res->exit_status));
}