mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
fix(grok): default args/usage paths via tempfile.gettempdir() (bandit B108)
bandit B108 (hardcoded_tmp_directory) flagged the literal /tmp defaults for GROK_ARGS_PATH and USAGE_OUT_PATH, failing 'make quality' (2 medium issues -> Error 1) on master. Use tempfile.gettempdir() so there is no /tmp string literal; the runtime path is unchanged (gettempdir() is /tmp in the Linux agent container, matching the entrypoint's own ROBOCO_GROK_ARGS_FILE / tmp default). Not silenced with # nosec. Verified: bandit -r roboco/ -ll now exits 0.
This commit is contained in:
@@ -30,6 +30,7 @@ from __future__ import annotations
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import tempfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
@@ -64,7 +65,12 @@ BASH_GUARD_HOOK = os.environ.get(
|
|||||||
"ROBOCO_BASH_GUARD_HOOK", "/app/scripts/bash-guard-hook.sh"
|
"ROBOCO_BASH_GUARD_HOOK", "/app/scripts/bash-guard-hook.sh"
|
||||||
)
|
)
|
||||||
# The entrypoint reads the computed flags (one token per line) from this file.
|
# The entrypoint reads the computed flags (one token per line) from this file.
|
||||||
GROK_ARGS_PATH = Path(os.environ.get("ROBOCO_GROK_ARGS_FILE", "/tmp/roboco-grok-args"))
|
# Defaults under the system temp dir (not a hardcoded /tmp literal) — the
|
||||||
|
# entrypoint reads the same ROBOCO_GROK_ARGS_FILE / tmp default.
|
||||||
|
GROK_ARGS_PATH = Path(
|
||||||
|
os.environ.get("ROBOCO_GROK_ARGS_FILE")
|
||||||
|
or Path(tempfile.gettempdir()) / "roboco-grok-args"
|
||||||
|
)
|
||||||
|
|
||||||
# Hard ceiling on agentic turns (loop guard). Operator-tunable.
|
# Hard ceiling on agentic turns (loop guard). Operator-tunable.
|
||||||
_DEFAULT_MAX_TURNS = 200
|
_DEFAULT_MAX_TURNS = 200
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ from __future__ import annotations
|
|||||||
import contextlib
|
import contextlib
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
|
import tempfile
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from urllib.parse import quote
|
from urllib.parse import quote
|
||||||
@@ -35,8 +36,10 @@ from urllib.parse import quote
|
|||||||
from roboco.billing.pricing import calculate_cost
|
from roboco.billing.pricing import calculate_cost
|
||||||
|
|
||||||
# Where the entrypoint writes the captured usage for the orchestrator to read.
|
# Where the entrypoint writes the captured usage for the orchestrator to read.
|
||||||
|
# Defaults under the system temp dir (not a hardcoded /tmp literal).
|
||||||
USAGE_OUT_PATH = Path(
|
USAGE_OUT_PATH = Path(
|
||||||
os.environ.get("ROBOCO_GROK_USAGE_FILE", "/tmp/roboco-grok-usage.json")
|
os.environ.get("ROBOCO_GROK_USAGE_FILE")
|
||||||
|
or Path(tempfile.gettempdir()) / "roboco-grok-usage.json"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user