githubnext/chopinPublic

Let's compose rich plans together

Present every Atomic host input in Decisions

Return a written answer as Atomic's custom kind only where its own dialog
accepts typed text, and as typed chat on multi-select or preview questions,
so Atomic's validator accepts every answer a member can give.

Hold verbatim host input only to aggregate bounds. Normalization and the
shared draft skip per-field counts and lengths for verbatim questions, the
dialect bounds questionnaire text by the source size, and an ask that would
take the document past 256 KiB fails before any card or record exists. The
Planner's ask tool keeps its per-field limits.

Read the Atomic checkout and timeout settings only in full mode, treating
empty values as unset.

Assistant-model: Claude Opus 5.5
Assistant-workflow: goal (run 98acf681-3730-4957-b885-0d70e0e6b32a)
Assistant-verification: fail-before/pass-after passed: the 9 new tests failed with source changes stashed (InvalidHostInput, per-field QuestionErrors, config throw) and 93 of 93 passed after
Assistant-verification: bun test passed: 1727 pass, 2 PostgreSQL skips, 0 fail, 7393 assertions across 196 files
Assistant-verification: focused bun test passed: 294 tests in harness, question, dialect and config, including a full Atomic session answered through Decisions
Assistant-verification: aggregate-bound mutation check passed: disabling the document fit check made the oversize dialog test time out; source restored byte-for-byte
Assistant-verification: bun run types passed: all workspaces and E2E
Assistant-verification: bun run fix and bun run ci passed: formatting inspected; no errors, one existing lint warning and no new design findings
Assistant-verification: relative documentation links passed: 27 links and anchors resolved with exact casing
User-preference: "Atomic's SDK is the runtime and the host supplies human input; Chopin implements HostInput rather than intercepting tools"
User-preference: "In local mode the Planner may run as a full Atomic session so workflows run inside Chopin with questions in Decisions"
Co-authored-by: Alex Lavaee <lavaman131@github.com>
ALAlex Lavaee authored
fa7a621Patch
Parent0b22a89
19 files changed+551-153
StackedSplit
apps/server/src/config.test.ts+31 โˆ’0
apps/server/src/config.ts+10 โˆ’10
apps/server/src/harness/atomic/full.test.ts+44 โˆ’2
apps/server/src/harness/atomic/human-input.test.ts+147 โˆ’103
apps/server/src/harness/atomic/human-input.ts+3 โˆ’1
apps/server/src/plan/room.ts+13 โˆ’0
apps/server/src/questions/service-ask.ts+11 โˆ’1
apps/server/src/testing/decisions.ts+128 โˆ’0
docs/hosted-agent.md+20 โˆ’8
docs/self-hosting.md+7 โˆ’4
packages/dialect/src/dialect.test.ts+14 โˆ’0
packages/dialect/src/dialect.ts+5 โˆ’5
packages/dialect/src/index.ts+1 โˆ’0
packages/dialect/src/limits.ts+10 โˆ’4
packages/question/src/draft.ts+1 โˆ’1
packages/question/src/limits.ts+3 โˆ’1
packages/question/src/question.test.ts+49 โˆ’3
packages/question/src/react/question-view.test.ts+23 โˆ’0
packages/question/src/schema.ts+31 โˆ’10