githubnext/chopinPublic

Let's compose rich plans together

Add independent conversation-driven research offers #304

MergedKrzysztof-Cieslakmerged 12 commits intomainfromrefs/pull/304/head
ConversationFiles changed
109 files changed+5303-2258
StackedSplit
AGENTS.md+18 −10
Dockerfile+2 −0
README.md+3 −0
apps/server/package.json+1 −0
apps/server/src/conversation-plan/accepted-research.ts+2 −1
apps/server/src/conversation-plan/commands.ts+8 −4
apps/server/src/conversation-plan/corrections-contributions.test.ts+1 −1
apps/server/src/conversation-plan/domain-initial.ts+3 −1
apps/server/src/conversation-plan/domain-research.ts+25 −5
apps/server/src/conversation-plan/effect-projection.ts+1 −0
apps/server/src/conversation-plan/effects-interpretation.test.ts+1 −1
apps/server/src/conversation-plan/interpret-order.test.ts+2 −2
apps/server/src/conversation-plan/interpret-research.ts+0 −84
apps/server/src/conversation-plan/interpret-types.ts+0 −13
apps/server/src/conversation-plan/interpret.ts+2 −31
apps/server/src/conversation-plan/pipeline-commitment-pending.test.ts+1 −1
apps/server/src/conversation-plan/pipeline-commitment-triage.test.ts+1 −1
apps/server/src/conversation-plan/pipeline-recommendation-1.test.ts+6 −18
apps/server/src/conversation-plan/processor-commands.ts+26 −1
apps/server/src/conversation-plan/processor-research-admission.ts+0 −125
apps/server/src/conversation-plan/processor-run.ts+0 −19
apps/server/src/conversation-plan/processor-types.ts+7 −1
apps/server/src/conversation-plan/question-research.ts+0 −123
apps/server/src/conversation-plan/question-shared.ts+1 −1
apps/server/src/conversation-plan/question-triage.ts+0 −5
apps/server/src/conversation-plan/questions.ts+0 −1
apps/server/src/conversation-plan/recent-thread-context.test.ts+6 −4
apps/server/src/conversation-plan/research-admission.ts+70 −0
apps/server/src/conversation-plan/research-brief-coordinator.test.ts+117 −0
apps/server/src/conversation-plan/research-brief-coordinator.ts+161 −0
apps/server/src/conversation-plan/research-brief-runtime.test.ts+131 −0
apps/server/src/conversation-plan/research-commands.ts+43 −1
apps/server/src/conversation-plan/research-draft-service.test.ts+57 −0
apps/server/src/conversation-plan/research-draft-service.ts+148 −0
apps/server/src/conversation-plan/research-draft.test-fixtures.ts+43 −0
apps/server/src/conversation-plan/research-interpreter.test.ts+205 −0
apps/server/src/conversation-plan/research-interpreter.ts+229 −0
apps/server/src/conversation-plan/research-offer-detection-card-focus.test.ts+0 −242
apps/server/src/conversation-plan/research-offer-detection-comparison-guards.test.ts+0 −351
apps/server/src/conversation-plan/research-offer-detection-concern-guards.test.ts+0 −257
apps/server/src/conversation-plan/research-offer-detection-positive.test.ts+0 −282
apps/server/src/conversation-plan/research-offer-detection.test-fixtures.ts+0 −348
apps/server/src/conversation-plan/research-opportunities.test.ts+171 −0
apps/server/src/conversation-plan/research-opportunities.ts+119 −0
apps/server/src/conversation-plan/research-processor.test.ts+62 −0
apps/server/src/conversation-plan/research-processor.ts+182 −0
apps/server/src/conversation-plan/research-start.test.ts+116 −0
apps/server/src/conversation-plan/research-state.test.ts+150 −0
apps/server/src/conversation-plan/research-state.ts+255 −0
apps/server/src/conversation-plan/research-validation.ts+14 −2
apps/server/src/conversation-plan/runtime.ts+49 −2
apps/server/src/conversation-plan/service-order.test.ts+4 −0
apps/server/src/conversation-plan/service.ts+10 −2
apps/server/src/conversation-plan/state-provenance.ts+21 −0
apps/server/src/conversation-plan/state-restoration.ts+2 −1
apps/server/src/conversation-plan/state-validation.test.ts+1 −1
apps/server/src/conversation-plan/state-validation.ts+162 −152
apps/server/src/harness/agents.ts+9 −0
apps/server/src/harness/copilot-sdk/adapter.test.ts+81 −2
apps/server/src/harness/web-search.test.ts+93 −3
apps/server/src/harness/web-search.ts+59 −10
apps/server/src/jobs/registry.ts+26 −19
apps/server/src/jobs/research-brief.test.ts+127 −0
apps/server/src/jobs/research-brief.ts+170 −0
apps/server/src/jobs/research-workspace.test.ts+2 −0
apps/server/src/jobs/research-workspace.ts+69 −11
apps/server/src/jobs/runner.test.ts+52 −0
apps/server/src/jobs/runner.ts+44 −9
apps/server/src/main.ts+43 −6
apps/server/src/research/request-view.test.ts+52 −0
apps/server/src/research/request-view.ts+26 −2
apps/server/src/research/service.ts+9 −4
apps/server/src/storage/postgres/conversation-restart.test.ts+26 −3
apps/web/package.json+1 −0
apps/web/src/chat/chat.tsx+5 −1
apps/web/src/chat/research-brief-editor.tsx+68 −0
apps/web/src/chat/research-draft-controller.test.ts+38 −0
apps/web/src/chat/research-draft-controller.ts+177 −0
apps/web/src/chat/research-offer-transcript.test.ts+2 −2
apps/web/src/chat/research-offer.test.ts+24 −0
apps/web/src/chat/research-offer.tsx+223 −14
apps/web/src/chat/research-transcript.ts+38 −0
apps/web/src/chat/transcript.tsx+24 −9
apps/web/src/conversation-plan/markers.tsx+17 −4
apps/web/src/conversation-plan/research-diagnostics.test.tsx+70 −0
apps/web/src/conversation-plan/research-diagnostics.tsx+99 −0
apps/web/src/room-workspace.tsx+15 −2
bun.lock+14 −0
docs/architecture.md+26 −9
docs/background-jobs.md+25 −6
docs/conversation-research.md+160 −0
docs/jev-product-extraction.md+4 −1
docs/self-hosting.md+8 −0
docs/storage.md+7 −0
e2e/jev.ts+65 −0
e2e/playwright.config.ts+11 −3
e2e/research-conversation.e2e.ts+114 −0
e2e/research-offers-ui.e2e.ts+21 −41
e2e/research-scenarios.ts+8 −0
e2e/source/playwright.config.ts+1 −0
e2e/source/research-offers.fixture.ts+98 −0
e2e/source/research-offers.native.ts+178 −0
packages/draft/package.json+10 −0
packages/draft/src/index.test.ts+32 −0
packages/draft/src/index.ts+81 −0
packages/draft/tsconfig.json+5 −0
packages/protocol/conversation-plan.d.ts+104 −2
packages/protocol/research.d.ts+2 −0
scripts/design-contract/exceptions/dynamic-web.json+1 −1