{
  "notes": "EPISODE 4, 2026-10-27. Read goal.json, both orchestration references, and all 16 b03 profiles. No requester notes/refusals; all 22 items accepted and settled. Actual use is 22/30. Spawn 5 items below: projected 27/30, leaving 3 and episodes 5-6. finish=false: comparative ranking and a fully cited integration specification are still missing. No batch needs cancellation.\n\nDECISIONS: rank ten finalists; prepare Kilo/Gemini integration specs; audit Hermes/Letta evidence. Public-source research, no predetermined winner. Ranking cannot see concurrent audits: reconcile in ep5. Request all 22 prior +5 new results (27/30); original profiles contain citations. No merging.\n\nDECISION CRITERIA: headless completion after initial account setup; enforceable filesystem/shell/egress boundary; trustworthy per-job usage including child/auxiliary calls; tool restriction; provider and subscription flexibility; delegation and maintenance. Distinguish permissions/worktrees from OS isolation, tool sandbox from whole-process isolation, initial consent from unattended runs, and account OAuth/API billing from subscription access. Exclude Claude Code/Codex harnesses, not native ChatGPT model adapters. Report unsupported/missing information explicitly; do not turn bounded searches into universal negatives.\n\nMAJOR CORRECTIONS TO EARLIER MEMORY:\n- OpenCode 2 replaces 1.x in the main comparison, not an extra independent candidate. v2.1.4 is npm @opencode/cli, published 2026-10-23; GitHub has tags/Atom entries but no v2 Release object. 1.x opencode-ai remains 1.19.4. V2 run has NO --dir: launch with cwd, optionally --standalone; ordered permissions/policies differ from V1; shell runs with host authority. Use profiles-round2/opencode-v2 and https://opencode.ai/v2/docs/migrate-v1/ ; https://opencode.ai/v2/docs/permissions/ ; https://registry.npmjs.org/@opencode%2fcli . Do not transplant old flags/config.\n- Kilo documents opt-in Bubblewrap/Seatbelt write+tool-egress confinement; broad reads and host inference/plugins/MCP lifecycle remain; Windows unsupported. JSON step_finish stream filters to root session; child usage must be collected separately. --auto behavior in main conflicts with prose docs. integration-finalists/kilo must check stable v7.8.18. Sources in profiles-round2/kilo-cli: sandboxing.md and run.ts.\n- Continue is explicitly unmaintained/read-only despite archived=false and recent pushed_at. npm CLI 1.5.47 (2026-06-18) differs from IDE tags. Current source removes Hub auth; docs are stale. Headless Bash defaults allow, Write path-glob claims are unsupported in inspected parser; beta children replace permissions with wildcard allow. Cite https://raw.githubusercontent.com/continuedev/continue/main/README.md and profiles-round2/continue-cli; exclude from top five.\n- Current OpenHands main is Agent Canvas, not a finite prompt CLI. --backend-only starts services. SDK metrics/delegation/OAuth do not establish a ready-made CLI. Old separate OpenHands-CLI is unmaintained. Keep both reports and distinguish current Canvas v1.33.0 (2026-10-23) from old CLI 1.16.0. https://raw.githubusercontent.com/OpenHands/OpenHands/main/bin/agent-canvas.mjs ; profiles-round2/openhands-current.\n\nRESULT DIGEST (all are profile findings, source-backed but not execution-tested; full citations in profiles-round2/<key>):\n- goose: Apache-2.0 v1.56.0 2026-10-23. run -t/-i, inherited cwd, auto default, JSON usage+optional cost, parallel children, broad providers/subscriptions. Docker/extensions options; security guide unread, no default OS/network boundary established. Now aaif-goose. Null usage is not zero.\n- cline-cli: Apache-2.0 cli-v3.0.74 2026-10-26, not IDE tag. --json --cwd, auto-approval default, run_result usage/aggregateUsage. 'Sandbox' only isolates state; hooks/SDK finer controls. --yolo disables children/teams. Broad providers, ChatGPT OAuth; headless Claude wrapper unconfirmed; abort may exit 0.\n- qwen-code: Apache-2.0, v0.26.1 2026-10-24; preview .26.2-preview.0 2026-10-26. -p, launch cwd, JSON plus per-call token journals; permissions and sandbox options, bwrap workspace-write/closed network still broad reads. Parallel Agent/team support. Broad protocols/local endpoints. Qwen OAuth free tier discontinued 2026-04-15 per auth docs; current subscription plans require API keys. https://qwenlm.github.io/qwen-code-docs/en/users/configuration/auth/\n- kimi-code: MIT Node 2.3.3 2026-10-26, not old Python CLI. -p forces auto; conflicts with --auto/--yolo/--plan. Static denies; no OS boundary. Ordinary print lacks totals; per-agent usage.record journals or /goal tokensUsed. Agent children work; AgentSwarm unavailable headlessly. Kimi device login. Extra metering/containment keeps it below shortlist.\n- mistral-vibe: Apache-2.0 v3.0.3 2026-10-26; main=tag. Workdir/prompt-file, run limits/export.json. Root usage excludes children; child lifetime totals need resume baselines. Cost/budgets estimates. Tool controls; experimental external agent-socket isolation. Parallel children, compatible providers/local models, Mistral login. Strong finalist.\n- pi: MIT v1.4.0 2026-10-21, earendil-works/pi. Print/JSON/RPC, tool filters, event/session usage, optional official child-agent extension, broad providers/subscriptions. Core unsandboxed; example sandbox only Bash and can fail open. External isolation documented. JSON exit 0 may mask model error. Strong finalist.\n- letta-code: Apache-2.0 GitHub v0.34.24 2026-10-25; npm .34.25 date missing. Print/JSON usage, tool rules/children/providers/subscriptions. Summary-based near-quotes and local/cloud dependencies need repair; audit newest CLI date too.\n- forgecode: Apache-2.0 v2.14.0 2026-10-01; npm older. forge -C -p; restrictions off by default; --sandbox is worktree. Children/providers/OAuth supported. Stats tokens may cover last reply only; meter dumps. Model errors may exit 0; docs 404. Below shortlist.\n- hermes-agent: MIT v0.22.5 2026-10-23; PyPI older. One-shot/JSON usage, Docker terminal/network-off, delegates, broad providers/subscriptions. Profile partly read long docs: audit stable feature availability, exact accounting and isolation coverage before top-five selection.\n- gptme: MIT v0.35.1 2026-10-15; dev prerelease 2026-10-22. -n -w, JSON messages/exit usage; children/providers/ChatGPT/SuperGrok. Sandbox covers shell OR Python, not all tools/file writes. Master may postdate stable. Finalist with caveats.\n- zcode: Apache-2.0; -p --cwd, yolo bypasses ordinary rules, tool removal still works. Turn usage/children; background settling/accounting unclear. GitHub v3.14.3 2026-09-24 vs product 3.16.3 2026-10-23; CLI package private/unpublished. GLM OAuth. Below shortlist.\n- mini-swe-agent: MIT v2.4.6 2026-07-23. mini -t -y --exit-immediately; bash-only, optional isolation, network on by default. Trajectory cost, tokens only raw responses; independent batch runs, no native children/subscription login found. Below shortlist.\n- Retrieve pilot Aider/Gemini again. Gemini: sandbox/headless/JSON usage, Google-only. Aider: no subagents, limited shell/isolation, slower releases.\n\nEP5: read 27 requested results, reconcile ranking with both stable-version recipes and audits; choose five and one winner. If evidence suffices, finish=true immediately and carry result references into final-writing step. Otherwise spend at most 3 remaining items on specific winner-recipe gaps (or recipe for a different winner), then ep6 finish with explicit unresolved gaps. Re-request results (<=30) for writing; no more discovery. Cover 18 families, excluded/uncertain discoveries, six sourced questions each, ranked five, winner's four integration pillars. Label version/channel/date and proposals; no live validation claimed. Batch names used: discover, profile-pilot, profile-wide(refused), profiles-round2, rank-finalists, integration-finalists, evidence-repair.",
  "spawn": [
    {
      "name": "rank-finalists",
      "mode": "research",
      "brief": "Produce one comparative ranking of the five best unattended coding runtimes among these ten candidates: {{candidates}}. The use case is a prompt plus a working directory, a finite scripted run, and edited files. Claude Code and Codex themselves are excluded; native model adapters using subscription access are distinct. Work only from public official documentation, tagged source, release metadata and publisher registries. These are research entry points, not verified claims. Use a 2026-10-27 cutoff; separate release behavior from newer default-branch documentation.\nCompare each candidate on: finite headless invocation/approval behavior; shell, file-write and network controls and their actual coverage; structured token usage (root versus children/auxiliary calls, missing counts); native or optional parallel agents; provider breadth and subscription login versus API-key plans; license and newest CLI release/date. Prioritize unattended reliability, enforceable confinement, metering and tool limits; state qualitative weighting. Treat cwd/worktrees and approval rules separately from OS isolation. Distinguish one-time login from unattended runs. Do not assume OAuth means subscription billing or parent usage includes children.\nReturn JSON with as_of, comparison (ten concise rows with findings and exact supporting URLs), ranked_five (ordered 1-5, rationale and limitations), near_misses (the other five), sensitivity (what could change first place), and unresolved. Each factual premise needs a direct source URL and version scope; rank is explicitly your assessment, not a benchmark. Check Kilo sandbox and auto-approval against stable source, OpenCode v2 syntax rather than v1, Pi's optional subagents, Gemini's Google-only restriction, and Hermes/gptme stable-versus-main differences. Say not found with pages checked where evidence is absent. Deliver this one ranking document; independent parallel work is unavailable to this item.",
      "items": [
        {
          "key": "compare",
          "vars": {
            "candidates": "Kilo https://kilo.ai/docs/code-with-ai/platforms/cli ; Gemini https://geminicli.com/docs/ ; Qwen https://qwenlm.github.io/qwen-code-docs/ ; OpenCode 2 https://opencode.ai/v2/docs/ ; Mistral Vibe https://docs.mistral.ai/vibe/code/cli/ ; Pi https://pi.dev/docs/latest ; Goose https://block.github.io/goose/docs/ ; Hermes https://hermes-agent.nousresearch.com/docs/ ; Cline https://docs.cline.bot/cli/cli-reference ; gptme https://gptme.org/docs/ ."
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 40000
      }
    },
    {
      "name": "integration-finalists",
      "mode": "research",
      "brief": "Produce one source-backed integration specification for {{name}} as an unattended coding runtime. Public-documentation research only: official docs, tagged source and release/registry metadata. Entry points: {{sources}}. The provisional release is {{release}}; verify its version/date and separate stable functionality from newer source. Do not assume it will rank first.\nGive all four required integration pillars: (1) exact parameterized prompt/file input and working-directory invocation, finite completion, approval behavior, initial authentication prerequisite, exit/error/timeout handling; (2) confinement of shell commands, filesystem reads/writes and network, with boundaries and exceptions for model traffic, hooks, extensions, MCP and child agents; (3) usage capture and field schema, per-request versus cumulative totals, cache/reasoning conventions, children/auxiliary calls, resumes and missing usage, deduplication, cost estimates versus billing, and budget/timeout limitations; (4) minimal tool policy, exact supported configuration syntax, default-deny/explicit-allow precedence and interaction with automatic approval. Favor a fresh session and disabled delegation for a minimal metered recipe, then explain additions needed for parallel children.\nInclude a version-specific invocation template and minimal policy example backed by citations, plus a proposed whole-process container/VM and egress design when built-in controls are incomplete. Distinguish documented options from adapter design and untested proposals. Online inference needs an explicit route; do not claim network-none and an online model work together without one. A tool-only sandbox or a worktree is not whole-process confinement. Use symbolic parameters for deployment choices; supply no invented provider/model/account values.\nSpecific evidence to resolve: {{concerns}}\nReturn one JSON object: as_of, runtime_version, invocation, confinement, metering, tool_policy, integration_gaps, verification_plan, sources. Every factual claim and template option cites its direct public page/source, preferably pinned to the release. verification_plan is a proposed small acceptance checklist, not claimed execution results. Mark unresolved or contradictory evidence, including unavailable fields, explicitly. Do not substitute default-branch behavior for an unverified stable capability.",
      "items": [
        {
          "key": "kilo",
          "vars": {
            "name": "Kilo CLI",
            "release": "v7.8.18, 2026-10-26; npm @kilocode/cli",
            "sources": "https://github.com/Kilo-Org/kilocode ; https://kilo.ai/docs/code-with-ai/platforms/cli",
            "concerns": "Inspect sandboxing.md, agent-permissions.md, run.ts and session schema at the release. Main describes opt-in bwrap/Seatbelt, broad reads and inference/plugin/MCP exceptions; root JSON excludes child-session usage; prose and source disagree on --auto. Establish which features actually shipped and a deny policy that survives auto mode."
          }
        },
        {
          "key": "gemini",
          "vars": {
            "name": "Google Gemini CLI",
            "release": "v0.65.0, 2026-10-20; npm @google/gemini-cli",
            "sources": "https://github.com/google-gemini/gemini-cli ; https://geminicli.com/docs/",
            "concerns": "Pin headless policy and sandbox configuration; verify ask_user behavior without a TTY, default network access and command/file controls inside versus outside sandbox. Identify JSON/stream-json stats schema and whether subagents, retries and compression usage are included. Confirm Google subscription login provisioning and per-run tool restrictions."
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 30000
      }
    },
    {
      "name": "evidence-repair",
      "mode": "research",
      "brief": "Produce one corrective evidence audit for {{name}}. Work only from public official documentation, source at an identified release/commit, release APIs/Atom feeds and publisher registries. Entry points: {{sources}}. Scope for this item: {{focus}}\nUse 2026-10-27 as the cutoff. Verify a finite headless prompt-plus-directory run that leaves files, and distinguish the CLI from any SDK, service or desktop application. State what is documented, source-inferred, conflicting or not found. Quote only text you directly inspect; otherwise paraphrase with its exact URL. Keep quotations short. Do not treat default-branch features as shipped in a release without evidence. No execution claims.\nReturn JSON with as_of, identity_and_version, corrections (each: question, finding, exact supporting URL, evidence_kind, version_scope), confirmed_capabilities, unresolved (with pages checked), and ranking_implications (assessment only). Date claims must use publication timestamps with the specific channel named. Distinguish subscription login, ordinary account login and API-key plans. This one audit must provide enough direct source evidence to replace uncertain claims in a final six-question candidate profile.",
      "items": [
        {
          "key": "hermes",
          "vars": {
            "name": "Hermes Agent",
            "sources": "https://github.com/NousResearch/hermes-agent ; https://hermes-agent.nousresearch.com/docs/",
            "focus": "The prior profile only partially read long current docs. Audit the v0.22.5 stable release (reported 2026-10-23) against its actual source: -z/--usage-file and chat --oneshot/--format stream-json flags; exact final token schema and whether root totals include children, auxiliary calls, retries and cached usage. Trace Docker terminal networking/file-tool placement and delegation inheritance: which tools still run outside confinement? Check noninteractive denials/limits, toolset restrictions and subscription-auth claims that affect ranking. Flag features present only after stable; keep the audit focused on these integration risks."
          }
        },
        {
          "key": "letta",
          "vars": {
            "name": "Letta Code",
            "sources": "https://github.com/letta-ai/letta-code ; https://docs.letta.com/letta-code ; https://registry.npmjs.org/@letta-ai%2fletta-code",
            "focus": "The prior profile relied on summarized near-quotes and omitted the publication date for npm 0.34.25 (GitHub latest was v0.34.24, 2026-10-25). Recheck six fields from direct primary pages/source: headless flags/cwd/approval/completion; shell/file/network limits; actual token JSON/events and child totals; parallel agents; providers/subscription login; license/newest CLI release and date. Resolve local-agent versus mandatory Letta server/cloud dependencies and distinguish remote Managed Sandbox from local confinement. Report newest package and GitHub release separately; check whether recent package metadata actually maps to the cited source."
          }
        }
      ],
      "output": {
        "format": "json",
        "maxBytes": 24000
      }
    }
  ],
  "read": [
    "discover/angle-registries",
    "discover/angle-articles",
    "profile-pilot/aider",
    "profile-pilot/opencode",
    "profile-pilot/gemini-cli",
    "profile-pilot/openhands",
    "profiles-round2/goose",
    "profiles-round2/cline-cli",
    "profiles-round2/qwen-code",
    "profiles-round2/kilo-cli",
    "profiles-round2/kimi-code",
    "profiles-round2/mistral-vibe",
    "profiles-round2/continue-cli",
    "profiles-round2/pi",
    "profiles-round2/letta-code",
    "profiles-round2/forgecode",
    "profiles-round2/hermes-agent",
    "profiles-round2/gptme",
    "profiles-round2/zcode",
    "profiles-round2/mini-swe-agent",
    "profiles-round2/openhands-current",
    "profiles-round2/opencode-v2",
    "rank-finalists/compare",
    "integration-finalists/kilo",
    "integration-finalists/gemini",
    "evidence-repair/hermes",
    "evidence-repair/letta"
  ],
  "cancel": [],
  "wake": {
    "batches": [
      "rank-finalists",
      "integration-finalists",
      "evidence-repair"
    ],
    "afterMinutes": 90
  },
  "finish": false
}
