Local mode: run the Planner as a full Atomic session with questions routed to Decisions
I maintainer di solito rispondono entro 1 giorno
@lavaman131 ci sta già lavorando.
Dal 29/9/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Summary
Make HARNESS=atomic run the hosted Planner as a full Atomic session instead of the isolated, Chopin-tools-only harness. There's no separate flag: choosing the atomic harness is the choice. Atomic workflows, subagents, MCP, web access, intercom, and the normal coding tools can run inside the Planner against a local checkout of the document's repository. Chopin acts as the Atomic human-input host (HostInput), so every question such a session asks (ask_user_question, extension dialogs, workflow-stage questions) is routed to Chopin's ask, so it lands in Decisions instead of a terminal.
This lets a terminal agent hand a structured planning workflow to Chopin with a single call. The whole conversation, the document, and its questions then live in Chopin, where several people can answer them.
Motivation
Today a local coding agent can create and update documents over MCP, but it can't:
- ask the room questions. Questionnaires can only come from the Planner's
ask, andupdate_documentrejects authored<Questionnaire>nodes; - let people in the document's chat talk to the agent that is doing the work;
- run its own tools or workflows inside the Planner. The
atomicharness deliberately turns off every Atomic builtin (BUILTINS_OFF) and loads no extensions, skills, or context files.
So planning is split between a terminal (questions, intent review) and Chopin (the document). That's the wrong way round for a shared review surface.
Proposal
1. The atomic harness is a full Atomic session
- No new flag or mode switch.
HARNESS=atomicalways runs the Planner as a full Atomic session, in local and hosted deployments alike. The other harnesses stay as they are. - The Atomic session:
- enables Atomic builtins (workflows, subagents, mcp, web-access, intercom) and the default coding tools, in addition to Chopin's host tools;
- loads the operator's Atomic resources (extensions, skills, prompt templates, context files) from their normal agent dir;
- uses a checkout of the channel's repository as
cwd, as below.
- Repository mapping: an operator-configured list of checkouts, or a path supplied when an agent invokes the Planner. Either way, Chopin verifies that the checkout's
originmatches the channel repository before using it. Without a verified checkout, the session runs in an empty per-channel working directory, with the same tools and no repository files. - Document the trust change clearly: choosing
HARNESS=atomicgives the Planner shell and filesystem access as the server process's user, on hosted instances too. Operators who don't want that keep usingcopilot-sdkorpi.docs/self-hosting.mdanddocs/hosted-agent.mdshould say this where the harness is chosen.
2. Chopin as the Atomic human-input host, backed by Decisions
Atomic's SDK is only the runtime. Human input goes through the host adapter the embedder binds (extensionBindings.humanInput, a HostInput with confirm, select, input, editor and questionnaire). With the atomic harness, Chopin should be that host:
questionnairebecomes a Chopinask. Questions, options, multi-select, and free text map one-to-one; answers are returned asQuestionnaireResultwith their question indices and answer kinds. This coversask_user_questionin the Planner session and in every workflow stage and nested workflow it runs, since those use the same callbacks.confirmandselectbecome single-question questionnaires;inputandeditorbecome free-text questions.- Requests carry
requestId,sessionId, and, for workflows,workflowRunIdandworkflowStageId. Chopin can use these to group a stage's questions and to show which run is asking. Questions are anchored to the blocks they concern when the caller names them; otherwise they're appended. - The
AbortSignalcancels the pending questionnaire (the card shows it was withdrawn). Durable workflow approvals stay pending when input is withdrawn, as the SDK already guarantees, so a restarted server can rebind and present them again. - An optional per-request timeout, after which the callback returns "no answer", so callers can proceed on stated assumptions.
No tool interception is needed. Nothing is terminal-specific, so the same workflow definitions run unchanged in a terminal host or in Chopin.
3. Let a local agent hand work to the Planner
- A new MCP tool, for example
invoke_planner({ id, instruction, checkout? }). It posts the instruction as a Planner turn on an existing document, attributed to the MCP caller and run under the channel's existing Planner ownership rules, and returns immediately with the document URL.checkoutonly applies to the atomic harness. Progress, questions, and results then appear in the document and its chat.
4. Fix MCP outputSchema for rename_document, archive_document, restore_document
Their output schemas are a top-level oneOf without "type": "object". The MCP spec requires an object schema, and strict clients (for example Atomic's MCP client, which uses zod validation) refuse to connect: tools[4].outputSchema.type: Invalid input: expected "object". Wrapping these as { type: "object", oneOf: [...] }, as update_document already does, fixes it.
Out of scope
- Persisting Atomic session state across server restarts beyond what the harness already does.
Open questions
- On hosted instances without a configured checkout, should Chopin clone the channel repository on demand with the owner's token instead of using an empty working directory?
- For question batches without anchors, should the batch be appended to the end of the document or collected under a single "Open questions" block?
- Lingua principale
- TypeScript
- Stelle
- 351
- Fork
- 20
- Merge medio
- 1g 34m
- PR unite (30g)
- 34
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di githubnext/chopin
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
githubnext/chopin#154 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
githubnext/chopin#149 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 78/100
githubnext/chopin#214 ·
I maintainer di solito rispondono entro 1 giorno
-
Empty paragraphs make room projection non-canonical, failing document descriptionsForse già presa @lavaman131 l’ha presa 1 giorno fa. Aperta
githubnext/chopin#211 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
githubnext/chopin#203 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di githubnext/chopin
Issue simili
-
needs:triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
ai-discovered
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
jessepollak/home#1627 ·
I maintainer di solito rispondono entro 1 giorno
-
agent-canvas bug llm priority:low ready-for-dev
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
OpenHands/OpenHands#17806 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
radius-project/ai-extensions#923 ·
I maintainer di solito rispondono entro 1 giorno