mirror of
https://github.com/NVIDIA/OpenShell.git
synced 2026-10-16 05:20:22 +08:00
* chore(gator): add gator gate skill * chore(gator): add sandbox launcher scaffold * chore(gator): add codex image and docs checks * chore(gator): fold approved provider policy rules * chore(gator): add deterministic reviewer runner * chore(gator): clarify ok-to-test comments * chore(gator): structure launcher harnesses * chore(gator): require e2e for dependabot * chore(gator): add codex refresh profile * chore(gator): wip manifest agent launcher * feat(agents): supervise watch cycles in sandbox * fix(agents): preserve gateway refresh state * fix(gator): continue human response threads * fix(agents): keep watch supervisor retrying * fix(agents): use refreshed Codex credential aliases * fix(gator): avoid misleading gh auth checks * docs(agents): remove architecture build update * fix(gator): use REST-backed GitHub writes * fix(agents): bake immutable agent payloads * fix(agents): upload writable agent workspace * fix(agents): surface gator watch progress * fix(agents): prevent codex stdin hang * fix(agents): align codex subagent input * fix(agents): heartbeat during active cycles * fix(agents): clean up heartbeat sleep * fix(agents): disable gh telemetry in codex harness * fix(agents): reconcile closed gator PRs * fix(agents): query closed gator PR labels separately * fix(agents): tolerate rotated credential placeholders * fix(agents): enforce gator same-sha comment guard Signed-off-by: John Myers <johntmyers@users.noreply.github.com> * docs(agents): scope gator trusted commentary Signed-off-by: John Myers <johntmyers@users.noreply.github.com> * fix(gator): treat reviewer failures as transient Signed-off-by: Evan Lezar <elezar@nvidia.com> * feat(agents): refine gator supervised workflow Signed-off-by: John Myers <johntmyers@users.noreply.github.com> * fix(agents): stream codex prompts via stdin Signed-off-by: John Myers <johntmyers@users.noreply.github.com> * docs(agents): clarify trusted gator responses Signed-off-by: John Myers <johntmyers@users.noreply.github.com> * refactor(agents): scope gator PR to scripts Signed-off-by: John Myers <johntmyers@users.noreply.github.com> --------- Signed-off-by: John Myers <johntmyers@users.noreply.github.com> Signed-off-by: Evan Lezar <elezar@nvidia.com> Co-authored-by: John Myers <johntmyers@users.noreply.github.com> Co-authored-by: Evan Lezar <elezar@nvidia.com>
68 lines
1.8 KiB
Bash
Executable File
68 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -euo pipefail
|
|
|
|
if [[ $# -ne 1 ]]; then
|
|
echo "usage: subagent.sh <subagent-id> < task.md" >&2
|
|
exit 2
|
|
fi
|
|
|
|
SUBAGENT_ID="$1"
|
|
ADAPTER_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
PAYLOAD_DIR="$(cd "$ADAPTER_DIR/../../.." && pwd)"
|
|
SUBAGENT_PROMPT="$PAYLOAD_DIR/subagents/$SUBAGENT_ID.md"
|
|
[[ -f "$SUBAGENT_PROMPT" ]] || {
|
|
echo "missing subagent prompt: $SUBAGENT_PROMPT" >&2
|
|
exit 1
|
|
}
|
|
|
|
CODEX_BIN="${CODEX_BIN:-codex}"
|
|
if [[ -x "$PAYLOAD_DIR/runtime/harnesses/codex/codex" ]]; then
|
|
CODEX_BIN="$PAYLOAD_DIR/runtime/harnesses/codex/codex"
|
|
fi
|
|
|
|
CODEX_MODEL="${CODEX_MODEL:-gpt-5.5}"
|
|
CODEX_REASONING="${CODEX_REASONING:-high}"
|
|
|
|
TASK_FILE="$(mktemp)"
|
|
PROMPT_FILE="$(mktemp)"
|
|
cleanup() {
|
|
rm -f "$TASK_FILE" "$PROMPT_FILE"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
cat >"$TASK_FILE"
|
|
|
|
{
|
|
printf '%s\n\n' "You are running as the $SUBAGENT_ID sub-agent inside an OpenShell sandbox."
|
|
printf '%s\n\n' 'Follow this agent definition exactly:'
|
|
cat "$SUBAGENT_PROMPT"
|
|
printf '\n%s\n\n' 'Task:'
|
|
cat "$TASK_FILE"
|
|
} >"$PROMPT_FILE"
|
|
|
|
CODEX_EXEC_ARGS=(
|
|
exec
|
|
--skip-git-repo-check
|
|
--sandbox danger-full-access
|
|
--ephemeral
|
|
)
|
|
|
|
if "$CODEX_BIN" exec --help 2>/dev/null | grep -q -- "--ignore-user-config"; then
|
|
CODEX_EXEC_ARGS+=(--ignore-user-config)
|
|
fi
|
|
if "$CODEX_BIN" exec --help 2>/dev/null | grep -q -- "--ignore-rules"; then
|
|
CODEX_EXEC_ARGS+=(--ignore-rules)
|
|
fi
|
|
|
|
echo "openshell-agent: invoking Codex sub-agent '$SUBAGENT_ID' (model=$CODEX_MODEL, reasoning=$CODEX_REASONING)" >&2
|
|
|
|
exec "$CODEX_BIN" "${CODEX_EXEC_ARGS[@]}" \
|
|
-c "model=\"${CODEX_MODEL}\"" \
|
|
-c "model_reasoning_effort=\"${CODEX_REASONING}\"" \
|
|
- \
|
|
< "$PROMPT_FILE"
|