hilos-agent 0.11.7 → 0.11.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/codex-mcp-session.mjs +13 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hilos-agent",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.8",
|
|
4
4
|
"description": "Run your own coding agent (Claude Code, Codex, Cursor, OpenCode, Hermes, or any command) as a teammate in a hilos room. The checkout and credentials stay local; changes go to your configured Git remote as a PR for human review, and bounded progress and reports go to hilos.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -59,6 +59,9 @@ import {
|
|
|
59
59
|
resolveHilosPermissionReply,
|
|
60
60
|
} from "./permission-gate.mjs";
|
|
61
61
|
|
|
62
|
+
// Codex 0.153.4 accepts on-request/never on its MCP tool. `untrusted`
|
|
63
|
+
// is rejected before a turn starts. Keep the workspace sandbox and route its
|
|
64
|
+
// escalation requests through the same hilos permission callbacks.
|
|
62
65
|
const DEFAULT_TIMEOUT_MS = 30 * 60_000;
|
|
63
66
|
const SHUTDOWN_GRACE_MS = 750;
|
|
64
67
|
|
|
@@ -177,7 +180,7 @@ export async function runCodexMcpSession({
|
|
|
177
180
|
model = null,
|
|
178
181
|
webSearch = true,
|
|
179
182
|
sandbox = "workspace-write",
|
|
180
|
-
approvalPolicy = "
|
|
183
|
+
approvalPolicy = "on-request",
|
|
181
184
|
resumeThreadId = null,
|
|
182
185
|
timeoutMs = DEFAULT_TIMEOUT_MS,
|
|
183
186
|
pollIntervalMs = DEFAULT_PERMISSION_POLL_MS,
|
|
@@ -511,6 +514,15 @@ export async function runCodexMcpSession({
|
|
|
511
514
|
if (resumeThreadId) sessionId = resumeThreadId;
|
|
512
515
|
const result = await rpc("tools/call", { name: toolCall.name, arguments: toolCall.arguments });
|
|
513
516
|
status = result?.isError === true ? 1 : 0;
|
|
517
|
+
// 1268: configuration failures arrive as tool errors, without agent events.
|
|
518
|
+
// Keep their explanation ahead of incidental stderr (such as deprecation
|
|
519
|
+
// warnings), so the room shows the reason the run actually failed.
|
|
520
|
+
if (result?.isError === true) {
|
|
521
|
+
const detail = (Array.isArray(result.content) ? result.content : [])
|
|
522
|
+
.filter((item) => item?.type === "text" && typeof item.text === "string")
|
|
523
|
+
.map((item) => item.text).join("\n").trim();
|
|
524
|
+
stderr = `${detail || "Codex tool failed without an explanation."}\n${stderr}`;
|
|
525
|
+
}
|
|
514
526
|
} catch (callError) {
|
|
515
527
|
error = spawnError ?? callError;
|
|
516
528
|
status = null;
|