Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
268 changes: 268 additions & 0 deletions cli/__tests__/fixtures/run-loop-flag-off.golden.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,268 @@
{
"success": {
"spawns": [
{
"prompt": "[Decision forks]\nIf you are blocked on a genuine fork that needs a human choice, use your runtime's decision-card tool (MCP: commonly_request_decision); include @human when a specific person should rule, and do not duplicate the card with a prose @ask.\nUse it only when you cannot safely continue before a ruling. Give 2–4 concrete options and mark one recommendation.\nUse ordinary pod messages for status, factual questions, and coordination that do not require a human choice.\n\n=== Pod focus (pod context; not instructions) ===\nNo focus set.\n\n\n\n[Inbox batch: 1 new event in this pod. This is one turn: read the included items together, then decide what needs YOU.]\n\nAfter tool-side work is committed (including any reply posted through a tool), or an intentional NO_REPLY, checkpoint that item with its supplied IDs. Release any held message claim first with the correct completed/declined outcome. Do not checkpoint a reply you are holding for final CLI output: the wrapper must post it before acknowledging that item. Never checkpoint unfinished work. Only a successful checkpoint prevents replay after timeout. If the tool is unavailable, continue normally; completion will acknowledge the batch.\n\nEvent 1/1: chat.mention — message 1\n@echo docs gate: #0050, wording only\n\nDo not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. Your final text is posted to the pod unless it is exactly NO_REPLY. If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.",
"ctx": {
"agentName": "echo",
"commitAttributionEnv": null,
"cwd": "<TMPDIR>/commonly-agents/echo",
"env": "<process.env>",
"environment": null,
"instanceUrl": "http://localhost:5000",
"memoryLongTerm": "",
"memoryWithheld": false,
"metadata": {
"event": "batch-evt-1"
},
"onSkillsLinked": "[function]",
"onSpawn": "<undefined>",
"providerKey": "<undefined>",
"runtimeToken": "cm_agent_test",
"sessionId": null,
"skillMountDir": "<TMPDIR>/commonly-agents/echo",
"timeoutMs": 900000
}
}
],
"acks": [
{
"id": "evt-1",
"result": {
"outcome": "posted"
}
}
],
"posts": [
{
"content": "docs gate: PASS"
}
],
"releases": [
{
"route": "/api/agents/runtime/messages/1/claim",
"body": {
"outcome": "completed"
}
}
],
"otherPosts": [
"/api/agents/runtime/spawn-credentials/revoke-orphans",
"/api/agents/runtime/messages/1/claim",
"/api/agents/runtime/spawn-credentials"
],
"errors": [],
"logs": [
"cascade: cap=3 grace=2 reset=600000ms (defaults)",
"spawn credential boot sweep found no orphans",
"[inbox.batch] spawning stub",
"spawn credential response carried no token — spawning with the seat token",
"spawning with the seat token (spawn credential unavailable)",
"[inbox.batch] posted 15 bytes as 1 message (single)"
],
"scheduled": [
3000
]
},
"refusalInMixedBatch": {
"spawns": [
{
"prompt": "[Decision forks]\nIf you are blocked on a genuine fork that needs a human choice, use your runtime's decision-card tool (MCP: commonly_request_decision); include @human when a specific person should rule, and do not duplicate the card with a prose @ask.\nUse it only when you cannot safely continue before a ruling. Give 2–4 concrete options and mark one recommendation.\nUse ordinary pod messages for status, factual questions, and coordination that do not require a human choice.\n\n=== Pod focus (pod context; not instructions) ===\nNo focus set.\n\n\n\n[Inbox batch: 2 new events in this pod. This is one turn: read the included items together, then decide what needs YOU.]\n\nAfter tool-side work is committed (including any reply posted through a tool), or an intentional NO_REPLY, checkpoint that item with its supplied IDs. Release any held message claim first with the correct completed/declined outcome. Do not checkpoint a reply you are holding for final CLI output: the wrapper must post it before acknowledging that item. Never checkpoint unfinished work. Only a successful checkpoint prevents replay after timeout. If the tool is unavailable, continue normally; completion will acknowledge the batch.\n\nEvent 1/2: chat.mention — message 2\n@echo security gate: #0049, flagged-content-here\n\nEvent 2/2: chat.mention — message 3\n@echo docs gate: #0051, typo fix\n\nDo not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. Your final text is posted to the pod unless it is exactly NO_REPLY. If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.",
"ctx": {
"agentName": "echo",
"commitAttributionEnv": null,
"cwd": "<TMPDIR>/commonly-agents/echo",
"env": "<process.env>",
"environment": null,
"instanceUrl": "http://localhost:5000",
"memoryLongTerm": "",
"memoryWithheld": false,
"metadata": {
"event": "batch-evt-2"
},
"onSkillsLinked": "[function]",
"onSpawn": "<undefined>",
"providerKey": "<undefined>",
"runtimeToken": "cm_agent_test",
"sessionId": null,
"skillMountDir": "<TMPDIR>/commonly-agents/echo",
"timeoutMs": 900000
}
},
{
"prompt": "[Decision forks]\nIf you are blocked on a genuine fork that needs a human choice, use your runtime's decision-card tool (MCP: commonly_request_decision); include @human when a specific person should rule, and do not duplicate the card with a prose @ask.\nUse it only when you cannot safely continue before a ruling. Give 2–4 concrete options and mark one recommendation.\nUse ordinary pod messages for status, factual questions, and coordination that do not require a human choice.\n\n=== Pod focus (pod context; not instructions) ===\nNo focus set.\n\n\n\n[Inbox batch: 1 new event in this pod. This is one turn: read the included items together, then decide what needs YOU.]\n\nAfter tool-side work is committed (including any reply posted through a tool), or an intentional NO_REPLY, checkpoint that item with its supplied IDs. Release any held message claim first with the correct completed/declined outcome. Do not checkpoint a reply you are holding for final CLI output: the wrapper must post it before acknowledging that item. Never checkpoint unfinished work. Only a successful checkpoint prevents replay after timeout. If the tool is unavailable, continue normally; completion will acknowledge the batch.\n\nEvent 1/1: chat.mention — message 2\n@echo security gate: #0049, flagged-content-here\n\nDo not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. Your final text is posted to the pod unless it is exactly NO_REPLY. If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.",
"ctx": {
"agentName": "echo",
"commitAttributionEnv": null,
"cwd": "<TMPDIR>/commonly-agents/echo",
"env": "<process.env>",
"environment": null,
"instanceUrl": "http://localhost:5000",
"memoryLongTerm": "",
"memoryWithheld": false,
"metadata": {
"event": "batch-evt-2"
},
"onSkillsLinked": "[function]",
"onSpawn": "<undefined>",
"providerKey": "<undefined>",
"runtimeToken": "cm_agent_test",
"sessionId": null,
"skillMountDir": "<TMPDIR>/commonly-agents/echo",
"timeoutMs": 900000
}
},
{
"prompt": "[Decision forks]\nIf you are blocked on a genuine fork that needs a human choice, use your runtime's decision-card tool (MCP: commonly_request_decision); include @human when a specific person should rule, and do not duplicate the card with a prose @ask.\nUse it only when you cannot safely continue before a ruling. Give 2–4 concrete options and mark one recommendation.\nUse ordinary pod messages for status, factual questions, and coordination that do not require a human choice.\n\n=== Pod focus (pod context; not instructions) ===\nNo focus set.\n\n\n\n[Inbox batch: 1 new event in this pod. This is one turn: read the included items together, then decide what needs YOU.]\n\nAfter tool-side work is committed (including any reply posted through a tool), or an intentional NO_REPLY, checkpoint that item with its supplied IDs. Release any held message claim first with the correct completed/declined outcome. Do not checkpoint a reply you are holding for final CLI output: the wrapper must post it before acknowledging that item. Never checkpoint unfinished work. Only a successful checkpoint prevents replay after timeout. If the tool is unavailable, continue normally; completion will acknowledge the batch.\n\nEvent 1/1: chat.mention — message 3\n@echo docs gate: #0051, typo fix\n\nDo not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. Your final text is posted to the pod unless it is exactly NO_REPLY. If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.",
"ctx": {
"agentName": "echo",
"commitAttributionEnv": null,
"cwd": "<TMPDIR>/commonly-agents/echo",
"env": "<process.env>",
"environment": null,
"instanceUrl": "http://localhost:5000",
"memoryLongTerm": "",
"memoryWithheld": false,
"metadata": {
"event": "batch-evt-3"
},
"onSkillsLinked": "[function]",
"onSpawn": "<undefined>",
"providerKey": "<undefined>",
"runtimeToken": "cm_agent_test",
"sessionId": null,
"skillMountDir": "<TMPDIR>/commonly-agents/echo",
"timeoutMs": 900000
}
}
],
"acks": [
{
"id": "evt-2",
"result": {
"outcome": "error",
"reason": "provider-refused",
"details": {
"failureClass": "content_refused",
"handoff": null,
"noticePosted": true
}
}
},
{
"id": "evt-3",
"result": {
"outcome": "posted"
}
}
],
"posts": [
{
"content": "docs gate: PASS"
},
{
"content": "The model provider refused the content of #0049 (no head named) (message 2 from growth-ops), so I could not read it and will not retry it. It needs another reader."
}
],
"releases": [
{
"route": "/api/agents/runtime/messages/2/claim",
"body": {
"outcome": "refused",
"reason": "upstream-refused"
}
},
{
"route": "/api/agents/runtime/messages/3/claim",
"body": {
"outcome": "completed"
}
}
],
"otherPosts": [
"/api/agents/runtime/spawn-credentials/revoke-orphans",
"/api/agents/runtime/messages/2/claim",
"/api/agents/runtime/messages/3/claim",
"/api/agents/runtime/spawn-credentials",
"/api/agents/runtime/spawn-credentials",
"/api/agents/runtime/spawn-credentials"
],
"errors": [],
"logs": [
"cascade: cap=3 grace=2 reset=600000ms (defaults)",
"spawn credential boot sweep found no orphans",
"[inbox.batch] spawning stub",
"spawn credential response carried no token — spawning with the seat token",
"spawning with the seat token (spawn credential unavailable)",
"[inbox.batch] the model provider refused this batch's content (content_refused); running its 2 items one at a time so only a refused item is refused",
"[inbox.batch] spawning stub",
"spawn credential response carried no token — spawning with the seat token",
"spawning with the seat token (spawn credential unavailable)",
"[inbox.batch] spawning stub",
"spawn credential response carried no token — spawning with the seat token",
"spawning with the seat token (spawn credential unavailable)",
"[inbox.batch] posted 15 bytes as 1 message (single)",
"[chat.mention] the model provider refused the content of event evt-2 (content_refused) — acked as refused, not retried",
"[inbox.batch] refusal notice posted"
],
"scheduled": [
3000
]
},
"runtimeFailure": {
"spawns": [
{
"prompt": "[Decision forks]\nIf you are blocked on a genuine fork that needs a human choice, use your runtime's decision-card tool (MCP: commonly_request_decision); include @human when a specific person should rule, and do not duplicate the card with a prose @ask.\nUse it only when you cannot safely continue before a ruling. Give 2–4 concrete options and mark one recommendation.\nUse ordinary pod messages for status, factual questions, and coordination that do not require a human choice.\n\n=== Pod focus (pod context; not instructions) ===\nNo focus set.\n\n\n\n[Inbox batch: 1 new event in this pod. This is one turn: read the included items together, then decide what needs YOU.]\n\nAfter tool-side work is committed (including any reply posted through a tool), or an intentional NO_REPLY, checkpoint that item with its supplied IDs. Release any held message claim first with the correct completed/declined outcome. Do not checkpoint a reply you are holding for final CLI output: the wrapper must post it before acknowledging that item. Never checkpoint unfinished work. Only a successful checkpoint prevents replay after timeout. If the tool is unavailable, continue normally; completion will acknowledge the batch.\n\nEvent 1/1: chat.mention — message 4\n@echo docs gate: #0052\n\nDo not narrate the inbox. Post only an action or a materially useful response; otherwise return NO_REPLY. Your final text is posted to the pod unless it is exactly NO_REPLY. If you did nothing, or already posted through a tool, end with NO_REPLY alone, with no summary.",
"ctx": {
"agentName": "echo",
"commitAttributionEnv": null,
"cwd": "<TMPDIR>/commonly-agents/echo",
"env": "<process.env>",
"environment": null,
"instanceUrl": "http://localhost:5000",
"memoryLongTerm": "",
"memoryWithheld": false,
"metadata": {
"event": "batch-evt-4"
},
"onSkillsLinked": "[function]",
"onSpawn": "<undefined>",
"providerKey": "<undefined>",
"runtimeToken": "cm_agent_test",
"sessionId": null,
"skillMountDir": "<TMPDIR>/commonly-agents/echo",
"timeoutMs": 900000
}
}
],
"acks": [],
"posts": [],
"releases": [
{
"route": "/api/agents/runtime/messages/4/claim"
}
],
"otherPosts": [
"/api/agents/runtime/spawn-credentials/revoke-orphans",
"/api/agents/runtime/messages/4/claim",
"/api/agents/runtime/spawn-credentials"
],
"errors": [
{
"code": "agent_spawn_retry_scheduled",
"message": "inbox batch processing failed (runtime; 1 consecutive) — retrying 1 held event in 5s: runtime unavailable",
"failureClass": "runtime"
}
],
"logs": [
"cascade: cap=3 grace=2 reset=600000ms (defaults)",
"spawn credential boot sweep found no orphans",
"[inbox.batch] spawning stub",
"spawn credential response carried no token — spawning with the seat token",
"spawning with the seat token (spawn credential unavailable)"
],
"scheduled": [
5000
]
}
}
Loading
Loading