From af9be7f6632c9647426edb8d4ff1873d5f4a9458 Mon Sep 17 00:00:00 2001 From: hshum Date: Sun, 19 Jul 2026 17:14:16 -0700 Subject: [PATCH 1/5] =?UTF-8?q?feat(platform):=20NodeKit=20standard=20tree?= =?UTF-8?q?=20phase=200=20=E2=80=94=20declarative=20adoption?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adopts the NodeKit Agent Application Standard without moving a single file: - nodekit.yaml: repo identity/ownership/lifecycle + a layout map declaring where each standard concern lives TODAY, with honest conformance flags (forbidVendoredRuntime:false — this harness is the migration source; requireCompiledManifest:false — no compiler exists, no faked .nodeagent/) - nodeagent.yaml: live app composition (authoring dir, convex backend, entity-intelligence pack, four required eval commands that already run) - agent/: filesystem-first authored surface, md/yaml only. instructions.md mirrors chatRuns.ts; policies capture the real approval gates, SSRF blocklist, and budget envelopes with Source: pointers; subagents/ and tools/ are indexes to the code, preventing drifting second copies - packs/entity-intelligence/pack.yaml: capability declared at current paths - docs/architecture/STANDARD_REPO_TREE.md: full slot-by-slot mapping, declared violations, and the staged physical phases (src->apps/web and convex->backend deferred — Vite/Vercel/Convex-CLI constraints noted) Phase-0 rule encoded in agent/README.md: code remains source of truth; no .ts under agent/; nothing imports this surface until the compiler phase. tsc clean; design-system guards green; zero runtime impact. Co-Authored-By: Claude Fable 5 --- agent/README.md | 22 ++++++++ agent/instructions.md | 35 ++++++++++++ agent/policies/approvals.yaml | 21 +++++++ agent/policies/budgets.yaml | 20 +++++++ agent/policies/egress.yaml | 21 +++++++ agent/subagents/README.md | 13 +++++ agent/tools/README.md | 20 +++++++ docs/architecture/STANDARD_REPO_TREE.md | 75 +++++++++++++++++++++++++ nodeagent.yaml | 47 ++++++++++++++++ nodekit.yaml | 47 ++++++++++++++++ packs/entity-intelligence/pack.yaml | 35 ++++++++++++ 11 files changed, 356 insertions(+) create mode 100644 agent/README.md create mode 100644 agent/instructions.md create mode 100644 agent/policies/approvals.yaml create mode 100644 agent/policies/budgets.yaml create mode 100644 agent/policies/egress.yaml create mode 100644 agent/subagents/README.md create mode 100644 agent/tools/README.md create mode 100644 docs/architecture/STANDARD_REPO_TREE.md create mode 100644 nodeagent.yaml create mode 100644 nodekit.yaml create mode 100644 packs/entity-intelligence/pack.yaml diff --git a/agent/README.md b/agent/README.md new file mode 100644 index 00000000..aa3adf43 --- /dev/null +++ b/agent/README.md @@ -0,0 +1,22 @@ +# agent/ — authored agent surface (phase 0) + +This directory is the NodeKit-standard, filesystem-first authoring surface for +the NodeBench agent application. **Phase 0 rule: this surface documents the +live system; the code remains the source of truth.** Nothing here is loaded at +runtime yet — there is no manifest compiler, so we do not pretend there is +(`requireCompiledManifest: false` in `nodekit.yaml`, no fake `.nodeagent/`). + +Every file carries a `Source:` pointer to the code that actually enforces it. +When the `@nodeagent` compiler exists, the direction reverses: these files +become the source and the pointers become generated output. + +| Standard slot | Status | Lives today at | +|---|---|---| +| instructions.md | authored here | mirrors `convex/domains/redesign/chatRuns.ts` | +| policies/ | authored here | mirrors guards in server/, convex/, goals/ | +| subagents/ | index only | `convex/domains/agents/**` orchestrator-workers | +| tools/ | index only | `packages/mcp-local/src/tools/**` (304 tools) | +| planner/ context/ memory/ hooks/ channels/ schedules/ sandbox/ | not yet authored | see `docs/architecture/STANDARD_REPO_TREE.md` mapping | + +Do not add `.ts` files here in phase 0 — the app's tsconfig does not include +this directory and nothing should import from it until the compiler phase. diff --git a/agent/instructions.md b/agent/instructions.md new file mode 100644 index 00000000..7b4b4708 --- /dev/null +++ b/agent/instructions.md @@ -0,0 +1,35 @@ +# NodeBench orchestrator instructions + +Source: `convex/domains/redesign/chatRuns.ts` (system prompts, +`responseShapeSystemInstructions`, `applyDeterministicResponsePolicy`) — +that file is authoritative; this is the authored mirror. + +## Identity + +You are the NodeBench entity-intelligence agent. You synthesize answers about +companies, markets, and questions **with sources**, turn each run into a +reusable artifact (a receipt), and watch for change later. You are not a +chatbot that answers once. + +## Honesty contract (non-negotiable, enforced in code) + +- Never fabricate verification badges, trace steps, telemetry, or scores. + Honest-empty beats fake-full: if a value was not computed, omit it. +- Failures render as failures. A blocked fetch is reported as a blocked fetch, + with the named reason. +- Refusals carry named reasons (`describeCanonicalAnswerFit` reasons array). +- Every factual claim that a reader could act on carries a citation to an + evidence row; sentence-level superlatives are gated on cited evidence. + +## Response shaping + +Detect the requested shape from the user's prompt — title, bullets, sentence, +paragraph, word-limit, JSON, table — and obey it deterministically. The shape +detector and its exhaustive switch live in `chatRuns.ts`; new shapes require a +detector case, a system instruction, AND a guard test. + +## Output anatomy + +Prose leads. Reasoning, tool calls, and sources collapse into the message +(`ChatAssistantMessage` — the ONE canonical renderer for chat surface, receipt +page, and panel). Do not emit memo furniture in conversation. diff --git a/agent/policies/approvals.yaml b/agent/policies/approvals.yaml new file mode 100644 index 00000000..1e531e0d --- /dev/null +++ b/agent/policies/approvals.yaml @@ -0,0 +1,21 @@ +# Human-approval gates. Source: goals/HARD_GATES.md + .claude/rules +# (self_improvement_loop, backend_contract_migration). Enforced by process + +# CI branch protection today, not by a runtime policy engine. +apiVersion: nodeagent.dev/v1 +kind: Policy +metadata: { name: approvals } +spec: + human_required: + - production_deploy # CI-gated PR merge only; never out-of-band convex deploy + - destructive_migration + - auth_changes + - billing_changes + - permission_rule_changes # public/private visibility rules + - data_deletion + - legal_privacy_copy + - external_publish # LinkedIn posts, public submissions + - secrets_management + automatic: + - research_and_docs + - additive_schema_fields # must be v.optional and announced (AGENT_COORDINATION.md) + - ci_gated_pr_merge # gh pr merge --auto --squash diff --git a/agent/policies/budgets.yaml b/agent/policies/budgets.yaml new file mode 100644 index 00000000..c03274e5 --- /dev/null +++ b/agent/policies/budgets.yaml @@ -0,0 +1,20 @@ +# Budget envelopes. Source: server/mcpAuth.ts (gateway limits), server/pipeline +# (judge latency budget), .claude/rules/orchestrator_workers.md (per-subagent caps). +apiVersion: nodeagent.dev/v1 +kind: Policy +metadata: { name: budgets } +spec: + gateway: + rate_limit_per_minute: 100 + idle_timeout_minutes: 30 + close_codes: { auth: 4001, rate_limit: 4002, timeout: 4003 } + run: + judge_latency_budget_ms: 30000 # latencyWithinBudget gate default + timeout_pattern: AbortController + checkpoint gates between async stages + subagent: # every spawn caps all three (orchestrator_workers rule) + wall_clock: bounded + output_tokens: bounded + tool_calls: bounded + retries: + max_per_subagent: 3 + backoff: exponential_with_jitter # 2s / 6s / 18s (+jitter), async_reliability rule diff --git a/agent/policies/egress.yaml b/agent/policies/egress.yaml new file mode 100644 index 00000000..0ab14cf6 --- /dev/null +++ b/agent/policies/egress.yaml @@ -0,0 +1,21 @@ +# Network egress policy. Source: SSRF guards per .claude/rules/agentic_reliability.md +# (checklist item 5), enforced in server fetch paths (URL validation before fetch) +# and bounded reads (item 6). +apiVersion: nodeagent.dev/v1 +kind: Policy +metadata: { name: egress } +spec: + protocols: [https, http] + deny_hosts: # RFC1918 + link-local + metadata — hard blocklist + - localhost + - "127.0.0.0/8" + - "10.0.0.0/8" + - "172.16.0.0/12" + - "192.168.0.0/16" + - "169.254.0.0/16" + - "0.0.0.0" + - "[::1]" + - metadata.google.internal + response_limits: + max_bytes_external_body: 5242880 # BOUND_READ — cancel stream on overflow + credentials_in_url: forbidden diff --git a/agent/subagents/README.md b/agent/subagents/README.md new file mode 100644 index 00000000..5f793142 --- /dev/null +++ b/agent/subagents/README.md @@ -0,0 +1,13 @@ +# subagents/ — index (phase 0) + +The orchestrator-workers implementation lives in `convex/domains/agents/**` +(sub-agent configs, trace types, parallel task trees) per +`.claude/rules/orchestrator_workers.md`: one orchestrator + N sub-agents with +fresh context, each with a scoped task, a tool allowlist, a budget envelope, +and a dedicated scratchpad section. Failure is bounded output + a failure +marker — never silent. + +Standard-shape authoring (`/agent.yaml` + `instructions.md` + +`tools.allow.yaml` + `output.schema`) lands when the runtime consumes authored +definitions. Until then this index prevents a second, drifting copy of the +sub-agent contracts. diff --git a/agent/tools/README.md b/agent/tools/README.md new file mode 100644 index 00000000..96109437 --- /dev/null +++ b/agent/tools/README.md @@ -0,0 +1,20 @@ +# tools/ — index (phase 0) + +The tool surface is `packages/mcp-local/src/tools/**` — 304 tools across 50 +domains, registered in `toolRegistry.ts` (`{name, description, inputSchema, +handler}`), discovered progressively via `discover_tools` / +`get_tool_quick_ref` / `get_workflow_chain`. + +Mapping onto the standard verb taxonomy (for the future authored split): + +| Standard verb | Today's domains (examples) | +|---|---| +| read/ | web fetch/search, entity read, memory/JIT retrieval tools | +| analyze/ | deep-sim, benchmarks, trajectory scoring, judge tools | +| propose/ | drafting, memo/report generation, LinkedIn drafts | +| mutate/ | Convex writes, spreadsheet/document edits, sync tools | +| verify/ | verification cycles, eval harness, watchdog, live checks | + +Conformance note: `toolRegistry.ts` is a hand-maintained global registry — +standard rule 4 ("no manually maintained global tool registry") is a known +violation, resolved by the generated-registry compiler phase, not by hand. diff --git a/docs/architecture/STANDARD_REPO_TREE.md b/docs/architecture/STANDARD_REPO_TREE.md new file mode 100644 index 00000000..7a1517f9 --- /dev/null +++ b/docs/architecture/STANDARD_REPO_TREE.md @@ -0,0 +1,75 @@ +# NodeBench × NodeKit Standard Repo Tree + +Status: **Phase 0 adopted** (declarative — manifests + authored surface, zero +file moves). This doc is the mapping between the NodeKit Agent Application +Standard tree and where each concern lives in this repo, plus the staged plan +for physical conformance. + +Prior art: NodeKit Agent Application Standard (node-platform); Eve +filesystem-first authoring (`apps/eve-agent/agent/`); 2026-07-19 harness audit +of eve / NodeAgent / NodeRoom. + +## Phase 0 (this PR) — declarative adoption + +Added, all additive and runtime-inert: + +``` +nodekit.yaml repo identity, ownership, lifecycle, layout map, honest conformance flags +nodeagent.yaml app composition: authoring dir, runtime, backend, pack, required evals +agent/ authored surface (md/yaml only; code stays source of truth) +├── README.md phase-0 rules — no fake compiled output, Source: pointers mandatory +├── instructions.md orchestrator instructions (mirrors chatRuns.ts) +├── policies/{approvals,egress,budgets}.yaml +├── subagents/README.md index → convex/domains/agents orchestrator-workers +└── tools/README.md index → packages/mcp-local (304 tools) + verb-taxonomy map +packs/entity-intelligence/pack.yaml capability declared at current locations +``` + +Explicit non-goals of phase 0: no `.nodeagent/` (no compiler exists — we do not +fake generated output), no `.ts` under `agent/` (tsconfig excludes it; nothing +may import it), no file moves. + +## Full mapping (standard slot → today) + +Legend: `✓` conformant · `◐` exists at non-standard location · `✗` missing + +| Standard | State | Today | +|---|---|---| +| `nodekit.yaml` / `nodeagent.yaml` | ✓ (phase 0) | repo root | +| `AGENTS.md`, `README.md`, `components.json` | ✓ | repo root | +| `.claude/` agents·skills·rules | ✓ | richest in the family | +| `agent/` authored surface | ◐ | phase-0 mirror; truth in `convex/domains/redesign/chatRuns.ts`, `convex/domains/agents/**`, `server/pipeline/**` | +| `packs/` | ◐ | `packs/entity-intelligence/pack.yaml` declares content spread across convex/, packages/, server/ | +| `integrations/pi-ai` | ✗ | provider seam = `shared/llm/modelCatalog.ts` direct | +| `apps/web/src` | ◐ | `src/` at root (Vite root) | +| `backend/convex` | ◐ | `convex/` at root (Convex CLI default) | +| `evals/{benchmark,conformance,production,smoke}` | ◐ | `packages/mcp-local/src/benchmarks`, `tests/e2e`, `scripts/verify-live.ts`, dogfood scripts | +| `proof/` | ◐ | `docs/design/ui-contract/` (evidence folders + `manifest.schema.json`) | +| `adw/` | ◐ | `scripts/improvement-loop/` + `goals/` (+ `HARD_GATES.md`) | +| `fixtures/` | ◐ | spread through test dirs; deterministic fixtures exist | +| `workers/` | ◐ | `server/` (voice, gateway) | +| `.nodeagent/` generated | ✗ | blocked on the manifest compiler (deliberate) | +| `packages/mcp-local` etc. | ★ keep | NodeBench-specific distribution artifact; standard-compatible | + +## Known conformance violations (declared, not hidden) + +1. **Repo-local runtime** — this repo's harness predates NodeAgent and is a + *migration source*, not a vendored copy (`forbidVendoredRuntime: false`). + Flips after the ecosystem phase-2 extraction (NodeRoom runtime → NodeAgent) + and this repo consumes `@nodeagent/runtime`. +2. **Hand-maintained global tool registry** (`toolRegistry.ts`) — standard + rule 4; resolved by the generated-registry compiler, not by hand. +3. **modelCatalog duplication** — copies exist in NodeRoom and NodeAgent; + resolved by `@nodeagent/providers` extraction. + +## Physical phases (each gated, none started) + +| Phase | Move | Constraint to respect | +|---|---|---| +| 1 | `evals/`, `proof/`, `fixtures/`, `adw/` consolidation | script/CI path updates only — low risk, do first | +| 2 | `src/` → `apps/web/src`; `convex/` → `backend/convex` | Vite root + Vercel config + tsconfig paths + `convex.json` functions path; import churn across hundreds of files; MUST follow expand-contract discipline and land between deploys | +| 3 | `agent/` becomes compiled truth; `.nodeagent/` generated | blocked on `@nodeagent` manifest compiler | +| 4 | pack extraction (`packs/entity-intelligence` gains real content) | mirrors NodeSlide layering: core/pack/adapter/react split | + +Rule for all phases: **build every new capability against the standard +locations from now on**; never move files and change behavior in the same PR. diff --git a/nodeagent.yaml b/nodeagent.yaml new file mode 100644 index 00000000..3bda337d --- /dev/null +++ b/nodeagent.yaml @@ -0,0 +1,47 @@ +# NodeAgent application composition — phase 0 (declares the LIVE system). +# The runtime engine is repo-local today; "engine: nodeagent-native" becomes +# accurate only after the NodeRoom->NodeAgent runtime extraction lands and this +# repo consumes @nodeagent/runtime. Until then this manifest documents reality. +apiVersion: nodeagent.dev/v1 +kind: AgentApplication + +metadata: + name: nodebench-entity-intelligence + version: 1.0.0 + +spec: + authoring: + directory: ./agent + # Source of truth remains code until a manifest compiler exists: + # convex/domains/redesign/chatRuns.ts (orchestrator prompts + response shapes) + # convex/domains/agents/** (orchestrator-workers, trace types) + # server/pipeline/** (judge gates, projection writer) + + runtime: + engine: repo-local # target: nodeagent-native + profile: production + + backend: + adapter: convex + path: ./convex + + packs: + - ./packs/entity-intelligence/pack.yaml + + orchestration: + planner: orchestrator-workers # .claude/rules/orchestrator_workers.md + maxConcurrentSubagents: 10 # harness lane cap + + policies: + ref: ./agent/policies + + evaluations: + required: + - id: conformance + command: npm run test:e2e:check # ui-contract runner (Tier B per PR) + - id: smoke + command: npm run dogfood:verify:smoke + - id: benchmark + command: npx tsx packages/mcp-local/src/benchmarks/searchQualityEval.ts + - id: production + command: npm run verify-live diff --git a/nodekit.yaml b/nodekit.yaml new file mode 100644 index 00000000..8e89d10c --- /dev/null +++ b/nodekit.yaml @@ -0,0 +1,47 @@ +# NodeKit repository contract — phase 0 (declarative adoption, no file moves). +# Standard: NodeKit Agent Application Standard (node-platform). +# Honest posture: this repo predates the standard; several concerns live at +# legacy paths. Each is declared where it IS, not where the standard wants it. +apiVersion: nodekit.dev/v1 +kind: Repository + +metadata: + name: nodebench-ai + github: HomenShum/NodeBenchAI + role: domain-application # registry currently says legacy-product; this manifest is the correction proposal + status: production # live at https://www.nodebenchai.com, actively shipped + +spec: + ownership: + runtime: NodeAgent # target owner; today the harness is repo-local (see conformance notes) + trace: NodeTrace + memory: NodeMem + proof: NodeProof + + lifecycle: + bootstrap: npm install + demo: npm run dev + check: npm run test:run + proof: npm run verify-live + + # Where standard-tree concerns actually live today (migration map). + layout: + agentAuthoring: ./agent # phase-0 authored surface; compiled truth remains in code + packs: + - ./packs/entity-intelligence/pack.yaml + backend: ./convex # Convex CLI expects repo-root convex/; move deferred (phase 2) + web: ./src # Vite root; apps/web split deferred (phase 2) + evals: + benchmark: packages/mcp-local/src/benchmarks + conformance: tests/e2e # ui-contract-runner + surface contracts + production: scripts/verify-live.ts + proof: docs/design/ui-contract # evidence folders + manifest.schema.json + adw: scripts/improvement-loop # + goals/ (goal cards, HARD_GATES.md) + mcpDistribution: packages/mcp-local # 304-tool MCP server (npx nodebench-mcp) + + conformance: + forbidVendoredRuntime: false # repo-local harness is the MIGRATION SOURCE, not a vendored copy; + # flips to true after @nodeagent/runtime extraction (phase 2 of + # the ecosystem migration) and this repo consumes the package. + requireCompiledManifest: false # no .nodeagent/ compiler exists yet; do not fake generated output + requireProductionProof: true # scripts/verify-live.ts (Tier A) + npm run live-smoke (Tier B) diff --git a/packs/entity-intelligence/pack.yaml b/packs/entity-intelligence/pack.yaml new file mode 100644 index 00000000..22d55a37 --- /dev/null +++ b/packs/entity-intelligence/pack.yaml @@ -0,0 +1,35 @@ +# Entity-intelligence capability pack — phase 0 declaration. +# Declares the capability where it LIVES; extraction into a portable pack +# directory is a later phase (mirrors the NodeSlide layering decision). +apiVersion: nodeagent.dev/v1 +kind: CapabilityPack + +metadata: + name: entity-intelligence + version: 0.1.0 + description: > + Company/market/question intelligence: sourced synthesis, 8-section entity + workspace, diligence blocks, daily brief + narrative workflows, forecasting, + reusable run receipts, change watching. + +spec: + locations: # current sources of truth (not yet extracted) + tools: + - packages/mcp-local/src/tools # enrichment, web, memory, deep-sim domains + orchestration: + - convex/domains/redesign/chatRuns.ts # run pipeline + response policy + - convex/workflows # dailyLinkedInPost, narrative + validators: + - server/routes/search.ts # 4-layer grounding (confidence, isGrounded, citations) + - server/pipeline # diligence judge, 10-gate catalog + artifacts: + - convex/domains/redesign # chat runs as receipts (mintShowcaseRun) + - docs/design/ui-contract # UI evidence manifests + renderers: + - src/features/redesign/components/ChatAssistantMessage.tsx # THE canonical answer + evals: + benchmark: packages/mcp-local/src/benchmarks/searchQualityEval.ts # 103 queries, 18 categories + conformance: tests/e2e/ui-contract-runner.spec.ts + production: scripts/verify-live.ts + fixtures: + deterministic: true # demo conversations + QA answer seed (?qaState=answer) From b17faea7a6b9b677456a4f0b55275e780a480c89 Mon Sep 17 00:00:00 2001 From: hshum Date: Sun, 19 Jul 2026 17:31:27 -0700 Subject: [PATCH 2/5] =?UTF-8?q?wip(migration):=20physical=20moves=20only?= =?UTF-8?q?=20=E2=80=94=20convex=E2=86=92backend/convex,=20src=E2=86=92app?= =?UTF-8?q?s/web/src,=20server=E2=86=92workers/node,=20tests=E2=86=92evals?= =?UTF-8?q?,=20improvement-loop+goals=E2=86=92adw,=20ui-contract=E2=86=92p?= =?UTF-8?q?roof=20(checkpoint=201,=20imports=20not=20yet=20rewired)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- {goals => adw/goals}/AGENT_LOOP.md | 0 {goals => adw/goals}/GOVERNANCE.md | 0 {goals => adw/goals}/HARD_GATES.md | 0 {goals => adw/goals}/README.md | 0 {goals => adw/goals}/_TEMPLATE.md | 0 {goals => adw/goals}/nodebench/001-event-handoff.md | 0 .../002-self-improvement-loop-live-signal-convex.md | 0 {goals => adw/goals}/prompts/README.md | 0 {goals => adw/goals}/prompts/agent-library.md | 0 {goals => adw/goals}/reviews/.gitkeep | 0 {goals => adw/goals}/reviews/2026-06-02-weekly.md | 0 .../goals}/runtime/001-public-private-boundary.md | 0 .../goals}/runtime/003-governance-hardening.md | 0 .../scratchnode/001-first-time-user-clarity.md | 0 .../002-host-public-write-verification.md | 0 .../003-privacy-boundary-honesty-gates.md | 0 {scripts => adw}/improvement-loop/.gitignore | 0 .../convex-improvementLoop.ts.pending | 0 {scripts => adw}/improvement-loop/ledger.json | 0 {scripts => adw}/improvement-loop/run-cycle.mjs | 0 {scripts => adw}/improvement-loop/scan.mjs | 0 index.html => apps/web/index.html | 0 {src => apps/web/src}/App.tsx | 0 {src => apps/web/src}/SignInForm.tsx | 0 {src => apps/web/src}/SignOutButton.tsx | 0 {src => apps/web/src}/adapters/unifiedAdapters.ts | 0 {src => apps/web/src}/components/Editor/Editor.tsx | 0 .../web/src}/components/Editor/editor-blocks.css | 0 .../web/src}/components/FiltersToolsBar.tsx | 0 {src => apps/web/src}/components/LiveRegion.tsx | 0 .../web/src}/components/QuickCapture/index.ts | 0 {src => apps/web/src}/components/SkipLinks.tsx | 0 .../web/src}/components/TokenUsageBadge.tsx | 0 .../web/src}/components/ai-elements/artifact.tsx | 0 .../web/src}/components/ai-elements/attachments.tsx | 0 .../components/ai-elements/chain-of-thought.tsx | 0 .../web/src}/components/ai-elements/checkpoint.tsx | 0 .../src}/components/ai-elements/code-block.test.tsx | 0 .../web/src}/components/ai-elements/code-block.tsx | 0 .../src}/components/ai-elements/confirmation.tsx | 0 .../web/src}/components/ai-elements/context.tsx | 0 .../src}/components/ai-elements/conversation.tsx | 0 .../web/src}/components/ai-elements/image.tsx | 0 .../src}/components/ai-elements/inline-citation.tsx | 0 .../web/src}/components/ai-elements/message.tsx | 0 .../src}/components/ai-elements/model-selector.tsx | 0 .../src}/components/ai-elements/open-in-chat.tsx | 0 .../web/src}/components/ai-elements/plan.tsx | 0 .../src}/components/ai-elements/prompt-input.tsx | 0 .../web/src}/components/ai-elements/queue.tsx | 0 .../web/src}/components/ai-elements/reasoning.tsx | 0 .../web/src}/components/ai-elements/shimmer.tsx | 0 .../web/src}/components/ai-elements/snippet.tsx | 0 .../web/src}/components/ai-elements/sources.tsx | 0 .../components/ai-elements/streamdown-renderer.tsx | 0 .../web/src}/components/ai-elements/suggestion.tsx | 0 .../web/src}/components/ai-elements/task.tsx | 0 .../web/src}/components/ai-elements/tool.tsx | 0 .../web/src}/components/ai-elements/web-preview.tsx | 0 .../ai-ui/PrimitiveMigration.guard.test.ts | 0 .../ai-ui/ResidualControlsMigration.guard.test.ts | 0 .../web/src}/components/ai-ui/accordion.tsx | 0 {src => apps/web/src}/components/ai-ui/alert.tsx | 0 {src => apps/web/src}/components/ai-ui/badge.tsx | 0 .../web/src}/components/ai-ui/button-group.tsx | 0 {src => apps/web/src}/components/ai-ui/button.tsx | 0 {src => apps/web/src}/components/ai-ui/card.tsx | 0 {src => apps/web/src}/components/ai-ui/carousel.tsx | 0 {src => apps/web/src}/components/ai-ui/checkbox.tsx | 0 .../web/src}/components/ai-ui/collapsible.tsx | 0 {src => apps/web/src}/components/ai-ui/command.tsx | 0 .../web/src}/components/ai-ui/context-menu.tsx | 0 {src => apps/web/src}/components/ai-ui/dialog.tsx | 0 .../web/src}/components/ai-ui/dropdown-menu.tsx | 0 .../web/src}/components/ai-ui/hover-card.tsx | 0 .../web/src}/components/ai-ui/input-group.tsx | 0 {src => apps/web/src}/components/ai-ui/input.tsx | 0 {src => apps/web/src}/components/ai-ui/popover.tsx | 0 {src => apps/web/src}/components/ai-ui/progress.tsx | 0 .../web/src}/components/ai-ui/scroll-area.tsx | 0 {src => apps/web/src}/components/ai-ui/select.tsx | 0 .../web/src}/components/ai-ui/separator.tsx | 0 {src => apps/web/src}/components/ai-ui/sheet.tsx | 0 {src => apps/web/src}/components/ai-ui/spinner.tsx | 0 {src => apps/web/src}/components/ai-ui/switch.tsx | 0 {src => apps/web/src}/components/ai-ui/tabs.tsx | 0 {src => apps/web/src}/components/ai-ui/textarea.tsx | 0 .../web/src}/components/ai-ui/toggle-group.tsx | 0 {src => apps/web/src}/components/ai-ui/tooltip.tsx | 0 .../web/src}/components/artifacts/EvidenceChips.tsx | 0 .../web/src}/components/artifacts/MediaRail.tsx | 0 .../src}/components/artifacts/SourcesLibrary.tsx | 0 {src => apps/web/src}/components/artifacts/index.ts | 0 {src => apps/web/src}/components/grid-constants.ts | 0 {src => apps/web/src}/components/hud/CursorGlow.tsx | 0 .../web/src}/components/hud/GridOverlay.tsx | 0 {src => apps/web/src}/components/hud/HUDPanel.tsx | 0 .../web/src}/components/hud/JarvisHUDLayout.tsx | 0 {src => apps/web/src}/components/hud/ScanLine.tsx | 0 .../web/src}/components/hud/TaskWidgetStack.tsx | 0 .../web/src}/components/hud/TypewriterText.tsx | 0 .../web/src}/components/hud/hud-tailwind.preset.js | 0 {src => apps/web/src}/components/hud/index.ts | 0 {src => apps/web/src}/components/hud/package.json | 0 .../web/src}/components/hud/useAgentThread.ts | 0 .../web/src}/components/hud/useHUDLayout.ts | 0 .../web/src}/components/hud/useMultiThread.ts | 0 .../web/src}/components/kanban/TaskCard.tsx | 0 .../web/src}/components/proposals/ProposalBar.tsx | 0 .../src}/components/proposals/ProposalProvider.tsx | 0 .../web/src}/components/proposals/diffUtils.ts | 0 .../src}/components/skeletons/BriefingSkeleton.tsx | 0 .../components/skeletons/CostDashboardSkeleton.tsx | 0 .../src}/components/skeletons/DealCardSkeleton.tsx | 0 .../src}/components/skeletons/DigestSkeleton.tsx | 0 .../src}/components/skeletons/FeedCardSkeleton.tsx | 0 .../skeletons/IndustryUpdatesSkeleton.tsx | 0 .../components/skeletons/ReportCardSkeleton.tsx | 0 .../web/src}/components/skeletons/Skeleton.tsx | 0 .../web/src}/components/skeletons/ViewSkeleton.tsx | 0 {src => apps/web/src}/components/skeletons/index.ts | 0 .../web/src}/components/tasks/TaskDetailHeader.tsx | 0 .../timelineRoadmap/TimelineRoadmapView.tsx | 0 {src => apps/web/src}/components/ui/Button.tsx | 0 {src => apps/web/src}/components/ui/Card.tsx | 0 {src => apps/web/src}/components/ui/EmptyState.tsx | 0 .../web/src}/components/ui/SidebarButton.tsx | 0 {src => apps/web/src}/components/ui/Sparkline.tsx | 0 {src => apps/web/src}/components/ui/Toast.tsx | 0 {src => apps/web/src}/components/ui/index.ts | 0 .../web/src}/components/unified/UnifiedRow.tsx | 0 .../web/src}/contexts/OracleSessionContext.tsx | 0 {src => apps/web/src}/contexts/ThemeContext.tsx | 0 .../web/src}/design-governance/defaultSpec.ts | 0 .../web/src}/design-governance/figmaSync.ts | 0 {src => apps/web/src}/design-governance/index.ts | 0 {src => apps/web/src}/design-governance/spec.ts | 0 {src => apps/web/src}/design/designSystem.test.ts | 0 {src => apps/web/src}/design/designSystem.ts | 0 .../web/src}/features/admin/FundingDataReview.tsx | 0 .../features/admin/components/ApiUsageDisplay.tsx | 0 .../features/admin/components/CostDashboard.tsx | 0 .../features/admin/components/UsageDashboard.tsx | 0 .../admin/dashboards/ComponentMetricsDashboard.tsx | 0 .../admin/dashboards/HITLAnalyticsDashboard.tsx | 0 .../dashboards/RecommendationAnalyticsDashboard.tsx | 0 .../agents/authority/AuthorityControl.test.tsx | 0 .../features/agents/authority/AuthorityControl.tsx | 0 .../agents/authority/DelegatedReceiptRow.test.tsx | 0 .../agents/authority/DelegatedReceiptRow.tsx | 0 .../agents/authority/NotebookAuthorityControl.tsx | 0 .../agents/authority/authorityPresentation.ts | 0 .../web/src}/features/agents/authority/index.ts | 0 .../agents/components/AgentCommandBar.test.tsx | 0 .../features/agents/components/AgentCommandBar.tsx | 0 .../features/agents/components/AgentMarketplace.tsx | 0 .../components/AgentResponseFlywheelPanel.tsx | 0 .../features/agents/components/AgentSidebar.tsx | 0 .../features/agents/components/AgentStatusCard.tsx | 0 .../agents/components/AnalyzeSelectionButton.tsx | 0 .../features/agents/components/AskNodeBenchPill.tsx | 0 .../components/AutonomousOperationsPanel.test.tsx | 0 .../agents/components/AutonomousOperationsPanel.tsx | 0 .../features/agents/components/ConvexJarvisHUD.tsx | 0 .../agents/components/DossierModeIndicator.tsx | 0 .../FastAgentPanel/ArbitrageReportCard.tsx | 0 .../CollapsibleAgentProgress.test.tsx | 0 .../FastAgentPanel/CollapsibleAgentProgress.tsx | 0 .../FastAgentPanel/CompanySelectionCard.tsx | 0 .../agents/components/FastAgentPanel/ContextBar.tsx | 0 .../FastAgentPanel/DocumentActionCard.tsx | 0 .../components/FastAgentPanel/EditProgressCard.tsx | 0 .../FastAgentPanel/EntityWorkspaceDrawerContent.tsx | 0 .../FastAgentPanel/EventSelectionCard.tsx | 0 .../FastAgentPanel.AgentHierarchy.tsx | 0 .../FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx | 0 .../FastAgentPanel/FastAgentPanel.BriefTab.tsx | 0 .../FastAgentPanel/FastAgentPanel.CitationLink.tsx | 0 .../FastAgentPanel.DisclosureTrace.tsx | 0 .../FastAgentPanel/FastAgentPanel.EditsTab.tsx | 0 .../FastAgentPanel/FastAgentPanel.FileUpload.tsx | 0 .../FastAgentPanel/FastAgentPanel.GoalCard.tsx | 0 .../FastAgentPanel/FastAgentPanel.InputBar.tsx | 0 .../FastAgentPanel/FastAgentPanel.LiveThinking.tsx | 0 .../FastAgentPanel/FastAgentPanel.MediaRecorder.tsx | 0 .../FastAgentPanel/FastAgentPanel.Memory.tsx | 0 .../FastAgentPanel/FastAgentPanel.MemoryPreview.tsx | 0 .../FastAgentPanel.MinimizedStrip.tsx | 0 .../FastAgentPanel/FastAgentPanel.PanelDialogs.tsx | 0 .../FastAgentPanel.PanelHeader.test.tsx | 0 .../FastAgentPanel/FastAgentPanel.PanelHeader.tsx | 0 .../FastAgentPanel/FastAgentPanel.PanelOverlays.tsx | 0 .../FastAgentPanel.PromptEnhancer.tsx | 0 .../FastAgentPanel/FastAgentPanel.RunState.tsx | 0 .../FastAgentPanel/FastAgentPanel.Scratchpad.tsx | 0 .../FastAgentPanel/FastAgentPanel.SkillsPanel.tsx | 0 .../FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx | 0 .../FastAgentPanel/FastAgentPanel.ThreadList.tsx | 0 .../FastAgentPanel.TraceAuditPanel.tsx | 0 .../FastAgentPanel.UIMessageBubble.tsx | 0 .../FastAgentPanel.VisualCitation.tsx | 0 .../FastAgentPanel/FastAgentPanel.animations.css | 0 .../FastAgentPanel.guestRuntime.test.ts | 0 .../FastAgentPanel/FastAgentPanel.guestRuntime.ts | 0 .../FastAgentPanel/FastAgentPanel.provenance.ts | 0 .../FastAgentPanel/FastAgentPanel.sendContract.ts | 0 .../components/FastAgentPanel/FastAgentPanel.tsx | 0 .../agents/components/FastAgentPanel/FileViewer.tsx | 0 .../FastAgentPanel/FusedSearchResults.tsx | 0 .../components/FastAgentPanel/HumanRequestCard.tsx | 0 .../components/FastAgentPanel/JARVIS_HUD_README.md | 0 .../components/FastAgentPanel/JarvisHUDLayout.tsx | 0 .../FastAgentPanel/LazySyntaxHighlighter.tsx | 0 .../FastAgentPanel/LiveEventCard.test.tsx | 0 .../components/FastAgentPanel/LiveEventCard.tsx | 0 .../components/FastAgentPanel/MediaGallery.tsx | 0 .../agents/components/FastAgentPanel/MemoryPill.tsx | 0 .../FastAgentPanel/MemoryStatusHeader.tsx | 0 .../components/FastAgentPanel/MermaidDiagram.tsx | 0 .../FastAgentPanel/MessageHandlersContext.tsx | 0 .../components/FastAgentPanel/NewsSelectionCard.tsx | 0 .../FastAgentPanel/PanelCanonicalAnswer.tsx | 0 .../FastAgentPanel/PeopleSelectionCard.tsx | 0 .../components/FastAgentPanel/ProfileCard.tsx | 0 .../components/FastAgentPanel/QuickCommandChips.tsx | 0 .../components/FastAgentPanel/ResourceLinkCard.tsx | 0 .../components/FastAgentPanel/RichMediaSection.tsx | 0 .../agents/components/FastAgentPanel/SourceCard.tsx | 0 .../components/FastAgentPanel/StepTimeline.tsx | 0 .../components/FastAgentPanel/SwarmLanesView.tsx | 0 .../components/FastAgentPanel/SwarmQuickActions.tsx | 0 .../FastAgentPanel/TokenUsageBadge.test.tsx | 0 .../components/FastAgentPanel/TokenUsageBadge.tsx | 0 .../FastAgentPanel/ToolCallTransparency.test.tsx | 0 .../FastAgentPanel/ToolCallTransparency.tsx | 0 .../components/FastAgentPanel/ToolResultPopover.tsx | 0 .../components/FastAgentPanel/TypingIndicator.tsx | 0 .../agents/components/FastAgentPanel/VideoCard.tsx | 0 .../FastAgentPanel/VirtualizedMessageList.tsx | 0 .../__harness__/panel-canonical-answer-harness.html | 0 .../__harness__/panelCanonicalAnswerHarness.tsx | 0 .../__tests__/FastAgentDeclutter.guard.test.ts | 0 .../__tests__/FastAgentPanel.provenance.test.ts | 0 .../__tests__/FastAgentPanel.sendContract.test.ts | 0 .../FastAgentUIMessageBubble.contract.test.tsx | 0 .../__tests__/InputBar.parity.test.tsx | 0 .../__tests__/MessageBubble.streaming.test.tsx | 0 .../PanelCanonicalAnswer.contract.test.tsx | 0 .../FastAgentPanel/__tests__/ProfileCard.test.tsx | 0 .../FastAgentPanel/__tests__/RunState.test.tsx | 0 .../FastAgentPanel/__tests__/SourceCard.test.tsx | 0 .../__tests__/TraceAuditPanel.provenance.test.ts | 0 .../FastAgentPanel/__tests__/VideoCard.test.tsx | 0 .../FastAgentPanel/__tests__/e2e-agent-ui.test.tsx | 0 .../FastAgentPanel/__tests__/mediaExtractor.test.ts | 0 .../__tests__/message-rendering.test.tsx | 0 .../__tests__/presentation-layer.test.tsx | 0 .../__tests__/streaming-optimization.test.tsx | 0 .../FastAgentPanel/adapters/canonicalAnswer.test.ts | 0 .../FastAgentPanel/adapters/canonicalAnswer.ts | 0 .../FastAgentPanel/adapters/convexToUIParts.test.ts | 0 .../FastAgentPanel/adapters/convexToUIParts.ts | 0 .../agents/components/FastAgentPanel/hooks/index.ts | 0 .../FastAgentPanel/hooks/useSmartAutoScroll.ts | 0 .../FastAgentPanel/hooks/useStreamingBuffer.ts | 0 .../components/FastAgentPanel/index.enhanced.ts | 0 .../agents/components/FastAgentPanel/index.ts | 0 .../components/FastAgentPanel/lazyRehypeKatex.ts | 0 .../components/FastAgentPanel/liveEvents.test.ts | 0 .../agents/components/FastAgentPanel/liveEvents.ts | 0 .../agents/components/FastAgentPanel/types/agent.ts | 0 .../agents/components/FastAgentPanel/types/index.ts | 0 .../components/FastAgentPanel/types/message.ts | 0 .../components/FastAgentPanel/types/stream.ts | 0 .../components/FastAgentPanel/types/thread.ts | 0 .../FastAgentPanel/utils/mediaExtractor.ts | 0 .../agents/components/FloatingAgentButton.tsx | 0 .../agents/components/FreeModelRankingsPanel.tsx | 0 .../agents/components/HumanApprovalQueue.test.tsx | 0 .../agents/components/HumanApprovalQueue.tsx | 0 .../features/agents/components/ModelSelector.tsx | 0 .../agents/components/NotificationActivityPanel.tsx | 0 .../agents/components/OracleControlTowerPanel.tsx | 0 .../agents/components/SaveToNotebookButton.tsx | 0 .../agents/components/StreamingTranscript.tsx | 0 .../components/TaskManager/TaskManagerView.tsx | 0 .../components/TaskManager/TaskSessionCard.tsx | 0 .../TaskManager/TaskSessionDetail.test.tsx | 0 .../components/TaskManager/TaskSessionDetail.tsx | 0 .../components/TaskManager/TelemetrySpanTree.tsx | 0 .../features/agents/components/TaskManager/index.ts | 0 .../features/agents/components/TaskManager/types.ts | 0 .../agents/components/TopicCanvasPanel.test.tsx | 0 .../features/agents/components/TopicCanvasPanel.tsx | 0 .../features/agents/components/WorkspaceGrid.tsx | 0 .../components/oracleControlTowerUtils.test.ts | 0 .../agents/components/oracleControlTowerUtils.ts | 0 .../components/oraclePromptPackContract.test.ts | 0 .../agents/components/oracleTemporalOsUtils.test.ts | 0 .../agents/components/oracleTemporalOsUtils.ts | 0 .../components/successLoops/SuccessLoopsPanel.tsx | 0 .../agents/components/successLoops/types.ts | 0 .../features/agents/context/FastAgentContext.tsx | 0 .../features/agents/context/SelectionContext.tsx | 0 .../src}/features/agents/hooks/useAgentActions.ts | 0 .../features/agents/hooks/useAgentNavigation.ts | 0 .../features/agents/hooks/useAnonymousSession.ts | 0 .../web/src}/features/agents/hooks/useRunGraph.ts | 0 {src => apps/web/src}/features/agents/index.ts | 0 .../web/src}/features/agents/lib/agentPalette.ts | 0 .../src}/features/agents/lib/askShortcut.test.ts | 0 .../web/src}/features/agents/lib/askShortcut.ts | 0 .../src}/features/agents/logic/workflowTemplates.ts | 0 .../features/agents/primitives/AgentAuthorTag.tsx | 0 .../features/agents/primitives/AgentComposer.tsx | 0 .../features/agents/primitives/AgentFlowRail.tsx | 0 .../src}/features/agents/types/reasoningGraph.ts | 0 .../src}/features/agents/views/AgentsHub.test.ts | 0 .../web/src}/features/agents/views/AgentsHub.tsx | 0 .../features/agents/views/DeepAgentProgress.tsx | 0 .../src}/features/agents/views/LiveAgentLanes.tsx | 0 .../features/agents/views/PublicActivityView.tsx | 0 .../src}/features/agents/views/TaskPlanPanel.tsx | 0 .../features/agents/views/WorkflowMetricsBar.tsx | 0 .../features/artifacts/components/ArtifactHost.tsx | 0 .../features/artifacts/components/ArtifactTabs.tsx | 0 .../features/artifacts/context/ArtifactContext.tsx | 0 {src => apps/web/src}/features/artifacts/index.ts | 0 .../benchmarks/components/ModelLeaderboard.tsx | 0 .../benchmarks/components/ScenarioCatalog.tsx | 0 .../components/TelemetryInspector.test.tsx | 0 .../benchmarks/components/TelemetryInspector.tsx | 0 .../benchmarks/components/WorkbenchRunsTable.tsx | 0 .../benchmarks/components/workbenchScenarios.ts | 0 .../benchmarks/data/telemetryInspectorMockData.ts | 0 .../lib/telemetryInspectorArtifacts.test.ts | 0 .../benchmarks/lib/telemetryInspectorArtifacts.ts | 0 .../benchmarks/store/useTelemetryInspectorStore.ts | 0 .../features/benchmarks/views/WorkbenchView.tsx | 0 .../calendar/components/CalendarDatePopover.tsx | 0 .../calendar/components/CalendarHeatmapDots.tsx | 0 .../calendar/components/CalendarHomeHub.tsx | 0 .../calendar/components/EventEditorPanel.tsx | 0 .../calendar/components/MiniMonthCalendar.tsx | 0 .../calendar/components/TaskEditorPanel.tsx | 0 .../components/agenda/AgendaEditorPopover.tsx | 0 .../components/agenda/AgendaHoverPreview.tsx | 0 .../components/agenda/AgendaMiniRow.test.tsx | 0 .../calendar/components/agenda/AgendaMiniRow.tsx | 0 .../components/agenda/AgendaSortableItem.tsx | 0 .../components/agenda/InlineEventEditor.tsx | 0 .../calendar/components/agenda/InlineTaskEditor.tsx | 0 .../components/agenda/MiniAgendaEditorPanel.tsx | 0 .../features/calendar/hooks/useCalendarAgenda.ts | 0 {src => apps/web/src}/features/calendar/index.ts | 0 .../src}/features/calendar/views/CalendarView.tsx | 0 .../chat/components/AgentResilienceConnector.tsx | 0 .../chat/components/BackgroundRunsChip.test.tsx | 0 .../features/chat/components/BackgroundRunsChip.tsx | 0 .../web/src}/features/chat/components/ChatLane.tsx | 0 .../features/chat/components/ChatShareSheet.tsx | 0 .../features/chat/components/ClassificationChip.tsx | 0 .../components/ConversationProgressCard.test.tsx | 0 .../chat/components/ConversationProgressCard.tsx | 0 .../chat/components/EntityDisambiguationCard.tsx | 0 .../chat/components/EntityIntelligenceRail.tsx | 0 .../src}/features/chat/components/LessonsPanel.tsx | 0 .../features/chat/components/LowConfidenceCard.tsx | 0 .../features/chat/components/ModelSwitchedCard.tsx | 0 .../src}/features/chat/components/QuotePopover.tsx | 0 .../features/chat/components/ResilienceSettings.tsx | 0 .../chat/components/RollbackMessageCard.tsx | 0 .../chat/components/SessionArtifactsPanel.tsx | 0 .../chat/components/ThreadActionsSheet.test.tsx | 0 .../features/chat/components/ThreadActionsSheet.tsx | 0 .../features/chat/hooks/useConversationEngine.ts | 0 .../features/chat/hooks/useRollbackInterceptor.ts | 0 .../web/src}/features/chat/lib/classifyPrompt.ts | 0 .../features/chat/lib/detectRollbackIntent.test.ts | 0 .../src}/features/chat/lib/detectRollbackIntent.ts | 0 .../src}/features/chat/lib/threadRouting.test.ts | 0 .../web/src}/features/chat/lib/threadRouting.ts | 0 .../controlPlane/components/BenchmarkComparison.tsx | 0 .../controlPlane/components/ChatMessage.tsx | 0 .../features/controlPlane/components/ChatThread.tsx | 0 .../controlPlane/components/CitationFootnote.tsx | 0 .../controlPlane/components/CitationLink.tsx | 0 .../controlPlane/components/CompanyProfile.tsx | 0 .../controlPlane/components/ConferenceCapture.tsx | 0 .../features/controlPlane/components/DCFCard.tsx | 0 .../controlPlane/components/DelegationModal.tsx | 0 .../controlPlane/components/EntityCompare.tsx | 0 .../controlPlane/components/FounderEpisodePanel.tsx | 0 .../controlPlane/components/HomesHubSession.tsx | 0 .../controlPlane/components/LandingScroll.tsx | 0 .../components/LivePipelineProgress.tsx | 0 .../controlPlane/components/LiveSearchTelemetry.tsx | 0 .../components/ReceiptApprovalQueue.test.tsx | 0 .../components/ReceiptApprovalQueue.tsx | 0 .../controlPlane/components/ReceiptCard.tsx | 0 .../controlPlane/components/RecentSearchHistory.tsx | 0 .../controlPlane/components/RoleLensOutput.tsx | 0 .../controlPlane/components/SearchTrace.test.tsx | 0 .../controlPlane/components/SearchTrace.tsx | 0 .../features/controlPlane/components/SignalCard.tsx | 0 .../components/SyncProvenanceBadge.test.tsx | 0 .../controlPlane/components/SyncProvenanceBadge.tsx | 0 .../controlPlane/components/dogfoodSuite.ts | 0 .../controlPlane/components/dogfoodTelemetry.ts | 0 .../controlPlane/components/proofModel.test.ts | 0 .../features/controlPlane/components/proofModel.ts | 0 .../features/controlPlane/components/searchTypes.ts | 0 .../features/controlPlane/data/receiptFixtures.ts | 0 .../controlPlane/lib/onboardingState.test.ts | 0 .../features/controlPlane/lib/onboardingState.ts | 0 .../controlPlane/lib/receiptPresentation.test.ts | 0 .../controlPlane/lib/receiptPresentation.ts | 0 .../src}/features/controlPlane/lib/toolCatalog.ts | 0 .../features/controlPlane/types/actionReceipt.ts | 0 .../features/controlPlane/types/agentPassport.ts | 0 .../web/src}/features/controlPlane/types/index.ts | 0 .../src}/features/controlPlane/views/AboutPage.tsx | 0 .../controlPlane/views/ActionReceiptFeed.test.tsx | 0 .../controlPlane/views/ActionReceiptFeed.tsx | 0 .../features/controlPlane/views/ApiDocsPage.tsx | 0 .../features/controlPlane/views/ChangelogPage.tsx | 0 .../controlPlane/views/DelegationShowcase.test.tsx | 0 .../controlPlane/views/DelegationShowcase.tsx | 0 .../features/controlPlane/views/DevelopersPage.tsx | 0 .../src}/features/controlPlane/views/LegalPage.tsx | 0 .../features/controlPlane/views/NotFoundPage.tsx | 0 .../controlPlane/views/PricingPage.test.tsx | 0 .../features/controlPlane/views/PricingPage.tsx | 0 .../features/deepSim/components/HcsnGraphPanel.tsx | 0 {src => apps/web/src}/features/deepSim/fixtures.ts | 0 {src => apps/web/src}/features/deepSim/index.ts | 0 {src => apps/web/src}/features/deepSim/types.ts | 0 .../features/deepSim/views/DecisionMemoView.tsx | 0 .../src}/features/deepSim/views/PostmortemView.tsx | 0 .../exact/ExactComposer.entityMentions.test.tsx | 0 .../src}/features/designKit/exact/ExactComposer.tsx | 0 .../web/src}/features/designKit/exact/ExactKit.tsx | 0 .../__tests__/ResponsiveSurface.dedup.test.tsx | 0 .../exact/__tests__/exactRuntimeContracts.test.ts | 0 .../exact/__tests__/runtimeGrounding.guard.test.ts | 0 .../web/src}/features/designKit/exact/exactKit.css | 0 .../designKit/exact/exactRuntimeContracts.ts | 0 .../features/designKit/exact/useEntitySuggest.ts | 0 .../web/src}/features/devDashboard/DevDashboard.tsx | 0 .../src}/features/devDashboard/data/timeline.json | 0 .../documents/__tests__/bundleGates.test.ts | 0 .../documents/__tests__/contextIsolation.test.ts | 0 .../documents/__tests__/rerenderIsolation.test.ts | 0 .../features/documents/components/CodeViewer.tsx | 0 .../documents/components/DocumentBreadcrumbs.tsx | 0 .../features/documents/components/DocumentGrid.tsx | 0 .../documents/components/DocumentHeader.tsx | 0 .../components/DocumentRecommendations.tsx | 0 .../documents/components/DocumentSidebarPanel.tsx | 0 .../documents/components/DocumentsGridSortable.tsx | 0 .../documents/components/DocumentsHomeHub.tsx | 0 .../components/DocumentsPlannerOverlays.tsx | 0 .../components/DocumentsPlannerSurface.tsx | 0 .../documents/components/DocumentsTabContent.tsx | 0 .../components/DocumentsWorkspaceSurface.tsx | 0 .../documents/components/FiltersToolsBar.tsx | 0 .../documents/components/MediaCinemaViewer.tsx | 0 .../features/documents/components/RichPreviews.tsx | 0 .../documents/components/WorkspaceExplorer.tsx | 0 .../components/documentsHub/DocumentsSidebar.tsx | 0 .../documentsHub/cards/DocumentCard.stories.tsx | 0 .../components/documentsHub/cards/DocumentCard.tsx | 0 .../documentsHub/cards/DocumentCardSkeleton.tsx | 0 .../components/documentsHub/cards/VisualGlimpse.tsx | 0 .../documentsHub/cards/cardFileTypeHelpers.ts | 0 .../components/documentsHub/cards/index.ts | 0 .../documentsHub/context/DocumentsHubContext.tsx | 0 .../components/documentsHub/context/index.ts | 0 .../components/documentsHub/hooks/index.ts | 0 .../documentsHub/hooks/useWeekNavigation.ts | 0 .../documents/components/documentsHub/index.ts | 0 .../components/documentsHub/kanban/KanbanLane.tsx | 0 .../documentsHub/kanban/KanbanSortableItem.tsx | 0 .../components/documentsHub/kanban/index.ts | 0 .../documentsHub/pills/RefsPills.stories.tsx | 0 .../components/documentsHub/pills/RefsPills.tsx | 0 .../components/documentsHub/pills/index.ts | 0 .../documentsHub/planner/PlannerAiBar.tsx | 0 .../documentsHub/planner/PlannerModeToggle.test.tsx | 0 .../documentsHub/planner/PlannerModeToggle.tsx | 0 .../components/documentsHub/planner/types.ts | 0 .../documentsHub/rows/DocumentRow.stories.tsx | 0 .../components/documentsHub/rows/DocumentRow.tsx | 0 .../documentsHub/rows/HolidayRow.stories.tsx | 0 .../components/documentsHub/rows/HolidayRow.tsx | 0 .../documentsHub/rows/TaskRow.stories.tsx | 0 .../components/documentsHub/rows/TaskRow.tsx | 0 .../documents/components/documentsHub/rows/index.ts | 0 .../documents/components/documentsHub/types.ts | 0 .../utils/__tests__/documentHelpers.test.ts | 0 .../utils/__tests__/eventHelpers.test.ts | 0 .../utils/__tests__/statusHelpers.test.ts | 0 .../components/documentsHub/utils/constants.ts | 0 .../documentsHub/utils/documentHelpers.ts | 0 .../components/documentsHub/utils/eventHelpers.tsx | 0 .../components/documentsHub/utils/index.ts | 0 .../components/documentsHub/utils/statusHelpers.ts | 0 .../documentsHub/views/AgendaListSection.tsx | 0 .../documentsHub/views/IntelligenceTable.tsx | 0 .../documentsHub/views/QuickCreateBar.tsx | 0 .../components/documentsHub/views/SectionCard.tsx | 0 .../components/documentsHub/views/index.ts | 0 .../documents/components/previewDescriptor.ts | 0 .../documents/components/previews/LightPreviews.tsx | 0 .../components/previews/SpreadsheetPreview.tsx | 0 .../features/documents/components/previews/index.ts | 0 .../components/viewModes/DocumentsCardsView.tsx | 0 .../components/viewModes/DocumentsListView.tsx | 0 .../components/viewModes/DocumentsSegmentedView.tsx | 0 .../documents/components/viewModes/index.ts | 0 .../documents/context/DocumentsCoreProvider.tsx | 0 .../documents/context/DocumentsPlannerProvider.tsx | 0 .../documents/context/DocumentsWorkspaceContext.tsx | 0 .../web/src}/features/documents/context/index.ts | 0 .../web/src}/features/documents/context/types.ts | 0 .../documents/editors/DocumentMiniEditor.tsx | 0 .../documents/editors/DossierMiniEditor.tsx | 0 .../documents/editors/DualCreateMiniPanel.tsx | 0 .../documents/editors/DualEditMiniPanel.tsx | 0 .../documents/editors/PopoverMiniEditor.tsx | 0 .../documents/editors/SpreadsheetMiniEditor.tsx | 0 .../features/documents/hooks/useDocumentData.ts | 0 .../features/documents/hooks/useDocumentOrdering.ts | 0 .../features/documents/hooks/useDocumentOverlays.ts | 0 .../documents/hooks/useDocumentSelection.ts | 0 .../features/documents/hooks/useDocumentUpload.ts | 0 .../documents/hooks/useDocumentWorkspaceState.ts | 0 .../documents/hooks/usePlannerAgendaData.ts | 0 .../documents/hooks/usePlannerController.ts | 0 .../features/documents/hooks/usePlannerDateNav.ts | 0 .../features/documents/hooks/usePlannerEditor.ts | 0 .../features/documents/hooks/usePlannerMutations.ts | 0 .../features/documents/hooks/usePlannerViewPrefs.ts | 0 {src => apps/web/src}/features/documents/index.ts | 0 .../surfaces/spreadsheets/SpreadsheetSheetView.tsx | 0 .../surfaces/spreadsheets/SpreadsheetsHub.tsx | 0 .../src}/features/documents/views/DocumentView.tsx | 0 .../src}/features/documents/views/FileViewer.tsx | 0 .../features/documents/views/PublicDocuments.tsx | 0 .../features/documents/views/SpreadsheetView.tsx | 0 .../dogfood/components/TasteBenchPanel.test.tsx | 0 .../features/dogfood/components/TasteBenchPanel.tsx | 0 .../features/dogfood/views/DogfoodReviewView.tsx | 0 .../features/editor/components/UnifiedEditor.tsx | 0 .../components/UnifiedEditor/DeepAgentProgress.tsx | 0 .../UnifiedEditor/InlineAgentProgress.tsx | 0 .../components/UnifiedEditor/InspectorPanel.tsx | 0 .../UnifiedEditor/PendingEditHighlights.tsx | 0 .../editor/components/UnifiedEditor/PmBridge.tsx | 0 .../UnifiedEditor/ProposalInlineDecorations.tsx | 0 .../components/UnifiedEditor/ProposalOverlay.tsx | 0 .../components/UnifiedEditor/ShadowTiptap.tsx | 0 .../editor/components/UnifiedEditor/index.ts | 0 .../components/UnifiedEditor/useInlineFastAgent.ts | 0 .../web/src}/features/editor/hooks/index.ts | 0 .../web/src}/features/editor/hooks/useAIKeyboard.ts | 0 .../src}/features/editor/hooks/useEditorSeeding.ts | 0 .../web/src}/features/editor/hooks/useFileUpload.ts | 0 .../src}/features/editor/hooks/useHashtagMenu.ts | 0 .../src}/features/editor/hooks/useMentionMenu.ts | 0 .../src}/features/editor/hooks/usePendingEdits.ts | 0 .../src}/features/editor/hooks/useProposalSystem.ts | 0 .../src}/features/editor/hooks/useSlashMenuItems.ts | 0 {src => apps/web/src}/features/editor/index.ts | 0 {src => apps/web/src}/features/editor/types.ts | 0 .../web/src}/features/editor/utils/blockUtils.ts | 0 .../web/src}/features/editor/utils/index.ts | 0 .../web/src}/features/editor/utils/sanitize.ts | 0 .../src}/features/engine/views/EngineDemoView.tsx | 0 .../entities/components/DiligenceSection.test.tsx | 0 .../entities/components/DiligenceSection.tsx | 0 .../entities/components/EntityMemoryGraph.tsx | 0 .../entities/components/EntityNoteEditor.tsx | 0 .../components/EntityNoteMarkdownEditor.tsx | 0 .../entities/components/EntityNotebookMeta.tsx | 0 .../components/EntityNotebookSurface.test.tsx | 0 .../entities/components/EntityNotebookSurface.tsx | 0 .../entities/components/EntityNotebookView.test.tsx | 0 .../entities/components/EntityNotebookView.tsx | 0 .../entities/components/EntityShareSheet.tsx | 0 .../entities/components/EvidenceChip.test.tsx | 0 .../features/entities/components/EvidenceChip.tsx | 0 .../entities/components/LiveDiligenceSection.tsx | 0 .../entities/components/NotebookTopStatusRow.tsx | 0 .../entities/components/ScratchpadViewer.test.tsx | 0 .../entities/components/ScratchpadViewer.tsx | 0 .../features/entities/components/ViewModeToggle.tsx | 0 .../components/notebook/BlockChipRenderer.test.tsx | 0 .../components/notebook/BlockChipRenderer.tsx | 0 .../components/notebook/BlockProvenance.tsx | 0 .../entities/components/notebook/BlockStatusBar.tsx | 0 .../notebook/DiligenceDecorationPlugin.test.ts | 0 .../notebook/DiligenceDecorationPlugin.ts | 0 .../notebook/DiligenceDriftBanner.test.tsx | 0 .../components/notebook/DiligenceDriftBanner.tsx | 0 .../EntityNotebookLive.empty-state.test.tsx | 0 .../components/notebook/EntityNotebookLive.test.tsx | 0 .../components/notebook/EntityNotebookLive.tsx | 0 .../notebook/EntityNotebookLiveMount.test.tsx | 0 .../components/notebook/EntityNotebookLiveMount.tsx | 0 .../components/notebook/ExtendedRunPanel.tsx | 0 .../components/notebook/MentionPicker.test.tsx | 0 .../entities/components/notebook/MentionPicker.tsx | 0 .../components/notebook/NotebookBlockEditor.tsx | 0 .../notebook/NotebookDiligenceOverlayHost.test.tsx | 0 .../notebook/NotebookDiligenceOverlayHost.tsx | 0 .../components/notebook/NotebookDismissalsSync.tsx | 0 .../components/notebook/NotebookMentionNode.ts | 0 .../components/notebook/NotebookRunMapPanel.tsx | 0 .../notebook/NotebookScratchpadTracePanel.test.tsx | 0 .../notebook/NotebookScratchpadTracePanel.tsx | 0 .../entities/components/notebook/SlashPalette.tsx | 0 .../components/notebook/WorkspaceDrawerPill.tsx | 0 .../notebook/acceptDecorationIntoNotebook.test.ts | 0 .../notebook/acceptDecorationIntoNotebook.ts | 0 .../components/notebook/diligenceRenderers.ts | 0 .../notebook/entityNotebookAuthorityHelpers.test.ts | 0 .../notebook/entityNotebookAuthorityHelpers.ts | 0 .../notebook/entityNotebookLiveHelpers.ts | 0 .../notebook/notebookLexicalChips.property.test.ts | 0 .../notebook/notebookLexicalChips.test.ts | 0 .../components/notebook/notebookLexicalChips.ts | 0 .../notebook/notebookOfflineQueue.test.ts | 0 .../components/notebook/notebookOfflineQueue.ts | 0 .../notebook/renderers/CompetitorRenderer.tsx | 0 .../notebook/renderers/FinancialRenderer.tsx | 0 .../notebook/renderers/FounderRenderer.test.ts | 0 .../notebook/renderers/FounderRenderer.tsx | 0 .../notebook/renderers/FundingRenderer.tsx | 0 .../notebook/renderers/HiringRenderer.tsx | 0 .../components/notebook/renderers/NewsRenderer.tsx | 0 .../notebook/renderers/PatentRenderer.tsx | 0 .../notebook/renderers/ProductRenderer.tsx | 0 .../notebook/renderers/PublicOpinionRenderer.tsx | 0 .../notebook/renderers/RegulatoryRenderer.tsx | 0 .../components/notebook/renderers/renderers.test.ts | 0 .../notebook/renderers/sharedRendererHelpers.ts | 0 .../components/notebook/useDiligenceBlocks.ts | 0 .../notebook/useDiligenceDecorations.test.ts | 0 .../components/notebook/useDiligenceDecorations.ts | 0 .../components/notebook/useEntityNotebookDoc.ts | 0 .../components/notebook/useNotebookAutosave.test.ts | 0 .../components/notebook/useNotebookAutosave.ts | 0 .../entities/components/notebook/useNotebookMeta.ts | 0 .../components/notebook/useNotebookSyncStatus.ts | 0 .../features/entities/hooks/useCanonicalFastLane.ts | 0 .../src}/features/entities/lib/entityExport.test.ts | 0 .../web/src}/features/entities/lib/entityExport.ts | 0 .../features/entities/lib/entityNoteDocument.ts | 0 .../entities/lib/starterEntityWorkspaces.ts | 0 .../web/src}/features/entities/lib/useViewMode.ts | 0 .../features/entities/views/EntityPage.test.tsx | 0 .../web/src}/features/entities/views/EntityPage.tsx | 0 .../features/entities/views/EntityPulseView.tsx | 0 .../web/src}/features/evaluation/data/index.ts | 0 .../data/nodebenchWorkflowEvalBank.test.ts | 0 .../evaluation/data/nodebenchWorkflowEvalBank.ts | 0 .../evaluation/data/tasteBenchScenario.test.ts | 0 .../features/evaluation/data/tasteBenchScenario.ts | 0 .../evaluation/views/EvolutionDashboardView.tsx | 0 .../events/views/EventCorpusExplorer.test.tsx | 0 .../features/events/views/EventCorpusExplorer.tsx | 0 .../events/views/ScratchnodePrivateBridge.test.tsx | 0 .../events/views/ScratchnodePrivateBridge.tsx | 0 .../events/views/ScratchnodeWikiBridge.test.tsx | 0 .../features/events/views/ScratchnodeWikiBridge.tsx | 0 .../financialOperator/components/ApprovalCard.tsx | 0 .../financialOperator/components/ArtifactCard.tsx | 0 .../components/CalculationCard.tsx | 0 .../financialOperator/components/EvidenceCard.tsx | 0 .../financialOperator/components/ExtractionCard.tsx | 0 .../components/FinancialOperatorOverlay.tsx | 0 .../components/FinancialOperatorTimeline.tsx | 0 .../components/ModelCapabilityBadge.tsx | 0 .../financialOperator/components/ResultCard.tsx | 0 .../financialOperator/components/RunBriefCard.tsx | 0 .../financialOperator/components/StepCard.tsx | 0 .../financialOperator/components/StepShell.tsx | 0 .../components/StepStatusBadge.tsx | 0 .../financialOperator/components/ToolCallCard.tsx | 0 .../financialOperator/components/ValidationCard.tsx | 0 .../components/WorkspaceComposer.tsx | 0 .../components/WorkspaceModePane.tsx | 0 .../components/WorkspaceModeToggle.tsx | 0 .../web/src}/features/financialOperator/index.ts | 0 .../web/src}/features/financialOperator/types.ts | 0 .../views/FinancialOperatorDemo.tsx | 0 .../features/founder/components/FeedbackWidget.tsx | 0 .../src}/features/founder/hooks/useFeedbackStore.ts | 0 .../web/src}/features/founder/views/EmbedView.tsx | 0 .../features/founder/views/FounderRouteResolver.tsx | 0 .../founder/views/PublicCompanyProfileView.tsx | 0 .../features/founder/views/ShareableMemoView.tsx | 0 .../web/src}/features/graph/lib/graphTypes.ts | 0 .../src}/features/home/components/MemoryPulse.tsx | 0 .../web/src}/features/home/hooks/useHomeBrief.ts | 0 .../web/src}/features/home/lib/briefTypes.ts | 0 .../src}/features/home/lib/evidenceScoring.test.ts | 0 .../web/src}/features/home/lib/evidenceScoring.ts | 0 .../home/lib/firstImpressionResearch.test.ts | 0 .../features/home/lib/firstImpressionResearch.ts | 0 {src => apps/web/src}/features/home/lib/index.ts | 0 .../features/home/lib/positionAnnotation.test.ts | 0 .../src}/features/home/lib/positionAnnotation.ts | 0 .../src}/features/home/views/HomeLanding.test.ts | 0 .../web/src}/features/home/views/HomeLanding.tsx | 0 .../src}/features/home/views/MobileHomeSurface.tsx | 0 .../components/SharedContextProtocolPanel.test.tsx | 0 .../mcp/components/SharedContextProtocolPanel.tsx | 0 .../mcp/components/SyncBridgeAccountPanel.test.tsx | 0 .../mcp/components/SyncBridgeAccountPanel.tsx | 0 .../features/mcp/views/ApiKeyManagementPage.tsx | 0 .../web/src}/features/mcp/views/McpLedgerPage.tsx | 0 .../me/components/wiki/WikiFreshnessBadge.tsx | 0 .../features/me/components/wiki/WikiLanding.tsx | 0 .../me/components/wiki/WikiLandingRoute.tsx | 0 .../features/me/components/wiki/WikiNotesEditor.tsx | 0 .../features/me/components/wiki/WikiPageDetail.tsx | 0 .../me/components/wiki/WikiPageDetailContainer.tsx | 0 .../me/components/wiki/WikiPageDetailRoute.tsx | 0 .../me/components/wiki/WikiRegenerateButton.tsx | 0 .../features/me/components/wiki/WikiThemesPanel.tsx | 0 .../web/src}/features/me/components/wiki/index.ts | 0 .../web/src}/features/me/views/MeHome.test.tsx | 0 {src => apps/web/src}/features/me/views/MeHome.tsx | 0 .../web/src}/features/me/views/MobileMeSurface.tsx | 0 .../features/missions/views/MissionControlView.tsx | 0 .../monitoring/components/PRSuggestions.tsx | 0 .../monitoring/components/PipelineRollupPanel.tsx | 0 .../features/monitoring/hooks/useImprovementData.ts | 0 {src => apps/web/src}/features/monitoring/index.ts | 0 .../monitoring/views/AgentTelemetryDashboard.tsx | 0 .../monitoring/views/HyperLoopDashboard.tsx | 0 .../monitoring/views/ImprovementTimeline.tsx | 0 .../features/monitoring/views/JudgeDashboard.tsx | 0 .../features/monitoring/views/RunCompareView.tsx | 0 .../features/monitoring/views/SavingsDashboard.tsx | 0 .../monitoring/views/SubconsciousDashboard.tsx | 0 .../features/monitoring/views/TrajectoryConsole.tsx | 0 .../monitoring/views/ValueManifestPanel.tsx | 0 .../HypothesisScorecard/HypothesisScorecard.tsx | 0 .../components/HypothesisScorecard/index.ts | 0 .../components/NarrativeCard/NarrativeCard.tsx | 0 .../narrative/components/NarrativeCard/index.ts | 0 .../components/NarrativeFeed/EvidenceDrawer.tsx | 0 .../components/NarrativeFeed/NarrativeFeed.tsx | 0 .../narrative/components/NarrativeFeed/PostCard.tsx | 0 .../components/NarrativeFeed/ReplyThread.tsx | 0 .../narrative/components/NarrativeFeed/index.ts | 0 .../components/NarrativeRoadmap/CorrelationLine.tsx | 0 .../components/NarrativeRoadmap/EventMarker.tsx | 0 .../NarrativeRoadmap/NarrativeRoadmap.tsx | 0 .../components/NarrativeRoadmap/SentimentBar.tsx | 0 .../components/NarrativeRoadmap/ThreadLane.tsx | 0 .../narrative/components/NarrativeRoadmap/index.ts | 0 .../SignalMetricsDashboard.tsx | 0 .../components/SignalMetricsDashboard/index.ts | 0 .../components/social/EntityFindingsPanel.tsx | 0 .../components/social/LinkedInPostArchiveView.tsx | 0 .../components/social/LinkedInPostCard.tsx | 0 .../web/src}/features/narrative/hooks/index.ts | 0 .../features/narrative/hooks/useCorrelations.ts | 0 .../src}/features/narrative/hooks/useHypotheses.ts | 0 .../features/narrative/hooks/useNarrativeEvents.ts | 0 .../features/narrative/hooks/useNarrativeThreads.ts | 0 .../features/narrative/hooks/useSignalMetrics.ts | 0 {src => apps/web/src}/features/narrative/index.ts | 0 {src => apps/web/src}/features/narrative/types.ts | 0 .../features/notebook/components/BacklinkList.tsx | 0 .../notebook/components/EntityMentionText.tsx | 0 .../notebook/components/MentionExpansionPanel.tsx | 0 .../notebook/components/MiniEntityGraph.tsx | 0 .../notebook/components/NotebookBlockFinder.tsx | 0 .../components/RichNotebookEditor.claims.test.tsx | 0 .../components/RichNotebookEditor.finder.test.tsx | 0 .../components/RichNotebookEditor.onChange.test.tsx | 0 .../RichNotebookEditor.proposals.test.tsx | 0 .../notebook/components/RichNotebookEditor.test.tsx | 0 .../notebook/components/RichNotebookEditor.tsx | 0 .../notebook/extensions/expandableMention.tsx | 0 .../src}/features/notebook/extensions/nbClaim.tsx | 0 .../features/notebook/extensions/nbProposal.tsx | 0 .../features/notebook/extensions/slashCommand.ts | 0 .../notebook/extensions/slashMenuRenderer.tsx | 0 .../features/notebook/hooks/useEntityExpansion.ts | 0 .../notebook/lib/notebookActionEngine.test.ts | 0 .../features/notebook/lib/notebookActionEngine.ts | 0 .../web/src}/features/notebook/styles/notebook.css | 0 .../features/nudges/views/MobileInboxSurface.tsx | 0 .../src}/features/nudges/views/NudgesHome.test.tsx | 0 .../web/src}/features/nudges/views/NudgesHome.tsx | 0 .../observability/views/ObservabilityView.tsx | 0 .../onboarding/components/AgentGuidedOnboarding.tsx | 0 .../onboarding/components/OnboardingFlow.tsx | 0 .../onboarding/components/OnboardingWizard.tsx | 0 .../src}/features/onboarding/utils/dossierParser.ts | 0 .../onboarding/views/ConnectSourcesWizard.tsx | 0 .../src}/features/onboarding/views/TutorialPage.tsx | 0 .../pipelines/views/PipelineEvalScorecard.tsx | 0 .../features/pipelines/views/PipelineLauncher.tsx | 0 .../features/pipelines/views/PipelineRunsPanel.tsx | 0 .../pipelines/views/PipelineSchedulesPanel.tsx | 0 .../product/components/ComposerRoutingPreview.tsx | 0 .../product/components/IntakeDetectedSources.tsx | 0 .../product/components/ProductFileAssetPicker.tsx | 0 .../components/ProductIntakeComposer.test.tsx | 0 .../product/components/ProductIntakeComposer.tsx | 0 .../product/components/ProductSourceIdentity.tsx | 0 .../product/components/ProductThumbnail.tsx | 0 .../product/components/ProductWorkspaceHeader.tsx | 0 .../components/intakeSourceClassifier.test.ts | 0 .../product/components/intakeSourceClassifier.ts | 0 .../src}/features/product/lib/captureRouter.test.ts | 0 .../web/src}/features/product/lib/captureRouter.ts | 0 .../features/product/lib/operatorContext.test.ts | 0 .../src}/features/product/lib/operatorContext.ts | 0 .../features/product/lib/productIdentity.test.ts | 0 .../src}/features/product/lib/productIdentity.ts | 0 .../features/product/lib/productSession.test.ts | 0 .../web/src}/features/product/lib/productSession.ts | 0 .../src}/features/product/lib/uploadDraftFiles.ts | 0 .../features/product/lib/useProductBootstrap.ts | 0 .../src}/features/pulse/components/PulseBadge.tsx | 0 .../src}/features/pulse/views/EntityPulsePage.tsx | 0 .../src}/features/pulse/views/GlobalPulsePage.tsx | 0 {src => apps/web/src}/features/redesign/README.md | 0 .../web/src}/features/redesign/RedesignShell.tsx | 0 .../web/src}/features/redesign/agent-workspace.css | 0 .../src}/features/redesign/components/AgentRail.tsx | 0 .../features/redesign/components/BlockHandle.tsx | 0 .../features/redesign/components/BubbleMenu.tsx | 0 .../src}/features/redesign/components/CardStack.tsx | 0 .../redesign/components/ChatAssistantMessage.tsx | 0 .../features/redesign/components/ChatEmptyState.tsx | 0 .../features/redesign/components/ChatThinking.tsx | 0 .../features/redesign/components/ChatToolCall.tsx | 0 .../redesign/components/CommandPalette.test.tsx | 0 .../features/redesign/components/CommandPalette.tsx | 0 .../features/redesign/components/MessageActions.tsx | 0 .../features/redesign/components/MobileShell.tsx | 0 .../web/src}/features/redesign/components/Pill.tsx | 0 .../web/src}/features/redesign/components/Rail.tsx | 0 .../redesign/components/ReportNotebookEditor.tsx | 0 .../redesign/components/ReportNotebookView.tsx | 0 .../redesign/components/ShortcutsOverlay.tsx | 0 .../src}/features/redesign/components/Skeleton.tsx | 0 .../src}/features/redesign/components/SlashMenu.tsx | 0 .../redesign/components/StreamingMarkdown.test.tsx | 0 .../redesign/components/StreamingMarkdown.tsx | 0 .../redesign/components/StyleGalleryCard.tsx | 0 .../web/src}/features/redesign/components/Toast.tsx | 0 .../features/redesign/components/TopNav.test.tsx | 0 .../src}/features/redesign/components/TopNav.tsx | 0 .../redesign/components/UniversalComposer.test.tsx | 0 .../redesign/components/UniversalComposer.tsx | 0 .../redesign/components/WhatChangedStrip.tsx | 0 .../redesign/components/edition/CapabilitiesMap.tsx | 0 .../redesign/components/edition/DotGrid.tsx | 0 .../components/edition/EditionErrorBoundary.tsx | 0 .../redesign/components/edition/EditionSelector.tsx | 0 .../redesign/components/edition/EditionTOC.tsx | 0 .../components/edition/EditorialSection.tsx | 0 .../components/edition/EvidenceChecklistStrip.tsx | 0 .../redesign/components/edition/Footnote.tsx | 0 .../redesign/components/edition/FormatStrip.tsx | 0 .../redesign/components/edition/Scoreboard.tsx | 0 .../redesign/components/edition/VideoLiteEmbed.tsx | 0 .../redesign/components/edition/edition-print.css | 0 .../redesign/components/edition/edition.css | 0 .../redesign/components/notebookExtensions.ts | 0 {src => apps/web/src}/features/redesign/fixtures.ts | 0 .../src}/features/redesign/hooks/editionSession.ts | 0 .../features/redesign/hooks/useActiveHypotheses.ts | 0 .../redesign/hooks/useActiveHypothesesSwr.ts | 0 .../src}/features/redesign/hooks/useBatchLive.ts | 0 .../features/redesign/hooks/useCapabilitiesDelta.ts | 0 .../redesign/hooks/useCapabilitiesDeltaSwr.ts | 0 .../features/redesign/hooks/useDailyEditionSwr.ts | 0 .../features/redesign/hooks/useEditionFootnotes.ts | 0 .../redesign/hooks/useEditionFootnotesSwr.ts | 0 .../src}/features/redesign/hooks/useEditionView.ts | 0 .../features/redesign/hooks/useHomePulseLive.ts | 0 .../src}/features/redesign/hooks/useInboxLive.ts | 0 .../redesign/hooks/useLatestDailyBriefSnapshot.ts | 0 .../hooks/useLatestDailyBriefSnapshotSwr.ts | 0 .../features/redesign/hooks/useLiveArtifacts.ts | 0 .../hooks/useLongHorizonRetrospectiveSwr.ts | 0 .../redesign/hooks/useMonthlyRetrospectiveSwr.ts | 0 .../redesign/hooks/useRedesignChatRun.test.ts | 0 .../features/redesign/hooks/useRedesignChatRun.ts | 0 .../src}/features/redesign/hooks/useReportsLive.ts | 0 .../redesign/hooks/useScratchnodeSessionId.ts | 0 .../src}/features/redesign/hooks/useScrollSpy.ts | 0 .../features/redesign/hooks/useTemporalEdition.ts | 0 .../src}/features/redesign/hooks/useTodayPulse.ts | 0 .../features/redesign/hooks/useTodayPulseSwr.ts | 0 .../src}/features/redesign/hooks/useTopForecasts.ts | 0 .../features/redesign/hooks/useTopForecastsSwr.ts | 0 .../features/redesign/hooks/useWeeklyDigestSwr.ts | 0 .../src}/features/redesign/lib/chatContinuation.ts | 0 .../redesign/lib/graphContextBridge.test.ts | 0 .../features/redesign/lib/graphContextBridge.ts | 0 .../features/redesign/lib/oneSurfaceRouting.test.ts | 0 .../src}/features/redesign/lib/oneSurfaceRouting.ts | 0 .../features/redesign/lib/reportTopology.test.ts | 0 .../src}/features/redesign/lib/reportTopology.ts | 0 .../features/redesign/pages/EditionPrintPage.tsx | 0 .../redesign/pages/ReproducibleChatPage.tsx | 0 .../redesign/pages/ScratchnodeNoteDetailPage.tsx | 0 .../web/src}/features/redesign/primitives.css | 0 .../surfaces/AgentWorkspaceHonesty.guard.test.ts | 0 .../AgentWorkspaceResponsiveCss.guard.test.ts | 0 .../surfaces/CanonicalRuntimeSurfaces.guard.test.ts | 0 .../redesign/surfaces/ChatContinuation.test.ts | 0 .../surfaces/ChatResponseShape.guard.test.ts | 0 .../surfaces/ChatRunLifecycle.guard.test.ts | 0 .../src}/features/redesign/surfaces/ChatSurface.tsx | 0 .../redesign/surfaces/ChatTypography.guard.test.ts | 0 .../surfaces/EditorialHomeAudienceRelevance.ts | 0 .../surfaces/EditorialHomeSurface.audience.test.ts | 0 .../redesign/surfaces/EditorialHomeSurface.tsx | 0 .../src}/features/redesign/surfaces/HomeSurface.tsx | 0 .../redesign/surfaces/HomeV2PrototypeSurface.tsx | 0 .../features/redesign/surfaces/InboxSurface.tsx | 0 .../src}/features/redesign/surfaces/MeSurface.tsx | 0 .../redesign/surfaces/OneSurface.guard.test.ts | 0 .../redesign/surfaces/ProductDecisionQueue.test.ts | 0 .../redesign/surfaces/ProductDecisionQueue.tsx | 0 .../features/redesign/surfaces/ReportsSurface.tsx | 0 .../surfaces/ScratchnodeEventsSurface.test.tsx | 0 .../redesign/surfaces/ScratchnodeEventsSurface.tsx | 0 .../features/redesign/surfaces/WorkspaceSurface.tsx | 0 {src => apps/web/src}/features/redesign/tokens.css | 0 .../features/redesign/utils/videoProvider.test.ts | 0 .../src}/features/redesign/utils/videoProvider.ts | 0 .../reports/components/RecentPulseStrip.tsx | 0 .../reports/components/ReportReadOnlyPanel.tsx | 0 .../reports/components/ReportShareSheet.tsx | 0 .../features/reports/components/ReportThumbnail.tsx | 0 .../reports/lib/compactReportsReadModel.test.ts | 0 .../features/reports/lib/compactReportsReadModel.ts | 0 .../src}/features/reports/lib/reportActions.test.ts | 0 .../web/src}/features/reports/lib/reportActions.ts | 0 .../reports/lib/reportNotebookRouting.test.ts | 0 .../features/reports/lib/reportNotebookRouting.ts | 0 .../reports/views/PublicReportView.test.tsx | 0 .../features/reports/views/PublicReportView.tsx | 0 .../views/ReportNotebookDetail.persistence.test.tsx | 0 .../reports/views/ReportNotebookDetail.test.ts | 0 .../features/reports/views/ReportNotebookDetail.tsx | 0 .../src}/features/reports/views/ReportsHome.test.ts | 0 .../web/src}/features/reports/views/ReportsHome.tsx | 0 .../features/reports/views/ReportsHomeEnhanced.tsx | 0 .../features/research/LiveResearchChecklist.tsx | 0 .../web/src}/features/research/ProofDrawer.tsx | 0 .../research/components/ActAwareDashboard.tsx | 0 .../research/components/ActProgressIndicator.tsx | 0 .../features/research/components/ActionCard.tsx | 0 .../research/components/BrierTrendChart.tsx | 0 .../research/components/CalibrationPlot.tsx | 0 .../features/research/components/CardInspector.tsx | 0 .../features/research/components/ChangeCard.tsx | 0 .../research/components/ChartAnnotationLayer.tsx | 0 .../features/research/components/ChartTooltip.tsx | 0 .../research/components/CompactSignalCard.tsx | 0 .../research/components/CostCrossoverCalculator.tsx | 0 .../research/components/CrossLinkedText.tsx | 0 .../features/research/components/DashboardPanel.tsx | 0 .../features/research/components/DayStarterCard.tsx | 0 .../features/research/components/DealListPanel.tsx | 0 .../src}/features/research/components/DealRadar.tsx | 0 .../src}/features/research/components/DealTable.tsx | 0 .../research/components/DeepDiveAccordion.test.tsx | 0 .../research/components/DeepDiveAccordion.tsx | 0 .../features/research/components/DeltaIndicator.tsx | 0 .../research/components/EmailDigestPreview.tsx | 0 .../research/components/EnhancedLineChart.tsx | 0 .../research/components/EnhancedPersonalPulse.tsx | 0 .../research/components/EnhancedTimelineStrip.tsx | 0 .../research/components/EntityContextDrawer.tsx | 0 .../research/components/EntityHoverPreview.tsx | 0 .../features/research/components/EntityLink.tsx | 0 .../features/research/components/EntityRadar.tsx | 0 .../features/research/components/EvidenceGrid.tsx | 0 .../features/research/components/EvidencePanel.tsx | 0 .../research/components/EvidenceTimeline.tsx | 0 .../research/components/ExecutiveBriefHeader.tsx | 0 .../research/components/ExportBriefButton.tsx | 0 .../src}/features/research/components/FeedCard.tsx | 0 .../research/components/FeedReaderModal.tsx | 0 .../research/components/FeedReaderPanel.tsx | 0 .../features/research/components/FeedTimeline.tsx | 0 .../features/research/components/FootnoteMarker.tsx | 0 .../research/components/FootnotesSection.tsx | 0 .../features/research/components/ForYouFeed.tsx | 0 .../features/research/components/ForecastCard.tsx | 0 .../research/components/ForecastCockpit.tsx | 0 .../features/research/components/GitHubExplorer.tsx | 0 .../features/research/components/HeroSection.tsx | 0 .../research/components/IndustryUpdatesPanel.tsx | 0 .../research/components/InstantSearchBar.tsx | 0 .../research/components/IntelPulseMonitor.tsx | 0 .../research/components/InteractiveLineChart.tsx | 0 .../research/components/InteractiveSpan.tsx | 0 .../research/components/InteractiveSpanParser.tsx | 0 .../features/research/components/LiveDashboard.tsx | 0 .../research/components/LiveRadarWidget.tsx | 0 .../research/components/MagicInputContainer.tsx | 0 .../research/components/ModelComparisonTable.tsx | 0 .../research/components/ModelEvalDashboard.tsx | 0 .../research/components/MorningBriefingHeader.tsx | 0 .../features/research/components/MorningDigest.tsx | 0 .../research/components/NarrativeThreadView.tsx | 0 .../research/components/OracleSessionBanner.tsx | 0 .../research/components/OvernightMovesCard.tsx | 0 .../research/components/PaperDetailsCard.tsx | 0 .../research/components/PersonalAnalytics.tsx | 0 .../research/components/PersonalDashboard.tsx | 0 .../features/research/components/PersonalPulse.tsx | 0 .../research/components/ProductChangelogPanel.tsx | 0 .../src}/features/research/components/PulseGrid.tsx | 0 .../research/components/RecommendationCard.tsx | 0 .../research/components/RecommendationPanel.tsx | 0 .../research/components/RelatedFeedsGrid.tsx | 0 .../research/components/RepoSignalPanel.tsx | 0 .../features/research/components/RepoStatsPanel.tsx | 0 .../research/components/ResearchSupplement.tsx | 0 .../features/research/components/SafeVegaChart.tsx | 0 .../research/components/ScrollytellingLayout.tsx | 0 .../features/research/components/SignalCard.tsx | 0 .../research/components/SignalMomentumMini.tsx | 0 .../research/components/SignalTimeseriesPanel.tsx | 0 .../src}/features/research/components/SmartLink.tsx | 0 .../features/research/components/SmartWatchlist.tsx | 0 .../features/research/components/SourceFeed.tsx | 0 .../src}/features/research/components/Sparkline.tsx | 0 .../research/components/StackImpactPanel.tsx | 0 .../research/components/StickyDashboard.tsx | 0 .../research/components/StrategyMetricsPanel.tsx | 0 .../research/components/TimelineScrubber.tsx | 0 .../features/research/components/TimelineStrip.tsx | 0 .../research/components/TraceBreadcrumb.tsx | 0 .../src}/features/research/components/TrendRail.tsx | 0 .../research/components/VirtualizedFeedList.tsx | 0 .../research/components/WhatChangedPanel.tsx | 0 .../components/dossier/DossierMediaGallery.tsx | 0 .../research/components/dossier/mediaExtractor.ts | 0 .../components/dossier/tipTapMediaExtractor.ts | 0 .../web/src}/features/research/components/index.ts | 0 .../features/research/components/modelEvalData.ts | 0 .../components/newsletter/EvidenceDrawer.tsx | 0 .../components/newsletter/NewsletterComponents.tsx | 0 .../components/newsletter/NewsletterView.tsx | 0 .../research/components/newsletter/StickyTopBar.tsx | 0 .../components/newsletter/WhatChangedStrip.tsx | 0 .../research/components/newsletter/index.ts | 0 .../research/content/goldenBriefExample.json | 0 .../features/research/content/researchStream.json | 0 .../features/research/contexts/EvidenceContext.tsx | 0 .../features/research/contexts/FocusSyncContext.tsx | 0 .../web/src}/features/research/data/CHANGELOG.md | 0 .../web/src}/features/research/data/audit_mocks.ts | 0 .../web/src}/features/research/hooks/index.ts | 0 .../features/research/hooks/useBriefData.test.ts | 0 .../src}/features/research/hooks/useBriefData.ts | 0 .../web/src}/features/research/hooks/useDealData.ts | 0 .../research/hooks/useDossierAgentHandlers.ts | 0 .../features/research/hooks/useEntityHoverData.ts | 0 .../web/src}/features/research/hooks/useFeedData.ts | 0 .../research/hooks/useFocusSyncDebounced.ts | 0 .../features/research/hooks/usePersonalBrief.ts | 0 .../features/research/hooks/useReaderContent.ts | 0 .../web/src}/features/research/lib/demoSignals.ts | 0 .../features/research/prompts/briefConstraints.ts | 0 .../web/src}/features/research/prompts/index.ts | 0 .../features/research/sections/BriefingSection.tsx | 0 .../features/research/sections/DashboardSection.tsx | 0 .../features/research/sections/DealListSection.tsx | 0 .../features/research/sections/DigestSection.tsx | 0 .../src}/features/research/sections/FeedSection.tsx | 0 .../web/src}/features/research/sections/index.ts | 0 {src => apps/web/src}/features/research/types.ts | 0 .../src}/features/research/types/citationSchema.ts | 0 .../features/research/types/dailyBriefSchema.ts | 0 .../src}/features/research/types/entitySchema.ts | 0 .../web/src}/features/research/types/index.ts | 0 .../src}/features/research/utils/briefGenerator.ts | 0 .../research/utils/briefTransformers.test.ts | 0 .../features/research/utils/briefTransformers.ts | 0 .../web/src}/features/research/utils/index.ts | 0 .../features/research/utils/newsletterParser.ts | 0 .../features/research/validators/briefValidator.ts | 0 .../web/src}/features/research/validators/index.ts | 0 .../src}/features/research/views/CinematicHome.tsx | 0 .../src}/features/research/views/DossierViewer.tsx | 0 .../features/research/views/EntityProfilePage.tsx | 0 .../src}/features/research/views/FootnotesPage.tsx | 0 .../features/research/views/FundingBriefView.tsx | 0 .../features/research/views/LiveDossierDocument.tsx | 0 .../features/research/views/MobileReportSurface.tsx | 0 .../features/research/views/PhaseAllShowcase.tsx | 0 .../features/research/views/PublicSignalsLog.tsx | 0 .../features/research/views/ReportDetailPage.tsx | 0 .../research/views/ReportDetailWorkspace.tsx | 0 .../research/views/ResearchHub.routeSync.test.tsx | 0 .../src}/features/research/views/ResearchHub.tsx | 0 .../src}/features/research/views/WatchlistsView.tsx | 0 .../features/research/views/WorldMonitorView.tsx | 0 .../features/share/components/ShareEntityButton.tsx | 0 .../share/views/PublicEntityShareView.test.tsx | 0 .../features/share/views/PublicEntityShareView.tsx | 0 .../features/share/views/publicShareHelpers.test.ts | 0 .../src}/features/share/views/publicShareHelpers.ts | 0 .../strategy/data/spreadsheetExecutionTrace.ts | 0 .../strategy/data/testsAssuredProductDirection.ts | 0 .../strategy/lib/executionTraceAdapter.test.ts | 0 .../features/strategy/lib/executionTraceAdapter.ts | 0 .../features/strategy/types/executionTrace.test.ts | 0 .../src}/features/strategy/types/executionTrace.ts | 0 .../strategy/types/inHouseProductDirection.test.ts | 0 .../strategy/types/inHouseProductDirection.ts | 0 .../strategy/views/ExecutionTraceView.test.tsx | 0 .../features/strategy/views/ExecutionTraceView.tsx | 0 .../views/ProductDirectionMemoView.test.tsx | 0 .../strategy/views/ProductDirectionMemoView.tsx | 0 .../src}/features/telemetry/ContextInspector.tsx | 0 .../web/src}/features/telemetry/ContextualGraph.tsx | 0 .../web/src}/features/telemetry/CostWaterfall.tsx | 0 .../web/src}/features/telemetry/EvalScorecard.tsx | 0 .../web/src}/features/telemetry/FailureClusters.tsx | 0 .../web/src}/features/telemetry/JudgeHeatmap.tsx | 0 .../web/src}/features/telemetry/LiveDataBanner.tsx | 0 .../src}/features/telemetry/ToolCoverageProof.tsx | 0 .../web/src}/features/telemetry/TrajectoryPanel.tsx | 0 {src => apps/web/src}/features/telemetry/index.ts | 0 {src => apps/web/src}/features/telemetry/types.ts | 0 .../web/src}/features/telemetry/useLiveTelemetry.ts | 0 {src => apps/web/src}/features/tracking/index.ts | 0 .../features/tracking/views/EntityTrackingView.tsx | 0 .../trajectory/components/TrajectorySummaryBand.tsx | 0 .../components/TrajectoryTimelinePanel.tsx | 0 .../features/trajectory/lib/trajectoryEntity.ts | 0 {src => apps/web/src}/features/trajectory/types.ts | 0 .../features/voice/components/VoiceAuditFeed.tsx | 0 .../features/voice/components/VoiceCostBadge.tsx | 0 {src => apps/web/src}/features/voice/index.ts | 0 .../workspace/data/eventWorkspaceMemory.test.ts | 0 .../features/workspace/data/eventWorkspaceMemory.ts | 0 .../features/workspace/data/scenarioCatalog.test.ts | 0 .../src}/features/workspace/data/scenarioCatalog.ts | 0 .../workspace/lib/eventWorkspacePersistence.test.ts | 0 .../workspace/lib/eventWorkspacePersistence.ts | 0 .../workspace/lib/useEventCaptureRecorder.ts | 0 .../workspace/lib/useEventWorkspacePersistence.ts | 0 .../features/workspace/lib/workspaceRouting.test.ts | 0 .../src}/features/workspace/lib/workspaceRouting.ts | 0 .../workspace/views/UniversalWorkspacePage.tsx | 0 {src => apps/web/src}/hooks/FeedbackListener.tsx | 0 {src => apps/web/src}/hooks/VOICE_INTENT_ROUTER.md | 0 .../src}/hooks/__tests__/useViewportMobile.test.ts | 0 {src => apps/web/src}/hooks/contextPills.tsx | 0 {src => apps/web/src}/hooks/index.ts | 0 {src => apps/web/src}/hooks/useAgentLanes.ts | 0 {src => apps/web/src}/hooks/useAgentStateApi.ts | 0 {src => apps/web/src}/hooks/useArtifactStore.tsx | 0 .../web/src}/hooks/useArtifactStreamConsumer.ts | 0 {src => apps/web/src}/hooks/useCockpitRouting.ts | 0 {src => apps/web/src}/hooks/useCommandPalette.ts | 0 .../web/src}/hooks/useContextualToolSuggestions.ts | 0 {src => apps/web/src}/hooks/useConvexSearch.ts | 0 {src => apps/web/src}/hooks/useCurrentUser.ts | 0 .../web/src}/hooks/useEngagementTracking.ts | 0 {src => apps/web/src}/hooks/useFeedback.ts | 0 {src => apps/web/src}/hooks/useGeminiLiveSession.ts | 0 .../web/src}/hooks/useGlobalEventListeners.ts | 0 {src => apps/web/src}/hooks/useInlineCitations.ts | 0 {src => apps/web/src}/hooks/useIntentTelemetry.ts | 0 {src => apps/web/src}/hooks/useMcp.ts | 0 {src => apps/web/src}/hooks/useMousePosition.ts | 0 {src => apps/web/src}/hooks/useMouseProximity.ts | 0 {src => apps/web/src}/hooks/useOracleSession.ts | 0 {src => apps/web/src}/hooks/usePathTracking.ts | 0 {src => apps/web/src}/hooks/usePlannerState.ts | 0 {src => apps/web/src}/hooks/usePwaInstallPrompt.ts | 0 .../web/src}/hooks/useRealtimeTranscription.ts | 0 {src => apps/web/src}/hooks/useRecommendations.ts | 0 {src => apps/web/src}/hooks/useReducedMotion.ts | 0 {src => apps/web/src}/hooks/useRevealOnMount.ts | 0 {src => apps/web/src}/hooks/useScreenCapture.ts | 0 {src => apps/web/src}/hooks/useStableQuery.ts | 0 .../web/src}/hooks/useStreamingSearch.test.ts | 0 {src => apps/web/src}/hooks/useStreamingSearch.ts | 0 .../web/src}/hooks/useStreamingTranscription.ts | 0 {src => apps/web/src}/hooks/useSwarm.ts | 0 {src => apps/web/src}/hooks/useTimeContext.ts | 0 {src => apps/web/src}/hooks/useToast.ts | 0 {src => apps/web/src}/hooks/useUnifiedItems.ts | 0 {src => apps/web/src}/hooks/useViewWebMcpTools.ts | 0 {src => apps/web/src}/hooks/useViewportMobile.ts | 0 {src => apps/web/src}/hooks/useVoiceInput.ts | 0 .../web/src}/hooks/useVoiceIntentRouter.test.ts | 0 {src => apps/web/src}/hooks/useVoiceIntentRouter.ts | 0 {src => apps/web/src}/hooks/useVoiceOutput.ts | 0 {src => apps/web/src}/hooks/useVoiceRecording.ts | 0 {src => apps/web/src}/hooks/useWakeVoiceFeedback.ts | 0 {src => apps/web/src}/hooks/useWakeVoiceSession.ts | 0 .../web/src}/hooks/useWakeWordActivation.ts | 0 {src => apps/web/src}/hooks/useWebMcpProvider.ts | 0 {src => apps/web/src}/hooks/useZoom.ts | 0 {src => apps/web/src}/index.css | 0 .../web/src}/layouts/ActiveSurfaceHost.test.tsx | 0 {src => apps/web/src}/layouts/ActiveSurfaceHost.tsx | 0 {src => apps/web/src}/layouts/CockpitLayout.tsx | 0 {src => apps/web/src}/layouts/CommandBar.tsx | 0 {src => apps/web/src}/layouts/IOSChrome.tsx | 0 {src => apps/web/src}/layouts/MobileCaptureFab.tsx | 0 {src => apps/web/src}/layouts/MobileTabBar.tsx | 0 {src => apps/web/src}/layouts/ObjectBar.tsx | 0 {src => apps/web/src}/layouts/ObjectFirstLayout.tsx | 0 .../web/src}/layouts/ObjectFirstSurfaceHost.tsx | 0 {src => apps/web/src}/layouts/ObjectFirstToggle.tsx | 0 {src => apps/web/src}/layouts/ProductTopNav.tsx | 0 {src => apps/web/src}/layouts/StatusStrip.tsx | 0 {src => apps/web/src}/layouts/WorkspaceRail.tsx | 0 .../web/src}/layouts/chrome/AgentMetadata.tsx | 0 .../web/src}/layouts/chrome/CommandPalette.tsx | 0 .../src}/layouts/chrome/HashtagQuickNotePopover.tsx | 0 .../src}/layouts/chrome/QuickCaptureWidget.test.tsx | 0 .../web/src}/layouts/chrome/QuickCaptureWidget.tsx | 0 .../layouts/chrome/commandPalette/recentSearches.ts | 0 .../chrome/commandPalette/resolveResultAction.ts | 0 .../web/src}/layouts/chrome/commandPalette/types.ts | 0 .../chrome/commandPalette/useFederatedSearch.ts | 0 .../src}/layouts/chrome/commandPaletteUtils.test.ts | 0 .../web/src}/layouts/chrome/commandPaletteUtils.ts | 0 {src => apps/web/src}/layouts/chrome/index.ts | 0 {src => apps/web/src}/layouts/cockpitModes.ts | 0 {src => apps/web/src}/layouts/cockpitRails.test.tsx | 0 {src => apps/web/src}/layouts/hud.css | 0 {src => apps/web/src}/layouts/index.ts | 0 .../web/src}/layouts/settings/SettingsModal.tsx | 0 .../web/src}/layouts/settings/ThemeCustomizer.tsx | 0 .../src}/layouts/settings/WebMcpSettingsPanel.tsx | 0 .../web/src}/layouts/useCockpitMode.test.tsx | 0 {src => apps/web/src}/layouts/useCockpitMode.ts | 0 {src => apps/web/src}/lib/ROUTE_ARCHITECTURE.md | 0 .../__snapshots__/tasks.reorder.spec.ts.snap | 0 .../web/src}/lib/__tests__/tasks.reorder.spec.ts | 0 {src => apps/web/src}/lib/analytics.ts | 0 {src => apps/web/src}/lib/audio/pcmPlayer.ts | 0 {src => apps/web/src}/lib/audio/pcmWorklet.ts | 0 {src => apps/web/src}/lib/briefDate.ts | 0 {src => apps/web/src}/lib/buttonClasses.ts | 0 {src => apps/web/src}/lib/calendarHelpers.ts | 0 {src => apps/web/src}/lib/convexApi.ts | 0 {src => apps/web/src}/lib/displayText.ts | 0 {src => apps/web/src}/lib/documentThemes.ts | 0 {src => apps/web/src}/lib/e2eCrypto.ts | 0 {src => apps/web/src}/lib/elevenlabs.ts | 0 {src => apps/web/src}/lib/errorReporting.ts | 0 {src => apps/web/src}/lib/events.ts | 0 {src => apps/web/src}/lib/featureFlags.ts | 0 {src => apps/web/src}/lib/fileTypes.ts | 0 {src => apps/web/src}/lib/formatNumber.ts | 0 .../web/src}/lib/formatting/buttonClasses.ts | 0 {src => apps/web/src}/lib/formatting/displayText.ts | 0 .../web/src}/lib/formatting/formatNumber.ts | 0 {src => apps/web/src}/lib/haptics.ts | 0 {src => apps/web/src}/lib/hooks/useDataSource.ts | 0 .../web/src}/lib/hooks/useEngagementTracking.ts | 0 .../web/src}/lib/hooks/useIntentTelemetry.ts | 0 .../web/src}/lib/hooks/useSwipeNavigation.ts | 0 {src => apps/web/src}/lib/ids.ts | 0 {src => apps/web/src}/lib/llmProvider.ts | 0 {src => apps/web/src}/lib/metaPillMappers.ts | 0 {src => apps/web/src}/lib/motion.ts | 0 {src => apps/web/src}/lib/nativeBootstrap.ts | 0 {src => apps/web/src}/lib/notebookAlerts.test.ts | 0 {src => apps/web/src}/lib/notebookAlerts.ts | 0 {src => apps/web/src}/lib/pdf/index.ts | 0 {src => apps/web/src}/lib/pdf/pdfGenerator.ts | 0 .../lib/pdf/templates/companyDossierTemplate.ts | 0 .../lib/pdf/templates/quarterlyFundingTemplate.ts | 0 .../src}/lib/pdf/templates/weeklyDigestTemplate.ts | 0 {src => apps/web/src}/lib/pdf/types.ts | 0 {src => apps/web/src}/lib/pdf/usePDFGenerator.ts | 0 .../web/src}/lib/performance/deepAgentMonitoring.ts | 0 .../web/src}/lib/performance/idbSwrCache.test.ts | 0 .../web/src}/lib/performance/idbSwrCache.ts | 0 .../web/src}/lib/performance/routeTiming.test.ts | 0 .../web/src}/lib/performance/routeTiming.ts | 0 .../web/src}/lib/performance/useIdleGate.ts | 0 .../web/src}/lib/performance/useOnlineStatus.ts | 0 .../src}/lib/performance/useStaleWhileRevalidate.ts | 0 .../src}/lib/performance/useWindowedList.test.ts | 0 .../web/src}/lib/performance/useWindowedList.ts | 0 .../web/src}/lib/registry/viewBreadcrumbs.test.ts | 0 .../web/src}/lib/registry/viewBreadcrumbs.ts | 0 .../web/src}/lib/registry/viewCapabilityRegistry.ts | 0 .../src}/lib/registry/viewRegistry.share.test.ts | 0 .../web/src}/lib/registry/viewRegistry.test.ts | 0 {src => apps/web/src}/lib/registry/viewRegistry.ts | 0 {src => apps/web/src}/lib/registry/viewToolMap.ts | 0 {src => apps/web/src}/lib/searchApi.ts | 0 {src => apps/web/src}/lib/shapes/e2eCrypto.ts | 0 {src => apps/web/src}/lib/shapes/events.ts | 0 {src => apps/web/src}/lib/shapes/ids.ts | 0 {src => apps/web/src}/lib/shapes/tasks.ts | 0 {src => apps/web/src}/lib/sources.ts | 0 {src => apps/web/src}/lib/syncBridgeApi.ts | 0 {src => apps/web/src}/lib/tasks.ts | 0 {src => apps/web/src}/lib/time/briefDate.ts | 0 {src => apps/web/src}/lib/time/calendarHelpers.ts | 0 {src => apps/web/src}/lib/time/timezones.ts | 0 .../web/src}/lib/time/useBriefDateSelection.ts | 0 {src => apps/web/src}/lib/timezones.ts | 0 {src => apps/web/src}/lib/ui/documentThemes.ts | 0 {src => apps/web/src}/lib/ui/fileTypes.ts | 0 {src => apps/web/src}/lib/ui/metaPillMappers.ts | 0 {src => apps/web/src}/lib/ui/sources.ts | 0 {src => apps/web/src}/lib/ui/stagger.ts | 0 {src => apps/web/src}/lib/useBriefDateSelection.ts | 0 {src => apps/web/src}/lib/utils.ts | 0 {src => apps/web/src}/main.tsx | 0 .../web/src}/shared/agent-ui/AgentScreen.tsx | 0 .../web/src}/shared/agent-ui/agentAction.ts | 0 {src => apps/web/src}/shared/agent-ui/index.ts | 0 .../web/src}/shared/agentOutputContract.test.ts | 0 {src => apps/web/src}/shared/agentOutputContract.ts | 0 {src => apps/web/src}/shared/artifacts.ts | 0 .../src}/shared/components/AnimatedComponents.tsx | 0 .../web/src}/shared/components/ContextPills.tsx | 0 .../web/src}/shared/components/DataSourceBanner.tsx | 0 .../web/src}/shared/components/DialogOverlay.tsx | 0 .../web/src}/shared/components/EmptyStates.tsx | 0 .../web/src}/shared/components/ErrorBoundary.tsx | 0 .../web/src}/shared/components/FileDropOverlay.tsx | 0 .../web/src}/shared/components/FileTypeIcon.tsx | 0 .../web/src}/shared/components/LazyCodeBlock.tsx | 0 .../web/src}/shared/components/LazyView.tsx | 0 .../web/src}/shared/components/LiveRegion.tsx | 0 .../web/src}/shared/components/MetaPills.tsx | 0 .../src}/shared/components/MiniEditorPopover.tsx | 0 .../web/src}/shared/components/PillAction.tsx | 0 .../src}/shared/components/PresenceIndicator.tsx | 0 .../web/src}/shared/components/SectionLabel.tsx | 0 .../web/src}/shared/components/SkeletonCard.tsx | 0 .../web/src}/shared/components/SkipLinks.tsx | 0 .../web/src}/shared/components/SortableList.tsx | 0 .../web/src}/shared/components/SurfaceHero.tsx | 0 .../web/src}/shared/components/ViewBreadcrumbs.tsx | 0 .../web/src}/shared/components/ZoomControls.tsx | 0 .../src}/shared/editors/PopoverMiniDocEditor.tsx | 0 {src => apps/web/src}/shared/editors/index.ts | 0 .../rocketride-nodebenchai-frozen-sources.json | 0 .../web/src}/shared/hooks/FeedbackListener.tsx | 0 {src => apps/web/src}/shared/hooks/useFeedback.ts | 0 {src => apps/web/src}/shared/llm/approvedModels.ts | 0 .../web/src}/shared/llm/pipelineModelRoutes.test.ts | 0 .../web/src}/shared/llm/pipelineModelRoutes.ts | 0 .../src}/shared/nodeBenchWorkflowCandidate.test.ts | 0 .../web/src}/shared/nodeBenchWorkflowCandidate.ts | 0 .../web/src}/shared/riskAttackEvaluator.test.ts | 0 {src => apps/web/src}/shared/riskAttackEvaluator.ts | 0 .../src}/shared/rocketRideEvidenceBundle.test.ts | 0 .../web/src}/shared/rocketRideEvidenceBundle.ts | 0 {src => apps/web/src}/shared/ui/AnimatedNumber.tsx | 0 .../web/src}/shared/ui/AnimatedProgressBar.tsx | 0 {src => apps/web/src}/shared/ui/Badge.tsx | 0 {src => apps/web/src}/shared/ui/Button.tsx | 0 {src => apps/web/src}/shared/ui/Card.tsx | 0 {src => apps/web/src}/shared/ui/EmptyState.tsx | 0 {src => apps/web/src}/shared/ui/PageHeroHeader.tsx | 0 {src => apps/web/src}/shared/ui/PresetChip.tsx | 0 {src => apps/web/src}/shared/ui/ProgressBar.tsx | 0 {src => apps/web/src}/shared/ui/SidebarButton.tsx | 0 .../web/src}/shared/ui/SidebarMiniCalendar.tsx | 0 {src => apps/web/src}/shared/ui/SidebarUpcoming.tsx | 0 {src => apps/web/src}/shared/ui/SignatureOrb.tsx | 0 {src => apps/web/src}/shared/ui/SourceChip.test.tsx | 0 {src => apps/web/src}/shared/ui/SourceChip.tsx | 0 {src => apps/web/src}/shared/ui/Sparkline.tsx | 0 .../web/src}/shared/ui/SurfacePrimitives.tsx | 0 {src => apps/web/src}/shared/ui/Toast.test.tsx | 0 {src => apps/web/src}/shared/ui/Toast.tsx | 0 {src => apps/web/src}/shared/ui/Tooltip.tsx | 0 {src => apps/web/src}/shared/ui/TopDividerBar.tsx | 0 .../web/src}/shared/ui/TrajectorySparkline.tsx | 0 {src => apps/web/src}/shared/ui/UnifiedHubPills.tsx | 0 {src => apps/web/src}/shared/ui/index.ts | 0 {src => apps/web/src}/shared/ui/surface-tokens.css | 0 .../web/src}/shared/workflowExecutionPort.ts | 0 {src => apps/web/src}/styles/agentDashboard.css | 0 .../src}/test/AgentResponseFlywheelPanel.test.tsx | 0 .../web/src}/test/CalendarAgentsNav.test.tsx | 0 .../web/src}/test/CalendarHomeHub.pills.test.tsx | 0 .../web/src}/test/DocumentsHomeHub.pills.test.tsx | 0 .../web/src}/test/LinkedInPostCard.test.tsx | 0 .../web/src}/test/Orchestrator.live.e2e.test.ts | 0 .../src}/test/Orchestrator.live.eval.e2e.test.ts | 0 .../web/src}/test/SuccessLoopsPanel.test.tsx | 0 .../web/src}/test/TrajectorySummaryBand.test.tsx | 0 {src => apps/web/src}/test/UnifiedHubPills.test.tsx | 0 .../web/src}/test/agentResponseFlywheel.test.ts | 0 .../web/src}/test/dcfSpreadsheetMapping.test.ts | 0 {src => apps/web/src}/test/displayText.test.ts | 0 .../src}/test/mocks/blocknote/core/fonts/inter.css | 0 .../web/src}/test/mocks/blocknote/core/index.ts | 0 .../web/src}/test/mocks/blocknote/mantine/index.tsx | 0 .../web/src}/test/mocks/blocknote/mantine/style.css | 0 .../test/scratchnodeLaunchGoalLoopSelection.test.ts | 0 {src => apps/web/src}/test/setup.ts | 0 {src => apps/web/src}/test/successLoopsLib.test.ts | 0 .../web/src}/test/taskSessionProofPack.test.ts | 0 {src => apps/web/src}/test/testUtils.tsx | 0 {src => apps/web/src}/test/trajectoryScore.test.ts | 0 .../web/src}/test/useWakeVoiceFeedback.test.tsx | 0 .../web/src}/test/useWakeVoiceSession.test.tsx | 0 .../web/src}/test/useWakeWordActivation.test.ts | 0 .../web/src}/test/viewCapabilityRegistry.test.ts | 0 {src => apps/web/src}/types/theme.ts | 0 {src => apps/web/src}/types/unified.ts | 0 {src => apps/web/src}/types/wx-react-gantt.d.ts | 0 {src => apps/web/src}/utils/a11y.ts | 0 {src => apps/web/src}/utils/animations.ts | 0 {src => apps/web/src}/vite-env.d.ts | 0 .../__tests__/agentPlanning.listPlans.test.ts | 0 .../__tests__/agentRuntimeTierFallback.test.ts | 0 .../__tests__/scratchnode.doorPolicy.test.ts | 0 .../convex}/__tests__/scratchnode.events.test.ts | 0 .../__tests__/scratchnode.handoffToken.test.ts | 0 .../__tests__/scratchnode.publicWiki.test.ts | 0 .../__tests__/scratchnode.publicWikiRead.test.ts | 0 .../convex}/__tests__/scratchnode.wall.test.ts | 0 .../convex}/__tests__/scratchnodeLiveCues.test.ts | 0 {convex => backend/convex}/_generated/api.d.ts | 0 {convex => backend/convex}/_generated/api.js | 0 .../convex}/_generated/dataModel.d.ts | 0 {convex => backend/convex}/_generated/server.d.ts | 0 {convex => backend/convex}/_generated/server.js | 0 .../convex}/_type_shims/convex-server.d.ts | 0 .../convex}/_type_shims/convex-values.d.ts | 0 .../actions/__tests__/spreadsheetActions.test.ts | 0 .../convex}/actions/coordinatorWorkflowActions.ts | 0 .../convex}/actions/externalOrchestrator.ts | 0 {convex => backend/convex}/actions/openbbActions.ts | 0 .../convex}/actions/parallelDelegation.ts | 0 .../convex}/actions/researchMcpActions.ts | 0 .../convex}/actions/spreadsheetActions.ts | 0 {convex => backend/convex}/agentOS.ts | 0 {convex => backend/convex}/agentsPrefs.ts | 0 {convex => backend/convex}/auth.config.ts | 0 {convex => backend/convex}/auth.ts | 0 .../convex}/config/autonomousConfig.ts | 0 {convex => backend/convex}/convex.config.ts | 0 {convex => backend/convex}/crons.ts | 0 .../convex}/crons/dailyDossierCron.ts | 0 .../convex}/crons/emailIntelligenceCron.ts | 0 .../convex}/crons/proactiveCalendarIngestion.ts | 0 .../convex}/crons/proactiveDelivery.ts | 0 .../convex}/crons/proactiveDetectorRuns.ts | 0 .../convex}/crons/proactiveEmailIngestion.ts | 0 {convex => backend/convex}/crons/sloCalculation.ts | 0 {convex => backend/convex}/dataAudit.ts | 0 {convex => backend/convex}/debugEnv.ts | 0 .../domains/agents/MODEL_CONSOLIDATION_PLAN.md | 0 .../domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md | 0 .../adapters/anthropic/anthropicReasoningAdapter.ts | 0 .../adapters/anthropic/promptCacheHelpers.test.ts | 0 .../agents/adapters/anthropic/promptCacheHelpers.ts | 0 .../agents/adapters/convex/convexAgentAdapter.ts | 0 .../google/googleInteractionsAdapter.test.ts | 0 .../adapters/google/googleInteractionsAdapter.ts | 0 .../domains/agents/adapters/handoffBridge.ts | 0 .../convex}/domains/agents/adapters/index.ts | 0 .../adapters/langgraph/langgraphAdapter.test.ts | 0 .../agents/adapters/langgraph/langgraphAdapter.ts | 0 .../domains/agents/adapters/multiSdkDelegation.ts | 0 .../agents/adapters/openai/openaiAgentsAdapter.ts | 0 .../agents/adapters/registerDefaultAdapters.ts | 0 .../convex}/domains/agents/adapters/registry.ts | 0 .../agents/adapters/routing/personaRouter.ts | 0 .../convex}/domains/agents/adapters/types.ts | 0 .../agents/adapters/vercel/vercelAiSdkAdapter.ts | 0 .../convex}/domains/agents/agentActions.ts | 0 .../convex}/domains/agents/agentChat.ts | 0 .../convex}/domains/agents/agentChatActions.ts | 0 .../convex}/domains/agents/agentDelegations.ts | 0 .../convex}/domains/agents/agentFeedRanking.ts | 0 .../convex}/domains/agents/agentFeedTraversal.ts | 0 .../convex}/domains/agents/agentHubQueries.ts | 0 .../convex}/domains/agents/agentInitializer.ts | 0 .../convex}/domains/agents/agentLoop.ts | 0 .../convex}/domains/agents/agentLoopQueries.ts | 0 .../convex}/domains/agents/agentMarketplace.ts | 0 .../convex}/domains/agents/agentMemory.ts | 0 .../convex}/domains/agents/agentMemorySummary.ts | 0 .../convex}/domains/agents/agentNavigation.ts | 0 .../convex}/domains/agents/agentPlanSummary.ts | 0 .../convex}/domains/agents/agentPlanning.ts | 0 .../convex}/domains/agents/agentPostingPipeline.ts | 0 .../convex}/domains/agents/agentRouter.ts | 0 .../convex}/domains/agents/agentRunPresentation.ts | 0 .../convex}/domains/agents/agentScratchpads.ts | 0 .../convex}/domains/agents/agentTimelines.ts | 0 .../convex}/domains/agents/agentViewManifest.ts | 0 .../convex}/domains/agents/arbitrage/agent.ts | 0 .../convex}/domains/agents/arbitrage/config.ts | 0 .../convex}/domains/agents/arbitrage/index.ts | 0 .../arbitrage/tools/contradictionDetection.ts | 0 .../agents/arbitrage/tools/deltaDetection.ts | 0 .../convex}/domains/agents/arbitrage/tools/index.ts | 0 .../agents/arbitrage/tools/sourceHealthCheck.ts | 0 .../agents/arbitrage/tools/sourceQualityRanking.ts | 0 .../convex}/domains/agents/autonomousCrons.ts | 0 .../domains/agents/autonomousCronsQueries.ts | 0 .../agents/autonomy/autonomy.integration.test.ts | 0 .../autonomy/autonomyTasteBench.integration.test.ts | 0 .../convex}/domains/agents/autonomy/commits.ts | 0 .../convex}/domains/agents/autonomy/evidence.ts | 0 .../convex}/domains/agents/autonomy/grants.ts | 0 .../convex}/domains/agents/autonomy/hash.ts | 0 .../convex}/domains/agents/autonomy/policy.test.ts | 0 .../convex}/domains/agents/autonomy/policy.ts | 0 .../convex}/domains/agents/autonomy/proposals.ts | 0 .../convex}/domains/agents/autonomy/remainders.ts | 0 .../convex}/domains/agents/autonomy/schema.ts | 0 .../convex}/domains/agents/batchAPI.ts | 0 .../convex}/domains/agents/budget/budgetGate.ts | 0 .../convex}/domains/agents/canonicalPlanner.ts | 0 .../domains/agents/canonicalRuntimeMutations.ts | 0 .../domains/agents/canonicalRuntimeQueries.ts | 0 .../convex}/domains/agents/chatPanelBackend.ts | 0 .../convex}/domains/agents/chatThreads.ts | 0 .../convex}/domains/agents/checkpointing.ts | 0 .../convex}/domains/agents/consistencyIndex.ts | 0 .../domains/agents/consistencyIndexQueries.ts | 0 .../convex}/domains/agents/coordinator/agent.ts | 0 .../convex}/domains/agents/coordinator/config.ts | 0 .../domains/agents/coordinator/contextPack.ts | 0 .../agents/coordinator/contextPackMutations.ts | 0 .../agents/coordinator/contextPackQueries.ts | 0 .../convex}/domains/agents/coordinator/index.ts | 0 .../agents/coordinator/tools/delegationTools.ts | 0 .../domains/agents/coordinator/tools/index.ts | 0 .../convex}/domains/agents/core/README.md | 0 .../convex}/domains/agents/core/coordinatorAgent.ts | 0 .../domains/agents/core/delegation/README.md | 0 .../agents/core/delegation/delegationHelpers.ts | 0 .../agents/core/delegation/delegationTools.ts | 0 .../agents/core/delegation/temporalContext.ts | 0 .../domains/agents/core/multiAgentWorkflow.ts | 0 .../convex}/domains/agents/core/prompts.ts | 0 .../core/subagents/comment_harvester/index.ts | 0 .../core/subagents/comment_harvester/mutations.ts | 0 .../core/subagents/document_subagent/README.md | 0 .../subagents/document_subagent/documentAgent.ts | 0 .../document_subagent/documentAgentWithMetaTools.ts | 0 .../document_subagent/tools/deepAgentEditTools.ts | 0 .../document_subagent/tools/documentTools.ts | 0 .../document_subagent/tools/geminiFileSearch.ts | 0 .../document_subagent/tools/hashtagSearchTools.ts | 0 .../core/subagents/document_subagent/tools/index.ts | 0 .../core/subagents/dossier_subagent/dossierAgent.ts | 0 .../dossier_subagent/tools/enrichDataPoint.ts | 0 .../dossier_subagent/tools/generateAnnotation.ts | 0 .../dossier_subagent/tools/getChartContext.ts | 0 .../core/subagents/dossier_subagent/tools/index.ts | 0 .../dossier_subagent/tools/updateFocusState.ts | 0 .../tools/updateNarrativeSection.ts | 0 .../entity_subagent/entityResearchAgent.ts | 0 .../core/subagents/media_subagent/mediaAgent.ts | 0 .../core/subagents/media_subagent/tools/index.ts | 0 .../subagents/media_subagent/tools/linkupSearch.ts | 0 .../subagents/media_subagent/tools/mediaTools.ts | 0 .../subagents/media_subagent/tools/youtubeSearch.ts | 0 .../agents/core/subagents/openbb_subagent/README.md | 0 .../core/subagents/openbb_subagent/openbbAgent.ts | 0 .../subagents/openbb_subagent/tools/adminTools.ts | 0 .../subagents/openbb_subagent/tools/cryptoTools.ts | 0 .../subagents/openbb_subagent/tools/economyTools.ts | 0 .../subagents/openbb_subagent/tools/equityTools.ts | 0 .../core/subagents/openbb_subagent/tools/index.ts | 0 .../subagents/openbb_subagent/tools/newsTools.ts | 0 .../research_subagent/multiSourceResearchAgent.ts | 0 .../agents/core/subagents/sec_subagent/secAgent.ts | 0 .../core/subagents/sec_subagent/tools/index.ts | 0 .../sec_subagent/tools/secCompanySearch.ts | 0 .../subagents/sec_subagent/tools/secFilingTools.ts | 0 .../agents/core/subagents/thread_curator/index.ts | 0 .../agents/core/subagents/thread_curator/queries.ts | 0 .../agents/core/tools/externalOrchestratorTools.ts | 0 .../convex}/domains/agents/dataAccess/agent.ts | 0 .../convex}/domains/agents/dataAccess/config.ts | 0 .../convex}/domains/agents/dataAccess/index.ts | 0 .../agents/dataAccess/tools/calendarTools.ts | 0 .../domains/agents/dataAccess/tools/index.ts | 0 .../domains/agents/dataAccess/tools/taskTools.ts | 0 .../convex}/domains/agents/decisionMemory.ts | 0 .../convex}/domains/agents/decisionMemoryQueries.ts | 0 .../convex}/domains/agents/decorationPreferences.ts | 0 .../domains/agents/deliberationToEvolution.ts | 0 .../convex}/domains/agents/digestAgent.ts | 0 .../docs/2025_AGENT_ORCHESTRATION_RESEARCH.md | 0 .../docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md | 0 .../agents/dueDiligence/branches/companyProfile.ts | 0 .../dueDiligence/branches/conditionalBranches.ts | 0 .../dueDiligence/branches/marketCompetitive.ts | 0 .../dueDiligence/branches/teamDeepResearch.ts | 0 .../domains/agents/dueDiligence/crossChecker.ts | 0 .../domains/agents/dueDiligence/ddBranchHandoff.ts | 0 .../domains/agents/dueDiligence/ddContextEngine.ts | 0 .../agents/dueDiligence/ddEnhancedOrchestrator.ts | 0 .../domains/agents/dueDiligence/ddMutations.ts | 0 .../domains/agents/dueDiligence/ddOrchestrator.ts | 0 .../agents/dueDiligence/ddOwnership.auth.test.ts | 0 .../domains/agents/dueDiligence/ddTriggerQueries.ts | 0 .../domains/agents/dueDiligence/ddTriggers.ts | 0 .../deepResearch/agents/newsVerificationAgent.ts | 0 .../deepResearch/agents/personResearchAgent.ts | 0 .../dueDiligence/deepResearch/claimClassifier.ts | 0 .../deepResearch/deepResearchOrchestrator.ts | 0 .../dueDiligence/deepResearch/hypothesisEngine.ts | 0 .../agents/dueDiligence/deepResearch/index.ts | 0 .../dueDiligence/deepResearch/queryDecomposer.ts | 0 .../agents/dueDiligence/deepResearch/types.ts | 0 .../convex}/domains/agents/dueDiligence/index.ts | 0 .../investorPlaybook/agenticPlaybook.ts | 0 .../branches/claimVerificationBranch.ts | 0 .../branches/enhancedClaimVerification.ts | 0 .../branches/enhancedNewsVerification.ts | 0 .../branches/entityVerificationBranch.ts | 0 .../branches/fdaVerificationBranch.ts | 0 .../branches/financial/dealMemoSynthesis.ts | 0 .../financial/fundPerformanceVerification.ts | 0 .../branches/finraValidationBranch.ts | 0 .../dueDiligence/investorPlaybook/branches/index.ts | 0 .../branches/industry/clinicalTrialVerification.ts | 0 .../branches/industry/literatureTriangulation.ts | 0 .../investorPlaybook/branches/moneyFlowBranch.ts | 0 .../branches/newsVerificationBranch.ts | 0 .../branches/personVerificationBranch.ts | 0 .../branches/scientificClaimVerificationBranch.ts | 0 .../investorPlaybook/branches/secEdgarBranch.ts | 0 .../strategic/economicIndicatorVerification.ts | 0 .../branches/strategic/maActivityVerification.ts | 0 .../investorPlaybook/branches/usptoBranch.ts | 0 .../dueDiligence/investorPlaybook/evalPlaybook.ts | 0 .../agents/dueDiligence/investorPlaybook/index.ts | 0 .../investorPlaybook/playbookActions.ts | 0 .../investorPlaybook/playbookMutations.ts | 0 .../investorPlaybook/playbookOrchestrator.ts | 0 .../agents/dueDiligence/investorPlaybook/types.ts | 0 .../agents/dueDiligence/investorProtection/index.ts | 0 .../investorProtectionMutations.ts | 0 .../investorProtectionOrchestrator.ts | 0 .../investorProtectionOwnership.auth.test.ts | 0 .../investorProtectionOwnership.ts | 0 .../investorProtection/phases/claimsExtraction.ts | 0 .../agents/dueDiligence/investorProtection/types.ts | 0 .../domains/agents/dueDiligence/memoSynthesizer.ts | 0 .../domains/agents/dueDiligence/microBranches.ts | 0 .../domains/agents/dueDiligence/riskScoring.ts | 0 .../convex}/domains/agents/dueDiligence/types.ts | 0 .../convex}/domains/agents/emailAgent.ts | 0 .../convex}/domains/agents/evolutionVerification.ts | 0 .../convex}/domains/agents/fastAgentChat.ts | 0 .../convex}/domains/agents/fastAgentChatHelpers.ts | 0 .../fastAgentCitationProvenance.guard.test.ts | 0 .../agents/fastAgentDocumentCreation.auth.test.ts | 0 .../domains/agents/fastAgentDocumentCreation.ts | 0 .../agents/fastAgentDocumentCreationOwnership.ts | 0 .../fastAgentPanelStreaming.anonymousAccess.test.ts | 0 .../domains/agents/fastAgentPanelStreaming.ts | 0 .../agents/fastAgentRuntimeSecurity.guard.test.ts | 0 .../convex}/domains/agents/glmFlashWithReasoning.ts | 0 .../convex}/domains/agents/glmHybridApproach.ts | 0 .../convex}/domains/agents/hitl/config.ts | 0 .../convex}/domains/agents/hitl/index.ts | 0 .../convex}/domains/agents/hitl/interruptManager.ts | 0 .../convex}/domains/agents/hitl/tools/askHuman.ts | 0 .../convex}/domains/agents/hitl/tools/index.ts | 0 .../convex}/domains/agents/humanInTheLoop.ts | 0 {convex => backend/convex}/domains/agents/index.ts | 0 .../convex}/domains/agents/lessons/captureLesson.ts | 0 .../domains/agents/lessons/getRelevantLessons.ts | 0 .../domains/agents/lessons/infraPreferIds.ts | 0 .../domains/agents/lessons/lessonInjection.test.ts | 0 .../domains/agents/lessons/lessonInjection.ts | 0 .../convex}/domains/agents/lessons/lessonsPublic.ts | 0 .../agents/lessons/systemPromptBuilder.test.ts | 0 .../domains/agents/lessons/systemPromptBuilder.ts | 0 .../mcp_tools/context/contextInitializerTool.ts | 0 .../domains/agents/mcp_tools/context/index.ts | 0 .../convex}/domains/agents/mcp_tools/index.ts | 0 .../domains/agents/mcp_tools/models/healthcheck.ts | 0 .../domains/agents/mcp_tools/models/index.ts | 0 .../domains/agents/mcp_tools/models/migration.ts | 0 .../agents/mcp_tools/models/modelResolver.test.ts | 0 .../agents/mcp_tools/models/modelResolver.ts | 0 .../agents/mcp_tools/models/promptCaching.ts | 0 .../domains/agents/mcp_tools/reasoningTool.ts | 0 .../agents/mcp_tools/testReasoningPersonas.ts | 0 .../domains/agents/mcp_tools/tracking/index.ts | 0 .../agents/mcp_tools/tracking/taskTrackerTool.ts | 0 .../agents/orchestrator/geminiVideoWrapper.ts | 0 .../agents/orchestrator/passportEnforcement.ts | 0 .../orchestrator/passportEnforcementQueries.ts | 0 .../domains/agents/orchestrator/queueProtocol.ts | 0 .../domains/agents/orchestrator/secEdgarWrapper.ts | 0 .../domains/agents/orchestrator/toolHealth.ts | 0 .../domains/agents/orchestrator/toolRouter.ts | 0 .../convex}/domains/agents/orchestrator/worker.ts | 0 .../domains/agents/parallelTaskTree.auth.test.ts | 0 .../convex}/domains/agents/parallelTaskTree.ts | 0 .../convex}/domains/agents/promptEnhancer.ts | 0 .../convex}/domains/agents/publicWrappers.ts | 0 .../agents/receipts/actionReceipts.auth.test.ts | 0 .../domains/agents/receipts/actionReceipts.ts | 0 .../domains/agents/receipts/emitWithReceipt.test.ts | 0 .../domains/agents/receipts/emitWithReceipt.ts | 0 .../convex}/domains/agents/researchJobs.ts | 0 .../convex}/domains/agents/responseFlywheel.ts | 0 .../convex}/domains/agents/runtimeRouting.test.ts | 0 .../convex}/domains/agents/runtimeRouting.ts | 0 .../convex}/domains/agents/runtimeTierFallback.ts | 0 .../domains/agents/safety/artifactDecisionGate.ts | 0 .../domains/agents/safety/lowConfidenceGuard.ts | 0 .../convex}/domains/agents/safety/rateLimitGuard.ts | 0 .../convex}/domains/agents/safety/safety.test.ts | 0 .../domains/agents/safety/singleflightMap.ts | 0 {convex => backend/convex}/domains/agents/schema.ts | 0 .../convex}/domains/agents/selfEvolution.ts | 0 .../convex}/domains/agents/selfEvolutionQueries.ts | 0 .../agents/snapshots/rollbackToCheckpoint.ts | 0 .../domains/agents/snapshots/snapshotCheckpoint.ts | 0 .../domains/agents/spiral/spiralDetector.test.ts | 0 .../convex}/domains/agents/spiral/spiralDetector.ts | 0 .../convex}/domains/agents/swarmDeliberation.ts | 0 .../domains/agents/swarmDeliberationQueries.ts | 0 .../convex}/domains/agents/swarmMutations.ts | 0 .../convex}/domains/agents/swarmOrchestrator.ts | 0 .../domains/agents/swarmOrchestratorEnhanced.ts | 0 .../domains/agents/swarmOwnership.auth.test.ts | 0 .../convex}/domains/agents/swarmQueries.ts | 0 .../convex}/domains/agents/testGlmFlash.ts | 0 .../convex}/domains/agents/testGlmFlashFix.ts | 0 .../agents/testOrchestratorReasoningIntegration.ts | 0 .../domains/agents/testParallelOrchestrator.ts | 0 .../domains/agents/tools/createDCFSpreadsheet.ts | 0 .../domains/agents/tools/editDCFSpreadsheet.ts | 0 .../domains/agents/traceAuditLog.auth.test.ts | 0 .../convex}/domains/agents/traceAuditLog.ts | 0 .../convex}/domains/agents/traceOrchestrator.ts | 0 .../convex}/domains/agents/traceTypes.ts | 0 {convex => backend/convex}/domains/agents/types.ts | 0 .../convex}/domains/agents/unified.ts | 0 {convex => backend/convex}/domains/ai/ai.ts | 0 {convex => backend/convex}/domains/ai/genai.ts | 0 .../convex}/domains/ai/metadataAnalyzer.ts | 0 .../domains/ai/models/autonomousModelResolver.ts | 0 .../convex}/domains/ai/models/capabilityRegistry.ts | 0 .../convex}/domains/ai/models/chainResolver.test.ts | 0 .../convex}/domains/ai/models/chainResolver.ts | 0 .../convex}/domains/ai/models/freeModelDiscovery.ts | 0 .../convex}/domains/ai/models/index.ts | 0 .../domains/ai/models/livePerformanceEval.ts | 0 .../convex}/domains/ai/models/modelRouter.ts | 0 .../convex}/domains/ai/models/modelRouterQueries.ts | 0 .../convex}/domains/ai/morningDigest.ts | 0 .../convex}/domains/ai/morningDigestQueries.ts | 0 .../convex}/domains/ai/realtimeTranscription.ts | 0 .../convex}/domains/ai/whisperTranscribe.ts | 0 .../analytics/__tests__/intentSignals.test.ts | 0 .../convex}/domains/analytics/analytics.ts | 0 .../convex}/domains/analytics/componentMetrics.ts | 0 .../convex}/domains/analytics/intentSignals.ts | 0 .../convex}/domains/analytics/ossStats.ts | 0 .../convex}/domains/artifacts/evidenceIndex.ts | 0 .../domains/artifacts/evidenceIndexActions.ts | 0 .../convex}/domains/artifacts/evidencePacks.ts | 0 .../convex}/domains/artifacts/evidenceSearch.ts | 0 .../convex}/domains/artifacts/sourceArtifacts.ts | 0 {convex => backend/convex}/domains/auth/account.ts | 0 {convex => backend/convex}/domains/auth/apiKeys.ts | 0 .../convex}/domains/auth/apiKeysActions.ts | 0 .../convex}/domains/auth/auth.config.ts | 0 {convex => backend/convex}/domains/auth/auth.ts | 0 {convex => backend/convex}/domains/auth/index.ts | 0 .../convex}/domains/auth/onboarding.ts | 0 .../convex}/domains/auth/personas/index.ts | 0 .../auth/personas/multiPersonaSynthesizer.ts | 0 .../domains/auth/personas/personaAutonomousAgent.ts | 0 {convex => backend/convex}/domains/auth/presence.ts | 0 {convex => backend/convex}/domains/auth/usage.ts | 0 .../convex}/domains/auth/userPreferences.ts | 0 .../convex}/domains/auth/userStats.ts | 0 {convex => backend/convex}/domains/auth/users.ts | 0 .../domains/batchAutopilot/deltaCollector.ts | 0 .../convex}/domains/batchAutopilot/mutations.ts | 0 .../convex}/domains/batchAutopilot/promptBuilder.ts | 0 .../convex}/domains/batchAutopilot/queries.ts | 0 .../convex}/domains/batchAutopilot/runner.ts | 0 .../convex}/domains/batchAutopilot/scheduler.ts | 0 .../convex}/domains/billing/apiUsageTracking.ts | 0 .../convex}/domains/billing/billing.ts | 0 {convex => backend/convex}/domains/billing/index.ts | 0 .../convex}/domains/billing/rateLimiting.ts | 0 .../convex}/domains/blips/blipClaimExtraction.ts | 0 .../convex}/domains/blips/blipGeneration.ts | 0 .../convex}/domains/blips/blipIngestion.ts | 0 .../convex}/domains/blips/blipMutations.ts | 0 .../convex}/domains/blips/blipPersonaLens.ts | 0 .../convex}/domains/blips/blipPipeline.ts | 0 .../convex}/domains/blips/blipQueries.ts | 0 .../convex}/domains/blips/blipVerification.ts | 0 {convex => backend/convex}/domains/blips/index.ts | 0 {convex => backend/convex}/domains/blips/types.ts | 0 .../convex}/domains/calendar/calendar.ts | 0 .../convex}/domains/calendar/events.ts | 0 .../convex}/domains/calendar/holidays.ts | 0 .../convex}/domains/calendar/holidaysActions.ts | 0 .../convex}/domains/calendar/index.ts | 0 .../domains/canonicalization/duplicateDetection.ts | 0 .../convex}/domains/channels/channelIntelligence.ts | 0 .../convex}/domains/channels/engagementOptimizer.ts | 0 .../convex}/domains/channels/index.ts | 0 .../convex}/domains/deepTrace/causalChainEngine.ts | 0 .../convex}/domains/deepTrace/dimensionEngine.ts | 0 .../convex}/domains/deepTrace/dimensionModel.ts | 0 .../convex}/domains/deepTrace/dimensions.ts | 0 .../convex}/domains/deepTrace/heuristics.test.ts | 0 .../convex}/domains/deepTrace/heuristics.ts | 0 .../convex}/domains/deepTrace/integrations.ts | 0 .../convex}/domains/deepTrace/researchCell.test.ts | 0 .../convex}/domains/deepTrace/researchCell.ts | 0 .../convex}/domains/deepTrace/schema.ts | 0 .../domains/documents/artifacts/evidenceIndex.ts | 0 .../documents/artifacts/evidenceIndexActions.ts | 0 .../domains/documents/artifacts/evidencePacks.ts | 0 .../domains/documents/artifacts/evidenceSearch.ts | 0 .../documents/artifacts/ingestionPipeline.ts | 0 .../domains/documents/artifacts/sourceArtifacts.ts | 0 .../convex}/domains/documents/batchOperations.ts | 0 .../convex}/domains/documents/calendar/calendar.ts | 0 .../convex}/domains/documents/calendar/events.ts | 0 .../convex}/domains/documents/calendar/holidays.ts | 0 .../domains/documents/calendar/holidaysActions.ts | 0 .../convex}/domains/documents/calendar/index.ts | 0 .../convex}/domains/documents/chunks.ts | 0 .../convex}/domains/documents/citationValidator.ts | 0 .../convex}/domains/documents/citations.ts | 0 .../convex}/domains/documents/documentEvents.ts | 0 .../domains/documents/documentMetadataParser.ts | 0 .../convex}/domains/documents/documentTasks.ts | 0 .../convex}/domains/documents/documentVersions.ts | 0 .../convex}/domains/documents/documents.ts | 0 .../domains/documents/dossier/annotations.ts | 0 .../convex}/domains/documents/dossier/enrichment.ts | 0 .../convex}/domains/documents/dossier/focusState.ts | 0 .../convex}/domains/documents/dossier/index.ts | 0 .../convex}/domains/documents/dossier/schema.ts | 0 .../convex}/domains/documents/exportDocument.ts | 0 .../convex}/domains/documents/fileAnalysis.ts | 0 .../convex}/domains/documents/fileDocuments.ts | 0 .../convex}/domains/documents/fileQueries.ts | 0 .../convex}/domains/documents/fileSearch.ts | 0 .../convex}/domains/documents/fileSearchData.ts | 0 .../convex}/domains/documents/files.ts | 0 .../convex}/domains/documents/folders.ts | 0 .../convex}/domains/documents/gridProjects.ts | 0 .../convex}/domains/documents/index.ts | 0 .../documents/mcpDocumentEndpoints.auth.test.ts | 0 .../domains/documents/mcpDocumentEndpoints.ts | 0 .../convex}/domains/documents/pdfAnalysis.ts | 0 .../convex}/domains/documents/pdfInsights.ts | 0 .../convex}/domains/documents/pendingEdits.ts | 0 .../convex}/domains/documents/prosemirror.ts | 0 .../convex}/domains/documents/quickCapture/index.ts | 0 .../domains/documents/quickCapture/quickCapture.ts | 0 .../domains/documents/quickCapture/voiceMemos.ts | 0 .../convex}/domains/documents/reportDocuments.ts | 0 .../convex}/domains/documents/search.ts | 0 .../domains/documents/smartDateExtraction.ts | 0 .../convex}/domains/documents/sync.ts | 0 .../convex}/domains/documents/syncMutations.ts | 0 .../convex}/domains/dogfood/screenshotQa.ts | 0 .../convex}/domains/dogfood/videoQa.ts | 0 .../convex}/domains/dogfood/videoQaMutations.ts | 0 .../convex}/domains/dogfood/videoQaQueries.ts | 0 .../convex}/domains/dossier/annotations.ts | 0 .../convex}/domains/dossier/enrichment.ts | 0 .../convex}/domains/dossier/focusState.ts | 0 {convex => backend/convex}/domains/dossier/index.ts | 0 .../convex}/domains/dossier/schema.ts | 0 .../convex}/domains/encounters/encounterCapture.ts | 0 .../convex}/domains/encounters/encounterFastPass.ts | 0 .../domains/encounters/encounterMutations.ts | 0 .../convex}/domains/encounters/encounterQueries.ts | 0 .../convex}/domains/encounters/index.ts | 0 .../convex}/domains/encounters/types.ts | 0 .../convex}/domains/enrichment/backfillMetadata.ts | 0 .../domains/enrichment/betterSectorClassifier.ts | 0 .../canonicalization/duplicateDetection.ts | 0 .../convex}/domains/enrichment/dataCleanup.ts | 0 .../convex}/domains/enrichment/deleteDuplicates.ts | 0 .../convex}/domains/enrichment/documentStore.ts | 0 .../convex}/domains/enrichment/enrichmentQueue.ts | 0 .../convex}/domains/enrichment/enrichmentWorker.ts | 0 .../convex}/domains/enrichment/entityBackfill.ts | 0 .../domains/enrichment/entityLinkingJudge.ts | 0 .../domains/enrichment/entityLinkingMutations.ts | 0 .../domains/enrichment/entityLinkingQueries.ts | 0 .../domains/enrichment/entityLinkingService.ts | 0 .../convex}/domains/enrichment/entityPromotion.ts | 0 .../convex}/domains/enrichment/fundingDetection.ts | 0 .../convex}/domains/enrichment/fundingMutations.ts | 0 .../convex}/domains/enrichment/fundingQueries.ts | 0 .../domains/enrichment/fundingVerification.ts | 0 .../domains/enrichment/llmCompanyExtraction.ts | 0 .../convex}/domains/enrichment/llmEnrichment.ts | 0 .../domains/enrichment/quickVerificationUpgrade.ts | 0 .../convex}/domains/enrichment/signals/index.ts | 0 .../domains/enrichment/signals/signalIngester.ts | 0 .../domains/enrichment/signals/signalProcessor.ts | 0 .../convex}/domains/enrichment/testQueries.ts | 0 .../domains/enrichment/useOfProceedsExtractor.ts | 0 .../convex}/domains/enrichment/workpools.ts | 0 .../convex}/domains/entities/decayManager.ts | 0 .../convex}/domains/entities/entityLifecycle.ts | 0 .../convex}/domains/entities/index.ts | 0 .../convex}/domains/eval/evalHelpers.ts | 0 .../convex}/domains/eval/evalMutations.ts | 0 .../convex}/domains/eval/evalStorage.ts | 0 .../convex}/domains/eval/productionTestCases.ts | 0 {convex => backend/convex}/domains/eval/runBatch.ts | 0 .../convex}/domains/eval/runBatchNative.ts | 0 .../convex}/domains/evaluation/README.md | 0 .../convex}/domains/evaluation/agentRunJudge.ts | 0 .../convex}/domains/evaluation/benchmarkHarness.ts | 0 .../convex}/domains/evaluation/booleanEvaluator.ts | 0 .../convex}/domains/evaluation/comprehensiveEval.ts | 0 .../convex}/domains/evaluation/cronHandlers.ts | 0 .../convex}/domains/evaluation/ddEvaluation.ts | 0 .../domains/evaluation/dogfood/screenshotQa.ts | 0 .../convex}/domains/evaluation/dogfood/videoQa.ts | 0 .../domains/evaluation/dogfood/videoQaMutations.ts | 0 .../domains/evaluation/dogfood/videoQaQueries.ts | 0 .../convex}/domains/evaluation/e2eValidation.ts | 0 .../convex}/domains/evaluation/eval/evalHelpers.ts | 0 .../domains/evaluation/eval/evalMutations.ts | 0 .../convex}/domains/evaluation/eval/evalStorage.ts | 0 .../domains/evaluation/eval/productionTestCases.ts | 0 .../convex}/domains/evaluation/eval/runBatch.ts | 0 .../domains/evaluation/eval/runBatchNative.ts | 0 .../convex}/domains/evaluation/evalHarness.ts | 0 .../convex}/domains/evaluation/evalRunTracking.ts | 0 .../convex}/domains/evaluation/evaluationPrompts.ts | 0 .../evaluation/evaluationSafeResponse.test.ts | 0 .../domains/evaluation/evaluationSafeResponse.ts | 0 .../convex}/domains/evaluation/evidencePlanner.ts | 0 .../domains/evaluation/financial/corrections.ts | 0 .../domains/evaluation/financial/dcfComparison.ts | 0 .../domains/evaluation/financial/dcfEngine.ts | 0 .../evaluation/financial/evaluationOrchestrator.ts | 0 .../convex}/domains/evaluation/financial/index.ts | 0 .../domains/evaluation/financial/reproPack.ts | 0 .../domains/evaluation/financial/seedData.ts | 0 .../domains/evaluation/financial/sourceQuality.ts | 0 .../convex}/domains/evaluation/financial/types.ts | 0 .../evaluation/fixtures/shipDemoDayFixtures.ts | 0 .../convex}/domains/evaluation/groundTruth.ts | 0 .../domains/evaluation/groundTruth/auditLog.ts | 0 .../domains/evaluation/groundTruth/versions.ts | 0 .../convex}/domains/evaluation/index.ts | 0 .../domains/evaluation/inference/becPlaybook.ts | 0 .../convex}/domains/evaluation/inference/index.ts | 0 .../domains/evaluation/inference/llmJudge.ts | 0 .../evaluation/inference/personaInferenceEval.ts | 0 .../convex}/domains/evaluation/judgeMetrics.ts | 0 .../convex}/domains/evaluation/liveApiSmoke.ts | 0 .../convex}/domains/evaluation/liveEval.ts | 0 .../convex}/domains/evaluation/llmJudge.ts | 0 .../domains/evaluation/mediaContextScenarios.ts | 0 .../domains/evaluation/memoryFirstScenarios.ts | 0 .../evaluation/migrateEvaluationScenarios.ts | 0 .../domains/evaluation/multiTurnScenarios.ts | 0 .../convex}/domains/evaluation/operations.ts | 0 .../domains/evaluation/personaEpisodeEval.ts | 0 .../domains/evaluation/personaInferenceScenarios.ts | 0 .../convex}/domains/evaluation/personaLiveEval.ts | 0 .../personas/financial/financialGroundTruth.ts | 0 .../evaluation/personas/financial/jpmBankerEval.ts | 0 .../personas/financial/lpAllocatorEval.ts | 0 .../evaluation/personas/financial/quantPMEval.ts | 0 .../personas/financial/quantPMGroundTruth.ts | 0 .../evaluation/personas/identityAssurance.ts | 0 .../convex}/domains/evaluation/personas/index.ts | 0 .../evaluation/personas/industry/academicRDEval.ts | 0 .../personas/industry/industryGroundTruth.ts | 0 .../evaluation/personas/industry/pharmaBDEval.ts | 0 .../evaluation/personas/media/journalistEval.ts | 0 .../evaluation/personas/media/mediaGroundTruth.ts | 0 .../evaluation/personas/strategic/corpDevEval.ts | 0 .../personas/strategic/founderStrategyEval.ts | 0 .../strategic/founderStrategyGroundTruth.ts | 0 .../evaluation/personas/strategic/macroStratEval.ts | 0 .../personas/strategic/strategicGroundTruth.ts | 0 .../personas/technical/ctoTechLeadEval.ts | 0 .../personas/technical/technicalGroundTruth.ts | 0 .../convex}/domains/evaluation/personas/types.ts | 0 .../evaluation/personas/unifiedPersonaHarness.ts | 0 .../domains/evaluation/promptEnhancerScenarios.ts | 0 .../convex}/domains/evaluation/runBenchmark.ts | 0 .../convex}/domains/evaluation/scenarioQueries.ts | 0 .../evaluation/scenarios/researchToolEval.ts | 0 .../scenarios/researchUltraLongChatEval.ts | 0 .../scenarios/ultraLongChatRealPathEval.ts | 0 .../convex}/domains/evaluation/schema.ts | 0 .../domains/evaluation/scoring/benchmarkSuite.ts | 0 .../domains/evaluation/scoring/claimLifecycle.ts | 0 .../domains/evaluation/scoring/personaWeights.ts | 0 .../domains/evaluation/scoring/riskCalibration.ts | 0 .../domains/evaluation/scoring/scoringFramework.ts | 0 .../domains/evaluation/scoring/sourceCitations.ts | 0 .../convex}/domains/evaluation/sourceQuality.ts | 0 .../convex}/domains/evaluation/systemE2E.ts | 0 .../evaluation/tasteBench.integration.test.ts | 0 .../convex}/domains/evaluation/tasteBench.ts | 0 .../domains/evaluation/tasteBenchPolicy.test.ts | 0 .../convex}/domains/evaluation/tasteBenchPolicy.ts | 0 .../convex}/domains/evaluation/tasteBenchSchema.ts | 0 .../convex}/domains/evaluation/testAgentDirect.ts | 0 .../convex}/domains/evaluation/testAgentQueries.ts | 0 .../convex}/domains/evaluation/testAnthropicApi.ts | 0 .../convex}/domains/evaluation/testDirectApi.ts | 0 .../convex}/domains/evaluation/testLlmJudge.ts | 0 .../domains/evaluation/testing/testingFramework.ts | 0 .../domains/evaluation/ultraLongChat/batchRunner.ts | 0 .../domains/evaluation/ultraLongChat/judge.ts | 0 .../evaluation/ultraLongChat/regressionGate.ts | 0 .../domains/evaluation/ultraLongChat/scenarios.ts | 0 .../domains/evaluation/ultraLongChat/storage.ts | 0 .../convex}/domains/evaluation/validators.ts | 0 .../convex}/domains/evaluation/workbenchQueries.ts | 0 .../domains/financial/balanceSheetFetcher.ts | 0 .../convex}/domains/financial/corporateActions.ts | 0 .../convex}/domains/financial/corrections.ts | 0 .../convex}/domains/financial/dcfBuilder.ts | 0 .../convex}/domains/financial/dcfEvaluator.ts | 0 .../convex}/domains/financial/dcfOrchestrator.ts | 0 .../convex}/domains/financial/dcfProgress.ts | 0 .../domains/financial/dcfSpreadsheetAdapter.ts | 0 .../domains/financial/dcfSpreadsheetMapping.ts | 0 .../convex}/domains/financial/dcfTools.ts | 0 .../domains/financial/financialAnalystAgent.ts | 0 .../convex}/domains/financial/fundamentals.ts | 0 .../convex}/domains/financial/groundTruthFetcher.ts | 0 .../convex}/domains/financial/groundTruthManager.ts | 0 .../domains/financial/inconclusiveOnFailure.ts | 0 .../convex}/domains/financial/index.ts | 0 .../domains/financial/interactiveDCFSession.ts | 0 .../domains/financial/modelRiskGovernance.ts | 0 .../convex}/domains/financial/reportGenerator.ts | 0 .../convex}/domains/financial/restatementPolicy.ts | 0 .../convex}/domains/financial/secEdgarClient.ts | 0 .../domains/financial/sensitivityAnalysis.ts | 0 .../convex}/domains/financial/taxonomyManagement.ts | 0 .../convex}/domains/financial/validation.ts | 0 .../convex}/domains/financial/xbrlParser.ts | 0 .../__tests__/sandbox.scenario.test.ts | 0 .../__tests__/validators.scenario.test.ts | 0 .../convex}/domains/financialOperator/attFixture.ts | 0 .../convex}/domains/financialOperator/extractors.ts | 0 .../financialOperator/fixtures/covenantFixture.ts | 0 .../financialOperator/fixtures/crmFixture.ts | 0 .../financialOperator/fixtures/varianceFixture.ts | 0 .../convex}/domains/financialOperator/index.ts | 0 .../domains/financialOperator/orchestrator.ts | 0 .../financialOperator/orchestratorExamples.ts | 0 .../domains/financialOperator/realExtractors.ts | 0 .../convex}/domains/financialOperator/runOps.ts | 0 .../convex}/domains/financialOperator/sandbox.ts | 0 .../convex}/domains/financialOperator/types.ts | 0 .../convex}/domains/financialOperator/validators.ts | 0 .../forecasting/actions/computeCalibration.ts | 0 .../domains/forecasting/actions/createForecast.ts | 0 .../domains/forecasting/actions/refreshForecast.ts | 0 .../domains/forecasting/actions/resolveForecast.ts | 0 .../cronHandlers/dailyForecastRefresh.ts | 0 .../forecasting/cronHandlers/resolutionCheck.ts | 0 .../forecasting/cronHandlers/weeklyCalibration.ts | 0 .../convex}/domains/forecasting/forecastManager.ts | 0 .../convex}/domains/forecasting/schema.ts | 0 .../convex}/domains/forecasting/scoringEngine.ts | 0 .../convex}/domains/forecasting/signalMatcher.ts | 0 .../convex}/domains/forecasting/traceWrapper.ts | 0 .../convex}/domains/forecasting/validators.ts | 0 .../__tests__/ambientIntelligenceOps.test.ts | 0 .../domains/founder/ambientIntelligenceJobs.ts | 0 .../domains/founder/ambientIntelligenceOps.ts | 0 .../convex}/domains/founder/backgroundJobs.ts | 0 .../convex}/domains/founder/causalMemoryJobs.ts | 0 .../convex}/domains/founder/causalMemoryOps.ts | 0 .../convex}/domains/founder/founderHarnessOps.ts | 0 {convex => backend/convex}/domains/founder/index.ts | 0 .../convex}/domains/founder/operations.ts | 0 .../convex}/domains/founder/schema.ts | 0 {convex => backend/convex}/domains/founder/seed.ts | 0 .../convex}/domains/founder/seedTrigger.ts | 0 .../convex}/domains/founder/sharedContextOps.ts | 0 .../domains/governance/provenanceExplainer.ts | 0 .../convex}/domains/governance/quarantine.ts | 0 .../convex}/domains/governance/trustPolicy.ts | 0 .../domains/graph/__tests__/graphPatch.test.ts | 0 .../convex}/domains/graph/applyGraphPatch.ts | 0 .../convex}/domains/graph/autoExtractMentions.ts | 0 .../convex}/domains/graph/backlinkQueries.ts | 0 .../convex}/domains/graph/expandEntity.ts | 0 .../convex}/domains/graph/expansionQueries.ts | 0 {convex => backend/convex}/domains/graph/index.ts | 0 .../convex}/domains/groundTruth/auditLog.ts | 0 .../convex}/domains/groundTruth/versions.ts | 0 .../convex}/domains/hitl/adjudicationWorkflow.ts | 0 .../convex}/domains/hitl/decisions.ts | 0 .../domains/hitl/distributionDriftDetection.ts | 0 .../convex}/domains/hitl/labelerCalibration.ts | 0 .../convex}/domains/hitl/labelingQueue.ts | 0 .../domains/hitl/validationWorkspaceEnforcement.ts | 0 .../convex}/domains/hyperloop/operations.ts | 0 .../convex}/domains/hyperloop/policy.test.ts | 0 .../convex}/domains/hyperloop/policy.ts | 0 .../convex}/domains/hyperloop/schema.ts | 0 .../integrations/billing/apiUsageTracking.ts | 0 .../convex}/domains/integrations/billing/billing.ts | 0 .../convex}/domains/integrations/billing/index.ts | 0 .../domains/integrations/billing/rateLimiting.ts | 0 .../convex}/domains/integrations/discord.ts | 0 .../convex}/domains/integrations/discordAgent.ts | 0 .../convex}/domains/integrations/email.ts | 0 .../domains/integrations/email/dailyEmailReport.ts | 0 .../integrations/email/dossierEmailExample.ts | 0 .../integrations/email/dossierEmailTemplate.ts | 0 .../domains/integrations/email/emailAdmin.ts | 0 .../domains/integrations/email/emailAdminActions.ts | 0 .../integrations/email/emailEncounterIngest.ts | 0 .../domains/integrations/email/emailQueries.ts | 0 .../domains/integrations/email/emailService.ts | 0 .../domains/integrations/email/emailWebhook.ts | 0 .../email/morningDigestEmailTemplate.ts | 0 .../convex}/domains/integrations/gcal.ts | 0 .../convex}/domains/integrations/gmail.ts | 0 .../convex}/domains/integrations/gmail/types.ts | 0 .../convex}/domains/integrations/index.ts | 0 .../convex}/domains/integrations/integrations.ts | 0 .../domains/integrations/landing/landingPageLog.ts | 0 .../convex}/domains/integrations/macro/fredSeed.ts | 0 .../convex}/domains/integrations/ntfy.ts | 0 .../convex}/domains/integrations/polar.ts | 0 .../convex}/domains/integrations/resend.ts | 0 .../integrations/slack/encounterMutations.ts | 0 .../domains/integrations/slack/encounterParser.ts | 0 .../domains/integrations/slack/encounterResearch.ts | 0 .../integrations/slack/encounterResearchQueries.ts | 0 .../domains/integrations/slack/encounterResolver.ts | 0 .../convex}/domains/integrations/slack/index.ts | 0 .../domains/integrations/slack/slackAgent.ts | 0 .../domains/integrations/slack/slackBlocks.ts | 0 .../domains/integrations/slack/slackWebhook.ts | 0 .../convex}/domains/integrations/sms.ts | 0 .../convex}/domains/integrations/spreadsheets.ts | 0 .../convex}/domains/integrations/telegram.ts | 0 .../convex}/domains/integrations/telegramAgent.ts | 0 .../domains/integrations/video/oembedFetcher.ts | 0 .../integrations/video/oembedFetcherQueries.ts | 0 .../domains/integrations/voice/costLedger.ts | 0 .../domains/integrations/voice/editionTts.ts | 0 .../domains/integrations/voice/realtimeAudit.ts | 0 .../domains/integrations/voice/realtimeGateway.ts | 0 .../domains/integrations/voice/voiceActions.ts | 0 .../domains/integrations/voice/voiceAgent.ts | 0 .../domains/integrations/voice/voiceMutations.ts | 0 .../convex}/domains/intelligence/operations.ts | 0 .../convex}/domains/intelligence/schema.ts | 0 .../domains/knowledge/adaptiveEntityEnrichment.ts | 0 .../domains/knowledge/adaptiveEntityQueries.ts | 0 .../convex}/domains/knowledge/entityContexts.ts | 0 .../convex}/domains/knowledge/entityInsights.ts | 0 .../convex}/domains/knowledge/index.ts | 0 .../convex}/domains/knowledge/knowledgeGraph.ts | 0 .../domains/knowledge/learning/adaptiveLearning.ts | 0 .../convex}/domains/knowledge/nodes.ts | 0 .../convex}/domains/knowledge/relationTypes.ts | 0 .../convex}/domains/knowledge/relations.ts | 0 .../convex}/domains/knowledge/relationshipGraph.ts | 0 .../convex}/domains/knowledge/sourceDiffs.ts | 0 .../convex}/domains/knowledge/sourceRegistry.ts | 0 .../convex}/domains/knowledge/tags.ts | 0 .../convex}/domains/knowledge/teachability/index.ts | 0 .../convex}/domains/landing/landingPageLog.ts | 0 .../convex}/domains/learning/adaptiveLearning.ts | 0 {convex => backend/convex}/domains/mcp/apiKeys.ts | 0 .../convex}/domains/mcp/apiKeysSchema.ts | 0 {convex => backend/convex}/domains/mcp/mcp.ts | 0 {convex => backend/convex}/domains/mcp/mcpAuth.ts | 0 .../convex}/domains/mcp/mcpBridgeHttp.ts | 0 .../convex}/domains/mcp/mcpBridgeQueries.ts | 0 {convex => backend/convex}/domains/mcp/mcpClient.ts | 0 .../domains/mcp/mcpExecutionTraceEndpoints.ts | 0 .../convex}/domains/mcp/mcpGatewayDispatcher.ts | 0 .../convex}/domains/mcp/mcpHttpAuth.ts | 0 .../convex}/domains/mcp/mcpHybridSearch.ts | 0 .../convex}/domains/mcp/mcpLearning.ts | 0 {convex => backend/convex}/domains/mcp/mcpMemory.ts | 0 .../convex}/domains/mcp/mcpMemoryHttp.ts | 0 .../convex}/domains/mcp/mcpNarrativeEndpoints.ts | 0 {convex => backend/convex}/domains/mcp/mcpPlans.ts | 0 .../convex}/domains/mcp/mcpPlansHttp.ts | 0 .../convex}/domains/mcp/mcpResearchEndpoints.ts | 0 .../convex}/domains/mcp/mcpToolLedger.ts | 0 .../convex}/domains/mcp/mcpToolRegistry.ts | 0 .../convex}/domains/mcp/mcpVerificationEndpoints.ts | 0 .../convex}/domains/mcp/webmcpOriginManager.ts | 0 .../domains/messaging/channelPreferencesManager.ts | 0 .../convex}/domains/messaging/channelProvider.ts | 0 .../messaging/channels/channelIntelligence.ts | 0 .../messaging/channels/engagementOptimizer.ts | 0 .../convex}/domains/messaging/channels/index.ts | 0 .../convex}/domains/messaging/inboundPipeline.ts | 0 .../domains/messaging/messagingObservability.ts | 0 .../convex}/domains/messaging/messagingSecurity.ts | 0 .../convex}/domains/messaging/outboundPipeline.ts | 0 .../convex}/domains/messaging/providerRegistry.ts | 0 .../domains/messaging/providers/discordProvider.ts | 0 .../domains/messaging/providers/emailProvider.ts | 0 .../domains/messaging/providers/ntfyProvider.ts | 0 .../messaging/providers/openclawGatewayClient.ts | 0 .../domains/messaging/providers/openclawProvider.ts | 0 .../domains/messaging/providers/slackProvider.ts | 0 .../domains/messaging/providers/smsProvider.ts | 0 .../domains/messaging/providers/telegramProvider.ts | 0 .../domains/messaging/providers/uiProvider.ts | 0 .../convex}/domains/missions/costQueries.ts | 0 .../convex}/domains/missions/index.ts | 0 .../convex}/domains/missions/missionOrchestrator.ts | 0 .../convex}/domains/missions/preExecutionGate.ts | 0 .../domains/missions/preExecutionGateQueries.ts | 0 .../convex}/domains/missions/schema.ts | 0 .../domains/models/autonomousModelResolver.ts | 0 .../convex}/domains/models/freeModelDiscovery.ts | 0 {convex => backend/convex}/domains/models/index.ts | 0 .../convex}/domains/models/livePerformanceEval.ts | 0 .../convex}/domains/models/modelRouter.ts | 0 .../convex}/domains/models/modelRouterQueries.ts | 0 .../convex}/domains/monitoring/gdeltSeed.ts | 0 .../convex}/domains/monitoring/industryUpdates.ts | 0 .../domains/monitoring/industryUpdatesEnhanced.ts | 0 .../domains/monitoring/integrationHelpers.ts | 0 .../domains/monitoring/publicTrendingSeed.test.ts | 0 .../domains/monitoring/publicTrendingSeed.ts | 0 .../convex}/domains/monitoring/worldMonitor.ts | 0 .../narrative/actions/competingExplanations.ts | 0 .../narrative/actions/hypothesisLifecycle.ts | 0 .../domains/narrative/adapters/briefAdapter.ts | 0 .../domains/narrative/adapters/feedAdapter.ts | 0 .../convex}/domains/narrative/adapters/index.ts | 0 .../domains/narrative/adapters/linkedinAdapter.ts | 0 .../domains/narrative/adapters/pipelineQueries.ts | 0 .../convex}/domains/narrative/adapters/types.ts | 0 .../contracts/eventClassificationContract.ts | 0 .../convex}/domains/narrative/cronHandlers.ts | 0 .../convex}/domains/narrative/crons.ts | 0 .../convex}/domains/narrative/didYouKnow.ts | 0 .../convex}/domains/narrative/didYouKnowSources.ts | 0 .../experiments/freshNewsDidYouKnowExperiment.ts | 0 .../narrative/guards/claimClassificationGate.ts | 0 .../guards/claimClassificationGateQueries.ts | 0 .../domains/narrative/guards/claimClassifier.ts | 0 .../domains/narrative/guards/contentRights.ts | 0 .../convex}/domains/narrative/guards/index.ts | 0 .../narrative/guards/injectionContainment.ts | 0 .../convex}/domains/narrative/guards/quarantine.ts | 0 .../domains/narrative/guards/selfCitationGuard.ts | 0 .../domains/narrative/guards/trustScoring.ts | 0 .../domains/narrative/guards/truthMaintenance.ts | 0 .../convex}/domains/narrative/index.ts | 0 .../convex}/domains/narrative/integrations/hooks.ts | 0 .../domains/narrative/mutations/correlations.ts | 0 .../convex}/domains/narrative/mutations/dedup.ts | 0 .../convex}/domains/narrative/mutations/disputes.ts | 0 .../convex}/domains/narrative/mutations/events.ts | 0 .../convex}/domains/narrative/mutations/evidence.ts | 0 .../domains/narrative/mutations/hypotheses.ts | 0 .../narrative/mutations/policyEnforcedOps.ts | 0 .../convex}/domains/narrative/mutations/posts.ts | 0 .../convex}/domains/narrative/mutations/replies.ts | 0 .../domains/narrative/mutations/searchLog.ts | 0 .../domains/narrative/mutations/signalMetrics.ts | 0 .../domains/narrative/mutations/temporalFacts.ts | 0 .../convex}/domains/narrative/mutations/threads.ts | 0 .../domains/narrative/mutations/toolReplay.ts | 0 .../domains/narrative/mutations/workflowTrace.ts | 0 .../narrative/newsroom/agents/analystAgent.ts | 0 .../narrative/newsroom/agents/commentHarvester.ts | 0 .../narrative/newsroom/agents/curatorAgent.ts | 0 .../narrative/newsroom/agents/historianAgent.ts | 0 .../domains/narrative/newsroom/agents/index.ts | 0 .../narrative/newsroom/agents/publisherAgent.ts | 0 .../domains/narrative/newsroom/agents/scoutAgent.ts | 0 .../newsroom/agents/signalCollectorAgent.ts | 0 .../domains/narrative/newsroom/recordReplayLane.ts | 0 .../convex}/domains/narrative/newsroom/state.ts | 0 .../convex}/domains/narrative/newsroom/workflow.ts | 0 .../domains/narrative/policies/contentRights.ts | 0 .../domains/narrative/queries/correlations.ts | 0 .../convex}/domains/narrative/queries/disputes.ts | 0 .../convex}/domains/narrative/queries/events.ts | 0 .../convex}/domains/narrative/queries/hypotheses.ts | 0 .../convex}/domains/narrative/queries/posts.ts | 0 .../convex}/domains/narrative/queries/searchLog.ts | 0 .../domains/narrative/queries/signalMetrics.ts | 0 .../convex}/domains/narrative/queries/threads.ts | 0 .../domains/narrative/safety/abuseResistance.ts | 0 .../__tests__/goldenSetIntegration.live.test.ts | 0 .../tests/__tests__/workflowValidation.test.ts | 0 .../domains/narrative/tests/goldenSets/CHANGELOG.md | 0 .../narrative/tests/goldenSets/GOVERNANCE.md | 0 .../domains/narrative/tests/goldenSets/README.md | 0 .../tests/goldenSets/drane_golden_set.schema.json | 0 .../narrative/tests/goldenSets/generatedCases.ts | 0 .../narrative/tests/goldenSets/suite.example.json | 0 .../tests/goldenSets/suites/drane_audit_v1.json | 0 .../domains/narrative/tests/goldenSets/types.ts | 0 .../convex}/domains/narrative/tests/qaFramework.ts | 0 .../domains/narrative/tests/validatePipeline.ts | 0 .../domains/narrative/truth/truthStateManager.ts | 0 .../convex}/domains/narrative/validators.ts | 0 .../convex}/domains/observability/dashboardData.ts | 0 .../convex}/domains/observability/healthMonitor.ts | 0 .../convex}/domains/observability/index.ts | 0 .../convex}/domains/observability/selfHealer.ts | 0 .../convex}/domains/observability/telemetry.ts | 0 .../convex}/domains/observability/traces.ts | 0 .../convex}/domains/openclaw/executionEngine.ts | 0 .../domains/openclaw/forecastHandoffPolicy.test.ts | 0 .../domains/openclaw/forecastHandoffPolicy.ts | 0 .../convex}/domains/openclaw/monitoring.ts | 0 .../convex}/domains/openclaw/schema.ts | 0 .../convex}/domains/openclaw/sessionManager.ts | 0 .../domains/openclaw/tools/openclawAgentTools.ts | 0 .../convex}/domains/openclaw/workflowManager.ts | 0 .../__tests__/autonomousControlTower.auth.test.ts | 0 .../__tests__/autonomousControlTower.test.ts | 0 .../__tests__/selfMaintenanceChecks.test.ts | 0 .../convex}/domains/operations/adminAuditLog.ts | 0 .../domains/operations/autonomousControlTower.ts | 0 .../operations/batchAutopilot/deltaCollector.ts | 0 .../domains/operations/batchAutopilot/mutations.ts | 0 .../operations/batchAutopilot/promptBuilder.ts | 0 .../domains/operations/batchAutopilot/queries.ts | 0 .../domains/operations/batchAutopilot/runner.ts | 0 .../domains/operations/batchAutopilot/scheduler.ts | 0 .../convex}/domains/operations/bugLoop.ts | 0 .../operations/encounters/encounterCapture.ts | 0 .../operations/encounters/encounterFastPass.ts | 0 .../operations/encounters/encounterMutations.ts | 0 .../operations/encounters/encounterQueries.ts | 0 .../convex}/domains/operations/encounters/index.ts | 0 .../convex}/domains/operations/encounters/types.ts | 0 .../convex}/domains/operations/gameDayTracking.ts | 0 .../operations/governance/provenanceExplainer.ts | 0 .../domains/operations/governance/quarantine.ts | 0 .../domains/operations/governance/trustPolicy.ts | 0 .../domains/operations/hitl/adjudicationWorkflow.ts | 0 .../convex}/domains/operations/hitl/decisions.ts | 0 .../operations/hitl/distributionDriftDetection.ts | 0 .../domains/operations/hitl/labelerCalibration.ts | 0 .../domains/operations/hitl/labelingQueue.ts | 0 .../hitl/validationWorkspaceEnforcement.ts | 0 .../convex}/domains/operations/mcpRateLimiting.ts | 0 .../convex}/domains/operations/mcpSecurity.ts | 0 .../operations/monitoring/industryUpdates.ts | 0 .../monitoring/industryUpdatesEnhanced.ts | 0 .../operations/monitoring/integrationHelpers.ts | 0 .../operations/observability/dashboardData.ts | 0 .../operations/observability/healthMonitor.ts | 0 .../domains/operations/observability/index.ts | 0 .../domains/operations/observability/selfHealer.ts | 0 .../domains/operations/observability/telemetry.ts | 0 .../domains/operations/observability/traces.ts | 0 .../domains/operations/personaChangeTracking.ts | 0 .../domains/operations/postExecutionHygiene.ts | 0 .../domains/operations/privacyEnforcement.ts | 0 .../convex}/domains/operations/selfMaintenance.ts | 0 .../domains/operations/selfMaintenanceChecks.ts | 0 .../convex}/domains/operations/sloCalculation.ts | 0 .../convex}/domains/operations/sloCollector.ts | 0 .../domains/operations/sloDashboardQueries.ts | 0 .../convex}/domains/operations/sloFramework.ts | 0 .../domains/operations/taskManager/cronWrapper.ts | 0 .../convex}/domains/operations/taskManager/index.ts | 0 .../domains/operations/taskManager/mutations.ts | 0 .../domains/operations/taskManager/proofPack.ts | 0 .../domains/operations/taskManager/queries.ts | 0 .../taskManager/taskManagerOwnership.auth.test.ts | 0 .../convex}/domains/operations/tasks/dailyNotes.ts | 0 .../domains/operations/tasks/eventTaskDocuments.ts | 0 .../convex}/domains/operations/tasks/index.ts | 0 .../convex}/domains/operations/tasks/userEvents.ts | 0 .../convex}/domains/operations/tasks/work.ts | 0 .../tasks/workflows/bankingMemoWorkflow.ts | 0 .../tasks/workflows/coordinatorWorkflow.ts | 0 .../domains/operations/tasks/workflows/index.ts | 0 .../operations/telemetry/disclosureEvents.ts | 0 .../domains/operations/utilities/migrations.ts | 0 .../operations/utilities/seedGoldenDataset.ts | 0 .../operations/utilities/snapshotMigrations.ts | 0 .../domains/operations/validationWorkflow.ts | 0 .../domains/operatorProfile/filesystemSync.ts | 0 .../domains/operatorProfile/manifest.test.ts | 0 .../convex}/domains/operatorProfile/manifest.ts | 0 .../convex}/domains/operatorProfile/mutations.ts | 0 .../convex}/domains/operatorProfile/parser.ts | 0 .../convex}/domains/operatorProfile/queries.ts | 0 .../convex}/domains/operatorProfile/template.ts | 0 {convex => backend/convex}/domains/oracle/index.ts | 0 .../convex}/domains/oracle/mutations.ts | 0 .../convex}/domains/oracle/queries.ts | 0 {convex => backend/convex}/domains/oracle/schema.ts | 0 .../convex}/domains/personas/index.ts | 0 .../domains/personas/multiPersonaSynthesizer.ts | 0 .../domains/personas/personaAutonomousAgent.ts | 0 .../convex}/domains/pipelines/codeGenPipeline.ts | 0 .../convex}/domains/pipelines/composedPipeline.ts | 0 .../convex}/domains/pipelines/designGenPipeline.ts | 0 .../convex}/domains/pipelines/linkupAdapter.ts | 0 .../convex}/domains/pipelines/piRuntime.ts | 0 .../convex}/domains/pipelines/pipelineAdmission.ts | 0 .../convex}/domains/pipelines/pipelineAttempt.ts | 0 .../domains/pipelines/pipelineDocumentHandoff.ts | 0 .../domains/pipelines/pipelineEvalQueries.ts | 0 .../convex}/domains/pipelines/pipelineMcpHttp.ts | 0 .../pipelines/pipelineOwnership.auth.test.ts | 0 .../convex}/domains/pipelines/pipelineOwnership.ts | 0 .../domains/pipelines/pipelineRunsMutations.ts | 0 .../domains/pipelines/pipelineRunsQueries.ts | 0 .../convex}/domains/pipelines/pipelineSchedule.ts | 0 .../domains/pipelines/pipelineStreamMutations.ts | 0 .../convex}/domains/pipelines/pipelineTrace.ts | 0 .../pipelines/pipelineTruthIsolation.test.ts | 0 .../convex}/domains/pipelines/pipelineWorkflow.ts | 0 .../convex}/domains/pipelines/researchPipeline.ts | 0 .../convex}/domains/pipelines/researchProvenance.ts | 0 .../proactive/actions/emailDraftGenerator.ts | 0 .../domains/proactive/actions/gmailDraftActions.ts | 0 .../domains/proactive/actions/testDraftGenerator.ts | 0 .../proactive/actions/testOpenRouterProvider.ts | 0 .../domains/proactive/actions/testSimpleDraft.ts | 0 .../proactive/adapters/calendarEventAdapter.ts | 0 .../domains/proactive/adapters/emailEventAdapter.ts | 0 .../convex}/domains/proactive/adminQueries.ts | 0 .../convex}/domains/proactive/agentDispatch.ts | 0 .../convex}/domains/proactive/consentMutations.ts | 0 .../domains/proactive/delivery/slackDelivery.ts | 0 .../domains/proactive/deliveryOrchestrator.ts | 0 .../domains/proactive/detectors/BaseDetector.ts | 0 .../proactive/detectors/dailyBriefDetector.ts | 0 .../convex}/domains/proactive/detectors/executor.ts | 0 .../domains/proactive/detectors/followUpDetector.ts | 0 .../proactive/detectors/meetingPrepDetector.ts | 0 .../convex}/domains/proactive/detectors/registry.ts | 0 .../convex}/domains/proactive/detectors/types.ts | 0 .../convex}/domains/proactive/mutations.ts | 0 .../convex}/domains/proactive/policyGateway.ts | 0 .../convex}/domains/proactive/queries.ts | 0 .../convex}/domains/proactive/recomm/feedback.ts | 0 .../proactive/recommendations/behaviorTracking.ts | 0 .../domains/proactive/recommendations/index.ts | 0 .../recommendations/recommendationEngine.ts | 0 .../convex}/domains/proactive/schema.ts | 0 .../convex}/domains/proactive/seedAdmins.ts | 0 .../convex}/domains/product/activity.ts | 0 .../domains/product/blockOrdering.property.test.ts | 0 .../convex}/domains/product/blockOrdering.ts | 0 .../domains/product/blockProsemirror.test.ts | 0 .../convex}/domains/product/blockProsemirror.ts | 0 .../convex}/domains/product/blocks.test.ts | 0 .../convex}/domains/product/blocks.ts | 0 .../convex}/domains/product/bootstrap.ts | 0 {convex => backend/convex}/domains/product/chat.ts | 0 .../convex}/domains/product/delivery.ts | 0 .../product/diligenceCheckpointStructuring.test.ts | 0 .../product/diligenceCheckpointStructuring.ts | 0 .../convex}/domains/product/diligenceJudge.ts | 0 .../domains/product/diligenceLlmJudgeRuns.ts | 0 .../product/diligenceProjectionRuntime.test.ts | 0 .../domains/product/diligenceProjectionRuntime.ts | 0 .../convex}/domains/product/diligenceProjections.ts | 0 .../domains/product/diligenceRunTelemetry.ts | 0 .../convex}/domains/product/diligenceScratchpads.ts | 0 .../product/diligenceTenantIsolation.test.ts | 0 .../convex}/domains/product/documents.ts | 0 .../convex}/domains/product/entities.test.ts | 0 .../convex}/domains/product/entities.ts | 0 .../convex}/domains/product/entityMemory.ts | 0 .../convex}/domains/product/eventWorkspace.test.ts | 0 .../convex}/domains/product/eventWorkspace.ts | 0 .../convex}/domains/product/extendedThinking.ts | 0 .../convex}/domains/product/helpers.ts | 0 {convex => backend/convex}/domains/product/home.ts | 0 {convex => backend/convex}/domains/product/me.ts | 0 .../convex}/domains/product/notebookPresence.ts | 0 .../convex}/domains/product/notebookTracking.ts | 0 .../convex}/domains/product/nudgeHelpers.ts | 0 .../convex}/domains/product/nudges.ts | 0 .../convex}/domains/product/pipelineReliability.ts | 0 .../domains/product/pipelineRetryDispatcher.ts | 0 .../convex}/domains/product/publicShares.ts | 0 .../convex}/domains/product/pulseReports.ts | 0 .../convex}/domains/product/reports.test.ts | 0 .../convex}/domains/product/reports.ts | 0 .../convex}/domains/product/schema.ts | 0 .../domains/product/scratchnodeImport.test.ts | 0 .../convex}/domains/product/scratchnodeImport.ts | 0 .../convex}/domains/product/sessionArtifacts.ts | 0 .../convex}/domains/product/shares.ts | 0 {convex => backend/convex}/domains/product/shell.ts | 0 .../convex}/domains/product/systemIntelligence.ts | 0 .../product/userWikiMaintainer.scenarios.test.ts | 0 .../domains/product/userWikiMaintainer.test.ts | 0 .../convex}/domains/product/userWikiMaintainer.ts | 0 .../convex}/domains/product/userWikiSchema.ts | 0 .../convex}/domains/product/visibilityBackfill.ts | 0 .../domains/product/wikiDreamingEvalProduction.ts | 0 .../domains/product/wikiDreamingEvaluation.ts | 0 .../product/wikiDreamingEvaluationNatural.ts | 0 .../convex}/domains/product/wikiDreamingGraph.ts | 0 .../convex}/domains/product/wikiDreamingQueries.ts | 0 .../convex}/domains/product/wikiStagingMutations.ts | 0 .../convex}/domains/profiler/mutations.ts | 0 .../convex}/domains/profiler/queries.ts | 0 .../convex}/domains/publicResearch/actions.ts | 0 .../convex}/domains/publicResearch/core.ts | 0 .../convex}/domains/publishing/deliveryQueue.ts | 0 .../convex}/domains/publishing/index.ts | 0 .../domains/publishing/publishingOrchestrator.ts | 0 .../convex}/domains/quickCapture/index.ts | 0 .../convex}/domains/quickCapture/quickCapture.ts | 0 .../convex}/domains/quickCapture/voiceMemos.ts | 0 .../convex}/domains/recomm/feedback.ts | 0 .../domains/recommendations/behaviorTracking.ts | 0 .../convex}/domains/recommendations/index.ts | 0 .../domains/recommendations/recommendationEngine.ts | 0 .../convex}/domains/redesign/agentRunFeedback.ts | 0 .../domains/redesign/chatRuns.contract.test.ts | 0 .../domains/redesign/chatRuns.responseShape.test.ts | 0 .../convex}/domains/redesign/chatRuns.ts | 0 .../convex}/domains/redesign/documentPatches.ts | 0 .../convex}/domains/redesign/inboxSnoozes.ts | 0 .../domains/redesign/reportGraphNeighborhood.ts | 0 .../convex}/domains/redesign/reportTopology.ts | 0 .../domains/redesign/reportTopologyRuntime.test.ts | 0 .../domains/redesign/reportTopologyRuntime.ts | 0 .../convex}/domains/redesign/styleProfile.ts | 0 .../convex}/domains/redesign/universes.ts | 0 .../convex}/domains/research/angleRegistry.ts | 0 .../domains/research/autonomousResearcher.ts | 0 .../convex}/domains/research/briefGenerator.ts | 0 .../domains/research/dailyBriefInitializer.ts | 0 .../domains/research/dailyBriefMemoryMutations.ts | 0 .../domains/research/dailyBriefMemoryQueries.ts | 0 .../domains/research/dailyBriefPersonalOverlay.ts | 0 .../research/dailyBriefPersonalOverlayMutations.ts | 0 .../research/dailyBriefPersonalOverlayQueries.ts | 0 .../research/dailyBriefSourceVerification.ts | 0 .../convex}/domains/research/dailyBriefWorker.ts | 0 .../convex}/domains/research/dashboardMetrics.ts | 0 .../convex}/domains/research/dashboardMutations.ts | 0 .../convex}/domains/research/dashboardQueries.ts | 0 .../convex}/domains/research/dealFlow.ts | 0 .../convex}/domains/research/dealFlowQueries.ts | 0 .../convex}/domains/research/documentDiscovery.ts | 0 .../convex}/domains/research/editionQueries.test.ts | 0 .../convex}/domains/research/editionQueries.ts | 0 .../domains/research/editionScoreboardSeed.test.ts | 0 .../domains/research/editionScoreboardSeed.ts | 0 .../domains/research/entities/decayManager.ts | 0 .../domains/research/entities/entityLifecycle.ts | 0 .../convex}/domains/research/entities/index.ts | 0 .../convex}/domains/research/executiveBrief.ts | 0 .../convex}/domains/research/expandResource.ts | 0 .../research/financial/balanceSheetFetcher.ts | 0 .../domains/research/financial/corporateActions.ts | 0 .../domains/research/financial/corrections.ts | 0 .../domains/research/financial/dcfBuilder.ts | 0 .../domains/research/financial/dcfEvaluator.ts | 0 .../domains/research/financial/dcfOrchestrator.ts | 0 .../domains/research/financial/dcfProgress.ts | 0 .../research/financial/dcfSpreadsheetAdapter.ts | 0 .../research/financial/dcfSpreadsheetMapping.ts | 0 .../convex}/domains/research/financial/dcfTools.ts | 0 .../research/financial/financialAnalystAgent.ts | 0 .../domains/research/financial/fundamentals.ts | 0 .../research/financial/groundTruthFetcher.ts | 0 .../research/financial/groundTruthManager.ts | 0 .../research/financial/inconclusiveOnFailure.ts | 0 .../convex}/domains/research/financial/index.ts | 0 .../research/financial/interactiveDCFSession.ts | 0 .../research/financial/modelRiskGovernance.ts | 0 .../domains/research/financial/reportGenerator.ts | 0 .../domains/research/financial/restatementPolicy.ts | 0 .../domains/research/financial/secEdgarClient.ts | 0 .../research/financial/sensitivityAnalysis.ts | 0 .../research/financial/taxonomyManagement.ts | 0 .../domains/research/financial/validation.ts | 0 .../domains/research/financial/xbrlParser.ts | 0 .../convex}/domains/research/forYouFeed.ts | 0 .../forecasting/actions/computeCalibration.ts | 0 .../research/forecasting/actions/createForecast.ts | 0 .../research/forecasting/actions/refreshForecast.ts | 0 .../research/forecasting/actions/resolveForecast.ts | 0 .../cronHandlers/dailyForecastRefresh.ts | 0 .../forecasting/cronHandlers/resolutionCheck.ts | 0 .../forecasting/cronHandlers/weeklyCalibration.ts | 0 .../domains/research/forecasting/forecastManager.ts | 0 .../convex}/domains/research/forecasting/schema.ts | 0 .../domains/research/forecasting/scoringEngine.ts | 0 .../research/forecasting/seedEvergreenForecasts.ts | 0 .../domains/research/forecasting/signalMatcher.ts | 0 .../domains/research/forecasting/traceWrapper.ts | 0 .../domains/research/forecasting/validators.ts | 0 .../convex}/domains/research/githubExplorer.ts | 0 .../convex}/domains/research/hydrateEntities.ts | 0 .../convex}/domains/research/index.ts | 0 .../convex}/domains/research/jobResearchAction.ts | 0 .../convex}/domains/research/lensRegistry.ts | 0 .../convex}/domains/research/mcpServerCountSeed.ts | 0 .../convex}/domains/research/modelComparison.ts | 0 .../domains/research/modelComparisonQueries.ts | 0 .../narrative/actions/competingExplanations.ts | 0 .../narrative/actions/hypothesisLifecycle.ts | 0 .../research/narrative/adapters/briefAdapter.ts | 0 .../research/narrative/adapters/feedAdapter.ts | 0 .../domains/research/narrative/adapters/index.ts | 0 .../research/narrative/adapters/linkedinAdapter.ts | 0 .../research/narrative/adapters/pipelineQueries.ts | 0 .../domains/research/narrative/adapters/types.ts | 0 .../contracts/eventClassificationContract.ts | 0 .../domains/research/narrative/cronHandlers.ts | 0 .../convex}/domains/research/narrative/crons.ts | 0 .../domains/research/narrative/didYouKnow.ts | 0 .../domains/research/narrative/didYouKnowSources.ts | 0 .../experiments/freshNewsDidYouKnowExperiment.ts | 0 .../narrative/guards/claimClassificationGate.ts | 0 .../guards/claimClassificationGateQueries.ts | 0 .../research/narrative/guards/claimClassifier.ts | 0 .../research/narrative/guards/contentRights.ts | 0 .../domains/research/narrative/guards/index.ts | 0 .../narrative/guards/injectionContainment.ts | 0 .../domains/research/narrative/guards/quarantine.ts | 0 .../research/narrative/guards/selfCitationGuard.ts | 0 .../research/narrative/guards/trustScoring.ts | 0 .../research/narrative/guards/truthMaintenance.ts | 0 .../convex}/domains/research/narrative/index.ts | 0 .../research/narrative/integrations/hooks.ts | 0 .../research/narrative/mutations/correlations.ts | 0 .../domains/research/narrative/mutations/dedup.ts | 0 .../research/narrative/mutations/disputes.ts | 0 .../domains/research/narrative/mutations/events.ts | 0 .../research/narrative/mutations/evidence.ts | 0 .../research/narrative/mutations/hypotheses.ts | 0 .../narrative/mutations/policyEnforcedOps.ts | 0 .../domains/research/narrative/mutations/posts.ts | 0 .../domains/research/narrative/mutations/replies.ts | 0 .../research/narrative/mutations/searchLog.ts | 0 .../research/narrative/mutations/signalMetrics.ts | 0 .../research/narrative/mutations/temporalFacts.ts | 0 .../domains/research/narrative/mutations/threads.ts | 0 .../research/narrative/mutations/toolReplay.ts | 0 .../research/narrative/mutations/workflowTrace.ts | 0 .../narrative/newsroom/agents/analystAgent.ts | 0 .../narrative/newsroom/agents/commentHarvester.ts | 0 .../narrative/newsroom/agents/curatorAgent.ts | 0 .../narrative/newsroom/agents/historianAgent.ts | 0 .../research/narrative/newsroom/agents/index.ts | 0 .../narrative/newsroom/agents/publisherAgent.ts | 0 .../narrative/newsroom/agents/scoutAgent.ts | 0 .../newsroom/agents/signalCollectorAgent.ts | 0 .../research/narrative/newsroom/recordReplayLane.ts | 0 .../domains/research/narrative/newsroom/state.ts | 0 .../domains/research/narrative/newsroom/workflow.ts | 0 .../research/narrative/policies/contentRights.ts | 0 .../research/narrative/queries/correlations.ts | 0 .../domains/research/narrative/queries/disputes.ts | 0 .../domains/research/narrative/queries/events.ts | 0 .../research/narrative/queries/hypotheses.ts | 0 .../domains/research/narrative/queries/posts.ts | 0 .../domains/research/narrative/queries/searchLog.ts | 0 .../research/narrative/queries/signalMetrics.ts | 0 .../domains/research/narrative/queries/threads.ts | 0 .../research/narrative/safety/abuseResistance.ts | 0 .../__tests__/goldenSetIntegration.live.test.ts | 0 .../tests/__tests__/workflowValidation.test.ts | 0 .../narrative/tests/goldenSets/CHANGELOG.md | 0 .../narrative/tests/goldenSets/GOVERNANCE.md | 0 .../research/narrative/tests/goldenSets/README.md | 0 .../tests/goldenSets/drane_golden_set.schema.json | 0 .../narrative/tests/goldenSets/generatedCases.ts | 0 .../narrative/tests/goldenSets/suite.example.json | 0 .../tests/goldenSets/suites/drane_audit_v1.json | 0 .../research/narrative/tests/goldenSets/types.ts | 0 .../domains/research/narrative/tests/qaFramework.ts | 0 .../research/narrative/tests/validatePipeline.ts | 0 .../research/narrative/truth/truthStateManager.ts | 0 .../domains/research/narrative/validators.ts | 0 .../convex}/domains/research/paperDetails.ts | 0 .../convex}/domains/research/paperDetailsQueries.ts | 0 .../convex}/domains/research/publicDossier.ts | 0 .../domains/research/publicDossierQueries.ts | 0 .../convex}/domains/research/readerContent.ts | 0 .../convex}/domains/research/repoScout.ts | 0 .../convex}/domains/research/repoScoutQueries.ts | 0 .../convex}/domains/research/repoStats.ts | 0 .../convex}/domains/research/repoStatsQueries.ts | 0 .../convex}/domains/research/researchQueue.ts | 0 .../convex}/domains/research/researchRunAction.ts | 0 .../domains/research/researchSessionBenchmark.ts | 0 .../convex}/domains/research/researchSessionJit.ts | 0 .../domains/research/researchSessionLifecycle.ts | 0 .../domains/research/researchSessionOrchestrator.ts | 0 .../domains/research/researchSessionSmoke.ts | 0 .../domains/research/seedEditorialHypotheses.ts | 0 .../domains/research/semanticDeduplicator.ts | 0 .../domains/research/semanticDeduplicatorQueries.ts | 0 .../convex}/domains/research/signalTimeseries.ts | 0 .../convex}/domains/research/stackImpact.ts | 0 .../convex}/domains/research/stackImpactQueries.ts | 0 .../convex}/domains/research/strategyMetrics.ts | 0 .../domains/research/strategyMetricsQueries.ts | 0 .../search/__tests__/embedHashBackfill.test.ts | 0 .../search/__tests__/embedRowOnUpdate.test.ts | 0 .../analytics/__tests__/intentSignals.test.ts | 0 .../convex}/domains/search/analytics/analytics.ts | 0 .../domains/search/analytics/componentMetrics.ts | 0 .../domains/search/analytics/intentSignals.ts | 0 .../convex}/domains/search/analytics/ossStats.ts | 0 .../convex}/domains/search/deepDiligence.ts | 0 .../convex}/domains/search/embedHashBackfill.ts | 0 .../convex}/domains/search/embedRowOnUpdate.ts | 0 .../convex}/domains/search/embedSearchableText.ts | 0 .../convex}/domains/search/federatedHelpers.ts | 0 .../convex}/domains/search/federatedSearch.test.ts | 0 .../convex}/domains/search/federatedSearch.ts | 0 .../domains/search/federatedSearchCache.test.ts | 0 .../convex}/domains/search/federatedSearchCache.ts | 0 .../convex}/domains/search/fusion/README.md | 0 .../convex}/domains/search/fusion/actions.ts | 0 .../domains/search/fusion/adapters/arxivAdapter.ts | 0 .../domains/search/fusion/adapters/braveAdapter.ts | 0 .../search/fusion/adapters/documentAdapter.ts | 0 .../domains/search/fusion/adapters/fdaAdapter.ts | 0 .../domains/search/fusion/adapters/finraAdapter.ts | 0 .../convex}/domains/search/fusion/adapters/index.ts | 0 .../domains/search/fusion/adapters/linkupAdapter.ts | 0 .../domains/search/fusion/adapters/newsAdapter.ts | 0 .../domains/search/fusion/adapters/ragAdapter.ts | 0 .../domains/search/fusion/adapters/secAdapter.ts | 0 .../domains/search/fusion/adapters/serperAdapter.ts | 0 .../search/fusion/adapters/stateRegistryAdapter.ts | 0 .../domains/search/fusion/adapters/tavilyAdapter.ts | 0 .../domains/search/fusion/adapters/usptoAdapter.ts | 0 .../search/fusion/adapters/youtubeAdapter.ts | 0 .../convex}/domains/search/fusion/advanced.ts | 0 .../convex}/domains/search/fusion/benchmark.ts | 0 .../convex}/domains/search/fusion/cache.ts | 0 .../domains/search/fusion/crossProviderEval.ts | 0 .../convex}/domains/search/fusion/debugAdapters.ts | 0 .../domains/search/fusion/debugOrchestrator.ts | 0 .../convex}/domains/search/fusion/index.ts | 0 .../convex}/domains/search/fusion/observability.ts | 0 .../convex}/domains/search/fusion/orchestrator.ts | 0 .../convex}/domains/search/fusion/rateLimiter.ts | 0 .../convex}/domains/search/fusion/reranker.ts | 0 .../convex}/domains/search/fusion/types.ts | 0 .../convex}/domains/search/hashtagDossiers.ts | 0 {convex => backend/convex}/domains/search/index.ts | 0 .../convex}/domains/search/linkupClient.ts | 0 .../convex}/domains/search/quotaManager.ts | 0 {convex => backend/convex}/domains/search/rag.ts | 0 .../convex}/domains/search/ragEnhanced.ts | 0 .../convex}/domains/search/ragEnhancedBatchIndex.ts | 0 .../convex}/domains/search/ragQueries.ts | 0 .../convex}/domains/search/searchCache.ts | 0 .../domains/search/searchForecastGate.test.ts | 0 .../convex}/domains/search/searchForecastGate.ts | 0 .../convex}/domains/search/searchPipeline.ts | 0 .../convex}/domains/search/searchPipelineNode.ts | 0 .../domains/search/searchableTextBackfill.ts | 0 .../domains/search/searchableTextRecompute.test.ts | 0 .../domains/search/searchableTextRecompute.ts | 0 .../convex}/domains/search/sharedCache.test.ts | 0 .../convex}/domains/search/sharedCache.ts | 0 .../convex}/domains/search/signalTaxonomy.ts | 0 {convex => backend/convex}/domains/signals/index.ts | 0 .../convex}/domains/signals/signalIngester.ts | 0 .../convex}/domains/signals/signalProcessor.ts | 0 .../convex}/domains/social/instagramIngestion.ts | 0 .../convex}/domains/social/linkedinAccounts.ts | 0 .../convex}/domains/social/linkedinArchiveAudit.ts | 0 .../domains/social/linkedinArchiveCleanup.ts | 0 .../social/linkedinArchiveCleanupMutations.ts | 0 .../convex}/domains/social/linkedinArchiveEdits.ts | 0 .../domains/social/linkedinArchiveEditsMutations.ts | 0 .../domains/social/linkedinArchiveEntityLinks.ts | 0 .../domains/social/linkedinArchiveMaintenance.ts | 0 .../social/linkedinArchiveMaintenanceQueries.ts | 0 .../convex}/domains/social/linkedinArchivePurge.ts | 0 .../domains/social/linkedinArchivePurgeMutations.ts | 0 .../domains/social/linkedinArchiveQueries.ts | 0 .../convex}/domains/social/linkedinContentQueue.ts | 0 .../convex}/domains/social/linkedinFundingPosts.ts | 0 .../domains/social/linkedinLegacyLookupQueries.ts | 0 .../convex}/domains/social/linkedinOAuth.ts | 0 .../convex}/domains/social/linkedinPosting.ts | 0 .../domains/social/linkedinPrePostVerification.ts | 0 .../convex}/domains/social/linkedinQualityJudge.ts | 0 .../convex}/domains/social/linkedinScheduleGrid.ts | 0 .../domains/social/linkedinUnknownCompanyFixes.ts | 0 .../convex}/domains/social/postDedup.ts | 0 .../convex}/domains/social/postDedupAction.ts | 0 .../domains/social/publishing/deliveryQueue.ts | 0 .../convex}/domains/social/publishing/index.ts | 0 .../social/publishing/publishingOrchestrator.ts | 0 .../domains/social/specializedPostQueries.ts | 0 .../convex}/domains/successLoops/index.ts | 0 .../convex}/domains/successLoops/lib.ts | 0 .../convex}/domains/successLoops/mutations.ts | 0 .../convex}/domains/successLoops/projection.ts | 0 .../convex}/domains/successLoops/queries.ts | 0 .../convex}/domains/successLoops/schema.ts | 0 .../convex}/domains/taskManager/cronWrapper.ts | 0 .../convex}/domains/taskManager/index.ts | 0 .../convex}/domains/taskManager/mutations.ts | 0 .../convex}/domains/taskManager/queries.ts | 0 .../convex}/domains/tasks/dailyNotes.ts | 0 .../convex}/domains/tasks/eventTaskDocuments.ts | 0 {convex => backend/convex}/domains/tasks/index.ts | 0 .../convex}/domains/tasks/userEvents.ts | 0 {convex => backend/convex}/domains/tasks/work.ts | 0 .../domains/tasks/workflows/bankingMemoWorkflow.ts | 0 .../domains/tasks/workflows/coordinatorWorkflow.ts | 0 .../convex}/domains/tasks/workflows/index.ts | 0 .../convex}/domains/teachability/index.ts | 0 .../convex}/domains/telemetry/disclosureEvents.ts | 0 .../convex}/domains/temporal/feynmanEditor.ts | 0 .../domains/temporal/forecastGatePolicy.test.ts | 0 .../convex}/domains/temporal/forecastGatePolicy.ts | 0 .../convex}/domains/temporal/index.ts | 0 .../convex}/domains/temporal/ingestion.ts | 0 .../convex}/domains/temporal/ingestionUtils.test.ts | 0 .../convex}/domains/temporal/ingestionUtils.ts | 0 .../convex}/domains/temporal/langExtract.ts | 0 .../convex}/domains/temporal/mutations.ts | 0 .../convex}/domains/temporal/queries.ts | 0 .../convex}/domains/temporal/schema.ts | 0 .../convex}/domains/temporal/specDoc.ts | 0 .../convex}/domains/testing/testingFramework.ts | 0 .../convex}/domains/trajectory/index.ts | 0 .../convex}/domains/trajectory/lib.ts | 0 .../convex}/domains/trajectory/mutations.ts | 0 .../convex}/domains/trajectory/projection.ts | 0 .../convex}/domains/trajectory/queries.ts | 0 .../convex}/domains/trajectory/schema.ts | 0 .../convex}/domains/utilities/migrations.ts | 0 .../convex}/domains/utilities/seedGoldenDataset.ts | 0 .../convex}/domains/utilities/snapshotMigrations.ts | 0 .../domains/validation/contradictionDetector.ts | 0 .../convex}/domains/validation/index.ts | 0 .../convex}/domains/validation/personaValidators.ts | 0 .../convex}/domains/validation/selfQuestionAgent.ts | 0 .../convex}/domains/verification/calibration.ts | 0 .../domains/verification/claimVerificationAction.ts | 0 .../verification/claimVerificationQueries.ts | 0 .../domains/verification/claimVerifications.ts | 0 .../domains/verification/contradictionDetector.ts | 0 .../verification/contradictionDetectorQueries.ts | 0 .../domains/verification/entailmentChecker.ts | 0 .../convex}/domains/verification/facts.ts | 0 .../domains/verification/fastVerification.ts | 0 .../domains/verification/groundTruthRegistry.ts | 0 .../convex}/domains/verification/index.ts | 0 .../verification/instagramClaimVerification.ts | 0 .../instagramClaimVerificationMutations.ts | 0 .../integrations/agentVerificationAdapter.ts | 0 .../integrations/artifactVerification.ts | 0 .../verification/integrations/feedVerification.ts | 0 .../domains/verification/integrations/index.ts | 0 .../integrations/linkedinVerification.ts | 0 .../integrations/narrativeVerification.ts | 0 .../domains/verification/multiSourceValidation.ts | 0 .../domains/verification/publicSourceRegistry.ts | 0 .../validation/contradictionDetector.ts | 0 .../domains/verification/validation/index.ts | 0 .../verification/validation/personaValidators.ts | 0 .../verification/validation/selfQuestionAgent.ts | 0 .../domains/verification/verificationAuditTrail.ts | 0 .../domains/verification/verificationWorkflow.ts | 0 .../convex}/domains/world/operations.ts | 0 {convex => backend/convex}/domains/world/schema.ts | 0 {convex => backend/convex}/email.ts | 0 {convex => backend/convex}/eventHandoff.ts | 0 .../convex}/events.runtime-boundary.test.ts | 0 {convex => backend/convex}/events.ts | 0 {convex => backend/convex}/feed.ts | 0 .../convex}/globalResearch/artifacts.ts | 0 .../convex}/globalResearch/cacheSimple.ts | 0 .../convex}/globalResearch/compaction.ts | 0 {convex => backend/convex}/globalResearch/index.ts | 0 {convex => backend/convex}/globalResearch/locks.ts | 0 .../convex}/globalResearch/mentions.ts | 0 .../convex}/globalResearch/queries.ts | 0 {convex => backend/convex}/globalResearch/runs.ts | 0 {convex => backend/convex}/http.ts | 0 {convex => backend/convex}/http/mcpMemory.ts | 0 {convex => backend/convex}/http/mcpPlans.ts | 0 .../convex}/lib/actionItemsGenerator.ts | 0 {convex => backend/convex}/lib/agentCache.ts | 0 {convex => backend/convex}/lib/artifactModels.ts | 0 .../convex}/lib/artifactPersistence.ts | 0 {convex => backend/convex}/lib/artifactQueries.ts | 0 .../convex}/lib/artifactValidators.ts | 0 {convex => backend/convex}/lib/crypto.ts | 0 {convex => backend/convex}/lib/dossierGenerator.ts | 0 {convex => backend/convex}/lib/dossierHelpers.ts | 0 {convex => backend/convex}/lib/entityResolution.ts | 0 {convex => backend/convex}/lib/factValidation.ts | 0 {convex => backend/convex}/lib/featureFlags.ts | 0 {convex => backend/convex}/lib/hash.ts | 0 {convex => backend/convex}/lib/index.ts | 0 {convex => backend/convex}/lib/markdown.ts | 0 {convex => backend/convex}/lib/markdownToTipTap.ts | 0 {convex => backend/convex}/lib/mcpTransport.ts | 0 {convex => backend/convex}/lib/memoryLimits.ts | 0 {convex => backend/convex}/lib/memoryQuality.ts | 0 .../convex}/lib/parallelDelegation.ts | 0 .../convex}/lib/predictivePrefetch.ts | 0 .../convex}/lib/streamingDelegation.ts | 0 .../convex}/lib/withArtifactPersistence.ts | 0 .../convex}/lib/withResourceLinkWrapping.ts | 0 {convex => backend/convex}/lib/xaiClient.ts | 0 {convex => backend/convex}/notes.ts | 0 {convex => backend/convex}/presence.ts | 0 {convex => backend/convex}/prosemirror.ts | 0 {convex => backend/convex}/router.ts | 0 {convex => backend/convex}/schema.ts | 0 {convex => backend/convex}/schema/apiUsage.ts | 0 {convex => backend/convex}/schema/emailSchema.ts | 0 {convex => backend/convex}/schema/eventsSchema.ts | 0 {convex => backend/convex}/schema/searchQuota.ts | 0 .../convex}/schema/toolSearchSchema.ts | 0 {convex => backend/convex}/schema/usersSchema.ts | 0 {convex => backend/convex}/scratchnodeHandoff.ts | 0 {convex => backend/convex}/scratchnodeLiveCues.ts | 0 {convex => backend/convex}/scratchnodeRateLimit.ts | 0 {convex => backend/convex}/shared/actionSpan.ts | 0 .../convex}/shared/actionSpanReplay.ts | 0 .../convex}/shared/actionSpanReplayQueries.ts | 0 {convex => backend/convex}/tags.ts | 0 {convex => backend/convex}/tags_actions.ts | 0 .../convex}/tests/fastAgentPanelStreamingTests.ts | 0 .../convex}/tests/fusionSearchContractTests.ts | 0 .../tools/__tests__/documentEditingLiveAPI.test.ts | 0 .../tools/__tests__/multiDocumentAnalysis.test.ts | 0 .../convex}/tools/__tests__/secFilingTools.test.ts | 0 .../__tests__/spreadsheetOperationSync.test.ts | 0 .../convex}/tools/__tests__/youtubeSearch.test.ts | 0 .../convex}/tools/arbitrage/analyzeWithArbitrage.ts | 0 {convex => backend/convex}/tools/arbitrage/index.ts | 0 .../convex}/tools/calendar/calendarCrudTools.ts | 0 .../convex}/tools/calendar/confirmEventSelection.ts | 0 .../convex}/tools/calendar/emailEventExtractor.ts | 0 .../convex}/tools/calendar/recentEventSearch.ts | 0 {convex => backend/convex}/tools/calendarIcs.ts | 0 .../convex}/tools/calendarIcsMutations.ts | 0 .../convex}/tools/context/nodebenchContextTools.ts | 0 .../convex}/tools/context/resourceLinks.ts | 0 .../convex}/tools/context/retrieveArtifact.ts | 0 .../convex}/tools/document/contextTools.ts | 0 .../convex}/tools/document/deepAgentEditTools.ts | 0 .../tools/document/documentEditingLiveTest.ts | 0 .../convex}/tools/document/documentTools.ts | 0 .../convex}/tools/document/geminiFileSearch.ts | 0 .../convex}/tools/document/hashtagSearchTools.ts | 0 .../convex}/tools/dossier/dossierCrudTools.ts | 0 {convex => backend/convex}/tools/editDocument.ts | 0 .../convex}/tools/editDocumentMutations.ts | 0 {convex => backend/convex}/tools/editSpreadsheet.ts | 0 .../convex}/tools/editSpreadsheetMutations.ts | 0 .../convex}/tools/email/emailIntelligenceParser.ts | 0 .../convex}/tools/evaluation/comprehensiveTest.ts | 0 .../convex}/tools/evaluation/evaluator.ts | 0 .../convex}/tools/evaluation/groundTruthLookup.ts | 0 .../tools/evaluation/groundTruthLookupTool.ts | 0 .../convex}/tools/evaluation/helpers.ts | 0 .../tools/evaluation/multiSdkLiveValidation.ts | 0 .../convex}/tools/evaluation/openDatasetEval.ts | 0 .../convex}/tools/evaluation/quickTest.ts | 0 .../convex}/tools/evaluation/testCases.ts | 0 .../convex}/tools/evaluation/testOptimizations.ts | 0 .../convex}/tools/evaluation/testPersonas.ts | 0 .../convex}/tools/financial/README.md | 0 .../convex}/tools/financial/enhancedFundingTools.ts | 0 .../tools/financial/fundingDetectionTools.ts | 0 .../convex}/tools/financial/fundingResearchTools.ts | 0 .../tools/integration/channelContextTools.ts | 0 .../tools/integration/confirmCompanySelection.ts | 0 .../tools/integration/confirmNewsSelection.ts | 0 .../tools/integration/confirmPersonSelection.ts | 0 .../convex}/tools/integration/dataAccessTools.ts | 0 .../convex}/tools/integration/digestTools.ts | 0 .../convex}/tools/integration/humanInputTools.ts | 0 .../convex}/tools/integration/newsletterTools.ts | 0 .../convex}/tools/integration/notificationTools.ts | 0 .../convex}/tools/integration/orchestrationTools.ts | 0 .../tools/integration/peopleProfileSearch.ts | 0 .../convex}/tools/knowledge/clusteringTools.ts | 0 .../convex}/tools/knowledge/distiller.ts | 0 .../convex}/tools/knowledge/distillerPrompts.ts | 0 .../convex}/tools/knowledge/entityInsightTools.ts | 0 .../convex}/tools/knowledge/evidenceTools.ts | 0 .../convex}/tools/knowledge/knowledgeGraphTools.ts | 0 .../convex}/tools/knowledge/unifiedMemoryTools.ts | 0 .../convex}/tools/media/adversarialValidation.ts | 0 .../convex}/tools/media/diagnosticTest.ts | 0 .../convex}/tools/media/entityExtractionTools.ts | 0 .../convex}/tools/media/linkupFetch.ts | 0 .../convex}/tools/media/linkupSearch.ts | 0 .../convex}/tools/media/linkupStructuredSearch.ts | 0 .../convex}/tools/media/llmEntityLinker.ts | 0 .../convex}/tools/media/mediaTools.ts | 0 .../convex}/tools/media/recentNewsSearch.ts | 0 .../convex}/tools/media/testImageTools.ts | 0 .../convex}/tools/media/validationTest.ts | 0 .../convex}/tools/media/youtubeSearch.ts | 0 .../convex}/tools/meta/actionDraftMutations.ts | 0 .../convex}/tools/meta/contextEnhancement.ts | 0 .../convex}/tools/meta/contextEnhancementActions.ts | 0 .../convex}/tools/meta/dynamicPromptEnhancer.ts | 0 .../convex}/tools/meta/hybridSearch.ts | 0 .../convex}/tools/meta/hybridSearchQueries.ts | 0 .../convex}/tools/meta/hybridSearchTest.ts | 0 {convex => backend/convex}/tools/meta/index.ts | 0 .../convex}/tools/meta/promptEnhancementFeedback.ts | 0 .../convex}/tools/meta/seedSkillRegistry.ts | 0 .../convex}/tools/meta/seedSkillRegistryQueries.ts | 0 .../convex}/tools/meta/seedToolRegistry.ts | 0 .../convex}/tools/meta/seedToolRegistryQueries.ts | 0 .../convex}/tools/meta/skillDiscovery.ts | 0 .../convex}/tools/meta/skillDiscoveryQueries.ts | 0 .../convex}/tools/meta/toolDiscovery.ts | 0 .../convex}/tools/meta/toolDiscoveryV2.ts | 0 .../convex}/tools/meta/toolGateway.ts | 0 .../convex}/tools/meta/toolRegistry.ts | 0 .../convex}/tools/reports/pdfGenerationTools.ts | 0 .../convex}/tools/research/researchTools.ts | 0 .../convex}/tools/search/fusionSearchTool.ts | 0 {convex => backend/convex}/tools/search/index.ts | 0 .../convex}/tools/sec/secCompanySearch.ts | 0 .../convex}/tools/sec/secFilingTools.ts | 0 .../tools/security/promptInjectionProtection.ts | 0 {convex => backend/convex}/tools/sendEmail.ts | 0 .../convex}/tools/sendEmailMutations.ts | 0 .../convex}/tools/sendNotification.ts | 0 {convex => backend/convex}/tools/sendSms.ts | 0 .../convex}/tools/shared/structuredOutput.ts | 0 .../convex}/tools/social/instagramTools.ts | 0 .../convex}/tools/social/linkedinTools.ts | 0 .../tools/spreadsheet/FAST_AGENT_SCENARIOS.md | 0 .../convex}/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md | 0 .../convex}/tools/spreadsheet/README.md | 0 .../convex}/tools/spreadsheet/TEST_SCENARIOS.md | 0 .../tools/spreadsheet/spreadsheetCrudTools.ts | 0 .../convex}/tools/spreadsheetOperationTypes.ts | 0 .../convex}/tools/teachability/index.ts | 0 .../convex}/tools/teachability/learnUserSkill.ts | 0 .../convex}/tools/teachability/teachingAnalyzer.ts | 0 .../convex}/tools/teachability/userMemoryQueries.ts | 0 .../convex}/tools/teachability/userMemoryTools.ts | 0 {convex => backend/convex}/tools/wrappers/README.md | 0 .../convex}/tools/wrappers/coreAgentTools.ts | 0 .../convex}/tools/wrappers/evidenceTools.ts | 0 .../convex}/tools/wrappers/resourceLinkTools.ts | 0 {convex => backend/convex}/tsconfig.json | 0 {convex => backend/convex}/users.ts | 0 {convex => backend/convex}/wall.ts | 0 .../convex}/workflows/agentProjectIdeaPost.ts | 0 .../convex}/workflows/ainewsBriefFormat.test.ts | 0 .../convex}/workflows/ainewsBriefFormat.ts | 0 .../convex}/workflows/dailyLinkedInPost.ts | 0 .../convex}/workflows/dailyLinkedInPostMutations.ts | 0 .../convex}/workflows/dailyMorningBrief.ts | 0 {convex => backend/convex}/workflows/deepTrace.ts | 0 .../convex}/workflows/emailResearchOrchestrator.ts | 0 {convex => backend/convex}/workflows/endToEndQa.ts | 0 .../convex}/workflows/enhancedMorningBrief.ts | 0 .../convex}/workflows/enhancedWeeklySummary.ts | 0 .../convex}/workflows/founderPostGenerator.ts | 0 {convex => backend/convex}/workflows/index.ts | 0 .../convex}/workflows/linkedinTrigger.ts | 0 .../convex}/workflows/prdComposerWorkflow.ts | 0 .../convex}/workflows/scheduledPDFReports.ts | 0 .../workflows/scheduledPDFReportsMutations.ts | 0 .../convex}/workflows/sendMockBankerDigest.ts | 0 .../convex}/workflows/specializedLinkedInPosts.ts | 0 .../convex}/workflows/testDailyBrief.ts | 0 .../convex}/workflows/weeklySourceSummary.ts | 0 {tests => evals}/L1-simple-lookup.spec.ts | 0 {tests => evals}/L2-multi-source.spec.ts | 0 {tests => evals}/L3-deep-research.spec.ts | 0 {tests => evals}/L4-content-quality.spec.ts | 0 {tests => evals}/README.md | 0 {tests => evals}/agent-chat.spec.ts | 0 {tests => evals}/agent-eval-suite.spec.ts | 0 .../dossier-newsletter-overflow.spec.ts | 0 {tests => evals}/e2e/_debug-page.mjs | 0 {tests => evals}/e2e/analytics-dashboards.spec.ts | 0 {tests => evals}/e2e/anonymous-chat-leak.spec.ts | 0 {tests => evals}/e2e/autonomous-operations.spec.ts | 0 {tests => evals}/e2e/channel-preferences.spec.ts | 0 {tests => evals}/e2e/cmdk-palette.spec.ts | 0 {tests => evals}/e2e/coordination-live.spec.ts | 0 {tests => evals}/e2e/dark-mode-audit.spec.ts | 0 {tests => evals}/e2e/dcf-spreadsheet.spec.ts | 0 {tests => evals}/e2e/demo-jarvis-session.spec.ts | 0 {tests => evals}/e2e/demo-walkthrough.spec.ts | 0 {tests => evals}/e2e/edition-home-mobile.spec.ts | 0 {tests => evals}/e2e/edition-home.spec.ts | 0 {tests => evals}/e2e/entity-member-invite.spec.ts | 0 .../e2e/entity-notebook-regression.spec.ts | 0 .../e2e/entity-share-permissions.spec.ts | 0 {tests => evals}/e2e/exact-kit-parity-prod.spec.ts | 0 {tests => evals}/e2e/fast-agent-panel.spec.ts | 0 {tests => evals}/e2e/fixtures/server-fixture.ts | 0 {tests => evals}/e2e/founder-strategy.spec.ts | 0 {tests => evals}/e2e/full-ui-dogfood.spec.ts | 0 {tests => evals}/e2e/helpers/avatarPulse.ts | 0 {tests => evals}/e2e/helpers/entityNotebook.ts | 0 {tests => evals}/e2e/helpers/vercelPreview.ts | 0 {tests => evals}/e2e/home-v2-parity.spec.ts | 0 .../e2e/home-v5-output-contract.spec.ts | 0 {tests => evals}/e2e/live-smoke-mobile.spec.ts | 0 {tests => evals}/e2e/live-smoke.spec.ts | 0 {tests => evals}/e2e/one-flow-regression.spec.ts | 0 .../e2e/persona-ship-demo-day-agent-browser.spec.ts | 0 {tests => evals}/e2e/persona-ship-demo-day.spec.ts | 0 {tests => evals}/e2e/pr77-me-anchor-nav.spec.ts | 0 .../e2e/pr79-memory-pulse-honest.spec.ts | 0 {tests => evals}/e2e/product-shell-smoke.spec.ts | 0 .../e2e/proto-live-backend-dogfood.spec.ts | 0 .../e2e/redesign-graph-readability.spec.ts | 0 .../e2e/redesign-runtime-route-ownership.spec.ts | 0 .../e2e/report-notebook-actions.spec.ts | 0 {tests => evals}/e2e/scenario-regression.spec.ts | 0 .../e2e/scenario-visual-ingestion.spec.ts | 0 .../e2e/scratchnode-demo-route-gate.spec.ts | 0 .../e2e/scratchnode-live-route-honesty.spec.ts | 0 .../e2e/scratchnode-public-wiki.spec.ts | 0 {tests => evals}/e2e/swr-cache-notice.spec.ts | 0 {tests => evals}/e2e/test-duplicate-fix.spec.ts | 0 .../e2e/trust-infrastructure-routes.spec.ts | 0 {tests => evals}/e2e/ui-contract-runner.spec.ts | 0 {tests => evals}/e2e/ui-dive-regression.spec.ts | 0 .../e2e/vercel-preview-security.spec.ts | 0 {tests => evals}/e2e/visual-stability-audit.spec.ts | 0 .../e2e/voice-dogfood-scenarios.spec.ts | 0 {tests => evals}/e2e/voice-input.spec.ts | 0 {tests => evals}/entity-adaptive-profile.spec.ts | 0 {tests => evals}/entity-hover-preview.spec.ts | 0 {tests => evals}/evaluation/optimizations.test.ts | 0 {tests => evals}/fast-agent-integration.spec.ts | 0 {tests => evals}/fixtures/Report_2025-12-25.pdf | Bin {tests => evals}/fixtures/docx_fixture.docx | Bin {tests => evals}/fixtures/financials.csv | 0 .../gemini-qa-results/QA_SYNTHESIS_REPORT.md | 0 .../agentic-reliability-audit.json | 0 .../gemini-qa-results/claude-judge-results.json | 0 .../gemini-qa-results/claude-judge-summary.json | 0 .../gemini-3.1-flash-lite-scores.json | 0 .../gemini-3.1-flash-lite-summary.json | 0 .../gemini-qa-results/gemini-qa-scores.json | 0 .../gemini-qa-results/gemini-qa-summary.json | 0 .../fixtures/gemini-qa-results/learnings.json | 0 {tests => evals}/fixtures/pptx_fixture.pptx | Bin {tests => evals}/fixtures/premium-audit/01-home.png | Bin {tests => evals}/fixtures/premium-audit/02-chat.png | Bin .../fixtures/premium-audit/03-pricing.png | Bin .../fixtures/premium-audit/04-inbox.png | Bin {tests => evals}/fixtures/premium-audit/05-me.png | Bin {tests => evals}/fixtures/zip_fixture.zip | Bin {tests => evals}/funding-detection-agent.spec.ts | 0 {tests => evals}/linkupSmoke.js | 0 {tests => evals}/linkupSmoke.mjs | 0 {tests => evals}/performance-lighthouse.spec.ts | 0 {tests => evals}/prompts/jarvis-voice-e2e-agent.md | 0 {tests => evals}/prompts/sentinel-self-test.md | 0 .../after-answer-dark-desktop-scrolled.png | Bin .../after-answer-dark-desktop.png | Bin .../after-answer-dark-mobile.png | Bin .../after-answer-light-desktop.png | Bin .../20260717-answer-arrival/manifest.json | 0 .../20260717-answer-arrival/motion-frame-280ms.png | Bin .../20260717-answer-arrival/motion-frame-40ms.png | Bin .../20260717-answer-arrival/motion-frame-980ms.png | Bin .../after-decision-workspace-light.png | Bin .../after-decision-workspace-mobile-light.png | Bin .../after-decision-workspace-mobile.png | Bin .../after-decision-workspace.png | Bin .../before-decision-workspace-light.png | Bin .../before-decision-workspace-mobile-light.png | Bin .../before-decision-workspace-mobile.png | Bin .../before-decision-workspace.png | Bin .../20260717-chip-label-reduction/manifest.json | 0 .../after-decision-workspace-light.png | Bin .../after-decision-workspace-mobile-light.png | Bin .../after-decision-workspace-mobile.png | Bin .../after-decision-workspace.png | Bin .../after-interaction-report-context.png | Bin .../before-decision-workspace-light.png | Bin .../before-decision-workspace-mobile-light.png | Bin .../before-decision-workspace-mobile.png | Bin .../before-decision-workspace.png | Bin .../before-interaction-report-context.png | Bin .../20260717-design-nitpick/manifest.json | 0 .../after-decision-workspace-light.png | Bin .../after-decision-workspace-mobile-light.png | Bin .../after-decision-workspace-mobile.png | Bin .../after-decision-workspace.png | Bin .../before-decision-workspace-light.png | Bin .../before-decision-workspace-mobile-light.png | Bin .../before-decision-workspace-mobile.png | Bin .../before-decision-workspace.png | Bin .../20260717-ember-landing/manifest.json | 0 .../20260717-ember-landing/motion-frame-0ms.png | Bin .../20260717-ember-landing/motion-frame-1280ms.png | Bin .../20260717-ember-landing/motion-frame-380ms.png | Bin .../motion-reduced-motion-static.png | Bin .../after-landing-example-link.png | Bin .../after-one-click-journey-destination.png | Bin .../after-run-thread-complete.png | Bin .../20260717-run-theater-friction/manifest.json | 0 .../after-chat-desktop-dark-expanded.png | Bin .../after-chat-desktop-dark.png | Bin .../after-chat-desktop-light.png | Bin .../after-chat-mobile-dark.png | Bin .../before-memo-desktop-dark.png | Bin .../20260718-one-chat-interface/manifest.json | 0 .../after-panel-canonical-dark-expanded.png | Bin .../after-panel-canonical-light-collapsed.png | Bin .../after-panel-canonical-light-expanded.png | Bin .../20260718-one-chat-phase-b/manifest.json | 0 .../after-both-turns-collapsed.png | Bin .../after-markdown-adopted-expanded.png | Bin .../after-markdown-adopted.png | Bin .../after-plain-adopted.png | Bin .../20260718-one-chat-phase-c/manifest.json | 0 .../20260718-polish-chat-answer/manifest.json | 0 .../polish-after-dark.png | Bin .../polish-after-light.png | Bin .../polish-before-dark.png | Bin .../polish-before-light.png | Bin .../after-click-through-verified.png | Bin .../after-example-destination-showcase.png | Bin .../before-example-destination-qa-receipt.png | Bin .../20260718-showcase-receipt/manifest.json | 0 {docs/design => proof}/ui-contract/README.md | 0 {docs/design => proof}/ui-contract/SPEC.md | 0 .../ui-contract/manifest.schema.json | 0 .../surfaces/decision-workspace.contract.json | 0 {server => workers/node}/Dockerfile | 0 {server => workers/node}/agentHarness.test.ts | 0 {server => workers/node}/agentHarness.ts | 0 .../node}/agentHarnessStructuredOutput.test.ts | 0 .../node}/agents/realtimeVoicePolicy.test.ts | 0 .../node}/agents/realtimeVoicePolicy.ts | 0 {server => workers/node}/agents/voiceAgent.ts | 0 {server => workers/node}/claudeCodeBridge.ts | 0 {server => workers/node}/cloudbuild.yaml | 0 {server => workers/node}/commandBridge.test.ts | 0 {server => workers/node}/commandBridge.ts | 0 {server => workers/node}/harnessRuntime.test.ts | 0 {server => workers/node}/harnessRuntime.ts | 0 {server => workers/node}/hyperloopRoute.test.ts | 0 {server => workers/node}/index.ts | 0 {server => workers/node}/lib/canonicalModels.ts | 0 {server => workers/node}/lib/dcfModel.ts | 0 .../node}/lib/dcfSpreadsheetBridge.ts | 0 {server => workers/node}/lib/entityMemoryRecall.ts | 0 {server => workers/node}/lib/evidenceSpan.ts | 0 {server => workers/node}/lib/idGen.ts | 0 .../node}/lib/jsonObjectParser.test.ts | 0 {server => workers/node}/lib/jsonObjectParser.ts | 0 {server => workers/node}/lib/langgraphClient.ts | 0 {server => workers/node}/lib/multiSearch.ts | 0 {server => workers/node}/lib/painMapping.ts | 0 {server => workers/node}/lib/replayDetector.ts | 0 {server => workers/node}/lib/routingHints.ts | 0 {server => workers/node}/lib/searchContext.ts | 0 {server => workers/node}/lib/secEdgar.ts | 0 {server => workers/node}/lib/signalTaxonomy.ts | 0 {server => workers/node}/lib/skillExtractor.ts | 0 {server => workers/node}/lib/traceDistillation.ts | 0 {server => workers/node}/lib/trajectoryStore.ts | 0 {server => workers/node}/lib/workflowEnvelope.ts | 0 {server => workers/node}/lib/wrapRoute.ts | 0 {server => workers/node}/mcpAuth.d.ts | 0 {server => workers/node}/mcpAuth.js | 0 {server => workers/node}/mcpAuth.js.map | 0 {server => workers/node}/mcpAuth.ts | 0 {server => workers/node}/mcpGateway.ts | 0 {server => workers/node}/mcpSession.ts | 0 {server => workers/node}/nemoclaw/agentRunner.ts | 0 {server => workers/node}/nemoclaw/auditLog.ts | 0 {server => workers/node}/nemoclaw/chatGateway.ts | 0 .../node}/nemoclaw/codebaseContext.ts | 0 {server => workers/node}/nemoclaw/desktopControl.ts | 0 {server => workers/node}/nemoclaw/index.ts | 0 {server => workers/node}/nemoclaw/judge.ts | 0 {server => workers/node}/nemoclaw/processControl.ts | 0 {server => workers/node}/nemoclaw/telegramBot.ts | 0 {server => workers/node}/nemoclaw/test-judge.ts | 0 {server => workers/node}/nemoclaw/test-live.ts | 0 .../node}/nemoclaw/test-screenshot.ts | 0 {server => workers/node}/nemoclaw/test.ts | 0 {server => workers/node}/nemoclaw/videoCapture.ts | 0 .../node}/pipeline/authority/defaultTiers.test.ts | 0 .../node}/pipeline/authority/defaultTiers.ts | 0 .../node}/pipeline/blocks/founder.test.ts | 0 {server => workers/node}/pipeline/blocks/founder.ts | 0 {server => workers/node}/pipeline/blocks/types.ts | 0 .../node}/pipeline/changeDetector.test.ts | 0 {server => workers/node}/pipeline/changeDetector.ts | 0 .../node}/pipeline/diligenceJudge.test.ts | 0 {server => workers/node}/pipeline/diligenceJudge.ts | 0 .../node}/pipeline/diligenceLlmJudge.test.ts | 0 .../node}/pipeline/diligenceLlmJudge.ts | 0 .../pipeline/diligenceProjectionWriter.test.ts | 0 .../node}/pipeline/diligenceProjectionWriter.ts | 0 .../node}/pipeline/extendedThinkingRunner.test.ts | 0 .../node}/pipeline/extendedThinkingRunner.ts | 0 .../node}/pipeline/grounding/index.test.ts | 0 .../node}/pipeline/grounding/index.ts | 0 {server => workers/node}/pipeline/hooks.ts | 0 .../node}/pipeline/retryPolicy.test.ts | 0 {server => workers/node}/pipeline/retryPolicy.ts | 0 .../node}/pipeline/searchPipeline.test.ts | 0 {server => workers/node}/pipeline/searchPipeline.ts | 0 .../node}/pipeline/topicCompaction.test.ts | 0 .../node}/pipeline/topicCompaction.ts | 0 {server => workers/node}/pricingScraper.ts | 0 {server => workers/node}/providerBus.d.ts | 0 {server => workers/node}/providerBus.js | 0 {server => workers/node}/providerBus.js.map | 0 {server => workers/node}/providerBus.ts | 0 {server => workers/node}/routes/execute.ts | 0 .../node}/routes/founderEpisodeConvex.ts | 0 {server => workers/node}/routes/harness.ts | 0 {server => workers/node}/routes/hyperloop.ts | 0 {server => workers/node}/routes/improvementRoute.ts | 0 {server => workers/node}/routes/pipelineRoute.ts | 0 {server => workers/node}/routes/productRoutes.ts | 0 {server => workers/node}/routes/retentionBridge.ts | 0 {server => workers/node}/routes/search.ts | 0 {server => workers/node}/routes/session.ts | 0 {server => workers/node}/routes/share.ts | 0 {server => workers/node}/routes/sharedContext.ts | 0 .../node}/routes/sharedContextConvex.ts | 0 {server => workers/node}/routes/streamingSearch.ts | 0 {server => workers/node}/routes/subconscious.ts | 0 {server => workers/node}/routes/toolGraph.ts | 0 {server => workers/node}/routes/tts.ts | 0 {server => workers/node}/routes/voiceCapture.ts | 0 {server => workers/node}/routes/watchlist.ts | 0 {server => workers/node}/routes/workspaceSync.ts | 0 .../node}/searchPipelineStateToResultPacket.test.ts | 0 {server => workers/node}/searchRoute.test.ts | 0 {server => workers/node}/services/agentRouter.ts | 0 {server => workers/node}/services/sessionManager.ts | 0 {server => workers/node}/sharedContextRoute.test.ts | 0 .../node}/streamingSearchRoute.test.ts | 0 {server => workers/node}/stressTest.ts | 0 {server => workers/node}/syncBridge.test.ts | 0 {server => workers/node}/syncBridge.ts | 0 {server => workers/node}/tsconfig.json | 0 {server => workers/node}/vercel/searchApp.ts | 0 3404 files changed, 0 insertions(+), 0 deletions(-) rename {goals => adw/goals}/AGENT_LOOP.md (100%) rename {goals => adw/goals}/GOVERNANCE.md (100%) rename {goals => adw/goals}/HARD_GATES.md (100%) rename {goals => adw/goals}/README.md (100%) rename {goals => adw/goals}/_TEMPLATE.md (100%) rename {goals => adw/goals}/nodebench/001-event-handoff.md (100%) rename {goals => adw/goals}/nodebench/002-self-improvement-loop-live-signal-convex.md (100%) rename {goals => adw/goals}/prompts/README.md (100%) rename {goals => adw/goals}/prompts/agent-library.md (100%) rename {goals => adw/goals}/reviews/.gitkeep (100%) rename {goals => adw/goals}/reviews/2026-06-02-weekly.md (100%) rename {goals => adw/goals}/runtime/001-public-private-boundary.md (100%) rename {goals => adw/goals}/runtime/003-governance-hardening.md (100%) rename {goals => adw/goals}/scratchnode/001-first-time-user-clarity.md (100%) rename {goals => adw/goals}/scratchnode/002-host-public-write-verification.md (100%) rename {goals => adw/goals}/scratchnode/003-privacy-boundary-honesty-gates.md (100%) rename {scripts => adw}/improvement-loop/.gitignore (100%) rename {scripts => adw}/improvement-loop/convex-improvementLoop.ts.pending (100%) rename {scripts => adw}/improvement-loop/ledger.json (100%) rename {scripts => adw}/improvement-loop/run-cycle.mjs (100%) rename {scripts => adw}/improvement-loop/scan.mjs (100%) rename index.html => apps/web/index.html (100%) rename {src => apps/web/src}/App.tsx (100%) rename {src => apps/web/src}/SignInForm.tsx (100%) rename {src => apps/web/src}/SignOutButton.tsx (100%) rename {src => apps/web/src}/adapters/unifiedAdapters.ts (100%) rename {src => apps/web/src}/components/Editor/Editor.tsx (100%) rename {src => apps/web/src}/components/Editor/editor-blocks.css (100%) rename {src => apps/web/src}/components/FiltersToolsBar.tsx (100%) rename {src => apps/web/src}/components/LiveRegion.tsx (100%) rename {src => apps/web/src}/components/QuickCapture/index.ts (100%) rename {src => apps/web/src}/components/SkipLinks.tsx (100%) rename {src => apps/web/src}/components/TokenUsageBadge.tsx (100%) rename {src => apps/web/src}/components/ai-elements/artifact.tsx (100%) rename {src => apps/web/src}/components/ai-elements/attachments.tsx (100%) rename {src => apps/web/src}/components/ai-elements/chain-of-thought.tsx (100%) rename {src => apps/web/src}/components/ai-elements/checkpoint.tsx (100%) rename {src => apps/web/src}/components/ai-elements/code-block.test.tsx (100%) rename {src => apps/web/src}/components/ai-elements/code-block.tsx (100%) rename {src => apps/web/src}/components/ai-elements/confirmation.tsx (100%) rename {src => apps/web/src}/components/ai-elements/context.tsx (100%) rename {src => apps/web/src}/components/ai-elements/conversation.tsx (100%) rename {src => apps/web/src}/components/ai-elements/image.tsx (100%) rename {src => apps/web/src}/components/ai-elements/inline-citation.tsx (100%) rename {src => apps/web/src}/components/ai-elements/message.tsx (100%) rename {src => apps/web/src}/components/ai-elements/model-selector.tsx (100%) rename {src => apps/web/src}/components/ai-elements/open-in-chat.tsx (100%) rename {src => apps/web/src}/components/ai-elements/plan.tsx (100%) rename {src => apps/web/src}/components/ai-elements/prompt-input.tsx (100%) rename {src => apps/web/src}/components/ai-elements/queue.tsx (100%) rename {src => apps/web/src}/components/ai-elements/reasoning.tsx (100%) rename {src => apps/web/src}/components/ai-elements/shimmer.tsx (100%) rename {src => apps/web/src}/components/ai-elements/snippet.tsx (100%) rename {src => apps/web/src}/components/ai-elements/sources.tsx (100%) rename {src => apps/web/src}/components/ai-elements/streamdown-renderer.tsx (100%) rename {src => apps/web/src}/components/ai-elements/suggestion.tsx (100%) rename {src => apps/web/src}/components/ai-elements/task.tsx (100%) rename {src => apps/web/src}/components/ai-elements/tool.tsx (100%) rename {src => apps/web/src}/components/ai-elements/web-preview.tsx (100%) rename {src => apps/web/src}/components/ai-ui/PrimitiveMigration.guard.test.ts (100%) rename {src => apps/web/src}/components/ai-ui/ResidualControlsMigration.guard.test.ts (100%) rename {src => apps/web/src}/components/ai-ui/accordion.tsx (100%) rename {src => apps/web/src}/components/ai-ui/alert.tsx (100%) rename {src => apps/web/src}/components/ai-ui/badge.tsx (100%) rename {src => apps/web/src}/components/ai-ui/button-group.tsx (100%) rename {src => apps/web/src}/components/ai-ui/button.tsx (100%) rename {src => apps/web/src}/components/ai-ui/card.tsx (100%) rename {src => apps/web/src}/components/ai-ui/carousel.tsx (100%) rename {src => apps/web/src}/components/ai-ui/checkbox.tsx (100%) rename {src => apps/web/src}/components/ai-ui/collapsible.tsx (100%) rename {src => apps/web/src}/components/ai-ui/command.tsx (100%) rename {src => apps/web/src}/components/ai-ui/context-menu.tsx (100%) rename {src => apps/web/src}/components/ai-ui/dialog.tsx (100%) rename {src => apps/web/src}/components/ai-ui/dropdown-menu.tsx (100%) rename {src => apps/web/src}/components/ai-ui/hover-card.tsx (100%) rename {src => apps/web/src}/components/ai-ui/input-group.tsx (100%) rename {src => apps/web/src}/components/ai-ui/input.tsx (100%) rename {src => apps/web/src}/components/ai-ui/popover.tsx (100%) rename {src => apps/web/src}/components/ai-ui/progress.tsx (100%) rename {src => apps/web/src}/components/ai-ui/scroll-area.tsx (100%) rename {src => apps/web/src}/components/ai-ui/select.tsx (100%) rename {src => apps/web/src}/components/ai-ui/separator.tsx (100%) rename {src => apps/web/src}/components/ai-ui/sheet.tsx (100%) rename {src => apps/web/src}/components/ai-ui/spinner.tsx (100%) rename {src => apps/web/src}/components/ai-ui/switch.tsx (100%) rename {src => apps/web/src}/components/ai-ui/tabs.tsx (100%) rename {src => apps/web/src}/components/ai-ui/textarea.tsx (100%) rename {src => apps/web/src}/components/ai-ui/toggle-group.tsx (100%) rename {src => apps/web/src}/components/ai-ui/tooltip.tsx (100%) rename {src => apps/web/src}/components/artifacts/EvidenceChips.tsx (100%) rename {src => apps/web/src}/components/artifacts/MediaRail.tsx (100%) rename {src => apps/web/src}/components/artifacts/SourcesLibrary.tsx (100%) rename {src => apps/web/src}/components/artifacts/index.ts (100%) rename {src => apps/web/src}/components/grid-constants.ts (100%) rename {src => apps/web/src}/components/hud/CursorGlow.tsx (100%) rename {src => apps/web/src}/components/hud/GridOverlay.tsx (100%) rename {src => apps/web/src}/components/hud/HUDPanel.tsx (100%) rename {src => apps/web/src}/components/hud/JarvisHUDLayout.tsx (100%) rename {src => apps/web/src}/components/hud/ScanLine.tsx (100%) rename {src => apps/web/src}/components/hud/TaskWidgetStack.tsx (100%) rename {src => apps/web/src}/components/hud/TypewriterText.tsx (100%) rename {src => apps/web/src}/components/hud/hud-tailwind.preset.js (100%) rename {src => apps/web/src}/components/hud/index.ts (100%) rename {src => apps/web/src}/components/hud/package.json (100%) rename {src => apps/web/src}/components/hud/useAgentThread.ts (100%) rename {src => apps/web/src}/components/hud/useHUDLayout.ts (100%) rename {src => apps/web/src}/components/hud/useMultiThread.ts (100%) rename {src => apps/web/src}/components/kanban/TaskCard.tsx (100%) rename {src => apps/web/src}/components/proposals/ProposalBar.tsx (100%) rename {src => apps/web/src}/components/proposals/ProposalProvider.tsx (100%) rename {src => apps/web/src}/components/proposals/diffUtils.ts (100%) rename {src => apps/web/src}/components/skeletons/BriefingSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/CostDashboardSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/DealCardSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/DigestSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/FeedCardSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/IndustryUpdatesSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/ReportCardSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/Skeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/ViewSkeleton.tsx (100%) rename {src => apps/web/src}/components/skeletons/index.ts (100%) rename {src => apps/web/src}/components/tasks/TaskDetailHeader.tsx (100%) rename {src => apps/web/src}/components/timelineRoadmap/TimelineRoadmapView.tsx (100%) rename {src => apps/web/src}/components/ui/Button.tsx (100%) rename {src => apps/web/src}/components/ui/Card.tsx (100%) rename {src => apps/web/src}/components/ui/EmptyState.tsx (100%) rename {src => apps/web/src}/components/ui/SidebarButton.tsx (100%) rename {src => apps/web/src}/components/ui/Sparkline.tsx (100%) rename {src => apps/web/src}/components/ui/Toast.tsx (100%) rename {src => apps/web/src}/components/ui/index.ts (100%) rename {src => apps/web/src}/components/unified/UnifiedRow.tsx (100%) rename {src => apps/web/src}/contexts/OracleSessionContext.tsx (100%) rename {src => apps/web/src}/contexts/ThemeContext.tsx (100%) rename {src => apps/web/src}/design-governance/defaultSpec.ts (100%) rename {src => apps/web/src}/design-governance/figmaSync.ts (100%) rename {src => apps/web/src}/design-governance/index.ts (100%) rename {src => apps/web/src}/design-governance/spec.ts (100%) rename {src => apps/web/src}/design/designSystem.test.ts (100%) rename {src => apps/web/src}/design/designSystem.ts (100%) rename {src => apps/web/src}/features/admin/FundingDataReview.tsx (100%) rename {src => apps/web/src}/features/admin/components/ApiUsageDisplay.tsx (100%) rename {src => apps/web/src}/features/admin/components/CostDashboard.tsx (100%) rename {src => apps/web/src}/features/admin/components/UsageDashboard.tsx (100%) rename {src => apps/web/src}/features/admin/dashboards/ComponentMetricsDashboard.tsx (100%) rename {src => apps/web/src}/features/admin/dashboards/HITLAnalyticsDashboard.tsx (100%) rename {src => apps/web/src}/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx (100%) rename {src => apps/web/src}/features/agents/authority/AuthorityControl.test.tsx (100%) rename {src => apps/web/src}/features/agents/authority/AuthorityControl.tsx (100%) rename {src => apps/web/src}/features/agents/authority/DelegatedReceiptRow.test.tsx (100%) rename {src => apps/web/src}/features/agents/authority/DelegatedReceiptRow.tsx (100%) rename {src => apps/web/src}/features/agents/authority/NotebookAuthorityControl.tsx (100%) rename {src => apps/web/src}/features/agents/authority/authorityPresentation.ts (100%) rename {src => apps/web/src}/features/agents/authority/index.ts (100%) rename {src => apps/web/src}/features/agents/components/AgentCommandBar.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/AgentCommandBar.tsx (100%) rename {src => apps/web/src}/features/agents/components/AgentMarketplace.tsx (100%) rename {src => apps/web/src}/features/agents/components/AgentResponseFlywheelPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/AgentSidebar.tsx (100%) rename {src => apps/web/src}/features/agents/components/AgentStatusCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/AnalyzeSelectionButton.tsx (100%) rename {src => apps/web/src}/features/agents/components/AskNodeBenchPill.tsx (100%) rename {src => apps/web/src}/features/agents/components/AutonomousOperationsPanel.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/AutonomousOperationsPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/ConvexJarvisHUD.tsx (100%) rename {src => apps/web/src}/features/agents/components/DossierModeIndicator.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ArbitrageReportCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/CompanySelectionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ContextBar.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/DocumentActionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/EditProgressCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/EntityWorkspaceDrawerContent.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/EventSelectionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.AgentHierarchy.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.CitationLink.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.DisclosureTrace.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.GoalCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.LiveThinking.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.MediaRecorder.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.MinimizedStrip.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.PanelDialogs.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.RunState.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.VisualCitation.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.animations.css (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.sendContract.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FastAgentPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FileViewer.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/FusedSearchResults.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/HumanRequestCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/JARVIS_HUD_README.md (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/JarvisHUDLayout.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/LazySyntaxHighlighter.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/LiveEventCard.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/LiveEventCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/MediaGallery.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/MemoryPill.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/MemoryStatusHeader.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/MermaidDiagram.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/NewsSelectionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/PanelCanonicalAnswer.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/PeopleSelectionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ProfileCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/QuickCommandChips.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/RichMediaSection.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/SourceCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/StepTimeline.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/SwarmLanesView.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/SwarmQuickActions.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/TokenUsageBadge.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/TokenUsageBadge.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ToolCallTransparency.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ToolCallTransparency.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/ToolResultPopover.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/TypingIndicator.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/VideoCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/VirtualizedMessageList.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__harness__/panel-canonical-answer-harness.html (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__harness__/panelCanonicalAnswerHarness.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.provenance.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.sendContract.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/PanelCanonicalAnswer.contract.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/ProfileCard.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/SourceCard.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/VideoCard.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/e2e-agent-ui.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/mediaExtractor.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/message-rendering.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/presentation-layer.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/__tests__/streaming-optimization.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/adapters/convexToUIParts.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/adapters/convexToUIParts.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/hooks/index.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/hooks/useSmartAutoScroll.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/hooks/useStreamingBuffer.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/index.enhanced.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/index.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/lazyRehypeKatex.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/liveEvents.test.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/liveEvents.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/types/agent.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/types/index.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/types/message.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/types/stream.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/types/thread.ts (100%) rename {src => apps/web/src}/features/agents/components/FastAgentPanel/utils/mediaExtractor.ts (100%) rename {src => apps/web/src}/features/agents/components/FloatingAgentButton.tsx (100%) rename {src => apps/web/src}/features/agents/components/FreeModelRankingsPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/HumanApprovalQueue.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/HumanApprovalQueue.tsx (100%) rename {src => apps/web/src}/features/agents/components/ModelSelector.tsx (100%) rename {src => apps/web/src}/features/agents/components/NotificationActivityPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/OracleControlTowerPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/SaveToNotebookButton.tsx (100%) rename {src => apps/web/src}/features/agents/components/StreamingTranscript.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/TaskManagerView.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/TaskSessionCard.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/TaskSessionDetail.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/TaskSessionDetail.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/TelemetrySpanTree.tsx (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/index.ts (100%) rename {src => apps/web/src}/features/agents/components/TaskManager/types.ts (100%) rename {src => apps/web/src}/features/agents/components/TopicCanvasPanel.test.tsx (100%) rename {src => apps/web/src}/features/agents/components/TopicCanvasPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/WorkspaceGrid.tsx (100%) rename {src => apps/web/src}/features/agents/components/oracleControlTowerUtils.test.ts (100%) rename {src => apps/web/src}/features/agents/components/oracleControlTowerUtils.ts (100%) rename {src => apps/web/src}/features/agents/components/oraclePromptPackContract.test.ts (100%) rename {src => apps/web/src}/features/agents/components/oracleTemporalOsUtils.test.ts (100%) rename {src => apps/web/src}/features/agents/components/oracleTemporalOsUtils.ts (100%) rename {src => apps/web/src}/features/agents/components/successLoops/SuccessLoopsPanel.tsx (100%) rename {src => apps/web/src}/features/agents/components/successLoops/types.ts (100%) rename {src => apps/web/src}/features/agents/context/FastAgentContext.tsx (100%) rename {src => apps/web/src}/features/agents/context/SelectionContext.tsx (100%) rename {src => apps/web/src}/features/agents/hooks/useAgentActions.ts (100%) rename {src => apps/web/src}/features/agents/hooks/useAgentNavigation.ts (100%) rename {src => apps/web/src}/features/agents/hooks/useAnonymousSession.ts (100%) rename {src => apps/web/src}/features/agents/hooks/useRunGraph.ts (100%) rename {src => apps/web/src}/features/agents/index.ts (100%) rename {src => apps/web/src}/features/agents/lib/agentPalette.ts (100%) rename {src => apps/web/src}/features/agents/lib/askShortcut.test.ts (100%) rename {src => apps/web/src}/features/agents/lib/askShortcut.ts (100%) rename {src => apps/web/src}/features/agents/logic/workflowTemplates.ts (100%) rename {src => apps/web/src}/features/agents/primitives/AgentAuthorTag.tsx (100%) rename {src => apps/web/src}/features/agents/primitives/AgentComposer.tsx (100%) rename {src => apps/web/src}/features/agents/primitives/AgentFlowRail.tsx (100%) rename {src => apps/web/src}/features/agents/types/reasoningGraph.ts (100%) rename {src => apps/web/src}/features/agents/views/AgentsHub.test.ts (100%) rename {src => apps/web/src}/features/agents/views/AgentsHub.tsx (100%) rename {src => apps/web/src}/features/agents/views/DeepAgentProgress.tsx (100%) rename {src => apps/web/src}/features/agents/views/LiveAgentLanes.tsx (100%) rename {src => apps/web/src}/features/agents/views/PublicActivityView.tsx (100%) rename {src => apps/web/src}/features/agents/views/TaskPlanPanel.tsx (100%) rename {src => apps/web/src}/features/agents/views/WorkflowMetricsBar.tsx (100%) rename {src => apps/web/src}/features/artifacts/components/ArtifactHost.tsx (100%) rename {src => apps/web/src}/features/artifacts/components/ArtifactTabs.tsx (100%) rename {src => apps/web/src}/features/artifacts/context/ArtifactContext.tsx (100%) rename {src => apps/web/src}/features/artifacts/index.ts (100%) rename {src => apps/web/src}/features/benchmarks/components/ModelLeaderboard.tsx (100%) rename {src => apps/web/src}/features/benchmarks/components/ScenarioCatalog.tsx (100%) rename {src => apps/web/src}/features/benchmarks/components/TelemetryInspector.test.tsx (100%) rename {src => apps/web/src}/features/benchmarks/components/TelemetryInspector.tsx (100%) rename {src => apps/web/src}/features/benchmarks/components/WorkbenchRunsTable.tsx (100%) rename {src => apps/web/src}/features/benchmarks/components/workbenchScenarios.ts (100%) rename {src => apps/web/src}/features/benchmarks/data/telemetryInspectorMockData.ts (100%) rename {src => apps/web/src}/features/benchmarks/lib/telemetryInspectorArtifacts.test.ts (100%) rename {src => apps/web/src}/features/benchmarks/lib/telemetryInspectorArtifacts.ts (100%) rename {src => apps/web/src}/features/benchmarks/store/useTelemetryInspectorStore.ts (100%) rename {src => apps/web/src}/features/benchmarks/views/WorkbenchView.tsx (100%) rename {src => apps/web/src}/features/calendar/components/CalendarDatePopover.tsx (100%) rename {src => apps/web/src}/features/calendar/components/CalendarHeatmapDots.tsx (100%) rename {src => apps/web/src}/features/calendar/components/CalendarHomeHub.tsx (100%) rename {src => apps/web/src}/features/calendar/components/EventEditorPanel.tsx (100%) rename {src => apps/web/src}/features/calendar/components/MiniMonthCalendar.tsx (100%) rename {src => apps/web/src}/features/calendar/components/TaskEditorPanel.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/AgendaEditorPopover.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/AgendaHoverPreview.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/AgendaMiniRow.test.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/AgendaMiniRow.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/AgendaSortableItem.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/InlineEventEditor.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/InlineTaskEditor.tsx (100%) rename {src => apps/web/src}/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx (100%) rename {src => apps/web/src}/features/calendar/hooks/useCalendarAgenda.ts (100%) rename {src => apps/web/src}/features/calendar/index.ts (100%) rename {src => apps/web/src}/features/calendar/views/CalendarView.tsx (100%) rename {src => apps/web/src}/features/chat/components/AgentResilienceConnector.tsx (100%) rename {src => apps/web/src}/features/chat/components/BackgroundRunsChip.test.tsx (100%) rename {src => apps/web/src}/features/chat/components/BackgroundRunsChip.tsx (100%) rename {src => apps/web/src}/features/chat/components/ChatLane.tsx (100%) rename {src => apps/web/src}/features/chat/components/ChatShareSheet.tsx (100%) rename {src => apps/web/src}/features/chat/components/ClassificationChip.tsx (100%) rename {src => apps/web/src}/features/chat/components/ConversationProgressCard.test.tsx (100%) rename {src => apps/web/src}/features/chat/components/ConversationProgressCard.tsx (100%) rename {src => apps/web/src}/features/chat/components/EntityDisambiguationCard.tsx (100%) rename {src => apps/web/src}/features/chat/components/EntityIntelligenceRail.tsx (100%) rename {src => apps/web/src}/features/chat/components/LessonsPanel.tsx (100%) rename {src => apps/web/src}/features/chat/components/LowConfidenceCard.tsx (100%) rename {src => apps/web/src}/features/chat/components/ModelSwitchedCard.tsx (100%) rename {src => apps/web/src}/features/chat/components/QuotePopover.tsx (100%) rename {src => apps/web/src}/features/chat/components/ResilienceSettings.tsx (100%) rename {src => apps/web/src}/features/chat/components/RollbackMessageCard.tsx (100%) rename {src => apps/web/src}/features/chat/components/SessionArtifactsPanel.tsx (100%) rename {src => apps/web/src}/features/chat/components/ThreadActionsSheet.test.tsx (100%) rename {src => apps/web/src}/features/chat/components/ThreadActionsSheet.tsx (100%) rename {src => apps/web/src}/features/chat/hooks/useConversationEngine.ts (100%) rename {src => apps/web/src}/features/chat/hooks/useRollbackInterceptor.ts (100%) rename {src => apps/web/src}/features/chat/lib/classifyPrompt.ts (100%) rename {src => apps/web/src}/features/chat/lib/detectRollbackIntent.test.ts (100%) rename {src => apps/web/src}/features/chat/lib/detectRollbackIntent.ts (100%) rename {src => apps/web/src}/features/chat/lib/threadRouting.test.ts (100%) rename {src => apps/web/src}/features/chat/lib/threadRouting.ts (100%) rename {src => apps/web/src}/features/controlPlane/components/BenchmarkComparison.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ChatMessage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ChatThread.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/CitationFootnote.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/CitationLink.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/CompanyProfile.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ConferenceCapture.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/DCFCard.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/DelegationModal.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/EntityCompare.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/FounderEpisodePanel.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/HomesHubSession.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/LandingScroll.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/LivePipelineProgress.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/LiveSearchTelemetry.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ReceiptApprovalQueue.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ReceiptApprovalQueue.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/ReceiptCard.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/RecentSearchHistory.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/RoleLensOutput.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/SearchTrace.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/SearchTrace.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/SignalCard.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/SyncProvenanceBadge.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/SyncProvenanceBadge.tsx (100%) rename {src => apps/web/src}/features/controlPlane/components/dogfoodSuite.ts (100%) rename {src => apps/web/src}/features/controlPlane/components/dogfoodTelemetry.ts (100%) rename {src => apps/web/src}/features/controlPlane/components/proofModel.test.ts (100%) rename {src => apps/web/src}/features/controlPlane/components/proofModel.ts (100%) rename {src => apps/web/src}/features/controlPlane/components/searchTypes.ts (100%) rename {src => apps/web/src}/features/controlPlane/data/receiptFixtures.ts (100%) rename {src => apps/web/src}/features/controlPlane/lib/onboardingState.test.ts (100%) rename {src => apps/web/src}/features/controlPlane/lib/onboardingState.ts (100%) rename {src => apps/web/src}/features/controlPlane/lib/receiptPresentation.test.ts (100%) rename {src => apps/web/src}/features/controlPlane/lib/receiptPresentation.ts (100%) rename {src => apps/web/src}/features/controlPlane/lib/toolCatalog.ts (100%) rename {src => apps/web/src}/features/controlPlane/types/actionReceipt.ts (100%) rename {src => apps/web/src}/features/controlPlane/types/agentPassport.ts (100%) rename {src => apps/web/src}/features/controlPlane/types/index.ts (100%) rename {src => apps/web/src}/features/controlPlane/views/AboutPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/ActionReceiptFeed.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/ActionReceiptFeed.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/ApiDocsPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/ChangelogPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/DelegationShowcase.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/DelegationShowcase.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/DevelopersPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/LegalPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/NotFoundPage.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/PricingPage.test.tsx (100%) rename {src => apps/web/src}/features/controlPlane/views/PricingPage.tsx (100%) rename {src => apps/web/src}/features/deepSim/components/HcsnGraphPanel.tsx (100%) rename {src => apps/web/src}/features/deepSim/fixtures.ts (100%) rename {src => apps/web/src}/features/deepSim/index.ts (100%) rename {src => apps/web/src}/features/deepSim/types.ts (100%) rename {src => apps/web/src}/features/deepSim/views/DecisionMemoView.tsx (100%) rename {src => apps/web/src}/features/deepSim/views/PostmortemView.tsx (100%) rename {src => apps/web/src}/features/designKit/exact/ExactComposer.entityMentions.test.tsx (100%) rename {src => apps/web/src}/features/designKit/exact/ExactComposer.tsx (100%) rename {src => apps/web/src}/features/designKit/exact/ExactKit.tsx (100%) rename {src => apps/web/src}/features/designKit/exact/__tests__/ResponsiveSurface.dedup.test.tsx (100%) rename {src => apps/web/src}/features/designKit/exact/__tests__/exactRuntimeContracts.test.ts (100%) rename {src => apps/web/src}/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts (100%) rename {src => apps/web/src}/features/designKit/exact/exactKit.css (100%) rename {src => apps/web/src}/features/designKit/exact/exactRuntimeContracts.ts (100%) rename {src => apps/web/src}/features/designKit/exact/useEntitySuggest.ts (100%) rename {src => apps/web/src}/features/devDashboard/DevDashboard.tsx (100%) rename {src => apps/web/src}/features/devDashboard/data/timeline.json (100%) rename {src => apps/web/src}/features/documents/__tests__/bundleGates.test.ts (100%) rename {src => apps/web/src}/features/documents/__tests__/contextIsolation.test.ts (100%) rename {src => apps/web/src}/features/documents/__tests__/rerenderIsolation.test.ts (100%) rename {src => apps/web/src}/features/documents/components/CodeViewer.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentBreadcrumbs.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentGrid.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentHeader.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentRecommendations.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentSidebarPanel.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsGridSortable.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsHomeHub.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsPlannerOverlays.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsPlannerSurface.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsTabContent.tsx (100%) rename {src => apps/web/src}/features/documents/components/DocumentsWorkspaceSurface.tsx (100%) rename {src => apps/web/src}/features/documents/components/FiltersToolsBar.tsx (100%) rename {src => apps/web/src}/features/documents/components/MediaCinemaViewer.tsx (100%) rename {src => apps/web/src}/features/documents/components/RichPreviews.tsx (100%) rename {src => apps/web/src}/features/documents/components/WorkspaceExplorer.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/DocumentsSidebar.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/DocumentCard.stories.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/DocumentCard.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/DocumentCardSkeleton.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/VisualGlimpse.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/cardFileTypeHelpers.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/cards/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/context/DocumentsHubContext.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/context/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/hooks/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/hooks/useWeekNavigation.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/kanban/KanbanLane.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/kanban/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/pills/RefsPills.stories.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/pills/RefsPills.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/pills/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/planner/PlannerAiBar.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/planner/PlannerModeToggle.test.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/planner/types.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/DocumentRow.stories.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/DocumentRow.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/HolidayRow.stories.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/HolidayRow.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/TaskRow.stories.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/TaskRow.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/rows/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/types.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/__tests__/documentHelpers.test.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/__tests__/eventHelpers.test.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/__tests__/statusHelpers.test.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/constants.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/documentHelpers.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/eventHelpers.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/index.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/utils/statusHelpers.ts (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/views/AgendaListSection.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/views/IntelligenceTable.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/views/QuickCreateBar.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/views/SectionCard.tsx (100%) rename {src => apps/web/src}/features/documents/components/documentsHub/views/index.ts (100%) rename {src => apps/web/src}/features/documents/components/previewDescriptor.ts (100%) rename {src => apps/web/src}/features/documents/components/previews/LightPreviews.tsx (100%) rename {src => apps/web/src}/features/documents/components/previews/SpreadsheetPreview.tsx (100%) rename {src => apps/web/src}/features/documents/components/previews/index.ts (100%) rename {src => apps/web/src}/features/documents/components/viewModes/DocumentsCardsView.tsx (100%) rename {src => apps/web/src}/features/documents/components/viewModes/DocumentsListView.tsx (100%) rename {src => apps/web/src}/features/documents/components/viewModes/DocumentsSegmentedView.tsx (100%) rename {src => apps/web/src}/features/documents/components/viewModes/index.ts (100%) rename {src => apps/web/src}/features/documents/context/DocumentsCoreProvider.tsx (100%) rename {src => apps/web/src}/features/documents/context/DocumentsPlannerProvider.tsx (100%) rename {src => apps/web/src}/features/documents/context/DocumentsWorkspaceContext.tsx (100%) rename {src => apps/web/src}/features/documents/context/index.ts (100%) rename {src => apps/web/src}/features/documents/context/types.ts (100%) rename {src => apps/web/src}/features/documents/editors/DocumentMiniEditor.tsx (100%) rename {src => apps/web/src}/features/documents/editors/DossierMiniEditor.tsx (100%) rename {src => apps/web/src}/features/documents/editors/DualCreateMiniPanel.tsx (100%) rename {src => apps/web/src}/features/documents/editors/DualEditMiniPanel.tsx (100%) rename {src => apps/web/src}/features/documents/editors/PopoverMiniEditor.tsx (100%) rename {src => apps/web/src}/features/documents/editors/SpreadsheetMiniEditor.tsx (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentData.ts (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentOrdering.ts (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentOverlays.ts (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentSelection.ts (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentUpload.ts (100%) rename {src => apps/web/src}/features/documents/hooks/useDocumentWorkspaceState.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerAgendaData.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerController.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerDateNav.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerEditor.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerMutations.ts (100%) rename {src => apps/web/src}/features/documents/hooks/usePlannerViewPrefs.ts (100%) rename {src => apps/web/src}/features/documents/index.ts (100%) rename {src => apps/web/src}/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx (100%) rename {src => apps/web/src}/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx (100%) rename {src => apps/web/src}/features/documents/views/DocumentView.tsx (100%) rename {src => apps/web/src}/features/documents/views/FileViewer.tsx (100%) rename {src => apps/web/src}/features/documents/views/PublicDocuments.tsx (100%) rename {src => apps/web/src}/features/documents/views/SpreadsheetView.tsx (100%) rename {src => apps/web/src}/features/dogfood/components/TasteBenchPanel.test.tsx (100%) rename {src => apps/web/src}/features/dogfood/components/TasteBenchPanel.tsx (100%) rename {src => apps/web/src}/features/dogfood/views/DogfoodReviewView.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/InlineAgentProgress.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/InspectorPanel.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/PmBridge.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/ProposalOverlay.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/ShadowTiptap.tsx (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/index.ts (100%) rename {src => apps/web/src}/features/editor/components/UnifiedEditor/useInlineFastAgent.ts (100%) rename {src => apps/web/src}/features/editor/hooks/index.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useAIKeyboard.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useEditorSeeding.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useFileUpload.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useHashtagMenu.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useMentionMenu.ts (100%) rename {src => apps/web/src}/features/editor/hooks/usePendingEdits.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useProposalSystem.ts (100%) rename {src => apps/web/src}/features/editor/hooks/useSlashMenuItems.ts (100%) rename {src => apps/web/src}/features/editor/index.ts (100%) rename {src => apps/web/src}/features/editor/types.ts (100%) rename {src => apps/web/src}/features/editor/utils/blockUtils.ts (100%) rename {src => apps/web/src}/features/editor/utils/index.ts (100%) rename {src => apps/web/src}/features/editor/utils/sanitize.ts (100%) rename {src => apps/web/src}/features/engine/views/EngineDemoView.tsx (100%) rename {src => apps/web/src}/features/entities/components/DiligenceSection.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/DiligenceSection.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityMemoryGraph.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNoteEditor.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNoteMarkdownEditor.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNotebookMeta.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNotebookSurface.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNotebookSurface.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNotebookView.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityNotebookView.tsx (100%) rename {src => apps/web/src}/features/entities/components/EntityShareSheet.tsx (100%) rename {src => apps/web/src}/features/entities/components/EvidenceChip.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/EvidenceChip.tsx (100%) rename {src => apps/web/src}/features/entities/components/LiveDiligenceSection.tsx (100%) rename {src => apps/web/src}/features/entities/components/NotebookTopStatusRow.tsx (100%) rename {src => apps/web/src}/features/entities/components/ScratchpadViewer.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/ScratchpadViewer.tsx (100%) rename {src => apps/web/src}/features/entities/components/ViewModeToggle.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/BlockChipRenderer.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/BlockChipRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/BlockProvenance.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/BlockStatusBar.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/DiligenceDecorationPlugin.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/DiligenceDecorationPlugin.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/DiligenceDriftBanner.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/DiligenceDriftBanner.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/EntityNotebookLive.empty-state.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/EntityNotebookLive.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/EntityNotebookLive.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/EntityNotebookLiveMount.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/EntityNotebookLiveMount.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/ExtendedRunPanel.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/MentionPicker.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/MentionPicker.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookBlockEditor.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookDiligenceOverlayHost.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookDiligenceOverlayHost.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookDismissalsSync.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookMentionNode.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookRunMapPanel.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookScratchpadTracePanel.test.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/NotebookScratchpadTracePanel.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/SlashPalette.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/WorkspaceDrawerPill.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/acceptDecorationIntoNotebook.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/acceptDecorationIntoNotebook.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/diligenceRenderers.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/entityNotebookLiveHelpers.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/notebookLexicalChips.property.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/notebookLexicalChips.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/notebookLexicalChips.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/notebookOfflineQueue.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/notebookOfflineQueue.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/CompetitorRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/FinancialRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/FounderRenderer.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/FounderRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/FundingRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/HiringRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/NewsRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/PatentRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/ProductRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/PublicOpinionRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/RegulatoryRenderer.tsx (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/renderers.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/renderers/sharedRendererHelpers.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useDiligenceBlocks.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useDiligenceDecorations.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useDiligenceDecorations.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useEntityNotebookDoc.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useNotebookAutosave.test.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useNotebookAutosave.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useNotebookMeta.ts (100%) rename {src => apps/web/src}/features/entities/components/notebook/useNotebookSyncStatus.ts (100%) rename {src => apps/web/src}/features/entities/hooks/useCanonicalFastLane.ts (100%) rename {src => apps/web/src}/features/entities/lib/entityExport.test.ts (100%) rename {src => apps/web/src}/features/entities/lib/entityExport.ts (100%) rename {src => apps/web/src}/features/entities/lib/entityNoteDocument.ts (100%) rename {src => apps/web/src}/features/entities/lib/starterEntityWorkspaces.ts (100%) rename {src => apps/web/src}/features/entities/lib/useViewMode.ts (100%) rename {src => apps/web/src}/features/entities/views/EntityPage.test.tsx (100%) rename {src => apps/web/src}/features/entities/views/EntityPage.tsx (100%) rename {src => apps/web/src}/features/entities/views/EntityPulseView.tsx (100%) rename {src => apps/web/src}/features/evaluation/data/index.ts (100%) rename {src => apps/web/src}/features/evaluation/data/nodebenchWorkflowEvalBank.test.ts (100%) rename {src => apps/web/src}/features/evaluation/data/nodebenchWorkflowEvalBank.ts (100%) rename {src => apps/web/src}/features/evaluation/data/tasteBenchScenario.test.ts (100%) rename {src => apps/web/src}/features/evaluation/data/tasteBenchScenario.ts (100%) rename {src => apps/web/src}/features/evaluation/views/EvolutionDashboardView.tsx (100%) rename {src => apps/web/src}/features/events/views/EventCorpusExplorer.test.tsx (100%) rename {src => apps/web/src}/features/events/views/EventCorpusExplorer.tsx (100%) rename {src => apps/web/src}/features/events/views/ScratchnodePrivateBridge.test.tsx (100%) rename {src => apps/web/src}/features/events/views/ScratchnodePrivateBridge.tsx (100%) rename {src => apps/web/src}/features/events/views/ScratchnodeWikiBridge.test.tsx (100%) rename {src => apps/web/src}/features/events/views/ScratchnodeWikiBridge.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ApprovalCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ArtifactCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/CalculationCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/EvidenceCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ExtractionCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/FinancialOperatorOverlay.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/FinancialOperatorTimeline.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ModelCapabilityBadge.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ResultCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/RunBriefCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/StepCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/StepShell.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/StepStatusBadge.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ToolCallCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/ValidationCard.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/WorkspaceComposer.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/WorkspaceModePane.tsx (100%) rename {src => apps/web/src}/features/financialOperator/components/WorkspaceModeToggle.tsx (100%) rename {src => apps/web/src}/features/financialOperator/index.ts (100%) rename {src => apps/web/src}/features/financialOperator/types.ts (100%) rename {src => apps/web/src}/features/financialOperator/views/FinancialOperatorDemo.tsx (100%) rename {src => apps/web/src}/features/founder/components/FeedbackWidget.tsx (100%) rename {src => apps/web/src}/features/founder/hooks/useFeedbackStore.ts (100%) rename {src => apps/web/src}/features/founder/views/EmbedView.tsx (100%) rename {src => apps/web/src}/features/founder/views/FounderRouteResolver.tsx (100%) rename {src => apps/web/src}/features/founder/views/PublicCompanyProfileView.tsx (100%) rename {src => apps/web/src}/features/founder/views/ShareableMemoView.tsx (100%) rename {src => apps/web/src}/features/graph/lib/graphTypes.ts (100%) rename {src => apps/web/src}/features/home/components/MemoryPulse.tsx (100%) rename {src => apps/web/src}/features/home/hooks/useHomeBrief.ts (100%) rename {src => apps/web/src}/features/home/lib/briefTypes.ts (100%) rename {src => apps/web/src}/features/home/lib/evidenceScoring.test.ts (100%) rename {src => apps/web/src}/features/home/lib/evidenceScoring.ts (100%) rename {src => apps/web/src}/features/home/lib/firstImpressionResearch.test.ts (100%) rename {src => apps/web/src}/features/home/lib/firstImpressionResearch.ts (100%) rename {src => apps/web/src}/features/home/lib/index.ts (100%) rename {src => apps/web/src}/features/home/lib/positionAnnotation.test.ts (100%) rename {src => apps/web/src}/features/home/lib/positionAnnotation.ts (100%) rename {src => apps/web/src}/features/home/views/HomeLanding.test.ts (100%) rename {src => apps/web/src}/features/home/views/HomeLanding.tsx (100%) rename {src => apps/web/src}/features/home/views/MobileHomeSurface.tsx (100%) rename {src => apps/web/src}/features/mcp/components/SharedContextProtocolPanel.test.tsx (100%) rename {src => apps/web/src}/features/mcp/components/SharedContextProtocolPanel.tsx (100%) rename {src => apps/web/src}/features/mcp/components/SyncBridgeAccountPanel.test.tsx (100%) rename {src => apps/web/src}/features/mcp/components/SyncBridgeAccountPanel.tsx (100%) rename {src => apps/web/src}/features/mcp/views/ApiKeyManagementPage.tsx (100%) rename {src => apps/web/src}/features/mcp/views/McpLedgerPage.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiFreshnessBadge.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiLanding.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiLandingRoute.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiNotesEditor.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiPageDetail.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiPageDetailContainer.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiPageDetailRoute.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiRegenerateButton.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/WikiThemesPanel.tsx (100%) rename {src => apps/web/src}/features/me/components/wiki/index.ts (100%) rename {src => apps/web/src}/features/me/views/MeHome.test.tsx (100%) rename {src => apps/web/src}/features/me/views/MeHome.tsx (100%) rename {src => apps/web/src}/features/me/views/MobileMeSurface.tsx (100%) rename {src => apps/web/src}/features/missions/views/MissionControlView.tsx (100%) rename {src => apps/web/src}/features/monitoring/components/PRSuggestions.tsx (100%) rename {src => apps/web/src}/features/monitoring/components/PipelineRollupPanel.tsx (100%) rename {src => apps/web/src}/features/monitoring/hooks/useImprovementData.ts (100%) rename {src => apps/web/src}/features/monitoring/index.ts (100%) rename {src => apps/web/src}/features/monitoring/views/AgentTelemetryDashboard.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/HyperLoopDashboard.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/ImprovementTimeline.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/JudgeDashboard.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/RunCompareView.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/SavingsDashboard.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/SubconsciousDashboard.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/TrajectoryConsole.tsx (100%) rename {src => apps/web/src}/features/monitoring/views/ValueManifestPanel.tsx (100%) rename {src => apps/web/src}/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx (100%) rename {src => apps/web/src}/features/narrative/components/HypothesisScorecard/index.ts (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeCard/NarrativeCard.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeCard/index.ts (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeFeed/EvidenceDrawer.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeFeed/NarrativeFeed.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeFeed/PostCard.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeFeed/ReplyThread.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeFeed/index.ts (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/CorrelationLine.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/EventMarker.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/NarrativeRoadmap.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/SentimentBar.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/ThreadLane.tsx (100%) rename {src => apps/web/src}/features/narrative/components/NarrativeRoadmap/index.ts (100%) rename {src => apps/web/src}/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx (100%) rename {src => apps/web/src}/features/narrative/components/SignalMetricsDashboard/index.ts (100%) rename {src => apps/web/src}/features/narrative/components/social/EntityFindingsPanel.tsx (100%) rename {src => apps/web/src}/features/narrative/components/social/LinkedInPostArchiveView.tsx (100%) rename {src => apps/web/src}/features/narrative/components/social/LinkedInPostCard.tsx (100%) rename {src => apps/web/src}/features/narrative/hooks/index.ts (100%) rename {src => apps/web/src}/features/narrative/hooks/useCorrelations.ts (100%) rename {src => apps/web/src}/features/narrative/hooks/useHypotheses.ts (100%) rename {src => apps/web/src}/features/narrative/hooks/useNarrativeEvents.ts (100%) rename {src => apps/web/src}/features/narrative/hooks/useNarrativeThreads.ts (100%) rename {src => apps/web/src}/features/narrative/hooks/useSignalMetrics.ts (100%) rename {src => apps/web/src}/features/narrative/index.ts (100%) rename {src => apps/web/src}/features/narrative/types.ts (100%) rename {src => apps/web/src}/features/notebook/components/BacklinkList.tsx (100%) rename {src => apps/web/src}/features/notebook/components/EntityMentionText.tsx (100%) rename {src => apps/web/src}/features/notebook/components/MentionExpansionPanel.tsx (100%) rename {src => apps/web/src}/features/notebook/components/MiniEntityGraph.tsx (100%) rename {src => apps/web/src}/features/notebook/components/NotebookBlockFinder.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.claims.test.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.finder.test.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.onChange.test.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.proposals.test.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.test.tsx (100%) rename {src => apps/web/src}/features/notebook/components/RichNotebookEditor.tsx (100%) rename {src => apps/web/src}/features/notebook/extensions/expandableMention.tsx (100%) rename {src => apps/web/src}/features/notebook/extensions/nbClaim.tsx (100%) rename {src => apps/web/src}/features/notebook/extensions/nbProposal.tsx (100%) rename {src => apps/web/src}/features/notebook/extensions/slashCommand.ts (100%) rename {src => apps/web/src}/features/notebook/extensions/slashMenuRenderer.tsx (100%) rename {src => apps/web/src}/features/notebook/hooks/useEntityExpansion.ts (100%) rename {src => apps/web/src}/features/notebook/lib/notebookActionEngine.test.ts (100%) rename {src => apps/web/src}/features/notebook/lib/notebookActionEngine.ts (100%) rename {src => apps/web/src}/features/notebook/styles/notebook.css (100%) rename {src => apps/web/src}/features/nudges/views/MobileInboxSurface.tsx (100%) rename {src => apps/web/src}/features/nudges/views/NudgesHome.test.tsx (100%) rename {src => apps/web/src}/features/nudges/views/NudgesHome.tsx (100%) rename {src => apps/web/src}/features/observability/views/ObservabilityView.tsx (100%) rename {src => apps/web/src}/features/onboarding/components/AgentGuidedOnboarding.tsx (100%) rename {src => apps/web/src}/features/onboarding/components/OnboardingFlow.tsx (100%) rename {src => apps/web/src}/features/onboarding/components/OnboardingWizard.tsx (100%) rename {src => apps/web/src}/features/onboarding/utils/dossierParser.ts (100%) rename {src => apps/web/src}/features/onboarding/views/ConnectSourcesWizard.tsx (100%) rename {src => apps/web/src}/features/onboarding/views/TutorialPage.tsx (100%) rename {src => apps/web/src}/features/pipelines/views/PipelineEvalScorecard.tsx (100%) rename {src => apps/web/src}/features/pipelines/views/PipelineLauncher.tsx (100%) rename {src => apps/web/src}/features/pipelines/views/PipelineRunsPanel.tsx (100%) rename {src => apps/web/src}/features/pipelines/views/PipelineSchedulesPanel.tsx (100%) rename {src => apps/web/src}/features/product/components/ComposerRoutingPreview.tsx (100%) rename {src => apps/web/src}/features/product/components/IntakeDetectedSources.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductFileAssetPicker.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductIntakeComposer.test.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductIntakeComposer.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductSourceIdentity.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductThumbnail.tsx (100%) rename {src => apps/web/src}/features/product/components/ProductWorkspaceHeader.tsx (100%) rename {src => apps/web/src}/features/product/components/intakeSourceClassifier.test.ts (100%) rename {src => apps/web/src}/features/product/components/intakeSourceClassifier.ts (100%) rename {src => apps/web/src}/features/product/lib/captureRouter.test.ts (100%) rename {src => apps/web/src}/features/product/lib/captureRouter.ts (100%) rename {src => apps/web/src}/features/product/lib/operatorContext.test.ts (100%) rename {src => apps/web/src}/features/product/lib/operatorContext.ts (100%) rename {src => apps/web/src}/features/product/lib/productIdentity.test.ts (100%) rename {src => apps/web/src}/features/product/lib/productIdentity.ts (100%) rename {src => apps/web/src}/features/product/lib/productSession.test.ts (100%) rename {src => apps/web/src}/features/product/lib/productSession.ts (100%) rename {src => apps/web/src}/features/product/lib/uploadDraftFiles.ts (100%) rename {src => apps/web/src}/features/product/lib/useProductBootstrap.ts (100%) rename {src => apps/web/src}/features/pulse/components/PulseBadge.tsx (100%) rename {src => apps/web/src}/features/pulse/views/EntityPulsePage.tsx (100%) rename {src => apps/web/src}/features/pulse/views/GlobalPulsePage.tsx (100%) rename {src => apps/web/src}/features/redesign/README.md (100%) rename {src => apps/web/src}/features/redesign/RedesignShell.tsx (100%) rename {src => apps/web/src}/features/redesign/agent-workspace.css (100%) rename {src => apps/web/src}/features/redesign/components/AgentRail.tsx (100%) rename {src => apps/web/src}/features/redesign/components/BlockHandle.tsx (100%) rename {src => apps/web/src}/features/redesign/components/BubbleMenu.tsx (100%) rename {src => apps/web/src}/features/redesign/components/CardStack.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ChatAssistantMessage.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ChatEmptyState.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ChatThinking.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ChatToolCall.tsx (100%) rename {src => apps/web/src}/features/redesign/components/CommandPalette.test.tsx (100%) rename {src => apps/web/src}/features/redesign/components/CommandPalette.tsx (100%) rename {src => apps/web/src}/features/redesign/components/MessageActions.tsx (100%) rename {src => apps/web/src}/features/redesign/components/MobileShell.tsx (100%) rename {src => apps/web/src}/features/redesign/components/Pill.tsx (100%) rename {src => apps/web/src}/features/redesign/components/Rail.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ReportNotebookEditor.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ReportNotebookView.tsx (100%) rename {src => apps/web/src}/features/redesign/components/ShortcutsOverlay.tsx (100%) rename {src => apps/web/src}/features/redesign/components/Skeleton.tsx (100%) rename {src => apps/web/src}/features/redesign/components/SlashMenu.tsx (100%) rename {src => apps/web/src}/features/redesign/components/StreamingMarkdown.test.tsx (100%) rename {src => apps/web/src}/features/redesign/components/StreamingMarkdown.tsx (100%) rename {src => apps/web/src}/features/redesign/components/StyleGalleryCard.tsx (100%) rename {src => apps/web/src}/features/redesign/components/Toast.tsx (100%) rename {src => apps/web/src}/features/redesign/components/TopNav.test.tsx (100%) rename {src => apps/web/src}/features/redesign/components/TopNav.tsx (100%) rename {src => apps/web/src}/features/redesign/components/UniversalComposer.test.tsx (100%) rename {src => apps/web/src}/features/redesign/components/UniversalComposer.tsx (100%) rename {src => apps/web/src}/features/redesign/components/WhatChangedStrip.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/CapabilitiesMap.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/DotGrid.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/EditionErrorBoundary.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/EditionSelector.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/EditionTOC.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/EditorialSection.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/EvidenceChecklistStrip.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/Footnote.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/FormatStrip.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/Scoreboard.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/VideoLiteEmbed.tsx (100%) rename {src => apps/web/src}/features/redesign/components/edition/edition-print.css (100%) rename {src => apps/web/src}/features/redesign/components/edition/edition.css (100%) rename {src => apps/web/src}/features/redesign/components/notebookExtensions.ts (100%) rename {src => apps/web/src}/features/redesign/fixtures.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/editionSession.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useActiveHypotheses.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useActiveHypothesesSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useBatchLive.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useCapabilitiesDelta.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useCapabilitiesDeltaSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useDailyEditionSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useEditionFootnotes.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useEditionFootnotesSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useEditionView.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useHomePulseLive.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useInboxLive.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useLatestDailyBriefSnapshot.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useLatestDailyBriefSnapshotSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useLiveArtifacts.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useLongHorizonRetrospectiveSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useMonthlyRetrospectiveSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useRedesignChatRun.test.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useRedesignChatRun.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useReportsLive.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useScratchnodeSessionId.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useScrollSpy.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useTemporalEdition.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useTodayPulse.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useTodayPulseSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useTopForecasts.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useTopForecastsSwr.ts (100%) rename {src => apps/web/src}/features/redesign/hooks/useWeeklyDigestSwr.ts (100%) rename {src => apps/web/src}/features/redesign/lib/chatContinuation.ts (100%) rename {src => apps/web/src}/features/redesign/lib/graphContextBridge.test.ts (100%) rename {src => apps/web/src}/features/redesign/lib/graphContextBridge.ts (100%) rename {src => apps/web/src}/features/redesign/lib/oneSurfaceRouting.test.ts (100%) rename {src => apps/web/src}/features/redesign/lib/oneSurfaceRouting.ts (100%) rename {src => apps/web/src}/features/redesign/lib/reportTopology.test.ts (100%) rename {src => apps/web/src}/features/redesign/lib/reportTopology.ts (100%) rename {src => apps/web/src}/features/redesign/pages/EditionPrintPage.tsx (100%) rename {src => apps/web/src}/features/redesign/pages/ReproducibleChatPage.tsx (100%) rename {src => apps/web/src}/features/redesign/pages/ScratchnodeNoteDetailPage.tsx (100%) rename {src => apps/web/src}/features/redesign/primitives.css (100%) rename {src => apps/web/src}/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ChatContinuation.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ChatResponseShape.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ChatSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/ChatTypography.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/EditorialHomeAudienceRelevance.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/EditorialHomeSurface.audience.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/EditorialHomeSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/HomeSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/HomeV2PrototypeSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/InboxSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/MeSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/OneSurface.guard.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ProductDecisionQueue.test.ts (100%) rename {src => apps/web/src}/features/redesign/surfaces/ProductDecisionQueue.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/ReportsSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/ScratchnodeEventsSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/surfaces/WorkspaceSurface.tsx (100%) rename {src => apps/web/src}/features/redesign/tokens.css (100%) rename {src => apps/web/src}/features/redesign/utils/videoProvider.test.ts (100%) rename {src => apps/web/src}/features/redesign/utils/videoProvider.ts (100%) rename {src => apps/web/src}/features/reports/components/RecentPulseStrip.tsx (100%) rename {src => apps/web/src}/features/reports/components/ReportReadOnlyPanel.tsx (100%) rename {src => apps/web/src}/features/reports/components/ReportShareSheet.tsx (100%) rename {src => apps/web/src}/features/reports/components/ReportThumbnail.tsx (100%) rename {src => apps/web/src}/features/reports/lib/compactReportsReadModel.test.ts (100%) rename {src => apps/web/src}/features/reports/lib/compactReportsReadModel.ts (100%) rename {src => apps/web/src}/features/reports/lib/reportActions.test.ts (100%) rename {src => apps/web/src}/features/reports/lib/reportActions.ts (100%) rename {src => apps/web/src}/features/reports/lib/reportNotebookRouting.test.ts (100%) rename {src => apps/web/src}/features/reports/lib/reportNotebookRouting.ts (100%) rename {src => apps/web/src}/features/reports/views/PublicReportView.test.tsx (100%) rename {src => apps/web/src}/features/reports/views/PublicReportView.tsx (100%) rename {src => apps/web/src}/features/reports/views/ReportNotebookDetail.persistence.test.tsx (100%) rename {src => apps/web/src}/features/reports/views/ReportNotebookDetail.test.ts (100%) rename {src => apps/web/src}/features/reports/views/ReportNotebookDetail.tsx (100%) rename {src => apps/web/src}/features/reports/views/ReportsHome.test.ts (100%) rename {src => apps/web/src}/features/reports/views/ReportsHome.tsx (100%) rename {src => apps/web/src}/features/reports/views/ReportsHomeEnhanced.tsx (100%) rename {src => apps/web/src}/features/research/LiveResearchChecklist.tsx (100%) rename {src => apps/web/src}/features/research/ProofDrawer.tsx (100%) rename {src => apps/web/src}/features/research/components/ActAwareDashboard.tsx (100%) rename {src => apps/web/src}/features/research/components/ActProgressIndicator.tsx (100%) rename {src => apps/web/src}/features/research/components/ActionCard.tsx (100%) rename {src => apps/web/src}/features/research/components/BrierTrendChart.tsx (100%) rename {src => apps/web/src}/features/research/components/CalibrationPlot.tsx (100%) rename {src => apps/web/src}/features/research/components/CardInspector.tsx (100%) rename {src => apps/web/src}/features/research/components/ChangeCard.tsx (100%) rename {src => apps/web/src}/features/research/components/ChartAnnotationLayer.tsx (100%) rename {src => apps/web/src}/features/research/components/ChartTooltip.tsx (100%) rename {src => apps/web/src}/features/research/components/CompactSignalCard.tsx (100%) rename {src => apps/web/src}/features/research/components/CostCrossoverCalculator.tsx (100%) rename {src => apps/web/src}/features/research/components/CrossLinkedText.tsx (100%) rename {src => apps/web/src}/features/research/components/DashboardPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/DayStarterCard.tsx (100%) rename {src => apps/web/src}/features/research/components/DealListPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/DealRadar.tsx (100%) rename {src => apps/web/src}/features/research/components/DealTable.tsx (100%) rename {src => apps/web/src}/features/research/components/DeepDiveAccordion.test.tsx (100%) rename {src => apps/web/src}/features/research/components/DeepDiveAccordion.tsx (100%) rename {src => apps/web/src}/features/research/components/DeltaIndicator.tsx (100%) rename {src => apps/web/src}/features/research/components/EmailDigestPreview.tsx (100%) rename {src => apps/web/src}/features/research/components/EnhancedLineChart.tsx (100%) rename {src => apps/web/src}/features/research/components/EnhancedPersonalPulse.tsx (100%) rename {src => apps/web/src}/features/research/components/EnhancedTimelineStrip.tsx (100%) rename {src => apps/web/src}/features/research/components/EntityContextDrawer.tsx (100%) rename {src => apps/web/src}/features/research/components/EntityHoverPreview.tsx (100%) rename {src => apps/web/src}/features/research/components/EntityLink.tsx (100%) rename {src => apps/web/src}/features/research/components/EntityRadar.tsx (100%) rename {src => apps/web/src}/features/research/components/EvidenceGrid.tsx (100%) rename {src => apps/web/src}/features/research/components/EvidencePanel.tsx (100%) rename {src => apps/web/src}/features/research/components/EvidenceTimeline.tsx (100%) rename {src => apps/web/src}/features/research/components/ExecutiveBriefHeader.tsx (100%) rename {src => apps/web/src}/features/research/components/ExportBriefButton.tsx (100%) rename {src => apps/web/src}/features/research/components/FeedCard.tsx (100%) rename {src => apps/web/src}/features/research/components/FeedReaderModal.tsx (100%) rename {src => apps/web/src}/features/research/components/FeedReaderPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/FeedTimeline.tsx (100%) rename {src => apps/web/src}/features/research/components/FootnoteMarker.tsx (100%) rename {src => apps/web/src}/features/research/components/FootnotesSection.tsx (100%) rename {src => apps/web/src}/features/research/components/ForYouFeed.tsx (100%) rename {src => apps/web/src}/features/research/components/ForecastCard.tsx (100%) rename {src => apps/web/src}/features/research/components/ForecastCockpit.tsx (100%) rename {src => apps/web/src}/features/research/components/GitHubExplorer.tsx (100%) rename {src => apps/web/src}/features/research/components/HeroSection.tsx (100%) rename {src => apps/web/src}/features/research/components/IndustryUpdatesPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/InstantSearchBar.tsx (100%) rename {src => apps/web/src}/features/research/components/IntelPulseMonitor.tsx (100%) rename {src => apps/web/src}/features/research/components/InteractiveLineChart.tsx (100%) rename {src => apps/web/src}/features/research/components/InteractiveSpan.tsx (100%) rename {src => apps/web/src}/features/research/components/InteractiveSpanParser.tsx (100%) rename {src => apps/web/src}/features/research/components/LiveDashboard.tsx (100%) rename {src => apps/web/src}/features/research/components/LiveRadarWidget.tsx (100%) rename {src => apps/web/src}/features/research/components/MagicInputContainer.tsx (100%) rename {src => apps/web/src}/features/research/components/ModelComparisonTable.tsx (100%) rename {src => apps/web/src}/features/research/components/ModelEvalDashboard.tsx (100%) rename {src => apps/web/src}/features/research/components/MorningBriefingHeader.tsx (100%) rename {src => apps/web/src}/features/research/components/MorningDigest.tsx (100%) rename {src => apps/web/src}/features/research/components/NarrativeThreadView.tsx (100%) rename {src => apps/web/src}/features/research/components/OracleSessionBanner.tsx (100%) rename {src => apps/web/src}/features/research/components/OvernightMovesCard.tsx (100%) rename {src => apps/web/src}/features/research/components/PaperDetailsCard.tsx (100%) rename {src => apps/web/src}/features/research/components/PersonalAnalytics.tsx (100%) rename {src => apps/web/src}/features/research/components/PersonalDashboard.tsx (100%) rename {src => apps/web/src}/features/research/components/PersonalPulse.tsx (100%) rename {src => apps/web/src}/features/research/components/ProductChangelogPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/PulseGrid.tsx (100%) rename {src => apps/web/src}/features/research/components/RecommendationCard.tsx (100%) rename {src => apps/web/src}/features/research/components/RecommendationPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/RelatedFeedsGrid.tsx (100%) rename {src => apps/web/src}/features/research/components/RepoSignalPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/RepoStatsPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/ResearchSupplement.tsx (100%) rename {src => apps/web/src}/features/research/components/SafeVegaChart.tsx (100%) rename {src => apps/web/src}/features/research/components/ScrollytellingLayout.tsx (100%) rename {src => apps/web/src}/features/research/components/SignalCard.tsx (100%) rename {src => apps/web/src}/features/research/components/SignalMomentumMini.tsx (100%) rename {src => apps/web/src}/features/research/components/SignalTimeseriesPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/SmartLink.tsx (100%) rename {src => apps/web/src}/features/research/components/SmartWatchlist.tsx (100%) rename {src => apps/web/src}/features/research/components/SourceFeed.tsx (100%) rename {src => apps/web/src}/features/research/components/Sparkline.tsx (100%) rename {src => apps/web/src}/features/research/components/StackImpactPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/StickyDashboard.tsx (100%) rename {src => apps/web/src}/features/research/components/StrategyMetricsPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/TimelineScrubber.tsx (100%) rename {src => apps/web/src}/features/research/components/TimelineStrip.tsx (100%) rename {src => apps/web/src}/features/research/components/TraceBreadcrumb.tsx (100%) rename {src => apps/web/src}/features/research/components/TrendRail.tsx (100%) rename {src => apps/web/src}/features/research/components/VirtualizedFeedList.tsx (100%) rename {src => apps/web/src}/features/research/components/WhatChangedPanel.tsx (100%) rename {src => apps/web/src}/features/research/components/dossier/DossierMediaGallery.tsx (100%) rename {src => apps/web/src}/features/research/components/dossier/mediaExtractor.ts (100%) rename {src => apps/web/src}/features/research/components/dossier/tipTapMediaExtractor.ts (100%) rename {src => apps/web/src}/features/research/components/index.ts (100%) rename {src => apps/web/src}/features/research/components/modelEvalData.ts (100%) rename {src => apps/web/src}/features/research/components/newsletter/EvidenceDrawer.tsx (100%) rename {src => apps/web/src}/features/research/components/newsletter/NewsletterComponents.tsx (100%) rename {src => apps/web/src}/features/research/components/newsletter/NewsletterView.tsx (100%) rename {src => apps/web/src}/features/research/components/newsletter/StickyTopBar.tsx (100%) rename {src => apps/web/src}/features/research/components/newsletter/WhatChangedStrip.tsx (100%) rename {src => apps/web/src}/features/research/components/newsletter/index.ts (100%) rename {src => apps/web/src}/features/research/content/goldenBriefExample.json (100%) rename {src => apps/web/src}/features/research/content/researchStream.json (100%) rename {src => apps/web/src}/features/research/contexts/EvidenceContext.tsx (100%) rename {src => apps/web/src}/features/research/contexts/FocusSyncContext.tsx (100%) rename {src => apps/web/src}/features/research/data/CHANGELOG.md (100%) rename {src => apps/web/src}/features/research/data/audit_mocks.ts (100%) rename {src => apps/web/src}/features/research/hooks/index.ts (100%) rename {src => apps/web/src}/features/research/hooks/useBriefData.test.ts (100%) rename {src => apps/web/src}/features/research/hooks/useBriefData.ts (100%) rename {src => apps/web/src}/features/research/hooks/useDealData.ts (100%) rename {src => apps/web/src}/features/research/hooks/useDossierAgentHandlers.ts (100%) rename {src => apps/web/src}/features/research/hooks/useEntityHoverData.ts (100%) rename {src => apps/web/src}/features/research/hooks/useFeedData.ts (100%) rename {src => apps/web/src}/features/research/hooks/useFocusSyncDebounced.ts (100%) rename {src => apps/web/src}/features/research/hooks/usePersonalBrief.ts (100%) rename {src => apps/web/src}/features/research/hooks/useReaderContent.ts (100%) rename {src => apps/web/src}/features/research/lib/demoSignals.ts (100%) rename {src => apps/web/src}/features/research/prompts/briefConstraints.ts (100%) rename {src => apps/web/src}/features/research/prompts/index.ts (100%) rename {src => apps/web/src}/features/research/sections/BriefingSection.tsx (100%) rename {src => apps/web/src}/features/research/sections/DashboardSection.tsx (100%) rename {src => apps/web/src}/features/research/sections/DealListSection.tsx (100%) rename {src => apps/web/src}/features/research/sections/DigestSection.tsx (100%) rename {src => apps/web/src}/features/research/sections/FeedSection.tsx (100%) rename {src => apps/web/src}/features/research/sections/index.ts (100%) rename {src => apps/web/src}/features/research/types.ts (100%) rename {src => apps/web/src}/features/research/types/citationSchema.ts (100%) rename {src => apps/web/src}/features/research/types/dailyBriefSchema.ts (100%) rename {src => apps/web/src}/features/research/types/entitySchema.ts (100%) rename {src => apps/web/src}/features/research/types/index.ts (100%) rename {src => apps/web/src}/features/research/utils/briefGenerator.ts (100%) rename {src => apps/web/src}/features/research/utils/briefTransformers.test.ts (100%) rename {src => apps/web/src}/features/research/utils/briefTransformers.ts (100%) rename {src => apps/web/src}/features/research/utils/index.ts (100%) rename {src => apps/web/src}/features/research/utils/newsletterParser.ts (100%) rename {src => apps/web/src}/features/research/validators/briefValidator.ts (100%) rename {src => apps/web/src}/features/research/validators/index.ts (100%) rename {src => apps/web/src}/features/research/views/CinematicHome.tsx (100%) rename {src => apps/web/src}/features/research/views/DossierViewer.tsx (100%) rename {src => apps/web/src}/features/research/views/EntityProfilePage.tsx (100%) rename {src => apps/web/src}/features/research/views/FootnotesPage.tsx (100%) rename {src => apps/web/src}/features/research/views/FundingBriefView.tsx (100%) rename {src => apps/web/src}/features/research/views/LiveDossierDocument.tsx (100%) rename {src => apps/web/src}/features/research/views/MobileReportSurface.tsx (100%) rename {src => apps/web/src}/features/research/views/PhaseAllShowcase.tsx (100%) rename {src => apps/web/src}/features/research/views/PublicSignalsLog.tsx (100%) rename {src => apps/web/src}/features/research/views/ReportDetailPage.tsx (100%) rename {src => apps/web/src}/features/research/views/ReportDetailWorkspace.tsx (100%) rename {src => apps/web/src}/features/research/views/ResearchHub.routeSync.test.tsx (100%) rename {src => apps/web/src}/features/research/views/ResearchHub.tsx (100%) rename {src => apps/web/src}/features/research/views/WatchlistsView.tsx (100%) rename {src => apps/web/src}/features/research/views/WorldMonitorView.tsx (100%) rename {src => apps/web/src}/features/share/components/ShareEntityButton.tsx (100%) rename {src => apps/web/src}/features/share/views/PublicEntityShareView.test.tsx (100%) rename {src => apps/web/src}/features/share/views/PublicEntityShareView.tsx (100%) rename {src => apps/web/src}/features/share/views/publicShareHelpers.test.ts (100%) rename {src => apps/web/src}/features/share/views/publicShareHelpers.ts (100%) rename {src => apps/web/src}/features/strategy/data/spreadsheetExecutionTrace.ts (100%) rename {src => apps/web/src}/features/strategy/data/testsAssuredProductDirection.ts (100%) rename {src => apps/web/src}/features/strategy/lib/executionTraceAdapter.test.ts (100%) rename {src => apps/web/src}/features/strategy/lib/executionTraceAdapter.ts (100%) rename {src => apps/web/src}/features/strategy/types/executionTrace.test.ts (100%) rename {src => apps/web/src}/features/strategy/types/executionTrace.ts (100%) rename {src => apps/web/src}/features/strategy/types/inHouseProductDirection.test.ts (100%) rename {src => apps/web/src}/features/strategy/types/inHouseProductDirection.ts (100%) rename {src => apps/web/src}/features/strategy/views/ExecutionTraceView.test.tsx (100%) rename {src => apps/web/src}/features/strategy/views/ExecutionTraceView.tsx (100%) rename {src => apps/web/src}/features/strategy/views/ProductDirectionMemoView.test.tsx (100%) rename {src => apps/web/src}/features/strategy/views/ProductDirectionMemoView.tsx (100%) rename {src => apps/web/src}/features/telemetry/ContextInspector.tsx (100%) rename {src => apps/web/src}/features/telemetry/ContextualGraph.tsx (100%) rename {src => apps/web/src}/features/telemetry/CostWaterfall.tsx (100%) rename {src => apps/web/src}/features/telemetry/EvalScorecard.tsx (100%) rename {src => apps/web/src}/features/telemetry/FailureClusters.tsx (100%) rename {src => apps/web/src}/features/telemetry/JudgeHeatmap.tsx (100%) rename {src => apps/web/src}/features/telemetry/LiveDataBanner.tsx (100%) rename {src => apps/web/src}/features/telemetry/ToolCoverageProof.tsx (100%) rename {src => apps/web/src}/features/telemetry/TrajectoryPanel.tsx (100%) rename {src => apps/web/src}/features/telemetry/index.ts (100%) rename {src => apps/web/src}/features/telemetry/types.ts (100%) rename {src => apps/web/src}/features/telemetry/useLiveTelemetry.ts (100%) rename {src => apps/web/src}/features/tracking/index.ts (100%) rename {src => apps/web/src}/features/tracking/views/EntityTrackingView.tsx (100%) rename {src => apps/web/src}/features/trajectory/components/TrajectorySummaryBand.tsx (100%) rename {src => apps/web/src}/features/trajectory/components/TrajectoryTimelinePanel.tsx (100%) rename {src => apps/web/src}/features/trajectory/lib/trajectoryEntity.ts (100%) rename {src => apps/web/src}/features/trajectory/types.ts (100%) rename {src => apps/web/src}/features/voice/components/VoiceAuditFeed.tsx (100%) rename {src => apps/web/src}/features/voice/components/VoiceCostBadge.tsx (100%) rename {src => apps/web/src}/features/voice/index.ts (100%) rename {src => apps/web/src}/features/workspace/data/eventWorkspaceMemory.test.ts (100%) rename {src => apps/web/src}/features/workspace/data/eventWorkspaceMemory.ts (100%) rename {src => apps/web/src}/features/workspace/data/scenarioCatalog.test.ts (100%) rename {src => apps/web/src}/features/workspace/data/scenarioCatalog.ts (100%) rename {src => apps/web/src}/features/workspace/lib/eventWorkspacePersistence.test.ts (100%) rename {src => apps/web/src}/features/workspace/lib/eventWorkspacePersistence.ts (100%) rename {src => apps/web/src}/features/workspace/lib/useEventCaptureRecorder.ts (100%) rename {src => apps/web/src}/features/workspace/lib/useEventWorkspacePersistence.ts (100%) rename {src => apps/web/src}/features/workspace/lib/workspaceRouting.test.ts (100%) rename {src => apps/web/src}/features/workspace/lib/workspaceRouting.ts (100%) rename {src => apps/web/src}/features/workspace/views/UniversalWorkspacePage.tsx (100%) rename {src => apps/web/src}/hooks/FeedbackListener.tsx (100%) rename {src => apps/web/src}/hooks/VOICE_INTENT_ROUTER.md (100%) rename {src => apps/web/src}/hooks/__tests__/useViewportMobile.test.ts (100%) rename {src => apps/web/src}/hooks/contextPills.tsx (100%) rename {src => apps/web/src}/hooks/index.ts (100%) rename {src => apps/web/src}/hooks/useAgentLanes.ts (100%) rename {src => apps/web/src}/hooks/useAgentStateApi.ts (100%) rename {src => apps/web/src}/hooks/useArtifactStore.tsx (100%) rename {src => apps/web/src}/hooks/useArtifactStreamConsumer.ts (100%) rename {src => apps/web/src}/hooks/useCockpitRouting.ts (100%) rename {src => apps/web/src}/hooks/useCommandPalette.ts (100%) rename {src => apps/web/src}/hooks/useContextualToolSuggestions.ts (100%) rename {src => apps/web/src}/hooks/useConvexSearch.ts (100%) rename {src => apps/web/src}/hooks/useCurrentUser.ts (100%) rename {src => apps/web/src}/hooks/useEngagementTracking.ts (100%) rename {src => apps/web/src}/hooks/useFeedback.ts (100%) rename {src => apps/web/src}/hooks/useGeminiLiveSession.ts (100%) rename {src => apps/web/src}/hooks/useGlobalEventListeners.ts (100%) rename {src => apps/web/src}/hooks/useInlineCitations.ts (100%) rename {src => apps/web/src}/hooks/useIntentTelemetry.ts (100%) rename {src => apps/web/src}/hooks/useMcp.ts (100%) rename {src => apps/web/src}/hooks/useMousePosition.ts (100%) rename {src => apps/web/src}/hooks/useMouseProximity.ts (100%) rename {src => apps/web/src}/hooks/useOracleSession.ts (100%) rename {src => apps/web/src}/hooks/usePathTracking.ts (100%) rename {src => apps/web/src}/hooks/usePlannerState.ts (100%) rename {src => apps/web/src}/hooks/usePwaInstallPrompt.ts (100%) rename {src => apps/web/src}/hooks/useRealtimeTranscription.ts (100%) rename {src => apps/web/src}/hooks/useRecommendations.ts (100%) rename {src => apps/web/src}/hooks/useReducedMotion.ts (100%) rename {src => apps/web/src}/hooks/useRevealOnMount.ts (100%) rename {src => apps/web/src}/hooks/useScreenCapture.ts (100%) rename {src => apps/web/src}/hooks/useStableQuery.ts (100%) rename {src => apps/web/src}/hooks/useStreamingSearch.test.ts (100%) rename {src => apps/web/src}/hooks/useStreamingSearch.ts (100%) rename {src => apps/web/src}/hooks/useStreamingTranscription.ts (100%) rename {src => apps/web/src}/hooks/useSwarm.ts (100%) rename {src => apps/web/src}/hooks/useTimeContext.ts (100%) rename {src => apps/web/src}/hooks/useToast.ts (100%) rename {src => apps/web/src}/hooks/useUnifiedItems.ts (100%) rename {src => apps/web/src}/hooks/useViewWebMcpTools.ts (100%) rename {src => apps/web/src}/hooks/useViewportMobile.ts (100%) rename {src => apps/web/src}/hooks/useVoiceInput.ts (100%) rename {src => apps/web/src}/hooks/useVoiceIntentRouter.test.ts (100%) rename {src => apps/web/src}/hooks/useVoiceIntentRouter.ts (100%) rename {src => apps/web/src}/hooks/useVoiceOutput.ts (100%) rename {src => apps/web/src}/hooks/useVoiceRecording.ts (100%) rename {src => apps/web/src}/hooks/useWakeVoiceFeedback.ts (100%) rename {src => apps/web/src}/hooks/useWakeVoiceSession.ts (100%) rename {src => apps/web/src}/hooks/useWakeWordActivation.ts (100%) rename {src => apps/web/src}/hooks/useWebMcpProvider.ts (100%) rename {src => apps/web/src}/hooks/useZoom.ts (100%) rename {src => apps/web/src}/index.css (100%) rename {src => apps/web/src}/layouts/ActiveSurfaceHost.test.tsx (100%) rename {src => apps/web/src}/layouts/ActiveSurfaceHost.tsx (100%) rename {src => apps/web/src}/layouts/CockpitLayout.tsx (100%) rename {src => apps/web/src}/layouts/CommandBar.tsx (100%) rename {src => apps/web/src}/layouts/IOSChrome.tsx (100%) rename {src => apps/web/src}/layouts/MobileCaptureFab.tsx (100%) rename {src => apps/web/src}/layouts/MobileTabBar.tsx (100%) rename {src => apps/web/src}/layouts/ObjectBar.tsx (100%) rename {src => apps/web/src}/layouts/ObjectFirstLayout.tsx (100%) rename {src => apps/web/src}/layouts/ObjectFirstSurfaceHost.tsx (100%) rename {src => apps/web/src}/layouts/ObjectFirstToggle.tsx (100%) rename {src => apps/web/src}/layouts/ProductTopNav.tsx (100%) rename {src => apps/web/src}/layouts/StatusStrip.tsx (100%) rename {src => apps/web/src}/layouts/WorkspaceRail.tsx (100%) rename {src => apps/web/src}/layouts/chrome/AgentMetadata.tsx (100%) rename {src => apps/web/src}/layouts/chrome/CommandPalette.tsx (100%) rename {src => apps/web/src}/layouts/chrome/HashtagQuickNotePopover.tsx (100%) rename {src => apps/web/src}/layouts/chrome/QuickCaptureWidget.test.tsx (100%) rename {src => apps/web/src}/layouts/chrome/QuickCaptureWidget.tsx (100%) rename {src => apps/web/src}/layouts/chrome/commandPalette/recentSearches.ts (100%) rename {src => apps/web/src}/layouts/chrome/commandPalette/resolveResultAction.ts (100%) rename {src => apps/web/src}/layouts/chrome/commandPalette/types.ts (100%) rename {src => apps/web/src}/layouts/chrome/commandPalette/useFederatedSearch.ts (100%) rename {src => apps/web/src}/layouts/chrome/commandPaletteUtils.test.ts (100%) rename {src => apps/web/src}/layouts/chrome/commandPaletteUtils.ts (100%) rename {src => apps/web/src}/layouts/chrome/index.ts (100%) rename {src => apps/web/src}/layouts/cockpitModes.ts (100%) rename {src => apps/web/src}/layouts/cockpitRails.test.tsx (100%) rename {src => apps/web/src}/layouts/hud.css (100%) rename {src => apps/web/src}/layouts/index.ts (100%) rename {src => apps/web/src}/layouts/settings/SettingsModal.tsx (100%) rename {src => apps/web/src}/layouts/settings/ThemeCustomizer.tsx (100%) rename {src => apps/web/src}/layouts/settings/WebMcpSettingsPanel.tsx (100%) rename {src => apps/web/src}/layouts/useCockpitMode.test.tsx (100%) rename {src => apps/web/src}/layouts/useCockpitMode.ts (100%) rename {src => apps/web/src}/lib/ROUTE_ARCHITECTURE.md (100%) rename {src => apps/web/src}/lib/__tests__/__snapshots__/tasks.reorder.spec.ts.snap (100%) rename {src => apps/web/src}/lib/__tests__/tasks.reorder.spec.ts (100%) rename {src => apps/web/src}/lib/analytics.ts (100%) rename {src => apps/web/src}/lib/audio/pcmPlayer.ts (100%) rename {src => apps/web/src}/lib/audio/pcmWorklet.ts (100%) rename {src => apps/web/src}/lib/briefDate.ts (100%) rename {src => apps/web/src}/lib/buttonClasses.ts (100%) rename {src => apps/web/src}/lib/calendarHelpers.ts (100%) rename {src => apps/web/src}/lib/convexApi.ts (100%) rename {src => apps/web/src}/lib/displayText.ts (100%) rename {src => apps/web/src}/lib/documentThemes.ts (100%) rename {src => apps/web/src}/lib/e2eCrypto.ts (100%) rename {src => apps/web/src}/lib/elevenlabs.ts (100%) rename {src => apps/web/src}/lib/errorReporting.ts (100%) rename {src => apps/web/src}/lib/events.ts (100%) rename {src => apps/web/src}/lib/featureFlags.ts (100%) rename {src => apps/web/src}/lib/fileTypes.ts (100%) rename {src => apps/web/src}/lib/formatNumber.ts (100%) rename {src => apps/web/src}/lib/formatting/buttonClasses.ts (100%) rename {src => apps/web/src}/lib/formatting/displayText.ts (100%) rename {src => apps/web/src}/lib/formatting/formatNumber.ts (100%) rename {src => apps/web/src}/lib/haptics.ts (100%) rename {src => apps/web/src}/lib/hooks/useDataSource.ts (100%) rename {src => apps/web/src}/lib/hooks/useEngagementTracking.ts (100%) rename {src => apps/web/src}/lib/hooks/useIntentTelemetry.ts (100%) rename {src => apps/web/src}/lib/hooks/useSwipeNavigation.ts (100%) rename {src => apps/web/src}/lib/ids.ts (100%) rename {src => apps/web/src}/lib/llmProvider.ts (100%) rename {src => apps/web/src}/lib/metaPillMappers.ts (100%) rename {src => apps/web/src}/lib/motion.ts (100%) rename {src => apps/web/src}/lib/nativeBootstrap.ts (100%) rename {src => apps/web/src}/lib/notebookAlerts.test.ts (100%) rename {src => apps/web/src}/lib/notebookAlerts.ts (100%) rename {src => apps/web/src}/lib/pdf/index.ts (100%) rename {src => apps/web/src}/lib/pdf/pdfGenerator.ts (100%) rename {src => apps/web/src}/lib/pdf/templates/companyDossierTemplate.ts (100%) rename {src => apps/web/src}/lib/pdf/templates/quarterlyFundingTemplate.ts (100%) rename {src => apps/web/src}/lib/pdf/templates/weeklyDigestTemplate.ts (100%) rename {src => apps/web/src}/lib/pdf/types.ts (100%) rename {src => apps/web/src}/lib/pdf/usePDFGenerator.ts (100%) rename {src => apps/web/src}/lib/performance/deepAgentMonitoring.ts (100%) rename {src => apps/web/src}/lib/performance/idbSwrCache.test.ts (100%) rename {src => apps/web/src}/lib/performance/idbSwrCache.ts (100%) rename {src => apps/web/src}/lib/performance/routeTiming.test.ts (100%) rename {src => apps/web/src}/lib/performance/routeTiming.ts (100%) rename {src => apps/web/src}/lib/performance/useIdleGate.ts (100%) rename {src => apps/web/src}/lib/performance/useOnlineStatus.ts (100%) rename {src => apps/web/src}/lib/performance/useStaleWhileRevalidate.ts (100%) rename {src => apps/web/src}/lib/performance/useWindowedList.test.ts (100%) rename {src => apps/web/src}/lib/performance/useWindowedList.ts (100%) rename {src => apps/web/src}/lib/registry/viewBreadcrumbs.test.ts (100%) rename {src => apps/web/src}/lib/registry/viewBreadcrumbs.ts (100%) rename {src => apps/web/src}/lib/registry/viewCapabilityRegistry.ts (100%) rename {src => apps/web/src}/lib/registry/viewRegistry.share.test.ts (100%) rename {src => apps/web/src}/lib/registry/viewRegistry.test.ts (100%) rename {src => apps/web/src}/lib/registry/viewRegistry.ts (100%) rename {src => apps/web/src}/lib/registry/viewToolMap.ts (100%) rename {src => apps/web/src}/lib/searchApi.ts (100%) rename {src => apps/web/src}/lib/shapes/e2eCrypto.ts (100%) rename {src => apps/web/src}/lib/shapes/events.ts (100%) rename {src => apps/web/src}/lib/shapes/ids.ts (100%) rename {src => apps/web/src}/lib/shapes/tasks.ts (100%) rename {src => apps/web/src}/lib/sources.ts (100%) rename {src => apps/web/src}/lib/syncBridgeApi.ts (100%) rename {src => apps/web/src}/lib/tasks.ts (100%) rename {src => apps/web/src}/lib/time/briefDate.ts (100%) rename {src => apps/web/src}/lib/time/calendarHelpers.ts (100%) rename {src => apps/web/src}/lib/time/timezones.ts (100%) rename {src => apps/web/src}/lib/time/useBriefDateSelection.ts (100%) rename {src => apps/web/src}/lib/timezones.ts (100%) rename {src => apps/web/src}/lib/ui/documentThemes.ts (100%) rename {src => apps/web/src}/lib/ui/fileTypes.ts (100%) rename {src => apps/web/src}/lib/ui/metaPillMappers.ts (100%) rename {src => apps/web/src}/lib/ui/sources.ts (100%) rename {src => apps/web/src}/lib/ui/stagger.ts (100%) rename {src => apps/web/src}/lib/useBriefDateSelection.ts (100%) rename {src => apps/web/src}/lib/utils.ts (100%) rename {src => apps/web/src}/main.tsx (100%) rename {src => apps/web/src}/shared/agent-ui/AgentScreen.tsx (100%) rename {src => apps/web/src}/shared/agent-ui/agentAction.ts (100%) rename {src => apps/web/src}/shared/agent-ui/index.ts (100%) rename {src => apps/web/src}/shared/agentOutputContract.test.ts (100%) rename {src => apps/web/src}/shared/agentOutputContract.ts (100%) rename {src => apps/web/src}/shared/artifacts.ts (100%) rename {src => apps/web/src}/shared/components/AnimatedComponents.tsx (100%) rename {src => apps/web/src}/shared/components/ContextPills.tsx (100%) rename {src => apps/web/src}/shared/components/DataSourceBanner.tsx (100%) rename {src => apps/web/src}/shared/components/DialogOverlay.tsx (100%) rename {src => apps/web/src}/shared/components/EmptyStates.tsx (100%) rename {src => apps/web/src}/shared/components/ErrorBoundary.tsx (100%) rename {src => apps/web/src}/shared/components/FileDropOverlay.tsx (100%) rename {src => apps/web/src}/shared/components/FileTypeIcon.tsx (100%) rename {src => apps/web/src}/shared/components/LazyCodeBlock.tsx (100%) rename {src => apps/web/src}/shared/components/LazyView.tsx (100%) rename {src => apps/web/src}/shared/components/LiveRegion.tsx (100%) rename {src => apps/web/src}/shared/components/MetaPills.tsx (100%) rename {src => apps/web/src}/shared/components/MiniEditorPopover.tsx (100%) rename {src => apps/web/src}/shared/components/PillAction.tsx (100%) rename {src => apps/web/src}/shared/components/PresenceIndicator.tsx (100%) rename {src => apps/web/src}/shared/components/SectionLabel.tsx (100%) rename {src => apps/web/src}/shared/components/SkeletonCard.tsx (100%) rename {src => apps/web/src}/shared/components/SkipLinks.tsx (100%) rename {src => apps/web/src}/shared/components/SortableList.tsx (100%) rename {src => apps/web/src}/shared/components/SurfaceHero.tsx (100%) rename {src => apps/web/src}/shared/components/ViewBreadcrumbs.tsx (100%) rename {src => apps/web/src}/shared/components/ZoomControls.tsx (100%) rename {src => apps/web/src}/shared/editors/PopoverMiniDocEditor.tsx (100%) rename {src => apps/web/src}/shared/editors/index.ts (100%) rename {src => apps/web/src}/shared/fixtures/rocketride-nodebenchai-frozen-sources.json (100%) rename {src => apps/web/src}/shared/hooks/FeedbackListener.tsx (100%) rename {src => apps/web/src}/shared/hooks/useFeedback.ts (100%) rename {src => apps/web/src}/shared/llm/approvedModels.ts (100%) rename {src => apps/web/src}/shared/llm/pipelineModelRoutes.test.ts (100%) rename {src => apps/web/src}/shared/llm/pipelineModelRoutes.ts (100%) rename {src => apps/web/src}/shared/nodeBenchWorkflowCandidate.test.ts (100%) rename {src => apps/web/src}/shared/nodeBenchWorkflowCandidate.ts (100%) rename {src => apps/web/src}/shared/riskAttackEvaluator.test.ts (100%) rename {src => apps/web/src}/shared/riskAttackEvaluator.ts (100%) rename {src => apps/web/src}/shared/rocketRideEvidenceBundle.test.ts (100%) rename {src => apps/web/src}/shared/rocketRideEvidenceBundle.ts (100%) rename {src => apps/web/src}/shared/ui/AnimatedNumber.tsx (100%) rename {src => apps/web/src}/shared/ui/AnimatedProgressBar.tsx (100%) rename {src => apps/web/src}/shared/ui/Badge.tsx (100%) rename {src => apps/web/src}/shared/ui/Button.tsx (100%) rename {src => apps/web/src}/shared/ui/Card.tsx (100%) rename {src => apps/web/src}/shared/ui/EmptyState.tsx (100%) rename {src => apps/web/src}/shared/ui/PageHeroHeader.tsx (100%) rename {src => apps/web/src}/shared/ui/PresetChip.tsx (100%) rename {src => apps/web/src}/shared/ui/ProgressBar.tsx (100%) rename {src => apps/web/src}/shared/ui/SidebarButton.tsx (100%) rename {src => apps/web/src}/shared/ui/SidebarMiniCalendar.tsx (100%) rename {src => apps/web/src}/shared/ui/SidebarUpcoming.tsx (100%) rename {src => apps/web/src}/shared/ui/SignatureOrb.tsx (100%) rename {src => apps/web/src}/shared/ui/SourceChip.test.tsx (100%) rename {src => apps/web/src}/shared/ui/SourceChip.tsx (100%) rename {src => apps/web/src}/shared/ui/Sparkline.tsx (100%) rename {src => apps/web/src}/shared/ui/SurfacePrimitives.tsx (100%) rename {src => apps/web/src}/shared/ui/Toast.test.tsx (100%) rename {src => apps/web/src}/shared/ui/Toast.tsx (100%) rename {src => apps/web/src}/shared/ui/Tooltip.tsx (100%) rename {src => apps/web/src}/shared/ui/TopDividerBar.tsx (100%) rename {src => apps/web/src}/shared/ui/TrajectorySparkline.tsx (100%) rename {src => apps/web/src}/shared/ui/UnifiedHubPills.tsx (100%) rename {src => apps/web/src}/shared/ui/index.ts (100%) rename {src => apps/web/src}/shared/ui/surface-tokens.css (100%) rename {src => apps/web/src}/shared/workflowExecutionPort.ts (100%) rename {src => apps/web/src}/styles/agentDashboard.css (100%) rename {src => apps/web/src}/test/AgentResponseFlywheelPanel.test.tsx (100%) rename {src => apps/web/src}/test/CalendarAgentsNav.test.tsx (100%) rename {src => apps/web/src}/test/CalendarHomeHub.pills.test.tsx (100%) rename {src => apps/web/src}/test/DocumentsHomeHub.pills.test.tsx (100%) rename {src => apps/web/src}/test/LinkedInPostCard.test.tsx (100%) rename {src => apps/web/src}/test/Orchestrator.live.e2e.test.ts (100%) rename {src => apps/web/src}/test/Orchestrator.live.eval.e2e.test.ts (100%) rename {src => apps/web/src}/test/SuccessLoopsPanel.test.tsx (100%) rename {src => apps/web/src}/test/TrajectorySummaryBand.test.tsx (100%) rename {src => apps/web/src}/test/UnifiedHubPills.test.tsx (100%) rename {src => apps/web/src}/test/agentResponseFlywheel.test.ts (100%) rename {src => apps/web/src}/test/dcfSpreadsheetMapping.test.ts (100%) rename {src => apps/web/src}/test/displayText.test.ts (100%) rename {src => apps/web/src}/test/mocks/blocknote/core/fonts/inter.css (100%) rename {src => apps/web/src}/test/mocks/blocknote/core/index.ts (100%) rename {src => apps/web/src}/test/mocks/blocknote/mantine/index.tsx (100%) rename {src => apps/web/src}/test/mocks/blocknote/mantine/style.css (100%) rename {src => apps/web/src}/test/scratchnodeLaunchGoalLoopSelection.test.ts (100%) rename {src => apps/web/src}/test/setup.ts (100%) rename {src => apps/web/src}/test/successLoopsLib.test.ts (100%) rename {src => apps/web/src}/test/taskSessionProofPack.test.ts (100%) rename {src => apps/web/src}/test/testUtils.tsx (100%) rename {src => apps/web/src}/test/trajectoryScore.test.ts (100%) rename {src => apps/web/src}/test/useWakeVoiceFeedback.test.tsx (100%) rename {src => apps/web/src}/test/useWakeVoiceSession.test.tsx (100%) rename {src => apps/web/src}/test/useWakeWordActivation.test.ts (100%) rename {src => apps/web/src}/test/viewCapabilityRegistry.test.ts (100%) rename {src => apps/web/src}/types/theme.ts (100%) rename {src => apps/web/src}/types/unified.ts (100%) rename {src => apps/web/src}/types/wx-react-gantt.d.ts (100%) rename {src => apps/web/src}/utils/a11y.ts (100%) rename {src => apps/web/src}/utils/animations.ts (100%) rename {src => apps/web/src}/vite-env.d.ts (100%) rename {convex => backend/convex}/__tests__/agentPlanning.listPlans.test.ts (100%) rename {convex => backend/convex}/__tests__/agentRuntimeTierFallback.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.doorPolicy.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.events.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.handoffToken.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.publicWiki.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.publicWikiRead.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnode.wall.test.ts (100%) rename {convex => backend/convex}/__tests__/scratchnodeLiveCues.test.ts (100%) rename {convex => backend/convex}/_generated/api.d.ts (100%) rename {convex => backend/convex}/_generated/api.js (100%) rename {convex => backend/convex}/_generated/dataModel.d.ts (100%) rename {convex => backend/convex}/_generated/server.d.ts (100%) rename {convex => backend/convex}/_generated/server.js (100%) rename {convex => backend/convex}/_type_shims/convex-server.d.ts (100%) rename {convex => backend/convex}/_type_shims/convex-values.d.ts (100%) rename {convex => backend/convex}/actions/__tests__/spreadsheetActions.test.ts (100%) rename {convex => backend/convex}/actions/coordinatorWorkflowActions.ts (100%) rename {convex => backend/convex}/actions/externalOrchestrator.ts (100%) rename {convex => backend/convex}/actions/openbbActions.ts (100%) rename {convex => backend/convex}/actions/parallelDelegation.ts (100%) rename {convex => backend/convex}/actions/researchMcpActions.ts (100%) rename {convex => backend/convex}/actions/spreadsheetActions.ts (100%) rename {convex => backend/convex}/agentOS.ts (100%) rename {convex => backend/convex}/agentsPrefs.ts (100%) rename {convex => backend/convex}/auth.config.ts (100%) rename {convex => backend/convex}/auth.ts (100%) rename {convex => backend/convex}/config/autonomousConfig.ts (100%) rename {convex => backend/convex}/convex.config.ts (100%) rename {convex => backend/convex}/crons.ts (100%) rename {convex => backend/convex}/crons/dailyDossierCron.ts (100%) rename {convex => backend/convex}/crons/emailIntelligenceCron.ts (100%) rename {convex => backend/convex}/crons/proactiveCalendarIngestion.ts (100%) rename {convex => backend/convex}/crons/proactiveDelivery.ts (100%) rename {convex => backend/convex}/crons/proactiveDetectorRuns.ts (100%) rename {convex => backend/convex}/crons/proactiveEmailIngestion.ts (100%) rename {convex => backend/convex}/crons/sloCalculation.ts (100%) rename {convex => backend/convex}/dataAudit.ts (100%) rename {convex => backend/convex}/debugEnv.ts (100%) rename {convex => backend/convex}/domains/agents/MODEL_CONSOLIDATION_PLAN.md (100%) rename {convex => backend/convex}/domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md (100%) rename {convex => backend/convex}/domains/agents/adapters/anthropic/anthropicReasoningAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/anthropic/promptCacheHelpers.test.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/anthropic/promptCacheHelpers.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/convex/convexAgentAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/google/googleInteractionsAdapter.test.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/google/googleInteractionsAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/handoffBridge.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/index.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/langgraph/langgraphAdapter.test.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/langgraph/langgraphAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/multiSdkDelegation.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/openai/openaiAgentsAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/registerDefaultAdapters.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/registry.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/routing/personaRouter.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/types.ts (100%) rename {convex => backend/convex}/domains/agents/adapters/vercel/vercelAiSdkAdapter.ts (100%) rename {convex => backend/convex}/domains/agents/agentActions.ts (100%) rename {convex => backend/convex}/domains/agents/agentChat.ts (100%) rename {convex => backend/convex}/domains/agents/agentChatActions.ts (100%) rename {convex => backend/convex}/domains/agents/agentDelegations.ts (100%) rename {convex => backend/convex}/domains/agents/agentFeedRanking.ts (100%) rename {convex => backend/convex}/domains/agents/agentFeedTraversal.ts (100%) rename {convex => backend/convex}/domains/agents/agentHubQueries.ts (100%) rename {convex => backend/convex}/domains/agents/agentInitializer.ts (100%) rename {convex => backend/convex}/domains/agents/agentLoop.ts (100%) rename {convex => backend/convex}/domains/agents/agentLoopQueries.ts (100%) rename {convex => backend/convex}/domains/agents/agentMarketplace.ts (100%) rename {convex => backend/convex}/domains/agents/agentMemory.ts (100%) rename {convex => backend/convex}/domains/agents/agentMemorySummary.ts (100%) rename {convex => backend/convex}/domains/agents/agentNavigation.ts (100%) rename {convex => backend/convex}/domains/agents/agentPlanSummary.ts (100%) rename {convex => backend/convex}/domains/agents/agentPlanning.ts (100%) rename {convex => backend/convex}/domains/agents/agentPostingPipeline.ts (100%) rename {convex => backend/convex}/domains/agents/agentRouter.ts (100%) rename {convex => backend/convex}/domains/agents/agentRunPresentation.ts (100%) rename {convex => backend/convex}/domains/agents/agentScratchpads.ts (100%) rename {convex => backend/convex}/domains/agents/agentTimelines.ts (100%) rename {convex => backend/convex}/domains/agents/agentViewManifest.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/agent.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/config.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/index.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/tools/contradictionDetection.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/tools/deltaDetection.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/tools/sourceHealthCheck.ts (100%) rename {convex => backend/convex}/domains/agents/arbitrage/tools/sourceQualityRanking.ts (100%) rename {convex => backend/convex}/domains/agents/autonomousCrons.ts (100%) rename {convex => backend/convex}/domains/agents/autonomousCronsQueries.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/autonomy.integration.test.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/autonomyTasteBench.integration.test.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/commits.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/evidence.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/grants.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/hash.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/policy.test.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/policy.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/proposals.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/remainders.ts (100%) rename {convex => backend/convex}/domains/agents/autonomy/schema.ts (100%) rename {convex => backend/convex}/domains/agents/batchAPI.ts (100%) rename {convex => backend/convex}/domains/agents/budget/budgetGate.ts (100%) rename {convex => backend/convex}/domains/agents/canonicalPlanner.ts (100%) rename {convex => backend/convex}/domains/agents/canonicalRuntimeMutations.ts (100%) rename {convex => backend/convex}/domains/agents/canonicalRuntimeQueries.ts (100%) rename {convex => backend/convex}/domains/agents/chatPanelBackend.ts (100%) rename {convex => backend/convex}/domains/agents/chatThreads.ts (100%) rename {convex => backend/convex}/domains/agents/checkpointing.ts (100%) rename {convex => backend/convex}/domains/agents/consistencyIndex.ts (100%) rename {convex => backend/convex}/domains/agents/consistencyIndexQueries.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/agent.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/config.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/contextPack.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/contextPackMutations.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/contextPackQueries.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/index.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/tools/delegationTools.ts (100%) rename {convex => backend/convex}/domains/agents/coordinator/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/README.md (100%) rename {convex => backend/convex}/domains/agents/core/coordinatorAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/delegation/README.md (100%) rename {convex => backend/convex}/domains/agents/core/delegation/delegationHelpers.ts (100%) rename {convex => backend/convex}/domains/agents/core/delegation/delegationTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/delegation/temporalContext.ts (100%) rename {convex => backend/convex}/domains/agents/core/multiAgentWorkflow.ts (100%) rename {convex => backend/convex}/domains/agents/core/prompts.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/comment_harvester/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/comment_harvester/mutations.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/README.md (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/documentAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/tools/deepAgentEditTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/tools/documentTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/tools/geminiFileSearch.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/tools/hashtagSearchTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/document_subagent/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/dossierAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/enrichDataPoint.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/generateAnnotation.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/getChartContext.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/updateFocusState.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/dossier_subagent/tools/updateNarrativeSection.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/entity_subagent/entityResearchAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/media_subagent/mediaAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/media_subagent/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/media_subagent/tools/linkupSearch.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/media_subagent/tools/mediaTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/media_subagent/tools/youtubeSearch.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/README.md (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/openbbAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/adminTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/cryptoTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/economyTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/equityTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/openbb_subagent/tools/newsTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/research_subagent/multiSourceResearchAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/sec_subagent/secAgent.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/sec_subagent/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/sec_subagent/tools/secCompanySearch.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/sec_subagent/tools/secFilingTools.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/thread_curator/index.ts (100%) rename {convex => backend/convex}/domains/agents/core/subagents/thread_curator/queries.ts (100%) rename {convex => backend/convex}/domains/agents/core/tools/externalOrchestratorTools.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/agent.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/config.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/index.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/tools/calendarTools.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/dataAccess/tools/taskTools.ts (100%) rename {convex => backend/convex}/domains/agents/decisionMemory.ts (100%) rename {convex => backend/convex}/domains/agents/decisionMemoryQueries.ts (100%) rename {convex => backend/convex}/domains/agents/decorationPreferences.ts (100%) rename {convex => backend/convex}/domains/agents/deliberationToEvolution.ts (100%) rename {convex => backend/convex}/domains/agents/digestAgent.ts (100%) rename {convex => backend/convex}/domains/agents/docs/2025_AGENT_ORCHESTRATION_RESEARCH.md (100%) rename {convex => backend/convex}/domains/agents/docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/branches/companyProfile.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/branches/conditionalBranches.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/branches/marketCompetitive.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/branches/teamDeepResearch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/crossChecker.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddBranchHandoff.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddContextEngine.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddMutations.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddOwnership.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddTriggerQueries.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/ddTriggers.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/agents/newsVerificationAgent.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/agents/personResearchAgent.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/claimClassifier.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/hypothesisEngine.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/index.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/queryDecomposer.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/deepResearch/types.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/index.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/claimVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/enhancedClaimVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/enhancedNewsVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/entityVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/fdaVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/financial/dealMemoSynthesis.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/financial/fundPerformanceVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/finraValidationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/index.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/industry/clinicalTrialVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/industry/literatureTriangulation.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/moneyFlowBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/newsVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/personVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/scientificClaimVerificationBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/secEdgarBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/strategic/economicIndicatorVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/strategic/maActivityVerification.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/branches/usptoBranch.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/index.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/playbookOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorPlaybook/types.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/index.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/investorProtection/types.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/memoSynthesizer.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/microBranches.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/riskScoring.ts (100%) rename {convex => backend/convex}/domains/agents/dueDiligence/types.ts (100%) rename {convex => backend/convex}/domains/agents/emailAgent.ts (100%) rename {convex => backend/convex}/domains/agents/evolutionVerification.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentChat.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentChatHelpers.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentCitationProvenance.guard.test.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentDocumentCreation.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentDocumentCreation.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentDocumentCreationOwnership.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentPanelStreaming.ts (100%) rename {convex => backend/convex}/domains/agents/fastAgentRuntimeSecurity.guard.test.ts (100%) rename {convex => backend/convex}/domains/agents/glmFlashWithReasoning.ts (100%) rename {convex => backend/convex}/domains/agents/glmHybridApproach.ts (100%) rename {convex => backend/convex}/domains/agents/hitl/config.ts (100%) rename {convex => backend/convex}/domains/agents/hitl/index.ts (100%) rename {convex => backend/convex}/domains/agents/hitl/interruptManager.ts (100%) rename {convex => backend/convex}/domains/agents/hitl/tools/askHuman.ts (100%) rename {convex => backend/convex}/domains/agents/hitl/tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/humanInTheLoop.ts (100%) rename {convex => backend/convex}/domains/agents/index.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/captureLesson.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/getRelevantLessons.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/infraPreferIds.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/lessonInjection.test.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/lessonInjection.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/lessonsPublic.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/systemPromptBuilder.test.ts (100%) rename {convex => backend/convex}/domains/agents/lessons/systemPromptBuilder.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/context/contextInitializerTool.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/context/index.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/index.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/healthcheck.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/index.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/migration.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/modelResolver.test.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/modelResolver.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/models/promptCaching.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/reasoningTool.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/testReasoningPersonas.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/tracking/index.ts (100%) rename {convex => backend/convex}/domains/agents/mcp_tools/tracking/taskTrackerTool.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/geminiVideoWrapper.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/passportEnforcement.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/passportEnforcementQueries.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/queueProtocol.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/secEdgarWrapper.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/toolHealth.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/toolRouter.ts (100%) rename {convex => backend/convex}/domains/agents/orchestrator/worker.ts (100%) rename {convex => backend/convex}/domains/agents/parallelTaskTree.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/parallelTaskTree.ts (100%) rename {convex => backend/convex}/domains/agents/promptEnhancer.ts (100%) rename {convex => backend/convex}/domains/agents/publicWrappers.ts (100%) rename {convex => backend/convex}/domains/agents/receipts/actionReceipts.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/receipts/actionReceipts.ts (100%) rename {convex => backend/convex}/domains/agents/receipts/emitWithReceipt.test.ts (100%) rename {convex => backend/convex}/domains/agents/receipts/emitWithReceipt.ts (100%) rename {convex => backend/convex}/domains/agents/researchJobs.ts (100%) rename {convex => backend/convex}/domains/agents/responseFlywheel.ts (100%) rename {convex => backend/convex}/domains/agents/runtimeRouting.test.ts (100%) rename {convex => backend/convex}/domains/agents/runtimeRouting.ts (100%) rename {convex => backend/convex}/domains/agents/runtimeTierFallback.ts (100%) rename {convex => backend/convex}/domains/agents/safety/artifactDecisionGate.ts (100%) rename {convex => backend/convex}/domains/agents/safety/lowConfidenceGuard.ts (100%) rename {convex => backend/convex}/domains/agents/safety/rateLimitGuard.ts (100%) rename {convex => backend/convex}/domains/agents/safety/safety.test.ts (100%) rename {convex => backend/convex}/domains/agents/safety/singleflightMap.ts (100%) rename {convex => backend/convex}/domains/agents/schema.ts (100%) rename {convex => backend/convex}/domains/agents/selfEvolution.ts (100%) rename {convex => backend/convex}/domains/agents/selfEvolutionQueries.ts (100%) rename {convex => backend/convex}/domains/agents/snapshots/rollbackToCheckpoint.ts (100%) rename {convex => backend/convex}/domains/agents/snapshots/snapshotCheckpoint.ts (100%) rename {convex => backend/convex}/domains/agents/spiral/spiralDetector.test.ts (100%) rename {convex => backend/convex}/domains/agents/spiral/spiralDetector.ts (100%) rename {convex => backend/convex}/domains/agents/swarmDeliberation.ts (100%) rename {convex => backend/convex}/domains/agents/swarmDeliberationQueries.ts (100%) rename {convex => backend/convex}/domains/agents/swarmMutations.ts (100%) rename {convex => backend/convex}/domains/agents/swarmOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/swarmOrchestratorEnhanced.ts (100%) rename {convex => backend/convex}/domains/agents/swarmOwnership.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/swarmQueries.ts (100%) rename {convex => backend/convex}/domains/agents/testGlmFlash.ts (100%) rename {convex => backend/convex}/domains/agents/testGlmFlashFix.ts (100%) rename {convex => backend/convex}/domains/agents/testOrchestratorReasoningIntegration.ts (100%) rename {convex => backend/convex}/domains/agents/testParallelOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/tools/createDCFSpreadsheet.ts (100%) rename {convex => backend/convex}/domains/agents/tools/editDCFSpreadsheet.ts (100%) rename {convex => backend/convex}/domains/agents/traceAuditLog.auth.test.ts (100%) rename {convex => backend/convex}/domains/agents/traceAuditLog.ts (100%) rename {convex => backend/convex}/domains/agents/traceOrchestrator.ts (100%) rename {convex => backend/convex}/domains/agents/traceTypes.ts (100%) rename {convex => backend/convex}/domains/agents/types.ts (100%) rename {convex => backend/convex}/domains/agents/unified.ts (100%) rename {convex => backend/convex}/domains/ai/ai.ts (100%) rename {convex => backend/convex}/domains/ai/genai.ts (100%) rename {convex => backend/convex}/domains/ai/metadataAnalyzer.ts (100%) rename {convex => backend/convex}/domains/ai/models/autonomousModelResolver.ts (100%) rename {convex => backend/convex}/domains/ai/models/capabilityRegistry.ts (100%) rename {convex => backend/convex}/domains/ai/models/chainResolver.test.ts (100%) rename {convex => backend/convex}/domains/ai/models/chainResolver.ts (100%) rename {convex => backend/convex}/domains/ai/models/freeModelDiscovery.ts (100%) rename {convex => backend/convex}/domains/ai/models/index.ts (100%) rename {convex => backend/convex}/domains/ai/models/livePerformanceEval.ts (100%) rename {convex => backend/convex}/domains/ai/models/modelRouter.ts (100%) rename {convex => backend/convex}/domains/ai/models/modelRouterQueries.ts (100%) rename {convex => backend/convex}/domains/ai/morningDigest.ts (100%) rename {convex => backend/convex}/domains/ai/morningDigestQueries.ts (100%) rename {convex => backend/convex}/domains/ai/realtimeTranscription.ts (100%) rename {convex => backend/convex}/domains/ai/whisperTranscribe.ts (100%) rename {convex => backend/convex}/domains/analytics/__tests__/intentSignals.test.ts (100%) rename {convex => backend/convex}/domains/analytics/analytics.ts (100%) rename {convex => backend/convex}/domains/analytics/componentMetrics.ts (100%) rename {convex => backend/convex}/domains/analytics/intentSignals.ts (100%) rename {convex => backend/convex}/domains/analytics/ossStats.ts (100%) rename {convex => backend/convex}/domains/artifacts/evidenceIndex.ts (100%) rename {convex => backend/convex}/domains/artifacts/evidenceIndexActions.ts (100%) rename {convex => backend/convex}/domains/artifacts/evidencePacks.ts (100%) rename {convex => backend/convex}/domains/artifacts/evidenceSearch.ts (100%) rename {convex => backend/convex}/domains/artifacts/sourceArtifacts.ts (100%) rename {convex => backend/convex}/domains/auth/account.ts (100%) rename {convex => backend/convex}/domains/auth/apiKeys.ts (100%) rename {convex => backend/convex}/domains/auth/apiKeysActions.ts (100%) rename {convex => backend/convex}/domains/auth/auth.config.ts (100%) rename {convex => backend/convex}/domains/auth/auth.ts (100%) rename {convex => backend/convex}/domains/auth/index.ts (100%) rename {convex => backend/convex}/domains/auth/onboarding.ts (100%) rename {convex => backend/convex}/domains/auth/personas/index.ts (100%) rename {convex => backend/convex}/domains/auth/personas/multiPersonaSynthesizer.ts (100%) rename {convex => backend/convex}/domains/auth/personas/personaAutonomousAgent.ts (100%) rename {convex => backend/convex}/domains/auth/presence.ts (100%) rename {convex => backend/convex}/domains/auth/usage.ts (100%) rename {convex => backend/convex}/domains/auth/userPreferences.ts (100%) rename {convex => backend/convex}/domains/auth/userStats.ts (100%) rename {convex => backend/convex}/domains/auth/users.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/deltaCollector.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/mutations.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/promptBuilder.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/queries.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/runner.ts (100%) rename {convex => backend/convex}/domains/batchAutopilot/scheduler.ts (100%) rename {convex => backend/convex}/domains/billing/apiUsageTracking.ts (100%) rename {convex => backend/convex}/domains/billing/billing.ts (100%) rename {convex => backend/convex}/domains/billing/index.ts (100%) rename {convex => backend/convex}/domains/billing/rateLimiting.ts (100%) rename {convex => backend/convex}/domains/blips/blipClaimExtraction.ts (100%) rename {convex => backend/convex}/domains/blips/blipGeneration.ts (100%) rename {convex => backend/convex}/domains/blips/blipIngestion.ts (100%) rename {convex => backend/convex}/domains/blips/blipMutations.ts (100%) rename {convex => backend/convex}/domains/blips/blipPersonaLens.ts (100%) rename {convex => backend/convex}/domains/blips/blipPipeline.ts (100%) rename {convex => backend/convex}/domains/blips/blipQueries.ts (100%) rename {convex => backend/convex}/domains/blips/blipVerification.ts (100%) rename {convex => backend/convex}/domains/blips/index.ts (100%) rename {convex => backend/convex}/domains/blips/types.ts (100%) rename {convex => backend/convex}/domains/calendar/calendar.ts (100%) rename {convex => backend/convex}/domains/calendar/events.ts (100%) rename {convex => backend/convex}/domains/calendar/holidays.ts (100%) rename {convex => backend/convex}/domains/calendar/holidaysActions.ts (100%) rename {convex => backend/convex}/domains/calendar/index.ts (100%) rename {convex => backend/convex}/domains/canonicalization/duplicateDetection.ts (100%) rename {convex => backend/convex}/domains/channels/channelIntelligence.ts (100%) rename {convex => backend/convex}/domains/channels/engagementOptimizer.ts (100%) rename {convex => backend/convex}/domains/channels/index.ts (100%) rename {convex => backend/convex}/domains/deepTrace/causalChainEngine.ts (100%) rename {convex => backend/convex}/domains/deepTrace/dimensionEngine.ts (100%) rename {convex => backend/convex}/domains/deepTrace/dimensionModel.ts (100%) rename {convex => backend/convex}/domains/deepTrace/dimensions.ts (100%) rename {convex => backend/convex}/domains/deepTrace/heuristics.test.ts (100%) rename {convex => backend/convex}/domains/deepTrace/heuristics.ts (100%) rename {convex => backend/convex}/domains/deepTrace/integrations.ts (100%) rename {convex => backend/convex}/domains/deepTrace/researchCell.test.ts (100%) rename {convex => backend/convex}/domains/deepTrace/researchCell.ts (100%) rename {convex => backend/convex}/domains/deepTrace/schema.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/evidenceIndex.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/evidenceIndexActions.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/evidencePacks.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/evidenceSearch.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/ingestionPipeline.ts (100%) rename {convex => backend/convex}/domains/documents/artifacts/sourceArtifacts.ts (100%) rename {convex => backend/convex}/domains/documents/batchOperations.ts (100%) rename {convex => backend/convex}/domains/documents/calendar/calendar.ts (100%) rename {convex => backend/convex}/domains/documents/calendar/events.ts (100%) rename {convex => backend/convex}/domains/documents/calendar/holidays.ts (100%) rename {convex => backend/convex}/domains/documents/calendar/holidaysActions.ts (100%) rename {convex => backend/convex}/domains/documents/calendar/index.ts (100%) rename {convex => backend/convex}/domains/documents/chunks.ts (100%) rename {convex => backend/convex}/domains/documents/citationValidator.ts (100%) rename {convex => backend/convex}/domains/documents/citations.ts (100%) rename {convex => backend/convex}/domains/documents/documentEvents.ts (100%) rename {convex => backend/convex}/domains/documents/documentMetadataParser.ts (100%) rename {convex => backend/convex}/domains/documents/documentTasks.ts (100%) rename {convex => backend/convex}/domains/documents/documentVersions.ts (100%) rename {convex => backend/convex}/domains/documents/documents.ts (100%) rename {convex => backend/convex}/domains/documents/dossier/annotations.ts (100%) rename {convex => backend/convex}/domains/documents/dossier/enrichment.ts (100%) rename {convex => backend/convex}/domains/documents/dossier/focusState.ts (100%) rename {convex => backend/convex}/domains/documents/dossier/index.ts (100%) rename {convex => backend/convex}/domains/documents/dossier/schema.ts (100%) rename {convex => backend/convex}/domains/documents/exportDocument.ts (100%) rename {convex => backend/convex}/domains/documents/fileAnalysis.ts (100%) rename {convex => backend/convex}/domains/documents/fileDocuments.ts (100%) rename {convex => backend/convex}/domains/documents/fileQueries.ts (100%) rename {convex => backend/convex}/domains/documents/fileSearch.ts (100%) rename {convex => backend/convex}/domains/documents/fileSearchData.ts (100%) rename {convex => backend/convex}/domains/documents/files.ts (100%) rename {convex => backend/convex}/domains/documents/folders.ts (100%) rename {convex => backend/convex}/domains/documents/gridProjects.ts (100%) rename {convex => backend/convex}/domains/documents/index.ts (100%) rename {convex => backend/convex}/domains/documents/mcpDocumentEndpoints.auth.test.ts (100%) rename {convex => backend/convex}/domains/documents/mcpDocumentEndpoints.ts (100%) rename {convex => backend/convex}/domains/documents/pdfAnalysis.ts (100%) rename {convex => backend/convex}/domains/documents/pdfInsights.ts (100%) rename {convex => backend/convex}/domains/documents/pendingEdits.ts (100%) rename {convex => backend/convex}/domains/documents/prosemirror.ts (100%) rename {convex => backend/convex}/domains/documents/quickCapture/index.ts (100%) rename {convex => backend/convex}/domains/documents/quickCapture/quickCapture.ts (100%) rename {convex => backend/convex}/domains/documents/quickCapture/voiceMemos.ts (100%) rename {convex => backend/convex}/domains/documents/reportDocuments.ts (100%) rename {convex => backend/convex}/domains/documents/search.ts (100%) rename {convex => backend/convex}/domains/documents/smartDateExtraction.ts (100%) rename {convex => backend/convex}/domains/documents/sync.ts (100%) rename {convex => backend/convex}/domains/documents/syncMutations.ts (100%) rename {convex => backend/convex}/domains/dogfood/screenshotQa.ts (100%) rename {convex => backend/convex}/domains/dogfood/videoQa.ts (100%) rename {convex => backend/convex}/domains/dogfood/videoQaMutations.ts (100%) rename {convex => backend/convex}/domains/dogfood/videoQaQueries.ts (100%) rename {convex => backend/convex}/domains/dossier/annotations.ts (100%) rename {convex => backend/convex}/domains/dossier/enrichment.ts (100%) rename {convex => backend/convex}/domains/dossier/focusState.ts (100%) rename {convex => backend/convex}/domains/dossier/index.ts (100%) rename {convex => backend/convex}/domains/dossier/schema.ts (100%) rename {convex => backend/convex}/domains/encounters/encounterCapture.ts (100%) rename {convex => backend/convex}/domains/encounters/encounterFastPass.ts (100%) rename {convex => backend/convex}/domains/encounters/encounterMutations.ts (100%) rename {convex => backend/convex}/domains/encounters/encounterQueries.ts (100%) rename {convex => backend/convex}/domains/encounters/index.ts (100%) rename {convex => backend/convex}/domains/encounters/types.ts (100%) rename {convex => backend/convex}/domains/enrichment/backfillMetadata.ts (100%) rename {convex => backend/convex}/domains/enrichment/betterSectorClassifier.ts (100%) rename {convex => backend/convex}/domains/enrichment/canonicalization/duplicateDetection.ts (100%) rename {convex => backend/convex}/domains/enrichment/dataCleanup.ts (100%) rename {convex => backend/convex}/domains/enrichment/deleteDuplicates.ts (100%) rename {convex => backend/convex}/domains/enrichment/documentStore.ts (100%) rename {convex => backend/convex}/domains/enrichment/enrichmentQueue.ts (100%) rename {convex => backend/convex}/domains/enrichment/enrichmentWorker.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityBackfill.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityLinkingJudge.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityLinkingMutations.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityLinkingQueries.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityLinkingService.ts (100%) rename {convex => backend/convex}/domains/enrichment/entityPromotion.ts (100%) rename {convex => backend/convex}/domains/enrichment/fundingDetection.ts (100%) rename {convex => backend/convex}/domains/enrichment/fundingMutations.ts (100%) rename {convex => backend/convex}/domains/enrichment/fundingQueries.ts (100%) rename {convex => backend/convex}/domains/enrichment/fundingVerification.ts (100%) rename {convex => backend/convex}/domains/enrichment/llmCompanyExtraction.ts (100%) rename {convex => backend/convex}/domains/enrichment/llmEnrichment.ts (100%) rename {convex => backend/convex}/domains/enrichment/quickVerificationUpgrade.ts (100%) rename {convex => backend/convex}/domains/enrichment/signals/index.ts (100%) rename {convex => backend/convex}/domains/enrichment/signals/signalIngester.ts (100%) rename {convex => backend/convex}/domains/enrichment/signals/signalProcessor.ts (100%) rename {convex => backend/convex}/domains/enrichment/testQueries.ts (100%) rename {convex => backend/convex}/domains/enrichment/useOfProceedsExtractor.ts (100%) rename {convex => backend/convex}/domains/enrichment/workpools.ts (100%) rename {convex => backend/convex}/domains/entities/decayManager.ts (100%) rename {convex => backend/convex}/domains/entities/entityLifecycle.ts (100%) rename {convex => backend/convex}/domains/entities/index.ts (100%) rename {convex => backend/convex}/domains/eval/evalHelpers.ts (100%) rename {convex => backend/convex}/domains/eval/evalMutations.ts (100%) rename {convex => backend/convex}/domains/eval/evalStorage.ts (100%) rename {convex => backend/convex}/domains/eval/productionTestCases.ts (100%) rename {convex => backend/convex}/domains/eval/runBatch.ts (100%) rename {convex => backend/convex}/domains/eval/runBatchNative.ts (100%) rename {convex => backend/convex}/domains/evaluation/README.md (100%) rename {convex => backend/convex}/domains/evaluation/agentRunJudge.ts (100%) rename {convex => backend/convex}/domains/evaluation/benchmarkHarness.ts (100%) rename {convex => backend/convex}/domains/evaluation/booleanEvaluator.ts (100%) rename {convex => backend/convex}/domains/evaluation/comprehensiveEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/cronHandlers.ts (100%) rename {convex => backend/convex}/domains/evaluation/ddEvaluation.ts (100%) rename {convex => backend/convex}/domains/evaluation/dogfood/screenshotQa.ts (100%) rename {convex => backend/convex}/domains/evaluation/dogfood/videoQa.ts (100%) rename {convex => backend/convex}/domains/evaluation/dogfood/videoQaMutations.ts (100%) rename {convex => backend/convex}/domains/evaluation/dogfood/videoQaQueries.ts (100%) rename {convex => backend/convex}/domains/evaluation/e2eValidation.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/evalHelpers.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/evalMutations.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/evalStorage.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/productionTestCases.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/runBatch.ts (100%) rename {convex => backend/convex}/domains/evaluation/eval/runBatchNative.ts (100%) rename {convex => backend/convex}/domains/evaluation/evalHarness.ts (100%) rename {convex => backend/convex}/domains/evaluation/evalRunTracking.ts (100%) rename {convex => backend/convex}/domains/evaluation/evaluationPrompts.ts (100%) rename {convex => backend/convex}/domains/evaluation/evaluationSafeResponse.test.ts (100%) rename {convex => backend/convex}/domains/evaluation/evaluationSafeResponse.ts (100%) rename {convex => backend/convex}/domains/evaluation/evidencePlanner.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/corrections.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/dcfComparison.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/dcfEngine.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/evaluationOrchestrator.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/index.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/reproPack.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/seedData.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/sourceQuality.ts (100%) rename {convex => backend/convex}/domains/evaluation/financial/types.ts (100%) rename {convex => backend/convex}/domains/evaluation/fixtures/shipDemoDayFixtures.ts (100%) rename {convex => backend/convex}/domains/evaluation/groundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/groundTruth/auditLog.ts (100%) rename {convex => backend/convex}/domains/evaluation/groundTruth/versions.ts (100%) rename {convex => backend/convex}/domains/evaluation/index.ts (100%) rename {convex => backend/convex}/domains/evaluation/inference/becPlaybook.ts (100%) rename {convex => backend/convex}/domains/evaluation/inference/index.ts (100%) rename {convex => backend/convex}/domains/evaluation/inference/llmJudge.ts (100%) rename {convex => backend/convex}/domains/evaluation/inference/personaInferenceEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/judgeMetrics.ts (100%) rename {convex => backend/convex}/domains/evaluation/liveApiSmoke.ts (100%) rename {convex => backend/convex}/domains/evaluation/liveEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/llmJudge.ts (100%) rename {convex => backend/convex}/domains/evaluation/mediaContextScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/memoryFirstScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/migrateEvaluationScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/multiTurnScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/operations.ts (100%) rename {convex => backend/convex}/domains/evaluation/personaEpisodeEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personaInferenceScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/personaLiveEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/financial/financialGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/financial/jpmBankerEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/financial/lpAllocatorEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/financial/quantPMEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/financial/quantPMGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/identityAssurance.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/index.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/industry/academicRDEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/industry/industryGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/industry/pharmaBDEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/media/journalistEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/media/mediaGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/strategic/corpDevEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/strategic/founderStrategyEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/strategic/founderStrategyGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/strategic/macroStratEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/strategic/strategicGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/technical/ctoTechLeadEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/technical/technicalGroundTruth.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/types.ts (100%) rename {convex => backend/convex}/domains/evaluation/personas/unifiedPersonaHarness.ts (100%) rename {convex => backend/convex}/domains/evaluation/promptEnhancerScenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/runBenchmark.ts (100%) rename {convex => backend/convex}/domains/evaluation/scenarioQueries.ts (100%) rename {convex => backend/convex}/domains/evaluation/scenarios/researchToolEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/scenarios/researchUltraLongChatEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts (100%) rename {convex => backend/convex}/domains/evaluation/schema.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/benchmarkSuite.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/claimLifecycle.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/personaWeights.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/riskCalibration.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/scoringFramework.ts (100%) rename {convex => backend/convex}/domains/evaluation/scoring/sourceCitations.ts (100%) rename {convex => backend/convex}/domains/evaluation/sourceQuality.ts (100%) rename {convex => backend/convex}/domains/evaluation/systemE2E.ts (100%) rename {convex => backend/convex}/domains/evaluation/tasteBench.integration.test.ts (100%) rename {convex => backend/convex}/domains/evaluation/tasteBench.ts (100%) rename {convex => backend/convex}/domains/evaluation/tasteBenchPolicy.test.ts (100%) rename {convex => backend/convex}/domains/evaluation/tasteBenchPolicy.ts (100%) rename {convex => backend/convex}/domains/evaluation/tasteBenchSchema.ts (100%) rename {convex => backend/convex}/domains/evaluation/testAgentDirect.ts (100%) rename {convex => backend/convex}/domains/evaluation/testAgentQueries.ts (100%) rename {convex => backend/convex}/domains/evaluation/testAnthropicApi.ts (100%) rename {convex => backend/convex}/domains/evaluation/testDirectApi.ts (100%) rename {convex => backend/convex}/domains/evaluation/testLlmJudge.ts (100%) rename {convex => backend/convex}/domains/evaluation/testing/testingFramework.ts (100%) rename {convex => backend/convex}/domains/evaluation/ultraLongChat/batchRunner.ts (100%) rename {convex => backend/convex}/domains/evaluation/ultraLongChat/judge.ts (100%) rename {convex => backend/convex}/domains/evaluation/ultraLongChat/regressionGate.ts (100%) rename {convex => backend/convex}/domains/evaluation/ultraLongChat/scenarios.ts (100%) rename {convex => backend/convex}/domains/evaluation/ultraLongChat/storage.ts (100%) rename {convex => backend/convex}/domains/evaluation/validators.ts (100%) rename {convex => backend/convex}/domains/evaluation/workbenchQueries.ts (100%) rename {convex => backend/convex}/domains/financial/balanceSheetFetcher.ts (100%) rename {convex => backend/convex}/domains/financial/corporateActions.ts (100%) rename {convex => backend/convex}/domains/financial/corrections.ts (100%) rename {convex => backend/convex}/domains/financial/dcfBuilder.ts (100%) rename {convex => backend/convex}/domains/financial/dcfEvaluator.ts (100%) rename {convex => backend/convex}/domains/financial/dcfOrchestrator.ts (100%) rename {convex => backend/convex}/domains/financial/dcfProgress.ts (100%) rename {convex => backend/convex}/domains/financial/dcfSpreadsheetAdapter.ts (100%) rename {convex => backend/convex}/domains/financial/dcfSpreadsheetMapping.ts (100%) rename {convex => backend/convex}/domains/financial/dcfTools.ts (100%) rename {convex => backend/convex}/domains/financial/financialAnalystAgent.ts (100%) rename {convex => backend/convex}/domains/financial/fundamentals.ts (100%) rename {convex => backend/convex}/domains/financial/groundTruthFetcher.ts (100%) rename {convex => backend/convex}/domains/financial/groundTruthManager.ts (100%) rename {convex => backend/convex}/domains/financial/inconclusiveOnFailure.ts (100%) rename {convex => backend/convex}/domains/financial/index.ts (100%) rename {convex => backend/convex}/domains/financial/interactiveDCFSession.ts (100%) rename {convex => backend/convex}/domains/financial/modelRiskGovernance.ts (100%) rename {convex => backend/convex}/domains/financial/reportGenerator.ts (100%) rename {convex => backend/convex}/domains/financial/restatementPolicy.ts (100%) rename {convex => backend/convex}/domains/financial/secEdgarClient.ts (100%) rename {convex => backend/convex}/domains/financial/sensitivityAnalysis.ts (100%) rename {convex => backend/convex}/domains/financial/taxonomyManagement.ts (100%) rename {convex => backend/convex}/domains/financial/validation.ts (100%) rename {convex => backend/convex}/domains/financial/xbrlParser.ts (100%) rename {convex => backend/convex}/domains/financialOperator/__tests__/sandbox.scenario.test.ts (100%) rename {convex => backend/convex}/domains/financialOperator/__tests__/validators.scenario.test.ts (100%) rename {convex => backend/convex}/domains/financialOperator/attFixture.ts (100%) rename {convex => backend/convex}/domains/financialOperator/extractors.ts (100%) rename {convex => backend/convex}/domains/financialOperator/fixtures/covenantFixture.ts (100%) rename {convex => backend/convex}/domains/financialOperator/fixtures/crmFixture.ts (100%) rename {convex => backend/convex}/domains/financialOperator/fixtures/varianceFixture.ts (100%) rename {convex => backend/convex}/domains/financialOperator/index.ts (100%) rename {convex => backend/convex}/domains/financialOperator/orchestrator.ts (100%) rename {convex => backend/convex}/domains/financialOperator/orchestratorExamples.ts (100%) rename {convex => backend/convex}/domains/financialOperator/realExtractors.ts (100%) rename {convex => backend/convex}/domains/financialOperator/runOps.ts (100%) rename {convex => backend/convex}/domains/financialOperator/sandbox.ts (100%) rename {convex => backend/convex}/domains/financialOperator/types.ts (100%) rename {convex => backend/convex}/domains/financialOperator/validators.ts (100%) rename {convex => backend/convex}/domains/forecasting/actions/computeCalibration.ts (100%) rename {convex => backend/convex}/domains/forecasting/actions/createForecast.ts (100%) rename {convex => backend/convex}/domains/forecasting/actions/refreshForecast.ts (100%) rename {convex => backend/convex}/domains/forecasting/actions/resolveForecast.ts (100%) rename {convex => backend/convex}/domains/forecasting/cronHandlers/dailyForecastRefresh.ts (100%) rename {convex => backend/convex}/domains/forecasting/cronHandlers/resolutionCheck.ts (100%) rename {convex => backend/convex}/domains/forecasting/cronHandlers/weeklyCalibration.ts (100%) rename {convex => backend/convex}/domains/forecasting/forecastManager.ts (100%) rename {convex => backend/convex}/domains/forecasting/schema.ts (100%) rename {convex => backend/convex}/domains/forecasting/scoringEngine.ts (100%) rename {convex => backend/convex}/domains/forecasting/signalMatcher.ts (100%) rename {convex => backend/convex}/domains/forecasting/traceWrapper.ts (100%) rename {convex => backend/convex}/domains/forecasting/validators.ts (100%) rename {convex => backend/convex}/domains/founder/__tests__/ambientIntelligenceOps.test.ts (100%) rename {convex => backend/convex}/domains/founder/ambientIntelligenceJobs.ts (100%) rename {convex => backend/convex}/domains/founder/ambientIntelligenceOps.ts (100%) rename {convex => backend/convex}/domains/founder/backgroundJobs.ts (100%) rename {convex => backend/convex}/domains/founder/causalMemoryJobs.ts (100%) rename {convex => backend/convex}/domains/founder/causalMemoryOps.ts (100%) rename {convex => backend/convex}/domains/founder/founderHarnessOps.ts (100%) rename {convex => backend/convex}/domains/founder/index.ts (100%) rename {convex => backend/convex}/domains/founder/operations.ts (100%) rename {convex => backend/convex}/domains/founder/schema.ts (100%) rename {convex => backend/convex}/domains/founder/seed.ts (100%) rename {convex => backend/convex}/domains/founder/seedTrigger.ts (100%) rename {convex => backend/convex}/domains/founder/sharedContextOps.ts (100%) rename {convex => backend/convex}/domains/governance/provenanceExplainer.ts (100%) rename {convex => backend/convex}/domains/governance/quarantine.ts (100%) rename {convex => backend/convex}/domains/governance/trustPolicy.ts (100%) rename {convex => backend/convex}/domains/graph/__tests__/graphPatch.test.ts (100%) rename {convex => backend/convex}/domains/graph/applyGraphPatch.ts (100%) rename {convex => backend/convex}/domains/graph/autoExtractMentions.ts (100%) rename {convex => backend/convex}/domains/graph/backlinkQueries.ts (100%) rename {convex => backend/convex}/domains/graph/expandEntity.ts (100%) rename {convex => backend/convex}/domains/graph/expansionQueries.ts (100%) rename {convex => backend/convex}/domains/graph/index.ts (100%) rename {convex => backend/convex}/domains/groundTruth/auditLog.ts (100%) rename {convex => backend/convex}/domains/groundTruth/versions.ts (100%) rename {convex => backend/convex}/domains/hitl/adjudicationWorkflow.ts (100%) rename {convex => backend/convex}/domains/hitl/decisions.ts (100%) rename {convex => backend/convex}/domains/hitl/distributionDriftDetection.ts (100%) rename {convex => backend/convex}/domains/hitl/labelerCalibration.ts (100%) rename {convex => backend/convex}/domains/hitl/labelingQueue.ts (100%) rename {convex => backend/convex}/domains/hitl/validationWorkspaceEnforcement.ts (100%) rename {convex => backend/convex}/domains/hyperloop/operations.ts (100%) rename {convex => backend/convex}/domains/hyperloop/policy.test.ts (100%) rename {convex => backend/convex}/domains/hyperloop/policy.ts (100%) rename {convex => backend/convex}/domains/hyperloop/schema.ts (100%) rename {convex => backend/convex}/domains/integrations/billing/apiUsageTracking.ts (100%) rename {convex => backend/convex}/domains/integrations/billing/billing.ts (100%) rename {convex => backend/convex}/domains/integrations/billing/index.ts (100%) rename {convex => backend/convex}/domains/integrations/billing/rateLimiting.ts (100%) rename {convex => backend/convex}/domains/integrations/discord.ts (100%) rename {convex => backend/convex}/domains/integrations/discordAgent.ts (100%) rename {convex => backend/convex}/domains/integrations/email.ts (100%) rename {convex => backend/convex}/domains/integrations/email/dailyEmailReport.ts (100%) rename {convex => backend/convex}/domains/integrations/email/dossierEmailExample.ts (100%) rename {convex => backend/convex}/domains/integrations/email/dossierEmailTemplate.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailAdmin.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailAdminActions.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailEncounterIngest.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailQueries.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailService.ts (100%) rename {convex => backend/convex}/domains/integrations/email/emailWebhook.ts (100%) rename {convex => backend/convex}/domains/integrations/email/morningDigestEmailTemplate.ts (100%) rename {convex => backend/convex}/domains/integrations/gcal.ts (100%) rename {convex => backend/convex}/domains/integrations/gmail.ts (100%) rename {convex => backend/convex}/domains/integrations/gmail/types.ts (100%) rename {convex => backend/convex}/domains/integrations/index.ts (100%) rename {convex => backend/convex}/domains/integrations/integrations.ts (100%) rename {convex => backend/convex}/domains/integrations/landing/landingPageLog.ts (100%) rename {convex => backend/convex}/domains/integrations/macro/fredSeed.ts (100%) rename {convex => backend/convex}/domains/integrations/ntfy.ts (100%) rename {convex => backend/convex}/domains/integrations/polar.ts (100%) rename {convex => backend/convex}/domains/integrations/resend.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/encounterMutations.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/encounterParser.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/encounterResearch.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/encounterResearchQueries.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/encounterResolver.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/index.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/slackAgent.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/slackBlocks.ts (100%) rename {convex => backend/convex}/domains/integrations/slack/slackWebhook.ts (100%) rename {convex => backend/convex}/domains/integrations/sms.ts (100%) rename {convex => backend/convex}/domains/integrations/spreadsheets.ts (100%) rename {convex => backend/convex}/domains/integrations/telegram.ts (100%) rename {convex => backend/convex}/domains/integrations/telegramAgent.ts (100%) rename {convex => backend/convex}/domains/integrations/video/oembedFetcher.ts (100%) rename {convex => backend/convex}/domains/integrations/video/oembedFetcherQueries.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/costLedger.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/editionTts.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/realtimeAudit.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/realtimeGateway.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/voiceActions.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/voiceAgent.ts (100%) rename {convex => backend/convex}/domains/integrations/voice/voiceMutations.ts (100%) rename {convex => backend/convex}/domains/intelligence/operations.ts (100%) rename {convex => backend/convex}/domains/intelligence/schema.ts (100%) rename {convex => backend/convex}/domains/knowledge/adaptiveEntityEnrichment.ts (100%) rename {convex => backend/convex}/domains/knowledge/adaptiveEntityQueries.ts (100%) rename {convex => backend/convex}/domains/knowledge/entityContexts.ts (100%) rename {convex => backend/convex}/domains/knowledge/entityInsights.ts (100%) rename {convex => backend/convex}/domains/knowledge/index.ts (100%) rename {convex => backend/convex}/domains/knowledge/knowledgeGraph.ts (100%) rename {convex => backend/convex}/domains/knowledge/learning/adaptiveLearning.ts (100%) rename {convex => backend/convex}/domains/knowledge/nodes.ts (100%) rename {convex => backend/convex}/domains/knowledge/relationTypes.ts (100%) rename {convex => backend/convex}/domains/knowledge/relations.ts (100%) rename {convex => backend/convex}/domains/knowledge/relationshipGraph.ts (100%) rename {convex => backend/convex}/domains/knowledge/sourceDiffs.ts (100%) rename {convex => backend/convex}/domains/knowledge/sourceRegistry.ts (100%) rename {convex => backend/convex}/domains/knowledge/tags.ts (100%) rename {convex => backend/convex}/domains/knowledge/teachability/index.ts (100%) rename {convex => backend/convex}/domains/landing/landingPageLog.ts (100%) rename {convex => backend/convex}/domains/learning/adaptiveLearning.ts (100%) rename {convex => backend/convex}/domains/mcp/apiKeys.ts (100%) rename {convex => backend/convex}/domains/mcp/apiKeysSchema.ts (100%) rename {convex => backend/convex}/domains/mcp/mcp.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpAuth.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpBridgeHttp.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpBridgeQueries.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpClient.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpExecutionTraceEndpoints.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpGatewayDispatcher.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpHttpAuth.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpHybridSearch.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpLearning.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpMemory.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpMemoryHttp.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpNarrativeEndpoints.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpPlans.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpPlansHttp.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpResearchEndpoints.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpToolLedger.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpToolRegistry.ts (100%) rename {convex => backend/convex}/domains/mcp/mcpVerificationEndpoints.ts (100%) rename {convex => backend/convex}/domains/mcp/webmcpOriginManager.ts (100%) rename {convex => backend/convex}/domains/messaging/channelPreferencesManager.ts (100%) rename {convex => backend/convex}/domains/messaging/channelProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/channels/channelIntelligence.ts (100%) rename {convex => backend/convex}/domains/messaging/channels/engagementOptimizer.ts (100%) rename {convex => backend/convex}/domains/messaging/channels/index.ts (100%) rename {convex => backend/convex}/domains/messaging/inboundPipeline.ts (100%) rename {convex => backend/convex}/domains/messaging/messagingObservability.ts (100%) rename {convex => backend/convex}/domains/messaging/messagingSecurity.ts (100%) rename {convex => backend/convex}/domains/messaging/outboundPipeline.ts (100%) rename {convex => backend/convex}/domains/messaging/providerRegistry.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/discordProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/emailProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/ntfyProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/openclawGatewayClient.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/openclawProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/slackProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/smsProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/telegramProvider.ts (100%) rename {convex => backend/convex}/domains/messaging/providers/uiProvider.ts (100%) rename {convex => backend/convex}/domains/missions/costQueries.ts (100%) rename {convex => backend/convex}/domains/missions/index.ts (100%) rename {convex => backend/convex}/domains/missions/missionOrchestrator.ts (100%) rename {convex => backend/convex}/domains/missions/preExecutionGate.ts (100%) rename {convex => backend/convex}/domains/missions/preExecutionGateQueries.ts (100%) rename {convex => backend/convex}/domains/missions/schema.ts (100%) rename {convex => backend/convex}/domains/models/autonomousModelResolver.ts (100%) rename {convex => backend/convex}/domains/models/freeModelDiscovery.ts (100%) rename {convex => backend/convex}/domains/models/index.ts (100%) rename {convex => backend/convex}/domains/models/livePerformanceEval.ts (100%) rename {convex => backend/convex}/domains/models/modelRouter.ts (100%) rename {convex => backend/convex}/domains/models/modelRouterQueries.ts (100%) rename {convex => backend/convex}/domains/monitoring/gdeltSeed.ts (100%) rename {convex => backend/convex}/domains/monitoring/industryUpdates.ts (100%) rename {convex => backend/convex}/domains/monitoring/industryUpdatesEnhanced.ts (100%) rename {convex => backend/convex}/domains/monitoring/integrationHelpers.ts (100%) rename {convex => backend/convex}/domains/monitoring/publicTrendingSeed.test.ts (100%) rename {convex => backend/convex}/domains/monitoring/publicTrendingSeed.ts (100%) rename {convex => backend/convex}/domains/monitoring/worldMonitor.ts (100%) rename {convex => backend/convex}/domains/narrative/actions/competingExplanations.ts (100%) rename {convex => backend/convex}/domains/narrative/actions/hypothesisLifecycle.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/briefAdapter.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/feedAdapter.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/index.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/linkedinAdapter.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/pipelineQueries.ts (100%) rename {convex => backend/convex}/domains/narrative/adapters/types.ts (100%) rename {convex => backend/convex}/domains/narrative/contracts/eventClassificationContract.ts (100%) rename {convex => backend/convex}/domains/narrative/cronHandlers.ts (100%) rename {convex => backend/convex}/domains/narrative/crons.ts (100%) rename {convex => backend/convex}/domains/narrative/didYouKnow.ts (100%) rename {convex => backend/convex}/domains/narrative/didYouKnowSources.ts (100%) rename {convex => backend/convex}/domains/narrative/experiments/freshNewsDidYouKnowExperiment.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/claimClassificationGate.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/claimClassificationGateQueries.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/claimClassifier.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/contentRights.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/index.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/injectionContainment.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/quarantine.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/selfCitationGuard.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/trustScoring.ts (100%) rename {convex => backend/convex}/domains/narrative/guards/truthMaintenance.ts (100%) rename {convex => backend/convex}/domains/narrative/index.ts (100%) rename {convex => backend/convex}/domains/narrative/integrations/hooks.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/correlations.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/dedup.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/disputes.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/events.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/evidence.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/hypotheses.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/policyEnforcedOps.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/posts.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/replies.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/searchLog.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/signalMetrics.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/temporalFacts.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/threads.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/toolReplay.ts (100%) rename {convex => backend/convex}/domains/narrative/mutations/workflowTrace.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/analystAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/commentHarvester.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/curatorAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/historianAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/index.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/publisherAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/scoutAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/agents/signalCollectorAgent.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/recordReplayLane.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/state.ts (100%) rename {convex => backend/convex}/domains/narrative/newsroom/workflow.ts (100%) rename {convex => backend/convex}/domains/narrative/policies/contentRights.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/correlations.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/disputes.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/events.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/hypotheses.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/posts.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/searchLog.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/signalMetrics.ts (100%) rename {convex => backend/convex}/domains/narrative/queries/threads.ts (100%) rename {convex => backend/convex}/domains/narrative/safety/abuseResistance.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/__tests__/goldenSetIntegration.live.test.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/__tests__/workflowValidation.test.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/CHANGELOG.md (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/GOVERNANCE.md (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/README.md (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/drane_golden_set.schema.json (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/generatedCases.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/suite.example.json (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/suites/drane_audit_v1.json (100%) rename {convex => backend/convex}/domains/narrative/tests/goldenSets/types.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/qaFramework.ts (100%) rename {convex => backend/convex}/domains/narrative/tests/validatePipeline.ts (100%) rename {convex => backend/convex}/domains/narrative/truth/truthStateManager.ts (100%) rename {convex => backend/convex}/domains/narrative/validators.ts (100%) rename {convex => backend/convex}/domains/observability/dashboardData.ts (100%) rename {convex => backend/convex}/domains/observability/healthMonitor.ts (100%) rename {convex => backend/convex}/domains/observability/index.ts (100%) rename {convex => backend/convex}/domains/observability/selfHealer.ts (100%) rename {convex => backend/convex}/domains/observability/telemetry.ts (100%) rename {convex => backend/convex}/domains/observability/traces.ts (100%) rename {convex => backend/convex}/domains/openclaw/executionEngine.ts (100%) rename {convex => backend/convex}/domains/openclaw/forecastHandoffPolicy.test.ts (100%) rename {convex => backend/convex}/domains/openclaw/forecastHandoffPolicy.ts (100%) rename {convex => backend/convex}/domains/openclaw/monitoring.ts (100%) rename {convex => backend/convex}/domains/openclaw/schema.ts (100%) rename {convex => backend/convex}/domains/openclaw/sessionManager.ts (100%) rename {convex => backend/convex}/domains/openclaw/tools/openclawAgentTools.ts (100%) rename {convex => backend/convex}/domains/openclaw/workflowManager.ts (100%) rename {convex => backend/convex}/domains/operations/__tests__/autonomousControlTower.auth.test.ts (100%) rename {convex => backend/convex}/domains/operations/__tests__/autonomousControlTower.test.ts (100%) rename {convex => backend/convex}/domains/operations/__tests__/selfMaintenanceChecks.test.ts (100%) rename {convex => backend/convex}/domains/operations/adminAuditLog.ts (100%) rename {convex => backend/convex}/domains/operations/autonomousControlTower.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/deltaCollector.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/mutations.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/promptBuilder.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/queries.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/runner.ts (100%) rename {convex => backend/convex}/domains/operations/batchAutopilot/scheduler.ts (100%) rename {convex => backend/convex}/domains/operations/bugLoop.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/encounterCapture.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/encounterFastPass.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/encounterMutations.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/encounterQueries.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/index.ts (100%) rename {convex => backend/convex}/domains/operations/encounters/types.ts (100%) rename {convex => backend/convex}/domains/operations/gameDayTracking.ts (100%) rename {convex => backend/convex}/domains/operations/governance/provenanceExplainer.ts (100%) rename {convex => backend/convex}/domains/operations/governance/quarantine.ts (100%) rename {convex => backend/convex}/domains/operations/governance/trustPolicy.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/adjudicationWorkflow.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/decisions.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/distributionDriftDetection.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/labelerCalibration.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/labelingQueue.ts (100%) rename {convex => backend/convex}/domains/operations/hitl/validationWorkspaceEnforcement.ts (100%) rename {convex => backend/convex}/domains/operations/mcpRateLimiting.ts (100%) rename {convex => backend/convex}/domains/operations/mcpSecurity.ts (100%) rename {convex => backend/convex}/domains/operations/monitoring/industryUpdates.ts (100%) rename {convex => backend/convex}/domains/operations/monitoring/industryUpdatesEnhanced.ts (100%) rename {convex => backend/convex}/domains/operations/monitoring/integrationHelpers.ts (100%) rename {convex => backend/convex}/domains/operations/observability/dashboardData.ts (100%) rename {convex => backend/convex}/domains/operations/observability/healthMonitor.ts (100%) rename {convex => backend/convex}/domains/operations/observability/index.ts (100%) rename {convex => backend/convex}/domains/operations/observability/selfHealer.ts (100%) rename {convex => backend/convex}/domains/operations/observability/telemetry.ts (100%) rename {convex => backend/convex}/domains/operations/observability/traces.ts (100%) rename {convex => backend/convex}/domains/operations/personaChangeTracking.ts (100%) rename {convex => backend/convex}/domains/operations/postExecutionHygiene.ts (100%) rename {convex => backend/convex}/domains/operations/privacyEnforcement.ts (100%) rename {convex => backend/convex}/domains/operations/selfMaintenance.ts (100%) rename {convex => backend/convex}/domains/operations/selfMaintenanceChecks.ts (100%) rename {convex => backend/convex}/domains/operations/sloCalculation.ts (100%) rename {convex => backend/convex}/domains/operations/sloCollector.ts (100%) rename {convex => backend/convex}/domains/operations/sloDashboardQueries.ts (100%) rename {convex => backend/convex}/domains/operations/sloFramework.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/cronWrapper.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/index.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/mutations.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/proofPack.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/queries.ts (100%) rename {convex => backend/convex}/domains/operations/taskManager/taskManagerOwnership.auth.test.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/dailyNotes.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/eventTaskDocuments.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/index.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/userEvents.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/work.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/workflows/bankingMemoWorkflow.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/workflows/coordinatorWorkflow.ts (100%) rename {convex => backend/convex}/domains/operations/tasks/workflows/index.ts (100%) rename {convex => backend/convex}/domains/operations/telemetry/disclosureEvents.ts (100%) rename {convex => backend/convex}/domains/operations/utilities/migrations.ts (100%) rename {convex => backend/convex}/domains/operations/utilities/seedGoldenDataset.ts (100%) rename {convex => backend/convex}/domains/operations/utilities/snapshotMigrations.ts (100%) rename {convex => backend/convex}/domains/operations/validationWorkflow.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/filesystemSync.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/manifest.test.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/manifest.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/mutations.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/parser.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/queries.ts (100%) rename {convex => backend/convex}/domains/operatorProfile/template.ts (100%) rename {convex => backend/convex}/domains/oracle/index.ts (100%) rename {convex => backend/convex}/domains/oracle/mutations.ts (100%) rename {convex => backend/convex}/domains/oracle/queries.ts (100%) rename {convex => backend/convex}/domains/oracle/schema.ts (100%) rename {convex => backend/convex}/domains/personas/index.ts (100%) rename {convex => backend/convex}/domains/personas/multiPersonaSynthesizer.ts (100%) rename {convex => backend/convex}/domains/personas/personaAutonomousAgent.ts (100%) rename {convex => backend/convex}/domains/pipelines/codeGenPipeline.ts (100%) rename {convex => backend/convex}/domains/pipelines/composedPipeline.ts (100%) rename {convex => backend/convex}/domains/pipelines/designGenPipeline.ts (100%) rename {convex => backend/convex}/domains/pipelines/linkupAdapter.ts (100%) rename {convex => backend/convex}/domains/pipelines/piRuntime.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineAdmission.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineAttempt.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineDocumentHandoff.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineEvalQueries.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineMcpHttp.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineOwnership.auth.test.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineOwnership.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineRunsMutations.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineRunsQueries.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineSchedule.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineStreamMutations.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineTrace.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineTruthIsolation.test.ts (100%) rename {convex => backend/convex}/domains/pipelines/pipelineWorkflow.ts (100%) rename {convex => backend/convex}/domains/pipelines/researchPipeline.ts (100%) rename {convex => backend/convex}/domains/pipelines/researchProvenance.ts (100%) rename {convex => backend/convex}/domains/proactive/actions/emailDraftGenerator.ts (100%) rename {convex => backend/convex}/domains/proactive/actions/gmailDraftActions.ts (100%) rename {convex => backend/convex}/domains/proactive/actions/testDraftGenerator.ts (100%) rename {convex => backend/convex}/domains/proactive/actions/testOpenRouterProvider.ts (100%) rename {convex => backend/convex}/domains/proactive/actions/testSimpleDraft.ts (100%) rename {convex => backend/convex}/domains/proactive/adapters/calendarEventAdapter.ts (100%) rename {convex => backend/convex}/domains/proactive/adapters/emailEventAdapter.ts (100%) rename {convex => backend/convex}/domains/proactive/adminQueries.ts (100%) rename {convex => backend/convex}/domains/proactive/agentDispatch.ts (100%) rename {convex => backend/convex}/domains/proactive/consentMutations.ts (100%) rename {convex => backend/convex}/domains/proactive/delivery/slackDelivery.ts (100%) rename {convex => backend/convex}/domains/proactive/deliveryOrchestrator.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/BaseDetector.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/dailyBriefDetector.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/executor.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/followUpDetector.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/meetingPrepDetector.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/registry.ts (100%) rename {convex => backend/convex}/domains/proactive/detectors/types.ts (100%) rename {convex => backend/convex}/domains/proactive/mutations.ts (100%) rename {convex => backend/convex}/domains/proactive/policyGateway.ts (100%) rename {convex => backend/convex}/domains/proactive/queries.ts (100%) rename {convex => backend/convex}/domains/proactive/recomm/feedback.ts (100%) rename {convex => backend/convex}/domains/proactive/recommendations/behaviorTracking.ts (100%) rename {convex => backend/convex}/domains/proactive/recommendations/index.ts (100%) rename {convex => backend/convex}/domains/proactive/recommendations/recommendationEngine.ts (100%) rename {convex => backend/convex}/domains/proactive/schema.ts (100%) rename {convex => backend/convex}/domains/proactive/seedAdmins.ts (100%) rename {convex => backend/convex}/domains/product/activity.ts (100%) rename {convex => backend/convex}/domains/product/blockOrdering.property.test.ts (100%) rename {convex => backend/convex}/domains/product/blockOrdering.ts (100%) rename {convex => backend/convex}/domains/product/blockProsemirror.test.ts (100%) rename {convex => backend/convex}/domains/product/blockProsemirror.ts (100%) rename {convex => backend/convex}/domains/product/blocks.test.ts (100%) rename {convex => backend/convex}/domains/product/blocks.ts (100%) rename {convex => backend/convex}/domains/product/bootstrap.ts (100%) rename {convex => backend/convex}/domains/product/chat.ts (100%) rename {convex => backend/convex}/domains/product/delivery.ts (100%) rename {convex => backend/convex}/domains/product/diligenceCheckpointStructuring.test.ts (100%) rename {convex => backend/convex}/domains/product/diligenceCheckpointStructuring.ts (100%) rename {convex => backend/convex}/domains/product/diligenceJudge.ts (100%) rename {convex => backend/convex}/domains/product/diligenceLlmJudgeRuns.ts (100%) rename {convex => backend/convex}/domains/product/diligenceProjectionRuntime.test.ts (100%) rename {convex => backend/convex}/domains/product/diligenceProjectionRuntime.ts (100%) rename {convex => backend/convex}/domains/product/diligenceProjections.ts (100%) rename {convex => backend/convex}/domains/product/diligenceRunTelemetry.ts (100%) rename {convex => backend/convex}/domains/product/diligenceScratchpads.ts (100%) rename {convex => backend/convex}/domains/product/diligenceTenantIsolation.test.ts (100%) rename {convex => backend/convex}/domains/product/documents.ts (100%) rename {convex => backend/convex}/domains/product/entities.test.ts (100%) rename {convex => backend/convex}/domains/product/entities.ts (100%) rename {convex => backend/convex}/domains/product/entityMemory.ts (100%) rename {convex => backend/convex}/domains/product/eventWorkspace.test.ts (100%) rename {convex => backend/convex}/domains/product/eventWorkspace.ts (100%) rename {convex => backend/convex}/domains/product/extendedThinking.ts (100%) rename {convex => backend/convex}/domains/product/helpers.ts (100%) rename {convex => backend/convex}/domains/product/home.ts (100%) rename {convex => backend/convex}/domains/product/me.ts (100%) rename {convex => backend/convex}/domains/product/notebookPresence.ts (100%) rename {convex => backend/convex}/domains/product/notebookTracking.ts (100%) rename {convex => backend/convex}/domains/product/nudgeHelpers.ts (100%) rename {convex => backend/convex}/domains/product/nudges.ts (100%) rename {convex => backend/convex}/domains/product/pipelineReliability.ts (100%) rename {convex => backend/convex}/domains/product/pipelineRetryDispatcher.ts (100%) rename {convex => backend/convex}/domains/product/publicShares.ts (100%) rename {convex => backend/convex}/domains/product/pulseReports.ts (100%) rename {convex => backend/convex}/domains/product/reports.test.ts (100%) rename {convex => backend/convex}/domains/product/reports.ts (100%) rename {convex => backend/convex}/domains/product/schema.ts (100%) rename {convex => backend/convex}/domains/product/scratchnodeImport.test.ts (100%) rename {convex => backend/convex}/domains/product/scratchnodeImport.ts (100%) rename {convex => backend/convex}/domains/product/sessionArtifacts.ts (100%) rename {convex => backend/convex}/domains/product/shares.ts (100%) rename {convex => backend/convex}/domains/product/shell.ts (100%) rename {convex => backend/convex}/domains/product/systemIntelligence.ts (100%) rename {convex => backend/convex}/domains/product/userWikiMaintainer.scenarios.test.ts (100%) rename {convex => backend/convex}/domains/product/userWikiMaintainer.test.ts (100%) rename {convex => backend/convex}/domains/product/userWikiMaintainer.ts (100%) rename {convex => backend/convex}/domains/product/userWikiSchema.ts (100%) rename {convex => backend/convex}/domains/product/visibilityBackfill.ts (100%) rename {convex => backend/convex}/domains/product/wikiDreamingEvalProduction.ts (100%) rename {convex => backend/convex}/domains/product/wikiDreamingEvaluation.ts (100%) rename {convex => backend/convex}/domains/product/wikiDreamingEvaluationNatural.ts (100%) rename {convex => backend/convex}/domains/product/wikiDreamingGraph.ts (100%) rename {convex => backend/convex}/domains/product/wikiDreamingQueries.ts (100%) rename {convex => backend/convex}/domains/product/wikiStagingMutations.ts (100%) rename {convex => backend/convex}/domains/profiler/mutations.ts (100%) rename {convex => backend/convex}/domains/profiler/queries.ts (100%) rename {convex => backend/convex}/domains/publicResearch/actions.ts (100%) rename {convex => backend/convex}/domains/publicResearch/core.ts (100%) rename {convex => backend/convex}/domains/publishing/deliveryQueue.ts (100%) rename {convex => backend/convex}/domains/publishing/index.ts (100%) rename {convex => backend/convex}/domains/publishing/publishingOrchestrator.ts (100%) rename {convex => backend/convex}/domains/quickCapture/index.ts (100%) rename {convex => backend/convex}/domains/quickCapture/quickCapture.ts (100%) rename {convex => backend/convex}/domains/quickCapture/voiceMemos.ts (100%) rename {convex => backend/convex}/domains/recomm/feedback.ts (100%) rename {convex => backend/convex}/domains/recommendations/behaviorTracking.ts (100%) rename {convex => backend/convex}/domains/recommendations/index.ts (100%) rename {convex => backend/convex}/domains/recommendations/recommendationEngine.ts (100%) rename {convex => backend/convex}/domains/redesign/agentRunFeedback.ts (100%) rename {convex => backend/convex}/domains/redesign/chatRuns.contract.test.ts (100%) rename {convex => backend/convex}/domains/redesign/chatRuns.responseShape.test.ts (100%) rename {convex => backend/convex}/domains/redesign/chatRuns.ts (100%) rename {convex => backend/convex}/domains/redesign/documentPatches.ts (100%) rename {convex => backend/convex}/domains/redesign/inboxSnoozes.ts (100%) rename {convex => backend/convex}/domains/redesign/reportGraphNeighborhood.ts (100%) rename {convex => backend/convex}/domains/redesign/reportTopology.ts (100%) rename {convex => backend/convex}/domains/redesign/reportTopologyRuntime.test.ts (100%) rename {convex => backend/convex}/domains/redesign/reportTopologyRuntime.ts (100%) rename {convex => backend/convex}/domains/redesign/styleProfile.ts (100%) rename {convex => backend/convex}/domains/redesign/universes.ts (100%) rename {convex => backend/convex}/domains/research/angleRegistry.ts (100%) rename {convex => backend/convex}/domains/research/autonomousResearcher.ts (100%) rename {convex => backend/convex}/domains/research/briefGenerator.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefInitializer.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefMemoryMutations.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefMemoryQueries.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefPersonalOverlay.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefPersonalOverlayMutations.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefPersonalOverlayQueries.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefSourceVerification.ts (100%) rename {convex => backend/convex}/domains/research/dailyBriefWorker.ts (100%) rename {convex => backend/convex}/domains/research/dashboardMetrics.ts (100%) rename {convex => backend/convex}/domains/research/dashboardMutations.ts (100%) rename {convex => backend/convex}/domains/research/dashboardQueries.ts (100%) rename {convex => backend/convex}/domains/research/dealFlow.ts (100%) rename {convex => backend/convex}/domains/research/dealFlowQueries.ts (100%) rename {convex => backend/convex}/domains/research/documentDiscovery.ts (100%) rename {convex => backend/convex}/domains/research/editionQueries.test.ts (100%) rename {convex => backend/convex}/domains/research/editionQueries.ts (100%) rename {convex => backend/convex}/domains/research/editionScoreboardSeed.test.ts (100%) rename {convex => backend/convex}/domains/research/editionScoreboardSeed.ts (100%) rename {convex => backend/convex}/domains/research/entities/decayManager.ts (100%) rename {convex => backend/convex}/domains/research/entities/entityLifecycle.ts (100%) rename {convex => backend/convex}/domains/research/entities/index.ts (100%) rename {convex => backend/convex}/domains/research/executiveBrief.ts (100%) rename {convex => backend/convex}/domains/research/expandResource.ts (100%) rename {convex => backend/convex}/domains/research/financial/balanceSheetFetcher.ts (100%) rename {convex => backend/convex}/domains/research/financial/corporateActions.ts (100%) rename {convex => backend/convex}/domains/research/financial/corrections.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfBuilder.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfEvaluator.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfOrchestrator.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfProgress.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfSpreadsheetAdapter.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfSpreadsheetMapping.ts (100%) rename {convex => backend/convex}/domains/research/financial/dcfTools.ts (100%) rename {convex => backend/convex}/domains/research/financial/financialAnalystAgent.ts (100%) rename {convex => backend/convex}/domains/research/financial/fundamentals.ts (100%) rename {convex => backend/convex}/domains/research/financial/groundTruthFetcher.ts (100%) rename {convex => backend/convex}/domains/research/financial/groundTruthManager.ts (100%) rename {convex => backend/convex}/domains/research/financial/inconclusiveOnFailure.ts (100%) rename {convex => backend/convex}/domains/research/financial/index.ts (100%) rename {convex => backend/convex}/domains/research/financial/interactiveDCFSession.ts (100%) rename {convex => backend/convex}/domains/research/financial/modelRiskGovernance.ts (100%) rename {convex => backend/convex}/domains/research/financial/reportGenerator.ts (100%) rename {convex => backend/convex}/domains/research/financial/restatementPolicy.ts (100%) rename {convex => backend/convex}/domains/research/financial/secEdgarClient.ts (100%) rename {convex => backend/convex}/domains/research/financial/sensitivityAnalysis.ts (100%) rename {convex => backend/convex}/domains/research/financial/taxonomyManagement.ts (100%) rename {convex => backend/convex}/domains/research/financial/validation.ts (100%) rename {convex => backend/convex}/domains/research/financial/xbrlParser.ts (100%) rename {convex => backend/convex}/domains/research/forYouFeed.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/actions/computeCalibration.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/actions/createForecast.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/actions/refreshForecast.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/actions/resolveForecast.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/cronHandlers/dailyForecastRefresh.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/cronHandlers/resolutionCheck.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/cronHandlers/weeklyCalibration.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/forecastManager.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/schema.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/scoringEngine.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/seedEvergreenForecasts.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/signalMatcher.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/traceWrapper.ts (100%) rename {convex => backend/convex}/domains/research/forecasting/validators.ts (100%) rename {convex => backend/convex}/domains/research/githubExplorer.ts (100%) rename {convex => backend/convex}/domains/research/hydrateEntities.ts (100%) rename {convex => backend/convex}/domains/research/index.ts (100%) rename {convex => backend/convex}/domains/research/jobResearchAction.ts (100%) rename {convex => backend/convex}/domains/research/lensRegistry.ts (100%) rename {convex => backend/convex}/domains/research/mcpServerCountSeed.ts (100%) rename {convex => backend/convex}/domains/research/modelComparison.ts (100%) rename {convex => backend/convex}/domains/research/modelComparisonQueries.ts (100%) rename {convex => backend/convex}/domains/research/narrative/actions/competingExplanations.ts (100%) rename {convex => backend/convex}/domains/research/narrative/actions/hypothesisLifecycle.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/briefAdapter.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/feedAdapter.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/index.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/linkedinAdapter.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/pipelineQueries.ts (100%) rename {convex => backend/convex}/domains/research/narrative/adapters/types.ts (100%) rename {convex => backend/convex}/domains/research/narrative/contracts/eventClassificationContract.ts (100%) rename {convex => backend/convex}/domains/research/narrative/cronHandlers.ts (100%) rename {convex => backend/convex}/domains/research/narrative/crons.ts (100%) rename {convex => backend/convex}/domains/research/narrative/didYouKnow.ts (100%) rename {convex => backend/convex}/domains/research/narrative/didYouKnowSources.ts (100%) rename {convex => backend/convex}/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/claimClassificationGate.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/claimClassificationGateQueries.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/claimClassifier.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/contentRights.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/index.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/injectionContainment.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/quarantine.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/selfCitationGuard.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/trustScoring.ts (100%) rename {convex => backend/convex}/domains/research/narrative/guards/truthMaintenance.ts (100%) rename {convex => backend/convex}/domains/research/narrative/index.ts (100%) rename {convex => backend/convex}/domains/research/narrative/integrations/hooks.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/correlations.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/dedup.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/disputes.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/events.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/evidence.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/hypotheses.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/policyEnforcedOps.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/posts.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/replies.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/searchLog.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/signalMetrics.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/temporalFacts.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/threads.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/toolReplay.ts (100%) rename {convex => backend/convex}/domains/research/narrative/mutations/workflowTrace.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/analystAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/commentHarvester.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/curatorAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/historianAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/index.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/publisherAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/scoutAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/agents/signalCollectorAgent.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/recordReplayLane.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/state.ts (100%) rename {convex => backend/convex}/domains/research/narrative/newsroom/workflow.ts (100%) rename {convex => backend/convex}/domains/research/narrative/policies/contentRights.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/correlations.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/disputes.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/events.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/hypotheses.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/posts.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/searchLog.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/signalMetrics.ts (100%) rename {convex => backend/convex}/domains/research/narrative/queries/threads.ts (100%) rename {convex => backend/convex}/domains/research/narrative/safety/abuseResistance.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/__tests__/goldenSetIntegration.live.test.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/__tests__/workflowValidation.test.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/CHANGELOG.md (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/GOVERNANCE.md (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/README.md (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/drane_golden_set.schema.json (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/generatedCases.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/suite.example.json (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/suites/drane_audit_v1.json (100%) rename {convex => backend/convex}/domains/research/narrative/tests/goldenSets/types.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/qaFramework.ts (100%) rename {convex => backend/convex}/domains/research/narrative/tests/validatePipeline.ts (100%) rename {convex => backend/convex}/domains/research/narrative/truth/truthStateManager.ts (100%) rename {convex => backend/convex}/domains/research/narrative/validators.ts (100%) rename {convex => backend/convex}/domains/research/paperDetails.ts (100%) rename {convex => backend/convex}/domains/research/paperDetailsQueries.ts (100%) rename {convex => backend/convex}/domains/research/publicDossier.ts (100%) rename {convex => backend/convex}/domains/research/publicDossierQueries.ts (100%) rename {convex => backend/convex}/domains/research/readerContent.ts (100%) rename {convex => backend/convex}/domains/research/repoScout.ts (100%) rename {convex => backend/convex}/domains/research/repoScoutQueries.ts (100%) rename {convex => backend/convex}/domains/research/repoStats.ts (100%) rename {convex => backend/convex}/domains/research/repoStatsQueries.ts (100%) rename {convex => backend/convex}/domains/research/researchQueue.ts (100%) rename {convex => backend/convex}/domains/research/researchRunAction.ts (100%) rename {convex => backend/convex}/domains/research/researchSessionBenchmark.ts (100%) rename {convex => backend/convex}/domains/research/researchSessionJit.ts (100%) rename {convex => backend/convex}/domains/research/researchSessionLifecycle.ts (100%) rename {convex => backend/convex}/domains/research/researchSessionOrchestrator.ts (100%) rename {convex => backend/convex}/domains/research/researchSessionSmoke.ts (100%) rename {convex => backend/convex}/domains/research/seedEditorialHypotheses.ts (100%) rename {convex => backend/convex}/domains/research/semanticDeduplicator.ts (100%) rename {convex => backend/convex}/domains/research/semanticDeduplicatorQueries.ts (100%) rename {convex => backend/convex}/domains/research/signalTimeseries.ts (100%) rename {convex => backend/convex}/domains/research/stackImpact.ts (100%) rename {convex => backend/convex}/domains/research/stackImpactQueries.ts (100%) rename {convex => backend/convex}/domains/research/strategyMetrics.ts (100%) rename {convex => backend/convex}/domains/research/strategyMetricsQueries.ts (100%) rename {convex => backend/convex}/domains/search/__tests__/embedHashBackfill.test.ts (100%) rename {convex => backend/convex}/domains/search/__tests__/embedRowOnUpdate.test.ts (100%) rename {convex => backend/convex}/domains/search/analytics/__tests__/intentSignals.test.ts (100%) rename {convex => backend/convex}/domains/search/analytics/analytics.ts (100%) rename {convex => backend/convex}/domains/search/analytics/componentMetrics.ts (100%) rename {convex => backend/convex}/domains/search/analytics/intentSignals.ts (100%) rename {convex => backend/convex}/domains/search/analytics/ossStats.ts (100%) rename {convex => backend/convex}/domains/search/deepDiligence.ts (100%) rename {convex => backend/convex}/domains/search/embedHashBackfill.ts (100%) rename {convex => backend/convex}/domains/search/embedRowOnUpdate.ts (100%) rename {convex => backend/convex}/domains/search/embedSearchableText.ts (100%) rename {convex => backend/convex}/domains/search/federatedHelpers.ts (100%) rename {convex => backend/convex}/domains/search/federatedSearch.test.ts (100%) rename {convex => backend/convex}/domains/search/federatedSearch.ts (100%) rename {convex => backend/convex}/domains/search/federatedSearchCache.test.ts (100%) rename {convex => backend/convex}/domains/search/federatedSearchCache.ts (100%) rename {convex => backend/convex}/domains/search/fusion/README.md (100%) rename {convex => backend/convex}/domains/search/fusion/actions.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/arxivAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/braveAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/documentAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/fdaAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/finraAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/index.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/linkupAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/newsAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/ragAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/secAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/serperAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/stateRegistryAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/tavilyAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/usptoAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/adapters/youtubeAdapter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/advanced.ts (100%) rename {convex => backend/convex}/domains/search/fusion/benchmark.ts (100%) rename {convex => backend/convex}/domains/search/fusion/cache.ts (100%) rename {convex => backend/convex}/domains/search/fusion/crossProviderEval.ts (100%) rename {convex => backend/convex}/domains/search/fusion/debugAdapters.ts (100%) rename {convex => backend/convex}/domains/search/fusion/debugOrchestrator.ts (100%) rename {convex => backend/convex}/domains/search/fusion/index.ts (100%) rename {convex => backend/convex}/domains/search/fusion/observability.ts (100%) rename {convex => backend/convex}/domains/search/fusion/orchestrator.ts (100%) rename {convex => backend/convex}/domains/search/fusion/rateLimiter.ts (100%) rename {convex => backend/convex}/domains/search/fusion/reranker.ts (100%) rename {convex => backend/convex}/domains/search/fusion/types.ts (100%) rename {convex => backend/convex}/domains/search/hashtagDossiers.ts (100%) rename {convex => backend/convex}/domains/search/index.ts (100%) rename {convex => backend/convex}/domains/search/linkupClient.ts (100%) rename {convex => backend/convex}/domains/search/quotaManager.ts (100%) rename {convex => backend/convex}/domains/search/rag.ts (100%) rename {convex => backend/convex}/domains/search/ragEnhanced.ts (100%) rename {convex => backend/convex}/domains/search/ragEnhancedBatchIndex.ts (100%) rename {convex => backend/convex}/domains/search/ragQueries.ts (100%) rename {convex => backend/convex}/domains/search/searchCache.ts (100%) rename {convex => backend/convex}/domains/search/searchForecastGate.test.ts (100%) rename {convex => backend/convex}/domains/search/searchForecastGate.ts (100%) rename {convex => backend/convex}/domains/search/searchPipeline.ts (100%) rename {convex => backend/convex}/domains/search/searchPipelineNode.ts (100%) rename {convex => backend/convex}/domains/search/searchableTextBackfill.ts (100%) rename {convex => backend/convex}/domains/search/searchableTextRecompute.test.ts (100%) rename {convex => backend/convex}/domains/search/searchableTextRecompute.ts (100%) rename {convex => backend/convex}/domains/search/sharedCache.test.ts (100%) rename {convex => backend/convex}/domains/search/sharedCache.ts (100%) rename {convex => backend/convex}/domains/search/signalTaxonomy.ts (100%) rename {convex => backend/convex}/domains/signals/index.ts (100%) rename {convex => backend/convex}/domains/signals/signalIngester.ts (100%) rename {convex => backend/convex}/domains/signals/signalProcessor.ts (100%) rename {convex => backend/convex}/domains/social/instagramIngestion.ts (100%) rename {convex => backend/convex}/domains/social/linkedinAccounts.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveAudit.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveCleanup.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveCleanupMutations.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveEdits.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveEditsMutations.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveEntityLinks.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveMaintenance.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveMaintenanceQueries.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchivePurge.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchivePurgeMutations.ts (100%) rename {convex => backend/convex}/domains/social/linkedinArchiveQueries.ts (100%) rename {convex => backend/convex}/domains/social/linkedinContentQueue.ts (100%) rename {convex => backend/convex}/domains/social/linkedinFundingPosts.ts (100%) rename {convex => backend/convex}/domains/social/linkedinLegacyLookupQueries.ts (100%) rename {convex => backend/convex}/domains/social/linkedinOAuth.ts (100%) rename {convex => backend/convex}/domains/social/linkedinPosting.ts (100%) rename {convex => backend/convex}/domains/social/linkedinPrePostVerification.ts (100%) rename {convex => backend/convex}/domains/social/linkedinQualityJudge.ts (100%) rename {convex => backend/convex}/domains/social/linkedinScheduleGrid.ts (100%) rename {convex => backend/convex}/domains/social/linkedinUnknownCompanyFixes.ts (100%) rename {convex => backend/convex}/domains/social/postDedup.ts (100%) rename {convex => backend/convex}/domains/social/postDedupAction.ts (100%) rename {convex => backend/convex}/domains/social/publishing/deliveryQueue.ts (100%) rename {convex => backend/convex}/domains/social/publishing/index.ts (100%) rename {convex => backend/convex}/domains/social/publishing/publishingOrchestrator.ts (100%) rename {convex => backend/convex}/domains/social/specializedPostQueries.ts (100%) rename {convex => backend/convex}/domains/successLoops/index.ts (100%) rename {convex => backend/convex}/domains/successLoops/lib.ts (100%) rename {convex => backend/convex}/domains/successLoops/mutations.ts (100%) rename {convex => backend/convex}/domains/successLoops/projection.ts (100%) rename {convex => backend/convex}/domains/successLoops/queries.ts (100%) rename {convex => backend/convex}/domains/successLoops/schema.ts (100%) rename {convex => backend/convex}/domains/taskManager/cronWrapper.ts (100%) rename {convex => backend/convex}/domains/taskManager/index.ts (100%) rename {convex => backend/convex}/domains/taskManager/mutations.ts (100%) rename {convex => backend/convex}/domains/taskManager/queries.ts (100%) rename {convex => backend/convex}/domains/tasks/dailyNotes.ts (100%) rename {convex => backend/convex}/domains/tasks/eventTaskDocuments.ts (100%) rename {convex => backend/convex}/domains/tasks/index.ts (100%) rename {convex => backend/convex}/domains/tasks/userEvents.ts (100%) rename {convex => backend/convex}/domains/tasks/work.ts (100%) rename {convex => backend/convex}/domains/tasks/workflows/bankingMemoWorkflow.ts (100%) rename {convex => backend/convex}/domains/tasks/workflows/coordinatorWorkflow.ts (100%) rename {convex => backend/convex}/domains/tasks/workflows/index.ts (100%) rename {convex => backend/convex}/domains/teachability/index.ts (100%) rename {convex => backend/convex}/domains/telemetry/disclosureEvents.ts (100%) rename {convex => backend/convex}/domains/temporal/feynmanEditor.ts (100%) rename {convex => backend/convex}/domains/temporal/forecastGatePolicy.test.ts (100%) rename {convex => backend/convex}/domains/temporal/forecastGatePolicy.ts (100%) rename {convex => backend/convex}/domains/temporal/index.ts (100%) rename {convex => backend/convex}/domains/temporal/ingestion.ts (100%) rename {convex => backend/convex}/domains/temporal/ingestionUtils.test.ts (100%) rename {convex => backend/convex}/domains/temporal/ingestionUtils.ts (100%) rename {convex => backend/convex}/domains/temporal/langExtract.ts (100%) rename {convex => backend/convex}/domains/temporal/mutations.ts (100%) rename {convex => backend/convex}/domains/temporal/queries.ts (100%) rename {convex => backend/convex}/domains/temporal/schema.ts (100%) rename {convex => backend/convex}/domains/temporal/specDoc.ts (100%) rename {convex => backend/convex}/domains/testing/testingFramework.ts (100%) rename {convex => backend/convex}/domains/trajectory/index.ts (100%) rename {convex => backend/convex}/domains/trajectory/lib.ts (100%) rename {convex => backend/convex}/domains/trajectory/mutations.ts (100%) rename {convex => backend/convex}/domains/trajectory/projection.ts (100%) rename {convex => backend/convex}/domains/trajectory/queries.ts (100%) rename {convex => backend/convex}/domains/trajectory/schema.ts (100%) rename {convex => backend/convex}/domains/utilities/migrations.ts (100%) rename {convex => backend/convex}/domains/utilities/seedGoldenDataset.ts (100%) rename {convex => backend/convex}/domains/utilities/snapshotMigrations.ts (100%) rename {convex => backend/convex}/domains/validation/contradictionDetector.ts (100%) rename {convex => backend/convex}/domains/validation/index.ts (100%) rename {convex => backend/convex}/domains/validation/personaValidators.ts (100%) rename {convex => backend/convex}/domains/validation/selfQuestionAgent.ts (100%) rename {convex => backend/convex}/domains/verification/calibration.ts (100%) rename {convex => backend/convex}/domains/verification/claimVerificationAction.ts (100%) rename {convex => backend/convex}/domains/verification/claimVerificationQueries.ts (100%) rename {convex => backend/convex}/domains/verification/claimVerifications.ts (100%) rename {convex => backend/convex}/domains/verification/contradictionDetector.ts (100%) rename {convex => backend/convex}/domains/verification/contradictionDetectorQueries.ts (100%) rename {convex => backend/convex}/domains/verification/entailmentChecker.ts (100%) rename {convex => backend/convex}/domains/verification/facts.ts (100%) rename {convex => backend/convex}/domains/verification/fastVerification.ts (100%) rename {convex => backend/convex}/domains/verification/groundTruthRegistry.ts (100%) rename {convex => backend/convex}/domains/verification/index.ts (100%) rename {convex => backend/convex}/domains/verification/instagramClaimVerification.ts (100%) rename {convex => backend/convex}/domains/verification/instagramClaimVerificationMutations.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/agentVerificationAdapter.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/artifactVerification.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/feedVerification.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/index.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/linkedinVerification.ts (100%) rename {convex => backend/convex}/domains/verification/integrations/narrativeVerification.ts (100%) rename {convex => backend/convex}/domains/verification/multiSourceValidation.ts (100%) rename {convex => backend/convex}/domains/verification/publicSourceRegistry.ts (100%) rename {convex => backend/convex}/domains/verification/validation/contradictionDetector.ts (100%) rename {convex => backend/convex}/domains/verification/validation/index.ts (100%) rename {convex => backend/convex}/domains/verification/validation/personaValidators.ts (100%) rename {convex => backend/convex}/domains/verification/validation/selfQuestionAgent.ts (100%) rename {convex => backend/convex}/domains/verification/verificationAuditTrail.ts (100%) rename {convex => backend/convex}/domains/verification/verificationWorkflow.ts (100%) rename {convex => backend/convex}/domains/world/operations.ts (100%) rename {convex => backend/convex}/domains/world/schema.ts (100%) rename {convex => backend/convex}/email.ts (100%) rename {convex => backend/convex}/eventHandoff.ts (100%) rename {convex => backend/convex}/events.runtime-boundary.test.ts (100%) rename {convex => backend/convex}/events.ts (100%) rename {convex => backend/convex}/feed.ts (100%) rename {convex => backend/convex}/globalResearch/artifacts.ts (100%) rename {convex => backend/convex}/globalResearch/cacheSimple.ts (100%) rename {convex => backend/convex}/globalResearch/compaction.ts (100%) rename {convex => backend/convex}/globalResearch/index.ts (100%) rename {convex => backend/convex}/globalResearch/locks.ts (100%) rename {convex => backend/convex}/globalResearch/mentions.ts (100%) rename {convex => backend/convex}/globalResearch/queries.ts (100%) rename {convex => backend/convex}/globalResearch/runs.ts (100%) rename {convex => backend/convex}/http.ts (100%) rename {convex => backend/convex}/http/mcpMemory.ts (100%) rename {convex => backend/convex}/http/mcpPlans.ts (100%) rename {convex => backend/convex}/lib/actionItemsGenerator.ts (100%) rename {convex => backend/convex}/lib/agentCache.ts (100%) rename {convex => backend/convex}/lib/artifactModels.ts (100%) rename {convex => backend/convex}/lib/artifactPersistence.ts (100%) rename {convex => backend/convex}/lib/artifactQueries.ts (100%) rename {convex => backend/convex}/lib/artifactValidators.ts (100%) rename {convex => backend/convex}/lib/crypto.ts (100%) rename {convex => backend/convex}/lib/dossierGenerator.ts (100%) rename {convex => backend/convex}/lib/dossierHelpers.ts (100%) rename {convex => backend/convex}/lib/entityResolution.ts (100%) rename {convex => backend/convex}/lib/factValidation.ts (100%) rename {convex => backend/convex}/lib/featureFlags.ts (100%) rename {convex => backend/convex}/lib/hash.ts (100%) rename {convex => backend/convex}/lib/index.ts (100%) rename {convex => backend/convex}/lib/markdown.ts (100%) rename {convex => backend/convex}/lib/markdownToTipTap.ts (100%) rename {convex => backend/convex}/lib/mcpTransport.ts (100%) rename {convex => backend/convex}/lib/memoryLimits.ts (100%) rename {convex => backend/convex}/lib/memoryQuality.ts (100%) rename {convex => backend/convex}/lib/parallelDelegation.ts (100%) rename {convex => backend/convex}/lib/predictivePrefetch.ts (100%) rename {convex => backend/convex}/lib/streamingDelegation.ts (100%) rename {convex => backend/convex}/lib/withArtifactPersistence.ts (100%) rename {convex => backend/convex}/lib/withResourceLinkWrapping.ts (100%) rename {convex => backend/convex}/lib/xaiClient.ts (100%) rename {convex => backend/convex}/notes.ts (100%) rename {convex => backend/convex}/presence.ts (100%) rename {convex => backend/convex}/prosemirror.ts (100%) rename {convex => backend/convex}/router.ts (100%) rename {convex => backend/convex}/schema.ts (100%) rename {convex => backend/convex}/schema/apiUsage.ts (100%) rename {convex => backend/convex}/schema/emailSchema.ts (100%) rename {convex => backend/convex}/schema/eventsSchema.ts (100%) rename {convex => backend/convex}/schema/searchQuota.ts (100%) rename {convex => backend/convex}/schema/toolSearchSchema.ts (100%) rename {convex => backend/convex}/schema/usersSchema.ts (100%) rename {convex => backend/convex}/scratchnodeHandoff.ts (100%) rename {convex => backend/convex}/scratchnodeLiveCues.ts (100%) rename {convex => backend/convex}/scratchnodeRateLimit.ts (100%) rename {convex => backend/convex}/shared/actionSpan.ts (100%) rename {convex => backend/convex}/shared/actionSpanReplay.ts (100%) rename {convex => backend/convex}/shared/actionSpanReplayQueries.ts (100%) rename {convex => backend/convex}/tags.ts (100%) rename {convex => backend/convex}/tags_actions.ts (100%) rename {convex => backend/convex}/tests/fastAgentPanelStreamingTests.ts (100%) rename {convex => backend/convex}/tests/fusionSearchContractTests.ts (100%) rename {convex => backend/convex}/tools/__tests__/documentEditingLiveAPI.test.ts (100%) rename {convex => backend/convex}/tools/__tests__/multiDocumentAnalysis.test.ts (100%) rename {convex => backend/convex}/tools/__tests__/secFilingTools.test.ts (100%) rename {convex => backend/convex}/tools/__tests__/spreadsheetOperationSync.test.ts (100%) rename {convex => backend/convex}/tools/__tests__/youtubeSearch.test.ts (100%) rename {convex => backend/convex}/tools/arbitrage/analyzeWithArbitrage.ts (100%) rename {convex => backend/convex}/tools/arbitrage/index.ts (100%) rename {convex => backend/convex}/tools/calendar/calendarCrudTools.ts (100%) rename {convex => backend/convex}/tools/calendar/confirmEventSelection.ts (100%) rename {convex => backend/convex}/tools/calendar/emailEventExtractor.ts (100%) rename {convex => backend/convex}/tools/calendar/recentEventSearch.ts (100%) rename {convex => backend/convex}/tools/calendarIcs.ts (100%) rename {convex => backend/convex}/tools/calendarIcsMutations.ts (100%) rename {convex => backend/convex}/tools/context/nodebenchContextTools.ts (100%) rename {convex => backend/convex}/tools/context/resourceLinks.ts (100%) rename {convex => backend/convex}/tools/context/retrieveArtifact.ts (100%) rename {convex => backend/convex}/tools/document/contextTools.ts (100%) rename {convex => backend/convex}/tools/document/deepAgentEditTools.ts (100%) rename {convex => backend/convex}/tools/document/documentEditingLiveTest.ts (100%) rename {convex => backend/convex}/tools/document/documentTools.ts (100%) rename {convex => backend/convex}/tools/document/geminiFileSearch.ts (100%) rename {convex => backend/convex}/tools/document/hashtagSearchTools.ts (100%) rename {convex => backend/convex}/tools/dossier/dossierCrudTools.ts (100%) rename {convex => backend/convex}/tools/editDocument.ts (100%) rename {convex => backend/convex}/tools/editDocumentMutations.ts (100%) rename {convex => backend/convex}/tools/editSpreadsheet.ts (100%) rename {convex => backend/convex}/tools/editSpreadsheetMutations.ts (100%) rename {convex => backend/convex}/tools/email/emailIntelligenceParser.ts (100%) rename {convex => backend/convex}/tools/evaluation/comprehensiveTest.ts (100%) rename {convex => backend/convex}/tools/evaluation/evaluator.ts (100%) rename {convex => backend/convex}/tools/evaluation/groundTruthLookup.ts (100%) rename {convex => backend/convex}/tools/evaluation/groundTruthLookupTool.ts (100%) rename {convex => backend/convex}/tools/evaluation/helpers.ts (100%) rename {convex => backend/convex}/tools/evaluation/multiSdkLiveValidation.ts (100%) rename {convex => backend/convex}/tools/evaluation/openDatasetEval.ts (100%) rename {convex => backend/convex}/tools/evaluation/quickTest.ts (100%) rename {convex => backend/convex}/tools/evaluation/testCases.ts (100%) rename {convex => backend/convex}/tools/evaluation/testOptimizations.ts (100%) rename {convex => backend/convex}/tools/evaluation/testPersonas.ts (100%) rename {convex => backend/convex}/tools/financial/README.md (100%) rename {convex => backend/convex}/tools/financial/enhancedFundingTools.ts (100%) rename {convex => backend/convex}/tools/financial/fundingDetectionTools.ts (100%) rename {convex => backend/convex}/tools/financial/fundingResearchTools.ts (100%) rename {convex => backend/convex}/tools/integration/channelContextTools.ts (100%) rename {convex => backend/convex}/tools/integration/confirmCompanySelection.ts (100%) rename {convex => backend/convex}/tools/integration/confirmNewsSelection.ts (100%) rename {convex => backend/convex}/tools/integration/confirmPersonSelection.ts (100%) rename {convex => backend/convex}/tools/integration/dataAccessTools.ts (100%) rename {convex => backend/convex}/tools/integration/digestTools.ts (100%) rename {convex => backend/convex}/tools/integration/humanInputTools.ts (100%) rename {convex => backend/convex}/tools/integration/newsletterTools.ts (100%) rename {convex => backend/convex}/tools/integration/notificationTools.ts (100%) rename {convex => backend/convex}/tools/integration/orchestrationTools.ts (100%) rename {convex => backend/convex}/tools/integration/peopleProfileSearch.ts (100%) rename {convex => backend/convex}/tools/knowledge/clusteringTools.ts (100%) rename {convex => backend/convex}/tools/knowledge/distiller.ts (100%) rename {convex => backend/convex}/tools/knowledge/distillerPrompts.ts (100%) rename {convex => backend/convex}/tools/knowledge/entityInsightTools.ts (100%) rename {convex => backend/convex}/tools/knowledge/evidenceTools.ts (100%) rename {convex => backend/convex}/tools/knowledge/knowledgeGraphTools.ts (100%) rename {convex => backend/convex}/tools/knowledge/unifiedMemoryTools.ts (100%) rename {convex => backend/convex}/tools/media/adversarialValidation.ts (100%) rename {convex => backend/convex}/tools/media/diagnosticTest.ts (100%) rename {convex => backend/convex}/tools/media/entityExtractionTools.ts (100%) rename {convex => backend/convex}/tools/media/linkupFetch.ts (100%) rename {convex => backend/convex}/tools/media/linkupSearch.ts (100%) rename {convex => backend/convex}/tools/media/linkupStructuredSearch.ts (100%) rename {convex => backend/convex}/tools/media/llmEntityLinker.ts (100%) rename {convex => backend/convex}/tools/media/mediaTools.ts (100%) rename {convex => backend/convex}/tools/media/recentNewsSearch.ts (100%) rename {convex => backend/convex}/tools/media/testImageTools.ts (100%) rename {convex => backend/convex}/tools/media/validationTest.ts (100%) rename {convex => backend/convex}/tools/media/youtubeSearch.ts (100%) rename {convex => backend/convex}/tools/meta/actionDraftMutations.ts (100%) rename {convex => backend/convex}/tools/meta/contextEnhancement.ts (100%) rename {convex => backend/convex}/tools/meta/contextEnhancementActions.ts (100%) rename {convex => backend/convex}/tools/meta/dynamicPromptEnhancer.ts (100%) rename {convex => backend/convex}/tools/meta/hybridSearch.ts (100%) rename {convex => backend/convex}/tools/meta/hybridSearchQueries.ts (100%) rename {convex => backend/convex}/tools/meta/hybridSearchTest.ts (100%) rename {convex => backend/convex}/tools/meta/index.ts (100%) rename {convex => backend/convex}/tools/meta/promptEnhancementFeedback.ts (100%) rename {convex => backend/convex}/tools/meta/seedSkillRegistry.ts (100%) rename {convex => backend/convex}/tools/meta/seedSkillRegistryQueries.ts (100%) rename {convex => backend/convex}/tools/meta/seedToolRegistry.ts (100%) rename {convex => backend/convex}/tools/meta/seedToolRegistryQueries.ts (100%) rename {convex => backend/convex}/tools/meta/skillDiscovery.ts (100%) rename {convex => backend/convex}/tools/meta/skillDiscoveryQueries.ts (100%) rename {convex => backend/convex}/tools/meta/toolDiscovery.ts (100%) rename {convex => backend/convex}/tools/meta/toolDiscoveryV2.ts (100%) rename {convex => backend/convex}/tools/meta/toolGateway.ts (100%) rename {convex => backend/convex}/tools/meta/toolRegistry.ts (100%) rename {convex => backend/convex}/tools/reports/pdfGenerationTools.ts (100%) rename {convex => backend/convex}/tools/research/researchTools.ts (100%) rename {convex => backend/convex}/tools/search/fusionSearchTool.ts (100%) rename {convex => backend/convex}/tools/search/index.ts (100%) rename {convex => backend/convex}/tools/sec/secCompanySearch.ts (100%) rename {convex => backend/convex}/tools/sec/secFilingTools.ts (100%) rename {convex => backend/convex}/tools/security/promptInjectionProtection.ts (100%) rename {convex => backend/convex}/tools/sendEmail.ts (100%) rename {convex => backend/convex}/tools/sendEmailMutations.ts (100%) rename {convex => backend/convex}/tools/sendNotification.ts (100%) rename {convex => backend/convex}/tools/sendSms.ts (100%) rename {convex => backend/convex}/tools/shared/structuredOutput.ts (100%) rename {convex => backend/convex}/tools/social/instagramTools.ts (100%) rename {convex => backend/convex}/tools/social/linkedinTools.ts (100%) rename {convex => backend/convex}/tools/spreadsheet/FAST_AGENT_SCENARIOS.md (100%) rename {convex => backend/convex}/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md (100%) rename {convex => backend/convex}/tools/spreadsheet/README.md (100%) rename {convex => backend/convex}/tools/spreadsheet/TEST_SCENARIOS.md (100%) rename {convex => backend/convex}/tools/spreadsheet/spreadsheetCrudTools.ts (100%) rename {convex => backend/convex}/tools/spreadsheetOperationTypes.ts (100%) rename {convex => backend/convex}/tools/teachability/index.ts (100%) rename {convex => backend/convex}/tools/teachability/learnUserSkill.ts (100%) rename {convex => backend/convex}/tools/teachability/teachingAnalyzer.ts (100%) rename {convex => backend/convex}/tools/teachability/userMemoryQueries.ts (100%) rename {convex => backend/convex}/tools/teachability/userMemoryTools.ts (100%) rename {convex => backend/convex}/tools/wrappers/README.md (100%) rename {convex => backend/convex}/tools/wrappers/coreAgentTools.ts (100%) rename {convex => backend/convex}/tools/wrappers/evidenceTools.ts (100%) rename {convex => backend/convex}/tools/wrappers/resourceLinkTools.ts (100%) rename {convex => backend/convex}/tsconfig.json (100%) rename {convex => backend/convex}/users.ts (100%) rename {convex => backend/convex}/wall.ts (100%) rename {convex => backend/convex}/workflows/agentProjectIdeaPost.ts (100%) rename {convex => backend/convex}/workflows/ainewsBriefFormat.test.ts (100%) rename {convex => backend/convex}/workflows/ainewsBriefFormat.ts (100%) rename {convex => backend/convex}/workflows/dailyLinkedInPost.ts (100%) rename {convex => backend/convex}/workflows/dailyLinkedInPostMutations.ts (100%) rename {convex => backend/convex}/workflows/dailyMorningBrief.ts (100%) rename {convex => backend/convex}/workflows/deepTrace.ts (100%) rename {convex => backend/convex}/workflows/emailResearchOrchestrator.ts (100%) rename {convex => backend/convex}/workflows/endToEndQa.ts (100%) rename {convex => backend/convex}/workflows/enhancedMorningBrief.ts (100%) rename {convex => backend/convex}/workflows/enhancedWeeklySummary.ts (100%) rename {convex => backend/convex}/workflows/founderPostGenerator.ts (100%) rename {convex => backend/convex}/workflows/index.ts (100%) rename {convex => backend/convex}/workflows/linkedinTrigger.ts (100%) rename {convex => backend/convex}/workflows/prdComposerWorkflow.ts (100%) rename {convex => backend/convex}/workflows/scheduledPDFReports.ts (100%) rename {convex => backend/convex}/workflows/scheduledPDFReportsMutations.ts (100%) rename {convex => backend/convex}/workflows/sendMockBankerDigest.ts (100%) rename {convex => backend/convex}/workflows/specializedLinkedInPosts.ts (100%) rename {convex => backend/convex}/workflows/testDailyBrief.ts (100%) rename {convex => backend/convex}/workflows/weeklySourceSummary.ts (100%) rename {tests => evals}/L1-simple-lookup.spec.ts (100%) rename {tests => evals}/L2-multi-source.spec.ts (100%) rename {tests => evals}/L3-deep-research.spec.ts (100%) rename {tests => evals}/L4-content-quality.spec.ts (100%) rename {tests => evals}/README.md (100%) rename {tests => evals}/agent-chat.spec.ts (100%) rename {tests => evals}/agent-eval-suite.spec.ts (100%) rename {tests => evals}/dossier-newsletter-overflow.spec.ts (100%) rename {tests => evals}/e2e/_debug-page.mjs (100%) rename {tests => evals}/e2e/analytics-dashboards.spec.ts (100%) rename {tests => evals}/e2e/anonymous-chat-leak.spec.ts (100%) rename {tests => evals}/e2e/autonomous-operations.spec.ts (100%) rename {tests => evals}/e2e/channel-preferences.spec.ts (100%) rename {tests => evals}/e2e/cmdk-palette.spec.ts (100%) rename {tests => evals}/e2e/coordination-live.spec.ts (100%) rename {tests => evals}/e2e/dark-mode-audit.spec.ts (100%) rename {tests => evals}/e2e/dcf-spreadsheet.spec.ts (100%) rename {tests => evals}/e2e/demo-jarvis-session.spec.ts (100%) rename {tests => evals}/e2e/demo-walkthrough.spec.ts (100%) rename {tests => evals}/e2e/edition-home-mobile.spec.ts (100%) rename {tests => evals}/e2e/edition-home.spec.ts (100%) rename {tests => evals}/e2e/entity-member-invite.spec.ts (100%) rename {tests => evals}/e2e/entity-notebook-regression.spec.ts (100%) rename {tests => evals}/e2e/entity-share-permissions.spec.ts (100%) rename {tests => evals}/e2e/exact-kit-parity-prod.spec.ts (100%) rename {tests => evals}/e2e/fast-agent-panel.spec.ts (100%) rename {tests => evals}/e2e/fixtures/server-fixture.ts (100%) rename {tests => evals}/e2e/founder-strategy.spec.ts (100%) rename {tests => evals}/e2e/full-ui-dogfood.spec.ts (100%) rename {tests => evals}/e2e/helpers/avatarPulse.ts (100%) rename {tests => evals}/e2e/helpers/entityNotebook.ts (100%) rename {tests => evals}/e2e/helpers/vercelPreview.ts (100%) rename {tests => evals}/e2e/home-v2-parity.spec.ts (100%) rename {tests => evals}/e2e/home-v5-output-contract.spec.ts (100%) rename {tests => evals}/e2e/live-smoke-mobile.spec.ts (100%) rename {tests => evals}/e2e/live-smoke.spec.ts (100%) rename {tests => evals}/e2e/one-flow-regression.spec.ts (100%) rename {tests => evals}/e2e/persona-ship-demo-day-agent-browser.spec.ts (100%) rename {tests => evals}/e2e/persona-ship-demo-day.spec.ts (100%) rename {tests => evals}/e2e/pr77-me-anchor-nav.spec.ts (100%) rename {tests => evals}/e2e/pr79-memory-pulse-honest.spec.ts (100%) rename {tests => evals}/e2e/product-shell-smoke.spec.ts (100%) rename {tests => evals}/e2e/proto-live-backend-dogfood.spec.ts (100%) rename {tests => evals}/e2e/redesign-graph-readability.spec.ts (100%) rename {tests => evals}/e2e/redesign-runtime-route-ownership.spec.ts (100%) rename {tests => evals}/e2e/report-notebook-actions.spec.ts (100%) rename {tests => evals}/e2e/scenario-regression.spec.ts (100%) rename {tests => evals}/e2e/scenario-visual-ingestion.spec.ts (100%) rename {tests => evals}/e2e/scratchnode-demo-route-gate.spec.ts (100%) rename {tests => evals}/e2e/scratchnode-live-route-honesty.spec.ts (100%) rename {tests => evals}/e2e/scratchnode-public-wiki.spec.ts (100%) rename {tests => evals}/e2e/swr-cache-notice.spec.ts (100%) rename {tests => evals}/e2e/test-duplicate-fix.spec.ts (100%) rename {tests => evals}/e2e/trust-infrastructure-routes.spec.ts (100%) rename {tests => evals}/e2e/ui-contract-runner.spec.ts (100%) rename {tests => evals}/e2e/ui-dive-regression.spec.ts (100%) rename {tests => evals}/e2e/vercel-preview-security.spec.ts (100%) rename {tests => evals}/e2e/visual-stability-audit.spec.ts (100%) rename {tests => evals}/e2e/voice-dogfood-scenarios.spec.ts (100%) rename {tests => evals}/e2e/voice-input.spec.ts (100%) rename {tests => evals}/entity-adaptive-profile.spec.ts (100%) rename {tests => evals}/entity-hover-preview.spec.ts (100%) rename {tests => evals}/evaluation/optimizations.test.ts (100%) rename {tests => evals}/fast-agent-integration.spec.ts (100%) rename {tests => evals}/fixtures/Report_2025-12-25.pdf (100%) rename {tests => evals}/fixtures/docx_fixture.docx (100%) rename {tests => evals}/fixtures/financials.csv (100%) rename {tests => evals}/fixtures/gemini-qa-results/QA_SYNTHESIS_REPORT.md (100%) rename {tests => evals}/fixtures/gemini-qa-results/agentic-reliability-audit.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/claude-judge-results.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/claude-judge-summary.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/gemini-3.1-flash-lite-scores.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/gemini-3.1-flash-lite-summary.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/gemini-qa-scores.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/gemini-qa-summary.json (100%) rename {tests => evals}/fixtures/gemini-qa-results/learnings.json (100%) rename {tests => evals}/fixtures/pptx_fixture.pptx (100%) rename {tests => evals}/fixtures/premium-audit/01-home.png (100%) rename {tests => evals}/fixtures/premium-audit/02-chat.png (100%) rename {tests => evals}/fixtures/premium-audit/03-pricing.png (100%) rename {tests => evals}/fixtures/premium-audit/04-inbox.png (100%) rename {tests => evals}/fixtures/premium-audit/05-me.png (100%) rename {tests => evals}/fixtures/zip_fixture.zip (100%) rename {tests => evals}/funding-detection-agent.spec.ts (100%) rename {tests => evals}/linkupSmoke.js (100%) rename {tests => evals}/linkupSmoke.mjs (100%) rename {tests => evals}/performance-lighthouse.spec.ts (100%) rename {tests => evals}/prompts/jarvis-voice-e2e-agent.md (100%) rename {tests => evals}/prompts/sentinel-self-test.md (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/after-answer-dark-desktop-scrolled.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/after-answer-dark-desktop.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/after-answer-dark-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/after-answer-light-desktop.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/motion-frame-280ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/motion-frame-40ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-answer-arrival/motion-frame-980ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/after-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/after-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/before-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/before-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-chip-label-reduction/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/after-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/after-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/after-interaction-report-context.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/before-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/before-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/before-interaction-report-context.png (100%) rename {docs/design => proof}/ui-contract/20260717-design-nitpick/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/after-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/after-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/after-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/after-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/before-decision-workspace-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/before-decision-workspace-mobile-light.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/before-decision-workspace-mobile.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/before-decision-workspace.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/motion-frame-0ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/motion-frame-1280ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/motion-frame-380ms.png (100%) rename {docs/design => proof}/ui-contract/20260717-ember-landing/motion-reduced-motion-static.png (100%) rename {docs/design => proof}/ui-contract/20260717-run-theater-friction/after-landing-example-link.png (100%) rename {docs/design => proof}/ui-contract/20260717-run-theater-friction/after-one-click-journey-destination.png (100%) rename {docs/design => proof}/ui-contract/20260717-run-theater-friction/after-run-thread-complete.png (100%) rename {docs/design => proof}/ui-contract/20260717-run-theater-friction/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark-expanded.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/after-chat-desktop-light.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/after-chat-mobile-dark.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/before-memo-desktop-dark.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-interface/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-dark-expanded.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-collapsed.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-expanded.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-b/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-c/after-both-turns-collapsed.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted-expanded.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-c/after-plain-adopted.png (100%) rename {docs/design => proof}/ui-contract/20260718-one-chat-phase-c/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260718-polish-chat-answer/manifest.json (100%) rename {docs/design => proof}/ui-contract/20260718-polish-chat-answer/polish-after-dark.png (100%) rename {docs/design => proof}/ui-contract/20260718-polish-chat-answer/polish-after-light.png (100%) rename {docs/design => proof}/ui-contract/20260718-polish-chat-answer/polish-before-dark.png (100%) rename {docs/design => proof}/ui-contract/20260718-polish-chat-answer/polish-before-light.png (100%) rename {docs/design => proof}/ui-contract/20260718-showcase-receipt/after-click-through-verified.png (100%) rename {docs/design => proof}/ui-contract/20260718-showcase-receipt/after-example-destination-showcase.png (100%) rename {docs/design => proof}/ui-contract/20260718-showcase-receipt/before-example-destination-qa-receipt.png (100%) rename {docs/design => proof}/ui-contract/20260718-showcase-receipt/manifest.json (100%) rename {docs/design => proof}/ui-contract/README.md (100%) rename {docs/design => proof}/ui-contract/SPEC.md (100%) rename {docs/design => proof}/ui-contract/manifest.schema.json (100%) rename {docs/design => proof}/ui-contract/surfaces/decision-workspace.contract.json (100%) rename {server => workers/node}/Dockerfile (100%) rename {server => workers/node}/agentHarness.test.ts (100%) rename {server => workers/node}/agentHarness.ts (100%) rename {server => workers/node}/agentHarnessStructuredOutput.test.ts (100%) rename {server => workers/node}/agents/realtimeVoicePolicy.test.ts (100%) rename {server => workers/node}/agents/realtimeVoicePolicy.ts (100%) rename {server => workers/node}/agents/voiceAgent.ts (100%) rename {server => workers/node}/claudeCodeBridge.ts (100%) rename {server => workers/node}/cloudbuild.yaml (100%) rename {server => workers/node}/commandBridge.test.ts (100%) rename {server => workers/node}/commandBridge.ts (100%) rename {server => workers/node}/harnessRuntime.test.ts (100%) rename {server => workers/node}/harnessRuntime.ts (100%) rename {server => workers/node}/hyperloopRoute.test.ts (100%) rename {server => workers/node}/index.ts (100%) rename {server => workers/node}/lib/canonicalModels.ts (100%) rename {server => workers/node}/lib/dcfModel.ts (100%) rename {server => workers/node}/lib/dcfSpreadsheetBridge.ts (100%) rename {server => workers/node}/lib/entityMemoryRecall.ts (100%) rename {server => workers/node}/lib/evidenceSpan.ts (100%) rename {server => workers/node}/lib/idGen.ts (100%) rename {server => workers/node}/lib/jsonObjectParser.test.ts (100%) rename {server => workers/node}/lib/jsonObjectParser.ts (100%) rename {server => workers/node}/lib/langgraphClient.ts (100%) rename {server => workers/node}/lib/multiSearch.ts (100%) rename {server => workers/node}/lib/painMapping.ts (100%) rename {server => workers/node}/lib/replayDetector.ts (100%) rename {server => workers/node}/lib/routingHints.ts (100%) rename {server => workers/node}/lib/searchContext.ts (100%) rename {server => workers/node}/lib/secEdgar.ts (100%) rename {server => workers/node}/lib/signalTaxonomy.ts (100%) rename {server => workers/node}/lib/skillExtractor.ts (100%) rename {server => workers/node}/lib/traceDistillation.ts (100%) rename {server => workers/node}/lib/trajectoryStore.ts (100%) rename {server => workers/node}/lib/workflowEnvelope.ts (100%) rename {server => workers/node}/lib/wrapRoute.ts (100%) rename {server => workers/node}/mcpAuth.d.ts (100%) rename {server => workers/node}/mcpAuth.js (100%) rename {server => workers/node}/mcpAuth.js.map (100%) rename {server => workers/node}/mcpAuth.ts (100%) rename {server => workers/node}/mcpGateway.ts (100%) rename {server => workers/node}/mcpSession.ts (100%) rename {server => workers/node}/nemoclaw/agentRunner.ts (100%) rename {server => workers/node}/nemoclaw/auditLog.ts (100%) rename {server => workers/node}/nemoclaw/chatGateway.ts (100%) rename {server => workers/node}/nemoclaw/codebaseContext.ts (100%) rename {server => workers/node}/nemoclaw/desktopControl.ts (100%) rename {server => workers/node}/nemoclaw/index.ts (100%) rename {server => workers/node}/nemoclaw/judge.ts (100%) rename {server => workers/node}/nemoclaw/processControl.ts (100%) rename {server => workers/node}/nemoclaw/telegramBot.ts (100%) rename {server => workers/node}/nemoclaw/test-judge.ts (100%) rename {server => workers/node}/nemoclaw/test-live.ts (100%) rename {server => workers/node}/nemoclaw/test-screenshot.ts (100%) rename {server => workers/node}/nemoclaw/test.ts (100%) rename {server => workers/node}/nemoclaw/videoCapture.ts (100%) rename {server => workers/node}/pipeline/authority/defaultTiers.test.ts (100%) rename {server => workers/node}/pipeline/authority/defaultTiers.ts (100%) rename {server => workers/node}/pipeline/blocks/founder.test.ts (100%) rename {server => workers/node}/pipeline/blocks/founder.ts (100%) rename {server => workers/node}/pipeline/blocks/types.ts (100%) rename {server => workers/node}/pipeline/changeDetector.test.ts (100%) rename {server => workers/node}/pipeline/changeDetector.ts (100%) rename {server => workers/node}/pipeline/diligenceJudge.test.ts (100%) rename {server => workers/node}/pipeline/diligenceJudge.ts (100%) rename {server => workers/node}/pipeline/diligenceLlmJudge.test.ts (100%) rename {server => workers/node}/pipeline/diligenceLlmJudge.ts (100%) rename {server => workers/node}/pipeline/diligenceProjectionWriter.test.ts (100%) rename {server => workers/node}/pipeline/diligenceProjectionWriter.ts (100%) rename {server => workers/node}/pipeline/extendedThinkingRunner.test.ts (100%) rename {server => workers/node}/pipeline/extendedThinkingRunner.ts (100%) rename {server => workers/node}/pipeline/grounding/index.test.ts (100%) rename {server => workers/node}/pipeline/grounding/index.ts (100%) rename {server => workers/node}/pipeline/hooks.ts (100%) rename {server => workers/node}/pipeline/retryPolicy.test.ts (100%) rename {server => workers/node}/pipeline/retryPolicy.ts (100%) rename {server => workers/node}/pipeline/searchPipeline.test.ts (100%) rename {server => workers/node}/pipeline/searchPipeline.ts (100%) rename {server => workers/node}/pipeline/topicCompaction.test.ts (100%) rename {server => workers/node}/pipeline/topicCompaction.ts (100%) rename {server => workers/node}/pricingScraper.ts (100%) rename {server => workers/node}/providerBus.d.ts (100%) rename {server => workers/node}/providerBus.js (100%) rename {server => workers/node}/providerBus.js.map (100%) rename {server => workers/node}/providerBus.ts (100%) rename {server => workers/node}/routes/execute.ts (100%) rename {server => workers/node}/routes/founderEpisodeConvex.ts (100%) rename {server => workers/node}/routes/harness.ts (100%) rename {server => workers/node}/routes/hyperloop.ts (100%) rename {server => workers/node}/routes/improvementRoute.ts (100%) rename {server => workers/node}/routes/pipelineRoute.ts (100%) rename {server => workers/node}/routes/productRoutes.ts (100%) rename {server => workers/node}/routes/retentionBridge.ts (100%) rename {server => workers/node}/routes/search.ts (100%) rename {server => workers/node}/routes/session.ts (100%) rename {server => workers/node}/routes/share.ts (100%) rename {server => workers/node}/routes/sharedContext.ts (100%) rename {server => workers/node}/routes/sharedContextConvex.ts (100%) rename {server => workers/node}/routes/streamingSearch.ts (100%) rename {server => workers/node}/routes/subconscious.ts (100%) rename {server => workers/node}/routes/toolGraph.ts (100%) rename {server => workers/node}/routes/tts.ts (100%) rename {server => workers/node}/routes/voiceCapture.ts (100%) rename {server => workers/node}/routes/watchlist.ts (100%) rename {server => workers/node}/routes/workspaceSync.ts (100%) rename {server => workers/node}/searchPipelineStateToResultPacket.test.ts (100%) rename {server => workers/node}/searchRoute.test.ts (100%) rename {server => workers/node}/services/agentRouter.ts (100%) rename {server => workers/node}/services/sessionManager.ts (100%) rename {server => workers/node}/sharedContextRoute.test.ts (100%) rename {server => workers/node}/streamingSearchRoute.test.ts (100%) rename {server => workers/node}/stressTest.ts (100%) rename {server => workers/node}/syncBridge.test.ts (100%) rename {server => workers/node}/syncBridge.ts (100%) rename {server => workers/node}/tsconfig.json (100%) rename {server => workers/node}/vercel/searchApp.ts (100%) diff --git a/goals/AGENT_LOOP.md b/adw/goals/AGENT_LOOP.md similarity index 100% rename from goals/AGENT_LOOP.md rename to adw/goals/AGENT_LOOP.md diff --git a/goals/GOVERNANCE.md b/adw/goals/GOVERNANCE.md similarity index 100% rename from goals/GOVERNANCE.md rename to adw/goals/GOVERNANCE.md diff --git a/goals/HARD_GATES.md b/adw/goals/HARD_GATES.md similarity index 100% rename from goals/HARD_GATES.md rename to adw/goals/HARD_GATES.md diff --git a/goals/README.md b/adw/goals/README.md similarity index 100% rename from goals/README.md rename to adw/goals/README.md diff --git a/goals/_TEMPLATE.md b/adw/goals/_TEMPLATE.md similarity index 100% rename from goals/_TEMPLATE.md rename to adw/goals/_TEMPLATE.md diff --git a/goals/nodebench/001-event-handoff.md b/adw/goals/nodebench/001-event-handoff.md similarity index 100% rename from goals/nodebench/001-event-handoff.md rename to adw/goals/nodebench/001-event-handoff.md diff --git a/goals/nodebench/002-self-improvement-loop-live-signal-convex.md b/adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md similarity index 100% rename from goals/nodebench/002-self-improvement-loop-live-signal-convex.md rename to adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md diff --git a/goals/prompts/README.md b/adw/goals/prompts/README.md similarity index 100% rename from goals/prompts/README.md rename to adw/goals/prompts/README.md diff --git a/goals/prompts/agent-library.md b/adw/goals/prompts/agent-library.md similarity index 100% rename from goals/prompts/agent-library.md rename to adw/goals/prompts/agent-library.md diff --git a/goals/reviews/.gitkeep b/adw/goals/reviews/.gitkeep similarity index 100% rename from goals/reviews/.gitkeep rename to adw/goals/reviews/.gitkeep diff --git a/goals/reviews/2026-06-02-weekly.md b/adw/goals/reviews/2026-06-02-weekly.md similarity index 100% rename from goals/reviews/2026-06-02-weekly.md rename to adw/goals/reviews/2026-06-02-weekly.md diff --git a/goals/runtime/001-public-private-boundary.md b/adw/goals/runtime/001-public-private-boundary.md similarity index 100% rename from goals/runtime/001-public-private-boundary.md rename to adw/goals/runtime/001-public-private-boundary.md diff --git a/goals/runtime/003-governance-hardening.md b/adw/goals/runtime/003-governance-hardening.md similarity index 100% rename from goals/runtime/003-governance-hardening.md rename to adw/goals/runtime/003-governance-hardening.md diff --git a/goals/scratchnode/001-first-time-user-clarity.md b/adw/goals/scratchnode/001-first-time-user-clarity.md similarity index 100% rename from goals/scratchnode/001-first-time-user-clarity.md rename to adw/goals/scratchnode/001-first-time-user-clarity.md diff --git a/goals/scratchnode/002-host-public-write-verification.md b/adw/goals/scratchnode/002-host-public-write-verification.md similarity index 100% rename from goals/scratchnode/002-host-public-write-verification.md rename to adw/goals/scratchnode/002-host-public-write-verification.md diff --git a/goals/scratchnode/003-privacy-boundary-honesty-gates.md b/adw/goals/scratchnode/003-privacy-boundary-honesty-gates.md similarity index 100% rename from goals/scratchnode/003-privacy-boundary-honesty-gates.md rename to adw/goals/scratchnode/003-privacy-boundary-honesty-gates.md diff --git a/scripts/improvement-loop/.gitignore b/adw/improvement-loop/.gitignore similarity index 100% rename from scripts/improvement-loop/.gitignore rename to adw/improvement-loop/.gitignore diff --git a/scripts/improvement-loop/convex-improvementLoop.ts.pending b/adw/improvement-loop/convex-improvementLoop.ts.pending similarity index 100% rename from scripts/improvement-loop/convex-improvementLoop.ts.pending rename to adw/improvement-loop/convex-improvementLoop.ts.pending diff --git a/scripts/improvement-loop/ledger.json b/adw/improvement-loop/ledger.json similarity index 100% rename from scripts/improvement-loop/ledger.json rename to adw/improvement-loop/ledger.json diff --git a/scripts/improvement-loop/run-cycle.mjs b/adw/improvement-loop/run-cycle.mjs similarity index 100% rename from scripts/improvement-loop/run-cycle.mjs rename to adw/improvement-loop/run-cycle.mjs diff --git a/scripts/improvement-loop/scan.mjs b/adw/improvement-loop/scan.mjs similarity index 100% rename from scripts/improvement-loop/scan.mjs rename to adw/improvement-loop/scan.mjs diff --git a/index.html b/apps/web/index.html similarity index 100% rename from index.html rename to apps/web/index.html diff --git a/src/App.tsx b/apps/web/src/App.tsx similarity index 100% rename from src/App.tsx rename to apps/web/src/App.tsx diff --git a/src/SignInForm.tsx b/apps/web/src/SignInForm.tsx similarity index 100% rename from src/SignInForm.tsx rename to apps/web/src/SignInForm.tsx diff --git a/src/SignOutButton.tsx b/apps/web/src/SignOutButton.tsx similarity index 100% rename from src/SignOutButton.tsx rename to apps/web/src/SignOutButton.tsx diff --git a/src/adapters/unifiedAdapters.ts b/apps/web/src/adapters/unifiedAdapters.ts similarity index 100% rename from src/adapters/unifiedAdapters.ts rename to apps/web/src/adapters/unifiedAdapters.ts diff --git a/src/components/Editor/Editor.tsx b/apps/web/src/components/Editor/Editor.tsx similarity index 100% rename from src/components/Editor/Editor.tsx rename to apps/web/src/components/Editor/Editor.tsx diff --git a/src/components/Editor/editor-blocks.css b/apps/web/src/components/Editor/editor-blocks.css similarity index 100% rename from src/components/Editor/editor-blocks.css rename to apps/web/src/components/Editor/editor-blocks.css diff --git a/src/components/FiltersToolsBar.tsx b/apps/web/src/components/FiltersToolsBar.tsx similarity index 100% rename from src/components/FiltersToolsBar.tsx rename to apps/web/src/components/FiltersToolsBar.tsx diff --git a/src/components/LiveRegion.tsx b/apps/web/src/components/LiveRegion.tsx similarity index 100% rename from src/components/LiveRegion.tsx rename to apps/web/src/components/LiveRegion.tsx diff --git a/src/components/QuickCapture/index.ts b/apps/web/src/components/QuickCapture/index.ts similarity index 100% rename from src/components/QuickCapture/index.ts rename to apps/web/src/components/QuickCapture/index.ts diff --git a/src/components/SkipLinks.tsx b/apps/web/src/components/SkipLinks.tsx similarity index 100% rename from src/components/SkipLinks.tsx rename to apps/web/src/components/SkipLinks.tsx diff --git a/src/components/TokenUsageBadge.tsx b/apps/web/src/components/TokenUsageBadge.tsx similarity index 100% rename from src/components/TokenUsageBadge.tsx rename to apps/web/src/components/TokenUsageBadge.tsx diff --git a/src/components/ai-elements/artifact.tsx b/apps/web/src/components/ai-elements/artifact.tsx similarity index 100% rename from src/components/ai-elements/artifact.tsx rename to apps/web/src/components/ai-elements/artifact.tsx diff --git a/src/components/ai-elements/attachments.tsx b/apps/web/src/components/ai-elements/attachments.tsx similarity index 100% rename from src/components/ai-elements/attachments.tsx rename to apps/web/src/components/ai-elements/attachments.tsx diff --git a/src/components/ai-elements/chain-of-thought.tsx b/apps/web/src/components/ai-elements/chain-of-thought.tsx similarity index 100% rename from src/components/ai-elements/chain-of-thought.tsx rename to apps/web/src/components/ai-elements/chain-of-thought.tsx diff --git a/src/components/ai-elements/checkpoint.tsx b/apps/web/src/components/ai-elements/checkpoint.tsx similarity index 100% rename from src/components/ai-elements/checkpoint.tsx rename to apps/web/src/components/ai-elements/checkpoint.tsx diff --git a/src/components/ai-elements/code-block.test.tsx b/apps/web/src/components/ai-elements/code-block.test.tsx similarity index 100% rename from src/components/ai-elements/code-block.test.tsx rename to apps/web/src/components/ai-elements/code-block.test.tsx diff --git a/src/components/ai-elements/code-block.tsx b/apps/web/src/components/ai-elements/code-block.tsx similarity index 100% rename from src/components/ai-elements/code-block.tsx rename to apps/web/src/components/ai-elements/code-block.tsx diff --git a/src/components/ai-elements/confirmation.tsx b/apps/web/src/components/ai-elements/confirmation.tsx similarity index 100% rename from src/components/ai-elements/confirmation.tsx rename to apps/web/src/components/ai-elements/confirmation.tsx diff --git a/src/components/ai-elements/context.tsx b/apps/web/src/components/ai-elements/context.tsx similarity index 100% rename from src/components/ai-elements/context.tsx rename to apps/web/src/components/ai-elements/context.tsx diff --git a/src/components/ai-elements/conversation.tsx b/apps/web/src/components/ai-elements/conversation.tsx similarity index 100% rename from src/components/ai-elements/conversation.tsx rename to apps/web/src/components/ai-elements/conversation.tsx diff --git a/src/components/ai-elements/image.tsx b/apps/web/src/components/ai-elements/image.tsx similarity index 100% rename from src/components/ai-elements/image.tsx rename to apps/web/src/components/ai-elements/image.tsx diff --git a/src/components/ai-elements/inline-citation.tsx b/apps/web/src/components/ai-elements/inline-citation.tsx similarity index 100% rename from src/components/ai-elements/inline-citation.tsx rename to apps/web/src/components/ai-elements/inline-citation.tsx diff --git a/src/components/ai-elements/message.tsx b/apps/web/src/components/ai-elements/message.tsx similarity index 100% rename from src/components/ai-elements/message.tsx rename to apps/web/src/components/ai-elements/message.tsx diff --git a/src/components/ai-elements/model-selector.tsx b/apps/web/src/components/ai-elements/model-selector.tsx similarity index 100% rename from src/components/ai-elements/model-selector.tsx rename to apps/web/src/components/ai-elements/model-selector.tsx diff --git a/src/components/ai-elements/open-in-chat.tsx b/apps/web/src/components/ai-elements/open-in-chat.tsx similarity index 100% rename from src/components/ai-elements/open-in-chat.tsx rename to apps/web/src/components/ai-elements/open-in-chat.tsx diff --git a/src/components/ai-elements/plan.tsx b/apps/web/src/components/ai-elements/plan.tsx similarity index 100% rename from src/components/ai-elements/plan.tsx rename to apps/web/src/components/ai-elements/plan.tsx diff --git a/src/components/ai-elements/prompt-input.tsx b/apps/web/src/components/ai-elements/prompt-input.tsx similarity index 100% rename from src/components/ai-elements/prompt-input.tsx rename to apps/web/src/components/ai-elements/prompt-input.tsx diff --git a/src/components/ai-elements/queue.tsx b/apps/web/src/components/ai-elements/queue.tsx similarity index 100% rename from src/components/ai-elements/queue.tsx rename to apps/web/src/components/ai-elements/queue.tsx diff --git a/src/components/ai-elements/reasoning.tsx b/apps/web/src/components/ai-elements/reasoning.tsx similarity index 100% rename from src/components/ai-elements/reasoning.tsx rename to apps/web/src/components/ai-elements/reasoning.tsx diff --git a/src/components/ai-elements/shimmer.tsx b/apps/web/src/components/ai-elements/shimmer.tsx similarity index 100% rename from src/components/ai-elements/shimmer.tsx rename to apps/web/src/components/ai-elements/shimmer.tsx diff --git a/src/components/ai-elements/snippet.tsx b/apps/web/src/components/ai-elements/snippet.tsx similarity index 100% rename from src/components/ai-elements/snippet.tsx rename to apps/web/src/components/ai-elements/snippet.tsx diff --git a/src/components/ai-elements/sources.tsx b/apps/web/src/components/ai-elements/sources.tsx similarity index 100% rename from src/components/ai-elements/sources.tsx rename to apps/web/src/components/ai-elements/sources.tsx diff --git a/src/components/ai-elements/streamdown-renderer.tsx b/apps/web/src/components/ai-elements/streamdown-renderer.tsx similarity index 100% rename from src/components/ai-elements/streamdown-renderer.tsx rename to apps/web/src/components/ai-elements/streamdown-renderer.tsx diff --git a/src/components/ai-elements/suggestion.tsx b/apps/web/src/components/ai-elements/suggestion.tsx similarity index 100% rename from src/components/ai-elements/suggestion.tsx rename to apps/web/src/components/ai-elements/suggestion.tsx diff --git a/src/components/ai-elements/task.tsx b/apps/web/src/components/ai-elements/task.tsx similarity index 100% rename from src/components/ai-elements/task.tsx rename to apps/web/src/components/ai-elements/task.tsx diff --git a/src/components/ai-elements/tool.tsx b/apps/web/src/components/ai-elements/tool.tsx similarity index 100% rename from src/components/ai-elements/tool.tsx rename to apps/web/src/components/ai-elements/tool.tsx diff --git a/src/components/ai-elements/web-preview.tsx b/apps/web/src/components/ai-elements/web-preview.tsx similarity index 100% rename from src/components/ai-elements/web-preview.tsx rename to apps/web/src/components/ai-elements/web-preview.tsx diff --git a/src/components/ai-ui/PrimitiveMigration.guard.test.ts b/apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts similarity index 100% rename from src/components/ai-ui/PrimitiveMigration.guard.test.ts rename to apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts diff --git a/src/components/ai-ui/ResidualControlsMigration.guard.test.ts b/apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts similarity index 100% rename from src/components/ai-ui/ResidualControlsMigration.guard.test.ts rename to apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts diff --git a/src/components/ai-ui/accordion.tsx b/apps/web/src/components/ai-ui/accordion.tsx similarity index 100% rename from src/components/ai-ui/accordion.tsx rename to apps/web/src/components/ai-ui/accordion.tsx diff --git a/src/components/ai-ui/alert.tsx b/apps/web/src/components/ai-ui/alert.tsx similarity index 100% rename from src/components/ai-ui/alert.tsx rename to apps/web/src/components/ai-ui/alert.tsx diff --git a/src/components/ai-ui/badge.tsx b/apps/web/src/components/ai-ui/badge.tsx similarity index 100% rename from src/components/ai-ui/badge.tsx rename to apps/web/src/components/ai-ui/badge.tsx diff --git a/src/components/ai-ui/button-group.tsx b/apps/web/src/components/ai-ui/button-group.tsx similarity index 100% rename from src/components/ai-ui/button-group.tsx rename to apps/web/src/components/ai-ui/button-group.tsx diff --git a/src/components/ai-ui/button.tsx b/apps/web/src/components/ai-ui/button.tsx similarity index 100% rename from src/components/ai-ui/button.tsx rename to apps/web/src/components/ai-ui/button.tsx diff --git a/src/components/ai-ui/card.tsx b/apps/web/src/components/ai-ui/card.tsx similarity index 100% rename from src/components/ai-ui/card.tsx rename to apps/web/src/components/ai-ui/card.tsx diff --git a/src/components/ai-ui/carousel.tsx b/apps/web/src/components/ai-ui/carousel.tsx similarity index 100% rename from src/components/ai-ui/carousel.tsx rename to apps/web/src/components/ai-ui/carousel.tsx diff --git a/src/components/ai-ui/checkbox.tsx b/apps/web/src/components/ai-ui/checkbox.tsx similarity index 100% rename from src/components/ai-ui/checkbox.tsx rename to apps/web/src/components/ai-ui/checkbox.tsx diff --git a/src/components/ai-ui/collapsible.tsx b/apps/web/src/components/ai-ui/collapsible.tsx similarity index 100% rename from src/components/ai-ui/collapsible.tsx rename to apps/web/src/components/ai-ui/collapsible.tsx diff --git a/src/components/ai-ui/command.tsx b/apps/web/src/components/ai-ui/command.tsx similarity index 100% rename from src/components/ai-ui/command.tsx rename to apps/web/src/components/ai-ui/command.tsx diff --git a/src/components/ai-ui/context-menu.tsx b/apps/web/src/components/ai-ui/context-menu.tsx similarity index 100% rename from src/components/ai-ui/context-menu.tsx rename to apps/web/src/components/ai-ui/context-menu.tsx diff --git a/src/components/ai-ui/dialog.tsx b/apps/web/src/components/ai-ui/dialog.tsx similarity index 100% rename from src/components/ai-ui/dialog.tsx rename to apps/web/src/components/ai-ui/dialog.tsx diff --git a/src/components/ai-ui/dropdown-menu.tsx b/apps/web/src/components/ai-ui/dropdown-menu.tsx similarity index 100% rename from src/components/ai-ui/dropdown-menu.tsx rename to apps/web/src/components/ai-ui/dropdown-menu.tsx diff --git a/src/components/ai-ui/hover-card.tsx b/apps/web/src/components/ai-ui/hover-card.tsx similarity index 100% rename from src/components/ai-ui/hover-card.tsx rename to apps/web/src/components/ai-ui/hover-card.tsx diff --git a/src/components/ai-ui/input-group.tsx b/apps/web/src/components/ai-ui/input-group.tsx similarity index 100% rename from src/components/ai-ui/input-group.tsx rename to apps/web/src/components/ai-ui/input-group.tsx diff --git a/src/components/ai-ui/input.tsx b/apps/web/src/components/ai-ui/input.tsx similarity index 100% rename from src/components/ai-ui/input.tsx rename to apps/web/src/components/ai-ui/input.tsx diff --git a/src/components/ai-ui/popover.tsx b/apps/web/src/components/ai-ui/popover.tsx similarity index 100% rename from src/components/ai-ui/popover.tsx rename to apps/web/src/components/ai-ui/popover.tsx diff --git a/src/components/ai-ui/progress.tsx b/apps/web/src/components/ai-ui/progress.tsx similarity index 100% rename from src/components/ai-ui/progress.tsx rename to apps/web/src/components/ai-ui/progress.tsx diff --git a/src/components/ai-ui/scroll-area.tsx b/apps/web/src/components/ai-ui/scroll-area.tsx similarity index 100% rename from src/components/ai-ui/scroll-area.tsx rename to apps/web/src/components/ai-ui/scroll-area.tsx diff --git a/src/components/ai-ui/select.tsx b/apps/web/src/components/ai-ui/select.tsx similarity index 100% rename from src/components/ai-ui/select.tsx rename to apps/web/src/components/ai-ui/select.tsx diff --git a/src/components/ai-ui/separator.tsx b/apps/web/src/components/ai-ui/separator.tsx similarity index 100% rename from src/components/ai-ui/separator.tsx rename to apps/web/src/components/ai-ui/separator.tsx diff --git a/src/components/ai-ui/sheet.tsx b/apps/web/src/components/ai-ui/sheet.tsx similarity index 100% rename from src/components/ai-ui/sheet.tsx rename to apps/web/src/components/ai-ui/sheet.tsx diff --git a/src/components/ai-ui/spinner.tsx b/apps/web/src/components/ai-ui/spinner.tsx similarity index 100% rename from src/components/ai-ui/spinner.tsx rename to apps/web/src/components/ai-ui/spinner.tsx diff --git a/src/components/ai-ui/switch.tsx b/apps/web/src/components/ai-ui/switch.tsx similarity index 100% rename from src/components/ai-ui/switch.tsx rename to apps/web/src/components/ai-ui/switch.tsx diff --git a/src/components/ai-ui/tabs.tsx b/apps/web/src/components/ai-ui/tabs.tsx similarity index 100% rename from src/components/ai-ui/tabs.tsx rename to apps/web/src/components/ai-ui/tabs.tsx diff --git a/src/components/ai-ui/textarea.tsx b/apps/web/src/components/ai-ui/textarea.tsx similarity index 100% rename from src/components/ai-ui/textarea.tsx rename to apps/web/src/components/ai-ui/textarea.tsx diff --git a/src/components/ai-ui/toggle-group.tsx b/apps/web/src/components/ai-ui/toggle-group.tsx similarity index 100% rename from src/components/ai-ui/toggle-group.tsx rename to apps/web/src/components/ai-ui/toggle-group.tsx diff --git a/src/components/ai-ui/tooltip.tsx b/apps/web/src/components/ai-ui/tooltip.tsx similarity index 100% rename from src/components/ai-ui/tooltip.tsx rename to apps/web/src/components/ai-ui/tooltip.tsx diff --git a/src/components/artifacts/EvidenceChips.tsx b/apps/web/src/components/artifacts/EvidenceChips.tsx similarity index 100% rename from src/components/artifacts/EvidenceChips.tsx rename to apps/web/src/components/artifacts/EvidenceChips.tsx diff --git a/src/components/artifacts/MediaRail.tsx b/apps/web/src/components/artifacts/MediaRail.tsx similarity index 100% rename from src/components/artifacts/MediaRail.tsx rename to apps/web/src/components/artifacts/MediaRail.tsx diff --git a/src/components/artifacts/SourcesLibrary.tsx b/apps/web/src/components/artifacts/SourcesLibrary.tsx similarity index 100% rename from src/components/artifacts/SourcesLibrary.tsx rename to apps/web/src/components/artifacts/SourcesLibrary.tsx diff --git a/src/components/artifacts/index.ts b/apps/web/src/components/artifacts/index.ts similarity index 100% rename from src/components/artifacts/index.ts rename to apps/web/src/components/artifacts/index.ts diff --git a/src/components/grid-constants.ts b/apps/web/src/components/grid-constants.ts similarity index 100% rename from src/components/grid-constants.ts rename to apps/web/src/components/grid-constants.ts diff --git a/src/components/hud/CursorGlow.tsx b/apps/web/src/components/hud/CursorGlow.tsx similarity index 100% rename from src/components/hud/CursorGlow.tsx rename to apps/web/src/components/hud/CursorGlow.tsx diff --git a/src/components/hud/GridOverlay.tsx b/apps/web/src/components/hud/GridOverlay.tsx similarity index 100% rename from src/components/hud/GridOverlay.tsx rename to apps/web/src/components/hud/GridOverlay.tsx diff --git a/src/components/hud/HUDPanel.tsx b/apps/web/src/components/hud/HUDPanel.tsx similarity index 100% rename from src/components/hud/HUDPanel.tsx rename to apps/web/src/components/hud/HUDPanel.tsx diff --git a/src/components/hud/JarvisHUDLayout.tsx b/apps/web/src/components/hud/JarvisHUDLayout.tsx similarity index 100% rename from src/components/hud/JarvisHUDLayout.tsx rename to apps/web/src/components/hud/JarvisHUDLayout.tsx diff --git a/src/components/hud/ScanLine.tsx b/apps/web/src/components/hud/ScanLine.tsx similarity index 100% rename from src/components/hud/ScanLine.tsx rename to apps/web/src/components/hud/ScanLine.tsx diff --git a/src/components/hud/TaskWidgetStack.tsx b/apps/web/src/components/hud/TaskWidgetStack.tsx similarity index 100% rename from src/components/hud/TaskWidgetStack.tsx rename to apps/web/src/components/hud/TaskWidgetStack.tsx diff --git a/src/components/hud/TypewriterText.tsx b/apps/web/src/components/hud/TypewriterText.tsx similarity index 100% rename from src/components/hud/TypewriterText.tsx rename to apps/web/src/components/hud/TypewriterText.tsx diff --git a/src/components/hud/hud-tailwind.preset.js b/apps/web/src/components/hud/hud-tailwind.preset.js similarity index 100% rename from src/components/hud/hud-tailwind.preset.js rename to apps/web/src/components/hud/hud-tailwind.preset.js diff --git a/src/components/hud/index.ts b/apps/web/src/components/hud/index.ts similarity index 100% rename from src/components/hud/index.ts rename to apps/web/src/components/hud/index.ts diff --git a/src/components/hud/package.json b/apps/web/src/components/hud/package.json similarity index 100% rename from src/components/hud/package.json rename to apps/web/src/components/hud/package.json diff --git a/src/components/hud/useAgentThread.ts b/apps/web/src/components/hud/useAgentThread.ts similarity index 100% rename from src/components/hud/useAgentThread.ts rename to apps/web/src/components/hud/useAgentThread.ts diff --git a/src/components/hud/useHUDLayout.ts b/apps/web/src/components/hud/useHUDLayout.ts similarity index 100% rename from src/components/hud/useHUDLayout.ts rename to apps/web/src/components/hud/useHUDLayout.ts diff --git a/src/components/hud/useMultiThread.ts b/apps/web/src/components/hud/useMultiThread.ts similarity index 100% rename from src/components/hud/useMultiThread.ts rename to apps/web/src/components/hud/useMultiThread.ts diff --git a/src/components/kanban/TaskCard.tsx b/apps/web/src/components/kanban/TaskCard.tsx similarity index 100% rename from src/components/kanban/TaskCard.tsx rename to apps/web/src/components/kanban/TaskCard.tsx diff --git a/src/components/proposals/ProposalBar.tsx b/apps/web/src/components/proposals/ProposalBar.tsx similarity index 100% rename from src/components/proposals/ProposalBar.tsx rename to apps/web/src/components/proposals/ProposalBar.tsx diff --git a/src/components/proposals/ProposalProvider.tsx b/apps/web/src/components/proposals/ProposalProvider.tsx similarity index 100% rename from src/components/proposals/ProposalProvider.tsx rename to apps/web/src/components/proposals/ProposalProvider.tsx diff --git a/src/components/proposals/diffUtils.ts b/apps/web/src/components/proposals/diffUtils.ts similarity index 100% rename from src/components/proposals/diffUtils.ts rename to apps/web/src/components/proposals/diffUtils.ts diff --git a/src/components/skeletons/BriefingSkeleton.tsx b/apps/web/src/components/skeletons/BriefingSkeleton.tsx similarity index 100% rename from src/components/skeletons/BriefingSkeleton.tsx rename to apps/web/src/components/skeletons/BriefingSkeleton.tsx diff --git a/src/components/skeletons/CostDashboardSkeleton.tsx b/apps/web/src/components/skeletons/CostDashboardSkeleton.tsx similarity index 100% rename from src/components/skeletons/CostDashboardSkeleton.tsx rename to apps/web/src/components/skeletons/CostDashboardSkeleton.tsx diff --git a/src/components/skeletons/DealCardSkeleton.tsx b/apps/web/src/components/skeletons/DealCardSkeleton.tsx similarity index 100% rename from src/components/skeletons/DealCardSkeleton.tsx rename to apps/web/src/components/skeletons/DealCardSkeleton.tsx diff --git a/src/components/skeletons/DigestSkeleton.tsx b/apps/web/src/components/skeletons/DigestSkeleton.tsx similarity index 100% rename from src/components/skeletons/DigestSkeleton.tsx rename to apps/web/src/components/skeletons/DigestSkeleton.tsx diff --git a/src/components/skeletons/FeedCardSkeleton.tsx b/apps/web/src/components/skeletons/FeedCardSkeleton.tsx similarity index 100% rename from src/components/skeletons/FeedCardSkeleton.tsx rename to apps/web/src/components/skeletons/FeedCardSkeleton.tsx diff --git a/src/components/skeletons/IndustryUpdatesSkeleton.tsx b/apps/web/src/components/skeletons/IndustryUpdatesSkeleton.tsx similarity index 100% rename from src/components/skeletons/IndustryUpdatesSkeleton.tsx rename to apps/web/src/components/skeletons/IndustryUpdatesSkeleton.tsx diff --git a/src/components/skeletons/ReportCardSkeleton.tsx b/apps/web/src/components/skeletons/ReportCardSkeleton.tsx similarity index 100% rename from src/components/skeletons/ReportCardSkeleton.tsx rename to apps/web/src/components/skeletons/ReportCardSkeleton.tsx diff --git a/src/components/skeletons/Skeleton.tsx b/apps/web/src/components/skeletons/Skeleton.tsx similarity index 100% rename from src/components/skeletons/Skeleton.tsx rename to apps/web/src/components/skeletons/Skeleton.tsx diff --git a/src/components/skeletons/ViewSkeleton.tsx b/apps/web/src/components/skeletons/ViewSkeleton.tsx similarity index 100% rename from src/components/skeletons/ViewSkeleton.tsx rename to apps/web/src/components/skeletons/ViewSkeleton.tsx diff --git a/src/components/skeletons/index.ts b/apps/web/src/components/skeletons/index.ts similarity index 100% rename from src/components/skeletons/index.ts rename to apps/web/src/components/skeletons/index.ts diff --git a/src/components/tasks/TaskDetailHeader.tsx b/apps/web/src/components/tasks/TaskDetailHeader.tsx similarity index 100% rename from src/components/tasks/TaskDetailHeader.tsx rename to apps/web/src/components/tasks/TaskDetailHeader.tsx diff --git a/src/components/timelineRoadmap/TimelineRoadmapView.tsx b/apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx similarity index 100% rename from src/components/timelineRoadmap/TimelineRoadmapView.tsx rename to apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx diff --git a/src/components/ui/Button.tsx b/apps/web/src/components/ui/Button.tsx similarity index 100% rename from src/components/ui/Button.tsx rename to apps/web/src/components/ui/Button.tsx diff --git a/src/components/ui/Card.tsx b/apps/web/src/components/ui/Card.tsx similarity index 100% rename from src/components/ui/Card.tsx rename to apps/web/src/components/ui/Card.tsx diff --git a/src/components/ui/EmptyState.tsx b/apps/web/src/components/ui/EmptyState.tsx similarity index 100% rename from src/components/ui/EmptyState.tsx rename to apps/web/src/components/ui/EmptyState.tsx diff --git a/src/components/ui/SidebarButton.tsx b/apps/web/src/components/ui/SidebarButton.tsx similarity index 100% rename from src/components/ui/SidebarButton.tsx rename to apps/web/src/components/ui/SidebarButton.tsx diff --git a/src/components/ui/Sparkline.tsx b/apps/web/src/components/ui/Sparkline.tsx similarity index 100% rename from src/components/ui/Sparkline.tsx rename to apps/web/src/components/ui/Sparkline.tsx diff --git a/src/components/ui/Toast.tsx b/apps/web/src/components/ui/Toast.tsx similarity index 100% rename from src/components/ui/Toast.tsx rename to apps/web/src/components/ui/Toast.tsx diff --git a/src/components/ui/index.ts b/apps/web/src/components/ui/index.ts similarity index 100% rename from src/components/ui/index.ts rename to apps/web/src/components/ui/index.ts diff --git a/src/components/unified/UnifiedRow.tsx b/apps/web/src/components/unified/UnifiedRow.tsx similarity index 100% rename from src/components/unified/UnifiedRow.tsx rename to apps/web/src/components/unified/UnifiedRow.tsx diff --git a/src/contexts/OracleSessionContext.tsx b/apps/web/src/contexts/OracleSessionContext.tsx similarity index 100% rename from src/contexts/OracleSessionContext.tsx rename to apps/web/src/contexts/OracleSessionContext.tsx diff --git a/src/contexts/ThemeContext.tsx b/apps/web/src/contexts/ThemeContext.tsx similarity index 100% rename from src/contexts/ThemeContext.tsx rename to apps/web/src/contexts/ThemeContext.tsx diff --git a/src/design-governance/defaultSpec.ts b/apps/web/src/design-governance/defaultSpec.ts similarity index 100% rename from src/design-governance/defaultSpec.ts rename to apps/web/src/design-governance/defaultSpec.ts diff --git a/src/design-governance/figmaSync.ts b/apps/web/src/design-governance/figmaSync.ts similarity index 100% rename from src/design-governance/figmaSync.ts rename to apps/web/src/design-governance/figmaSync.ts diff --git a/src/design-governance/index.ts b/apps/web/src/design-governance/index.ts similarity index 100% rename from src/design-governance/index.ts rename to apps/web/src/design-governance/index.ts diff --git a/src/design-governance/spec.ts b/apps/web/src/design-governance/spec.ts similarity index 100% rename from src/design-governance/spec.ts rename to apps/web/src/design-governance/spec.ts diff --git a/src/design/designSystem.test.ts b/apps/web/src/design/designSystem.test.ts similarity index 100% rename from src/design/designSystem.test.ts rename to apps/web/src/design/designSystem.test.ts diff --git a/src/design/designSystem.ts b/apps/web/src/design/designSystem.ts similarity index 100% rename from src/design/designSystem.ts rename to apps/web/src/design/designSystem.ts diff --git a/src/features/admin/FundingDataReview.tsx b/apps/web/src/features/admin/FundingDataReview.tsx similarity index 100% rename from src/features/admin/FundingDataReview.tsx rename to apps/web/src/features/admin/FundingDataReview.tsx diff --git a/src/features/admin/components/ApiUsageDisplay.tsx b/apps/web/src/features/admin/components/ApiUsageDisplay.tsx similarity index 100% rename from src/features/admin/components/ApiUsageDisplay.tsx rename to apps/web/src/features/admin/components/ApiUsageDisplay.tsx diff --git a/src/features/admin/components/CostDashboard.tsx b/apps/web/src/features/admin/components/CostDashboard.tsx similarity index 100% rename from src/features/admin/components/CostDashboard.tsx rename to apps/web/src/features/admin/components/CostDashboard.tsx diff --git a/src/features/admin/components/UsageDashboard.tsx b/apps/web/src/features/admin/components/UsageDashboard.tsx similarity index 100% rename from src/features/admin/components/UsageDashboard.tsx rename to apps/web/src/features/admin/components/UsageDashboard.tsx diff --git a/src/features/admin/dashboards/ComponentMetricsDashboard.tsx b/apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx similarity index 100% rename from src/features/admin/dashboards/ComponentMetricsDashboard.tsx rename to apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx diff --git a/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx b/apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx similarity index 100% rename from src/features/admin/dashboards/HITLAnalyticsDashboard.tsx rename to apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx diff --git a/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx b/apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx similarity index 100% rename from src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx rename to apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx diff --git a/src/features/agents/authority/AuthorityControl.test.tsx b/apps/web/src/features/agents/authority/AuthorityControl.test.tsx similarity index 100% rename from src/features/agents/authority/AuthorityControl.test.tsx rename to apps/web/src/features/agents/authority/AuthorityControl.test.tsx diff --git a/src/features/agents/authority/AuthorityControl.tsx b/apps/web/src/features/agents/authority/AuthorityControl.tsx similarity index 100% rename from src/features/agents/authority/AuthorityControl.tsx rename to apps/web/src/features/agents/authority/AuthorityControl.tsx diff --git a/src/features/agents/authority/DelegatedReceiptRow.test.tsx b/apps/web/src/features/agents/authority/DelegatedReceiptRow.test.tsx similarity index 100% rename from src/features/agents/authority/DelegatedReceiptRow.test.tsx rename to apps/web/src/features/agents/authority/DelegatedReceiptRow.test.tsx diff --git a/src/features/agents/authority/DelegatedReceiptRow.tsx b/apps/web/src/features/agents/authority/DelegatedReceiptRow.tsx similarity index 100% rename from src/features/agents/authority/DelegatedReceiptRow.tsx rename to apps/web/src/features/agents/authority/DelegatedReceiptRow.tsx diff --git a/src/features/agents/authority/NotebookAuthorityControl.tsx b/apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx similarity index 100% rename from src/features/agents/authority/NotebookAuthorityControl.tsx rename to apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx diff --git a/src/features/agents/authority/authorityPresentation.ts b/apps/web/src/features/agents/authority/authorityPresentation.ts similarity index 100% rename from src/features/agents/authority/authorityPresentation.ts rename to apps/web/src/features/agents/authority/authorityPresentation.ts diff --git a/src/features/agents/authority/index.ts b/apps/web/src/features/agents/authority/index.ts similarity index 100% rename from src/features/agents/authority/index.ts rename to apps/web/src/features/agents/authority/index.ts diff --git a/src/features/agents/components/AgentCommandBar.test.tsx b/apps/web/src/features/agents/components/AgentCommandBar.test.tsx similarity index 100% rename from src/features/agents/components/AgentCommandBar.test.tsx rename to apps/web/src/features/agents/components/AgentCommandBar.test.tsx diff --git a/src/features/agents/components/AgentCommandBar.tsx b/apps/web/src/features/agents/components/AgentCommandBar.tsx similarity index 100% rename from src/features/agents/components/AgentCommandBar.tsx rename to apps/web/src/features/agents/components/AgentCommandBar.tsx diff --git a/src/features/agents/components/AgentMarketplace.tsx b/apps/web/src/features/agents/components/AgentMarketplace.tsx similarity index 100% rename from src/features/agents/components/AgentMarketplace.tsx rename to apps/web/src/features/agents/components/AgentMarketplace.tsx diff --git a/src/features/agents/components/AgentResponseFlywheelPanel.tsx b/apps/web/src/features/agents/components/AgentResponseFlywheelPanel.tsx similarity index 100% rename from src/features/agents/components/AgentResponseFlywheelPanel.tsx rename to apps/web/src/features/agents/components/AgentResponseFlywheelPanel.tsx diff --git a/src/features/agents/components/AgentSidebar.tsx b/apps/web/src/features/agents/components/AgentSidebar.tsx similarity index 100% rename from src/features/agents/components/AgentSidebar.tsx rename to apps/web/src/features/agents/components/AgentSidebar.tsx diff --git a/src/features/agents/components/AgentStatusCard.tsx b/apps/web/src/features/agents/components/AgentStatusCard.tsx similarity index 100% rename from src/features/agents/components/AgentStatusCard.tsx rename to apps/web/src/features/agents/components/AgentStatusCard.tsx diff --git a/src/features/agents/components/AnalyzeSelectionButton.tsx b/apps/web/src/features/agents/components/AnalyzeSelectionButton.tsx similarity index 100% rename from src/features/agents/components/AnalyzeSelectionButton.tsx rename to apps/web/src/features/agents/components/AnalyzeSelectionButton.tsx diff --git a/src/features/agents/components/AskNodeBenchPill.tsx b/apps/web/src/features/agents/components/AskNodeBenchPill.tsx similarity index 100% rename from src/features/agents/components/AskNodeBenchPill.tsx rename to apps/web/src/features/agents/components/AskNodeBenchPill.tsx diff --git a/src/features/agents/components/AutonomousOperationsPanel.test.tsx b/apps/web/src/features/agents/components/AutonomousOperationsPanel.test.tsx similarity index 100% rename from src/features/agents/components/AutonomousOperationsPanel.test.tsx rename to apps/web/src/features/agents/components/AutonomousOperationsPanel.test.tsx diff --git a/src/features/agents/components/AutonomousOperationsPanel.tsx b/apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx similarity index 100% rename from src/features/agents/components/AutonomousOperationsPanel.tsx rename to apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx diff --git a/src/features/agents/components/ConvexJarvisHUD.tsx b/apps/web/src/features/agents/components/ConvexJarvisHUD.tsx similarity index 100% rename from src/features/agents/components/ConvexJarvisHUD.tsx rename to apps/web/src/features/agents/components/ConvexJarvisHUD.tsx diff --git a/src/features/agents/components/DossierModeIndicator.tsx b/apps/web/src/features/agents/components/DossierModeIndicator.tsx similarity index 100% rename from src/features/agents/components/DossierModeIndicator.tsx rename to apps/web/src/features/agents/components/DossierModeIndicator.tsx diff --git a/src/features/agents/components/FastAgentPanel/ArbitrageReportCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ArbitrageReportCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ArbitrageReportCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ArbitrageReportCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.tsx b/apps/web/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/CollapsibleAgentProgress.tsx diff --git a/src/features/agents/components/FastAgentPanel/CompanySelectionCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/CompanySelectionCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/CompanySelectionCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/CompanySelectionCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/ContextBar.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ContextBar.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ContextBar.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ContextBar.tsx diff --git a/src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/EditProgressCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/EditProgressCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/EditProgressCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/EditProgressCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/EntityWorkspaceDrawerContent.tsx b/apps/web/src/features/agents/components/FastAgentPanel/EntityWorkspaceDrawerContent.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/EntityWorkspaceDrawerContent.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/EntityWorkspaceDrawerContent.tsx diff --git a/src/features/agents/components/FastAgentPanel/EventSelectionCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/EventSelectionCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/EventSelectionCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/EventSelectionCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentHierarchy.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentHierarchy.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentHierarchy.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentHierarchy.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.CitationLink.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.CitationLink.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.CitationLink.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.CitationLink.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.DisclosureTrace.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.DisclosureTrace.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.DisclosureTrace.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.DisclosureTrace.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.GoalCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.GoalCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.GoalCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.GoalCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.LiveThinking.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.LiveThinking.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.LiveThinking.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.LiveThinking.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.MediaRecorder.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MediaRecorder.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.MediaRecorder.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MediaRecorder.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.MinimizedStrip.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MinimizedStrip.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.MinimizedStrip.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MinimizedStrip.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelDialogs.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelDialogs.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelDialogs.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelDialogs.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelHeader.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.RunState.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.RunState.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.RunState.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.RunState.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThoughtBubble.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.VisualCitation.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.VisualCitation.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.VisualCitation.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.VisualCitation.tsx diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.animations.css b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.animations.css similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.animations.css rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.animations.css diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.test.ts diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.ts b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.ts rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.guestRuntime.ts diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.sendContract.ts b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.sendContract.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.sendContract.ts rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.sendContract.ts diff --git a/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx diff --git a/src/features/agents/components/FastAgentPanel/FileViewer.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FileViewer.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FileViewer.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FileViewer.tsx diff --git a/src/features/agents/components/FastAgentPanel/FusedSearchResults.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FusedSearchResults.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/FusedSearchResults.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/FusedSearchResults.tsx diff --git a/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/JARVIS_HUD_README.md b/apps/web/src/features/agents/components/FastAgentPanel/JARVIS_HUD_README.md similarity index 100% rename from src/features/agents/components/FastAgentPanel/JARVIS_HUD_README.md rename to apps/web/src/features/agents/components/FastAgentPanel/JARVIS_HUD_README.md diff --git a/src/features/agents/components/FastAgentPanel/JarvisHUDLayout.tsx b/apps/web/src/features/agents/components/FastAgentPanel/JarvisHUDLayout.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/JarvisHUDLayout.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/JarvisHUDLayout.tsx diff --git a/src/features/agents/components/FastAgentPanel/LazySyntaxHighlighter.tsx b/apps/web/src/features/agents/components/FastAgentPanel/LazySyntaxHighlighter.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/LazySyntaxHighlighter.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/LazySyntaxHighlighter.tsx diff --git a/src/features/agents/components/FastAgentPanel/LiveEventCard.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/LiveEventCard.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/LiveEventCard.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/LiveEventCard.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/LiveEventCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/LiveEventCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/LiveEventCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/LiveEventCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/MediaGallery.tsx b/apps/web/src/features/agents/components/FastAgentPanel/MediaGallery.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/MediaGallery.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/MediaGallery.tsx diff --git a/src/features/agents/components/FastAgentPanel/MemoryPill.tsx b/apps/web/src/features/agents/components/FastAgentPanel/MemoryPill.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/MemoryPill.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/MemoryPill.tsx diff --git a/src/features/agents/components/FastAgentPanel/MemoryStatusHeader.tsx b/apps/web/src/features/agents/components/FastAgentPanel/MemoryStatusHeader.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/MemoryStatusHeader.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/MemoryStatusHeader.tsx diff --git a/src/features/agents/components/FastAgentPanel/MermaidDiagram.tsx b/apps/web/src/features/agents/components/FastAgentPanel/MermaidDiagram.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/MermaidDiagram.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/MermaidDiagram.tsx diff --git a/src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx b/apps/web/src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx diff --git a/src/features/agents/components/FastAgentPanel/NewsSelectionCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/NewsSelectionCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/NewsSelectionCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/NewsSelectionCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/PanelCanonicalAnswer.tsx b/apps/web/src/features/agents/components/FastAgentPanel/PanelCanonicalAnswer.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/PanelCanonicalAnswer.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/PanelCanonicalAnswer.tsx diff --git a/src/features/agents/components/FastAgentPanel/PeopleSelectionCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/PeopleSelectionCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/PeopleSelectionCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/PeopleSelectionCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/ProfileCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ProfileCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ProfileCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ProfileCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/QuickCommandChips.tsx b/apps/web/src/features/agents/components/FastAgentPanel/QuickCommandChips.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/QuickCommandChips.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/QuickCommandChips.tsx diff --git a/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/RichMediaSection.tsx b/apps/web/src/features/agents/components/FastAgentPanel/RichMediaSection.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/RichMediaSection.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/RichMediaSection.tsx diff --git a/src/features/agents/components/FastAgentPanel/SourceCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/SourceCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/SourceCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/SourceCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/StepTimeline.tsx b/apps/web/src/features/agents/components/FastAgentPanel/StepTimeline.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/StepTimeline.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/StepTimeline.tsx diff --git a/src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx b/apps/web/src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx diff --git a/src/features/agents/components/FastAgentPanel/SwarmQuickActions.tsx b/apps/web/src/features/agents/components/FastAgentPanel/SwarmQuickActions.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/SwarmQuickActions.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/SwarmQuickActions.tsx diff --git a/src/features/agents/components/FastAgentPanel/TokenUsageBadge.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/TokenUsageBadge.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/TokenUsageBadge.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/TokenUsageBadge.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/TokenUsageBadge.tsx b/apps/web/src/features/agents/components/FastAgentPanel/TokenUsageBadge.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/TokenUsageBadge.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/TokenUsageBadge.tsx diff --git a/src/features/agents/components/FastAgentPanel/ToolCallTransparency.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ToolCallTransparency.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ToolCallTransparency.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ToolCallTransparency.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/ToolCallTransparency.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ToolCallTransparency.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ToolCallTransparency.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ToolCallTransparency.tsx diff --git a/src/features/agents/components/FastAgentPanel/ToolResultPopover.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ToolResultPopover.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/ToolResultPopover.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/ToolResultPopover.tsx diff --git a/src/features/agents/components/FastAgentPanel/TypingIndicator.tsx b/apps/web/src/features/agents/components/FastAgentPanel/TypingIndicator.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/TypingIndicator.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/TypingIndicator.tsx diff --git a/src/features/agents/components/FastAgentPanel/VideoCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/VideoCard.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/VideoCard.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/VideoCard.tsx diff --git a/src/features/agents/components/FastAgentPanel/VirtualizedMessageList.tsx b/apps/web/src/features/agents/components/FastAgentPanel/VirtualizedMessageList.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/VirtualizedMessageList.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/VirtualizedMessageList.tsx diff --git a/src/features/agents/components/FastAgentPanel/__harness__/panel-canonical-answer-harness.html b/apps/web/src/features/agents/components/FastAgentPanel/__harness__/panel-canonical-answer-harness.html similarity index 100% rename from src/features/agents/components/FastAgentPanel/__harness__/panel-canonical-answer-harness.html rename to apps/web/src/features/agents/components/FastAgentPanel/__harness__/panel-canonical-answer-harness.html diff --git a/src/features/agents/components/FastAgentPanel/__harness__/panelCanonicalAnswerHarness.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__harness__/panelCanonicalAnswerHarness.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__harness__/panelCanonicalAnswerHarness.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__harness__/panelCanonicalAnswerHarness.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts diff --git a/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.provenance.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.provenance.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.provenance.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.provenance.test.ts diff --git a/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.sendContract.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.sendContract.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.sendContract.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentPanel.sendContract.test.ts diff --git a/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/PanelCanonicalAnswer.contract.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/PanelCanonicalAnswer.contract.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/PanelCanonicalAnswer.contract.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/PanelCanonicalAnswer.contract.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/ProfileCard.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/ProfileCard.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/ProfileCard.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/ProfileCard.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/SourceCard.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/SourceCard.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/SourceCard.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/SourceCard.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts diff --git a/src/features/agents/components/FastAgentPanel/__tests__/VideoCard.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/VideoCard.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/VideoCard.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/VideoCard.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/e2e-agent-ui.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/e2e-agent-ui.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/e2e-agent-ui.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/e2e-agent-ui.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/mediaExtractor.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/mediaExtractor.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/mediaExtractor.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/mediaExtractor.test.ts diff --git a/src/features/agents/components/FastAgentPanel/__tests__/message-rendering.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/message-rendering.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/message-rendering.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/message-rendering.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/presentation-layer.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/presentation-layer.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/presentation-layer.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/presentation-layer.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/__tests__/streaming-optimization.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/streaming-optimization.test.tsx similarity index 100% rename from src/features/agents/components/FastAgentPanel/__tests__/streaming-optimization.test.tsx rename to apps/web/src/features/agents/components/FastAgentPanel/__tests__/streaming-optimization.test.tsx diff --git a/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.test.ts diff --git a/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.ts b/apps/web/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.ts rename to apps/web/src/features/agents/components/FastAgentPanel/adapters/canonicalAnswer.ts diff --git a/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.test.ts diff --git a/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.ts b/apps/web/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.ts rename to apps/web/src/features/agents/components/FastAgentPanel/adapters/convexToUIParts.ts diff --git a/src/features/agents/components/FastAgentPanel/hooks/index.ts b/apps/web/src/features/agents/components/FastAgentPanel/hooks/index.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/hooks/index.ts rename to apps/web/src/features/agents/components/FastAgentPanel/hooks/index.ts diff --git a/src/features/agents/components/FastAgentPanel/hooks/useSmartAutoScroll.ts b/apps/web/src/features/agents/components/FastAgentPanel/hooks/useSmartAutoScroll.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/hooks/useSmartAutoScroll.ts rename to apps/web/src/features/agents/components/FastAgentPanel/hooks/useSmartAutoScroll.ts diff --git a/src/features/agents/components/FastAgentPanel/hooks/useStreamingBuffer.ts b/apps/web/src/features/agents/components/FastAgentPanel/hooks/useStreamingBuffer.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/hooks/useStreamingBuffer.ts rename to apps/web/src/features/agents/components/FastAgentPanel/hooks/useStreamingBuffer.ts diff --git a/src/features/agents/components/FastAgentPanel/index.enhanced.ts b/apps/web/src/features/agents/components/FastAgentPanel/index.enhanced.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/index.enhanced.ts rename to apps/web/src/features/agents/components/FastAgentPanel/index.enhanced.ts diff --git a/src/features/agents/components/FastAgentPanel/index.ts b/apps/web/src/features/agents/components/FastAgentPanel/index.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/index.ts rename to apps/web/src/features/agents/components/FastAgentPanel/index.ts diff --git a/src/features/agents/components/FastAgentPanel/lazyRehypeKatex.ts b/apps/web/src/features/agents/components/FastAgentPanel/lazyRehypeKatex.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/lazyRehypeKatex.ts rename to apps/web/src/features/agents/components/FastAgentPanel/lazyRehypeKatex.ts diff --git a/src/features/agents/components/FastAgentPanel/liveEvents.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/liveEvents.test.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/liveEvents.test.ts rename to apps/web/src/features/agents/components/FastAgentPanel/liveEvents.test.ts diff --git a/src/features/agents/components/FastAgentPanel/liveEvents.ts b/apps/web/src/features/agents/components/FastAgentPanel/liveEvents.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/liveEvents.ts rename to apps/web/src/features/agents/components/FastAgentPanel/liveEvents.ts diff --git a/src/features/agents/components/FastAgentPanel/types/agent.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/agent.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/types/agent.ts rename to apps/web/src/features/agents/components/FastAgentPanel/types/agent.ts diff --git a/src/features/agents/components/FastAgentPanel/types/index.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/index.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/types/index.ts rename to apps/web/src/features/agents/components/FastAgentPanel/types/index.ts diff --git a/src/features/agents/components/FastAgentPanel/types/message.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/message.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/types/message.ts rename to apps/web/src/features/agents/components/FastAgentPanel/types/message.ts diff --git a/src/features/agents/components/FastAgentPanel/types/stream.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/stream.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/types/stream.ts rename to apps/web/src/features/agents/components/FastAgentPanel/types/stream.ts diff --git a/src/features/agents/components/FastAgentPanel/types/thread.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/types/thread.ts rename to apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts diff --git a/src/features/agents/components/FastAgentPanel/utils/mediaExtractor.ts b/apps/web/src/features/agents/components/FastAgentPanel/utils/mediaExtractor.ts similarity index 100% rename from src/features/agents/components/FastAgentPanel/utils/mediaExtractor.ts rename to apps/web/src/features/agents/components/FastAgentPanel/utils/mediaExtractor.ts diff --git a/src/features/agents/components/FloatingAgentButton.tsx b/apps/web/src/features/agents/components/FloatingAgentButton.tsx similarity index 100% rename from src/features/agents/components/FloatingAgentButton.tsx rename to apps/web/src/features/agents/components/FloatingAgentButton.tsx diff --git a/src/features/agents/components/FreeModelRankingsPanel.tsx b/apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx similarity index 100% rename from src/features/agents/components/FreeModelRankingsPanel.tsx rename to apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx diff --git a/src/features/agents/components/HumanApprovalQueue.test.tsx b/apps/web/src/features/agents/components/HumanApprovalQueue.test.tsx similarity index 100% rename from src/features/agents/components/HumanApprovalQueue.test.tsx rename to apps/web/src/features/agents/components/HumanApprovalQueue.test.tsx diff --git a/src/features/agents/components/HumanApprovalQueue.tsx b/apps/web/src/features/agents/components/HumanApprovalQueue.tsx similarity index 100% rename from src/features/agents/components/HumanApprovalQueue.tsx rename to apps/web/src/features/agents/components/HumanApprovalQueue.tsx diff --git a/src/features/agents/components/ModelSelector.tsx b/apps/web/src/features/agents/components/ModelSelector.tsx similarity index 100% rename from src/features/agents/components/ModelSelector.tsx rename to apps/web/src/features/agents/components/ModelSelector.tsx diff --git a/src/features/agents/components/NotificationActivityPanel.tsx b/apps/web/src/features/agents/components/NotificationActivityPanel.tsx similarity index 100% rename from src/features/agents/components/NotificationActivityPanel.tsx rename to apps/web/src/features/agents/components/NotificationActivityPanel.tsx diff --git a/src/features/agents/components/OracleControlTowerPanel.tsx b/apps/web/src/features/agents/components/OracleControlTowerPanel.tsx similarity index 100% rename from src/features/agents/components/OracleControlTowerPanel.tsx rename to apps/web/src/features/agents/components/OracleControlTowerPanel.tsx diff --git a/src/features/agents/components/SaveToNotebookButton.tsx b/apps/web/src/features/agents/components/SaveToNotebookButton.tsx similarity index 100% rename from src/features/agents/components/SaveToNotebookButton.tsx rename to apps/web/src/features/agents/components/SaveToNotebookButton.tsx diff --git a/src/features/agents/components/StreamingTranscript.tsx b/apps/web/src/features/agents/components/StreamingTranscript.tsx similarity index 100% rename from src/features/agents/components/StreamingTranscript.tsx rename to apps/web/src/features/agents/components/StreamingTranscript.tsx diff --git a/src/features/agents/components/TaskManager/TaskManagerView.tsx b/apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx similarity index 100% rename from src/features/agents/components/TaskManager/TaskManagerView.tsx rename to apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx diff --git a/src/features/agents/components/TaskManager/TaskSessionCard.tsx b/apps/web/src/features/agents/components/TaskManager/TaskSessionCard.tsx similarity index 100% rename from src/features/agents/components/TaskManager/TaskSessionCard.tsx rename to apps/web/src/features/agents/components/TaskManager/TaskSessionCard.tsx diff --git a/src/features/agents/components/TaskManager/TaskSessionDetail.test.tsx b/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.test.tsx similarity index 100% rename from src/features/agents/components/TaskManager/TaskSessionDetail.test.tsx rename to apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.test.tsx diff --git a/src/features/agents/components/TaskManager/TaskSessionDetail.tsx b/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx similarity index 100% rename from src/features/agents/components/TaskManager/TaskSessionDetail.tsx rename to apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx diff --git a/src/features/agents/components/TaskManager/TelemetrySpanTree.tsx b/apps/web/src/features/agents/components/TaskManager/TelemetrySpanTree.tsx similarity index 100% rename from src/features/agents/components/TaskManager/TelemetrySpanTree.tsx rename to apps/web/src/features/agents/components/TaskManager/TelemetrySpanTree.tsx diff --git a/src/features/agents/components/TaskManager/index.ts b/apps/web/src/features/agents/components/TaskManager/index.ts similarity index 100% rename from src/features/agents/components/TaskManager/index.ts rename to apps/web/src/features/agents/components/TaskManager/index.ts diff --git a/src/features/agents/components/TaskManager/types.ts b/apps/web/src/features/agents/components/TaskManager/types.ts similarity index 100% rename from src/features/agents/components/TaskManager/types.ts rename to apps/web/src/features/agents/components/TaskManager/types.ts diff --git a/src/features/agents/components/TopicCanvasPanel.test.tsx b/apps/web/src/features/agents/components/TopicCanvasPanel.test.tsx similarity index 100% rename from src/features/agents/components/TopicCanvasPanel.test.tsx rename to apps/web/src/features/agents/components/TopicCanvasPanel.test.tsx diff --git a/src/features/agents/components/TopicCanvasPanel.tsx b/apps/web/src/features/agents/components/TopicCanvasPanel.tsx similarity index 100% rename from src/features/agents/components/TopicCanvasPanel.tsx rename to apps/web/src/features/agents/components/TopicCanvasPanel.tsx diff --git a/src/features/agents/components/WorkspaceGrid.tsx b/apps/web/src/features/agents/components/WorkspaceGrid.tsx similarity index 100% rename from src/features/agents/components/WorkspaceGrid.tsx rename to apps/web/src/features/agents/components/WorkspaceGrid.tsx diff --git a/src/features/agents/components/oracleControlTowerUtils.test.ts b/apps/web/src/features/agents/components/oracleControlTowerUtils.test.ts similarity index 100% rename from src/features/agents/components/oracleControlTowerUtils.test.ts rename to apps/web/src/features/agents/components/oracleControlTowerUtils.test.ts diff --git a/src/features/agents/components/oracleControlTowerUtils.ts b/apps/web/src/features/agents/components/oracleControlTowerUtils.ts similarity index 100% rename from src/features/agents/components/oracleControlTowerUtils.ts rename to apps/web/src/features/agents/components/oracleControlTowerUtils.ts diff --git a/src/features/agents/components/oraclePromptPackContract.test.ts b/apps/web/src/features/agents/components/oraclePromptPackContract.test.ts similarity index 100% rename from src/features/agents/components/oraclePromptPackContract.test.ts rename to apps/web/src/features/agents/components/oraclePromptPackContract.test.ts diff --git a/src/features/agents/components/oracleTemporalOsUtils.test.ts b/apps/web/src/features/agents/components/oracleTemporalOsUtils.test.ts similarity index 100% rename from src/features/agents/components/oracleTemporalOsUtils.test.ts rename to apps/web/src/features/agents/components/oracleTemporalOsUtils.test.ts diff --git a/src/features/agents/components/oracleTemporalOsUtils.ts b/apps/web/src/features/agents/components/oracleTemporalOsUtils.ts similarity index 100% rename from src/features/agents/components/oracleTemporalOsUtils.ts rename to apps/web/src/features/agents/components/oracleTemporalOsUtils.ts diff --git a/src/features/agents/components/successLoops/SuccessLoopsPanel.tsx b/apps/web/src/features/agents/components/successLoops/SuccessLoopsPanel.tsx similarity index 100% rename from src/features/agents/components/successLoops/SuccessLoopsPanel.tsx rename to apps/web/src/features/agents/components/successLoops/SuccessLoopsPanel.tsx diff --git a/src/features/agents/components/successLoops/types.ts b/apps/web/src/features/agents/components/successLoops/types.ts similarity index 100% rename from src/features/agents/components/successLoops/types.ts rename to apps/web/src/features/agents/components/successLoops/types.ts diff --git a/src/features/agents/context/FastAgentContext.tsx b/apps/web/src/features/agents/context/FastAgentContext.tsx similarity index 100% rename from src/features/agents/context/FastAgentContext.tsx rename to apps/web/src/features/agents/context/FastAgentContext.tsx diff --git a/src/features/agents/context/SelectionContext.tsx b/apps/web/src/features/agents/context/SelectionContext.tsx similarity index 100% rename from src/features/agents/context/SelectionContext.tsx rename to apps/web/src/features/agents/context/SelectionContext.tsx diff --git a/src/features/agents/hooks/useAgentActions.ts b/apps/web/src/features/agents/hooks/useAgentActions.ts similarity index 100% rename from src/features/agents/hooks/useAgentActions.ts rename to apps/web/src/features/agents/hooks/useAgentActions.ts diff --git a/src/features/agents/hooks/useAgentNavigation.ts b/apps/web/src/features/agents/hooks/useAgentNavigation.ts similarity index 100% rename from src/features/agents/hooks/useAgentNavigation.ts rename to apps/web/src/features/agents/hooks/useAgentNavigation.ts diff --git a/src/features/agents/hooks/useAnonymousSession.ts b/apps/web/src/features/agents/hooks/useAnonymousSession.ts similarity index 100% rename from src/features/agents/hooks/useAnonymousSession.ts rename to apps/web/src/features/agents/hooks/useAnonymousSession.ts diff --git a/src/features/agents/hooks/useRunGraph.ts b/apps/web/src/features/agents/hooks/useRunGraph.ts similarity index 100% rename from src/features/agents/hooks/useRunGraph.ts rename to apps/web/src/features/agents/hooks/useRunGraph.ts diff --git a/src/features/agents/index.ts b/apps/web/src/features/agents/index.ts similarity index 100% rename from src/features/agents/index.ts rename to apps/web/src/features/agents/index.ts diff --git a/src/features/agents/lib/agentPalette.ts b/apps/web/src/features/agents/lib/agentPalette.ts similarity index 100% rename from src/features/agents/lib/agentPalette.ts rename to apps/web/src/features/agents/lib/agentPalette.ts diff --git a/src/features/agents/lib/askShortcut.test.ts b/apps/web/src/features/agents/lib/askShortcut.test.ts similarity index 100% rename from src/features/agents/lib/askShortcut.test.ts rename to apps/web/src/features/agents/lib/askShortcut.test.ts diff --git a/src/features/agents/lib/askShortcut.ts b/apps/web/src/features/agents/lib/askShortcut.ts similarity index 100% rename from src/features/agents/lib/askShortcut.ts rename to apps/web/src/features/agents/lib/askShortcut.ts diff --git a/src/features/agents/logic/workflowTemplates.ts b/apps/web/src/features/agents/logic/workflowTemplates.ts similarity index 100% rename from src/features/agents/logic/workflowTemplates.ts rename to apps/web/src/features/agents/logic/workflowTemplates.ts diff --git a/src/features/agents/primitives/AgentAuthorTag.tsx b/apps/web/src/features/agents/primitives/AgentAuthorTag.tsx similarity index 100% rename from src/features/agents/primitives/AgentAuthorTag.tsx rename to apps/web/src/features/agents/primitives/AgentAuthorTag.tsx diff --git a/src/features/agents/primitives/AgentComposer.tsx b/apps/web/src/features/agents/primitives/AgentComposer.tsx similarity index 100% rename from src/features/agents/primitives/AgentComposer.tsx rename to apps/web/src/features/agents/primitives/AgentComposer.tsx diff --git a/src/features/agents/primitives/AgentFlowRail.tsx b/apps/web/src/features/agents/primitives/AgentFlowRail.tsx similarity index 100% rename from src/features/agents/primitives/AgentFlowRail.tsx rename to apps/web/src/features/agents/primitives/AgentFlowRail.tsx diff --git a/src/features/agents/types/reasoningGraph.ts b/apps/web/src/features/agents/types/reasoningGraph.ts similarity index 100% rename from src/features/agents/types/reasoningGraph.ts rename to apps/web/src/features/agents/types/reasoningGraph.ts diff --git a/src/features/agents/views/AgentsHub.test.ts b/apps/web/src/features/agents/views/AgentsHub.test.ts similarity index 100% rename from src/features/agents/views/AgentsHub.test.ts rename to apps/web/src/features/agents/views/AgentsHub.test.ts diff --git a/src/features/agents/views/AgentsHub.tsx b/apps/web/src/features/agents/views/AgentsHub.tsx similarity index 100% rename from src/features/agents/views/AgentsHub.tsx rename to apps/web/src/features/agents/views/AgentsHub.tsx diff --git a/src/features/agents/views/DeepAgentProgress.tsx b/apps/web/src/features/agents/views/DeepAgentProgress.tsx similarity index 100% rename from src/features/agents/views/DeepAgentProgress.tsx rename to apps/web/src/features/agents/views/DeepAgentProgress.tsx diff --git a/src/features/agents/views/LiveAgentLanes.tsx b/apps/web/src/features/agents/views/LiveAgentLanes.tsx similarity index 100% rename from src/features/agents/views/LiveAgentLanes.tsx rename to apps/web/src/features/agents/views/LiveAgentLanes.tsx diff --git a/src/features/agents/views/PublicActivityView.tsx b/apps/web/src/features/agents/views/PublicActivityView.tsx similarity index 100% rename from src/features/agents/views/PublicActivityView.tsx rename to apps/web/src/features/agents/views/PublicActivityView.tsx diff --git a/src/features/agents/views/TaskPlanPanel.tsx b/apps/web/src/features/agents/views/TaskPlanPanel.tsx similarity index 100% rename from src/features/agents/views/TaskPlanPanel.tsx rename to apps/web/src/features/agents/views/TaskPlanPanel.tsx diff --git a/src/features/agents/views/WorkflowMetricsBar.tsx b/apps/web/src/features/agents/views/WorkflowMetricsBar.tsx similarity index 100% rename from src/features/agents/views/WorkflowMetricsBar.tsx rename to apps/web/src/features/agents/views/WorkflowMetricsBar.tsx diff --git a/src/features/artifacts/components/ArtifactHost.tsx b/apps/web/src/features/artifacts/components/ArtifactHost.tsx similarity index 100% rename from src/features/artifacts/components/ArtifactHost.tsx rename to apps/web/src/features/artifacts/components/ArtifactHost.tsx diff --git a/src/features/artifacts/components/ArtifactTabs.tsx b/apps/web/src/features/artifacts/components/ArtifactTabs.tsx similarity index 100% rename from src/features/artifacts/components/ArtifactTabs.tsx rename to apps/web/src/features/artifacts/components/ArtifactTabs.tsx diff --git a/src/features/artifacts/context/ArtifactContext.tsx b/apps/web/src/features/artifacts/context/ArtifactContext.tsx similarity index 100% rename from src/features/artifacts/context/ArtifactContext.tsx rename to apps/web/src/features/artifacts/context/ArtifactContext.tsx diff --git a/src/features/artifacts/index.ts b/apps/web/src/features/artifacts/index.ts similarity index 100% rename from src/features/artifacts/index.ts rename to apps/web/src/features/artifacts/index.ts diff --git a/src/features/benchmarks/components/ModelLeaderboard.tsx b/apps/web/src/features/benchmarks/components/ModelLeaderboard.tsx similarity index 100% rename from src/features/benchmarks/components/ModelLeaderboard.tsx rename to apps/web/src/features/benchmarks/components/ModelLeaderboard.tsx diff --git a/src/features/benchmarks/components/ScenarioCatalog.tsx b/apps/web/src/features/benchmarks/components/ScenarioCatalog.tsx similarity index 100% rename from src/features/benchmarks/components/ScenarioCatalog.tsx rename to apps/web/src/features/benchmarks/components/ScenarioCatalog.tsx diff --git a/src/features/benchmarks/components/TelemetryInspector.test.tsx b/apps/web/src/features/benchmarks/components/TelemetryInspector.test.tsx similarity index 100% rename from src/features/benchmarks/components/TelemetryInspector.test.tsx rename to apps/web/src/features/benchmarks/components/TelemetryInspector.test.tsx diff --git a/src/features/benchmarks/components/TelemetryInspector.tsx b/apps/web/src/features/benchmarks/components/TelemetryInspector.tsx similarity index 100% rename from src/features/benchmarks/components/TelemetryInspector.tsx rename to apps/web/src/features/benchmarks/components/TelemetryInspector.tsx diff --git a/src/features/benchmarks/components/WorkbenchRunsTable.tsx b/apps/web/src/features/benchmarks/components/WorkbenchRunsTable.tsx similarity index 100% rename from src/features/benchmarks/components/WorkbenchRunsTable.tsx rename to apps/web/src/features/benchmarks/components/WorkbenchRunsTable.tsx diff --git a/src/features/benchmarks/components/workbenchScenarios.ts b/apps/web/src/features/benchmarks/components/workbenchScenarios.ts similarity index 100% rename from src/features/benchmarks/components/workbenchScenarios.ts rename to apps/web/src/features/benchmarks/components/workbenchScenarios.ts diff --git a/src/features/benchmarks/data/telemetryInspectorMockData.ts b/apps/web/src/features/benchmarks/data/telemetryInspectorMockData.ts similarity index 100% rename from src/features/benchmarks/data/telemetryInspectorMockData.ts rename to apps/web/src/features/benchmarks/data/telemetryInspectorMockData.ts diff --git a/src/features/benchmarks/lib/telemetryInspectorArtifacts.test.ts b/apps/web/src/features/benchmarks/lib/telemetryInspectorArtifacts.test.ts similarity index 100% rename from src/features/benchmarks/lib/telemetryInspectorArtifacts.test.ts rename to apps/web/src/features/benchmarks/lib/telemetryInspectorArtifacts.test.ts diff --git a/src/features/benchmarks/lib/telemetryInspectorArtifacts.ts b/apps/web/src/features/benchmarks/lib/telemetryInspectorArtifacts.ts similarity index 100% rename from src/features/benchmarks/lib/telemetryInspectorArtifacts.ts rename to apps/web/src/features/benchmarks/lib/telemetryInspectorArtifacts.ts diff --git a/src/features/benchmarks/store/useTelemetryInspectorStore.ts b/apps/web/src/features/benchmarks/store/useTelemetryInspectorStore.ts similarity index 100% rename from src/features/benchmarks/store/useTelemetryInspectorStore.ts rename to apps/web/src/features/benchmarks/store/useTelemetryInspectorStore.ts diff --git a/src/features/benchmarks/views/WorkbenchView.tsx b/apps/web/src/features/benchmarks/views/WorkbenchView.tsx similarity index 100% rename from src/features/benchmarks/views/WorkbenchView.tsx rename to apps/web/src/features/benchmarks/views/WorkbenchView.tsx diff --git a/src/features/calendar/components/CalendarDatePopover.tsx b/apps/web/src/features/calendar/components/CalendarDatePopover.tsx similarity index 100% rename from src/features/calendar/components/CalendarDatePopover.tsx rename to apps/web/src/features/calendar/components/CalendarDatePopover.tsx diff --git a/src/features/calendar/components/CalendarHeatmapDots.tsx b/apps/web/src/features/calendar/components/CalendarHeatmapDots.tsx similarity index 100% rename from src/features/calendar/components/CalendarHeatmapDots.tsx rename to apps/web/src/features/calendar/components/CalendarHeatmapDots.tsx diff --git a/src/features/calendar/components/CalendarHomeHub.tsx b/apps/web/src/features/calendar/components/CalendarHomeHub.tsx similarity index 100% rename from src/features/calendar/components/CalendarHomeHub.tsx rename to apps/web/src/features/calendar/components/CalendarHomeHub.tsx diff --git a/src/features/calendar/components/EventEditorPanel.tsx b/apps/web/src/features/calendar/components/EventEditorPanel.tsx similarity index 100% rename from src/features/calendar/components/EventEditorPanel.tsx rename to apps/web/src/features/calendar/components/EventEditorPanel.tsx diff --git a/src/features/calendar/components/MiniMonthCalendar.tsx b/apps/web/src/features/calendar/components/MiniMonthCalendar.tsx similarity index 100% rename from src/features/calendar/components/MiniMonthCalendar.tsx rename to apps/web/src/features/calendar/components/MiniMonthCalendar.tsx diff --git a/src/features/calendar/components/TaskEditorPanel.tsx b/apps/web/src/features/calendar/components/TaskEditorPanel.tsx similarity index 100% rename from src/features/calendar/components/TaskEditorPanel.tsx rename to apps/web/src/features/calendar/components/TaskEditorPanel.tsx diff --git a/src/features/calendar/components/agenda/AgendaEditorPopover.tsx b/apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx similarity index 100% rename from src/features/calendar/components/agenda/AgendaEditorPopover.tsx rename to apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx diff --git a/src/features/calendar/components/agenda/AgendaHoverPreview.tsx b/apps/web/src/features/calendar/components/agenda/AgendaHoverPreview.tsx similarity index 100% rename from src/features/calendar/components/agenda/AgendaHoverPreview.tsx rename to apps/web/src/features/calendar/components/agenda/AgendaHoverPreview.tsx diff --git a/src/features/calendar/components/agenda/AgendaMiniRow.test.tsx b/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.test.tsx similarity index 100% rename from src/features/calendar/components/agenda/AgendaMiniRow.test.tsx rename to apps/web/src/features/calendar/components/agenda/AgendaMiniRow.test.tsx diff --git a/src/features/calendar/components/agenda/AgendaMiniRow.tsx b/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx similarity index 100% rename from src/features/calendar/components/agenda/AgendaMiniRow.tsx rename to apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx diff --git a/src/features/calendar/components/agenda/AgendaSortableItem.tsx b/apps/web/src/features/calendar/components/agenda/AgendaSortableItem.tsx similarity index 100% rename from src/features/calendar/components/agenda/AgendaSortableItem.tsx rename to apps/web/src/features/calendar/components/agenda/AgendaSortableItem.tsx diff --git a/src/features/calendar/components/agenda/InlineEventEditor.tsx b/apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx similarity index 100% rename from src/features/calendar/components/agenda/InlineEventEditor.tsx rename to apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx diff --git a/src/features/calendar/components/agenda/InlineTaskEditor.tsx b/apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx similarity index 100% rename from src/features/calendar/components/agenda/InlineTaskEditor.tsx rename to apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx diff --git a/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx b/apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx similarity index 100% rename from src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx rename to apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx diff --git a/src/features/calendar/hooks/useCalendarAgenda.ts b/apps/web/src/features/calendar/hooks/useCalendarAgenda.ts similarity index 100% rename from src/features/calendar/hooks/useCalendarAgenda.ts rename to apps/web/src/features/calendar/hooks/useCalendarAgenda.ts diff --git a/src/features/calendar/index.ts b/apps/web/src/features/calendar/index.ts similarity index 100% rename from src/features/calendar/index.ts rename to apps/web/src/features/calendar/index.ts diff --git a/src/features/calendar/views/CalendarView.tsx b/apps/web/src/features/calendar/views/CalendarView.tsx similarity index 100% rename from src/features/calendar/views/CalendarView.tsx rename to apps/web/src/features/calendar/views/CalendarView.tsx diff --git a/src/features/chat/components/AgentResilienceConnector.tsx b/apps/web/src/features/chat/components/AgentResilienceConnector.tsx similarity index 100% rename from src/features/chat/components/AgentResilienceConnector.tsx rename to apps/web/src/features/chat/components/AgentResilienceConnector.tsx diff --git a/src/features/chat/components/BackgroundRunsChip.test.tsx b/apps/web/src/features/chat/components/BackgroundRunsChip.test.tsx similarity index 100% rename from src/features/chat/components/BackgroundRunsChip.test.tsx rename to apps/web/src/features/chat/components/BackgroundRunsChip.test.tsx diff --git a/src/features/chat/components/BackgroundRunsChip.tsx b/apps/web/src/features/chat/components/BackgroundRunsChip.tsx similarity index 100% rename from src/features/chat/components/BackgroundRunsChip.tsx rename to apps/web/src/features/chat/components/BackgroundRunsChip.tsx diff --git a/src/features/chat/components/ChatLane.tsx b/apps/web/src/features/chat/components/ChatLane.tsx similarity index 100% rename from src/features/chat/components/ChatLane.tsx rename to apps/web/src/features/chat/components/ChatLane.tsx diff --git a/src/features/chat/components/ChatShareSheet.tsx b/apps/web/src/features/chat/components/ChatShareSheet.tsx similarity index 100% rename from src/features/chat/components/ChatShareSheet.tsx rename to apps/web/src/features/chat/components/ChatShareSheet.tsx diff --git a/src/features/chat/components/ClassificationChip.tsx b/apps/web/src/features/chat/components/ClassificationChip.tsx similarity index 100% rename from src/features/chat/components/ClassificationChip.tsx rename to apps/web/src/features/chat/components/ClassificationChip.tsx diff --git a/src/features/chat/components/ConversationProgressCard.test.tsx b/apps/web/src/features/chat/components/ConversationProgressCard.test.tsx similarity index 100% rename from src/features/chat/components/ConversationProgressCard.test.tsx rename to apps/web/src/features/chat/components/ConversationProgressCard.test.tsx diff --git a/src/features/chat/components/ConversationProgressCard.tsx b/apps/web/src/features/chat/components/ConversationProgressCard.tsx similarity index 100% rename from src/features/chat/components/ConversationProgressCard.tsx rename to apps/web/src/features/chat/components/ConversationProgressCard.tsx diff --git a/src/features/chat/components/EntityDisambiguationCard.tsx b/apps/web/src/features/chat/components/EntityDisambiguationCard.tsx similarity index 100% rename from src/features/chat/components/EntityDisambiguationCard.tsx rename to apps/web/src/features/chat/components/EntityDisambiguationCard.tsx diff --git a/src/features/chat/components/EntityIntelligenceRail.tsx b/apps/web/src/features/chat/components/EntityIntelligenceRail.tsx similarity index 100% rename from src/features/chat/components/EntityIntelligenceRail.tsx rename to apps/web/src/features/chat/components/EntityIntelligenceRail.tsx diff --git a/src/features/chat/components/LessonsPanel.tsx b/apps/web/src/features/chat/components/LessonsPanel.tsx similarity index 100% rename from src/features/chat/components/LessonsPanel.tsx rename to apps/web/src/features/chat/components/LessonsPanel.tsx diff --git a/src/features/chat/components/LowConfidenceCard.tsx b/apps/web/src/features/chat/components/LowConfidenceCard.tsx similarity index 100% rename from src/features/chat/components/LowConfidenceCard.tsx rename to apps/web/src/features/chat/components/LowConfidenceCard.tsx diff --git a/src/features/chat/components/ModelSwitchedCard.tsx b/apps/web/src/features/chat/components/ModelSwitchedCard.tsx similarity index 100% rename from src/features/chat/components/ModelSwitchedCard.tsx rename to apps/web/src/features/chat/components/ModelSwitchedCard.tsx diff --git a/src/features/chat/components/QuotePopover.tsx b/apps/web/src/features/chat/components/QuotePopover.tsx similarity index 100% rename from src/features/chat/components/QuotePopover.tsx rename to apps/web/src/features/chat/components/QuotePopover.tsx diff --git a/src/features/chat/components/ResilienceSettings.tsx b/apps/web/src/features/chat/components/ResilienceSettings.tsx similarity index 100% rename from src/features/chat/components/ResilienceSettings.tsx rename to apps/web/src/features/chat/components/ResilienceSettings.tsx diff --git a/src/features/chat/components/RollbackMessageCard.tsx b/apps/web/src/features/chat/components/RollbackMessageCard.tsx similarity index 100% rename from src/features/chat/components/RollbackMessageCard.tsx rename to apps/web/src/features/chat/components/RollbackMessageCard.tsx diff --git a/src/features/chat/components/SessionArtifactsPanel.tsx b/apps/web/src/features/chat/components/SessionArtifactsPanel.tsx similarity index 100% rename from src/features/chat/components/SessionArtifactsPanel.tsx rename to apps/web/src/features/chat/components/SessionArtifactsPanel.tsx diff --git a/src/features/chat/components/ThreadActionsSheet.test.tsx b/apps/web/src/features/chat/components/ThreadActionsSheet.test.tsx similarity index 100% rename from src/features/chat/components/ThreadActionsSheet.test.tsx rename to apps/web/src/features/chat/components/ThreadActionsSheet.test.tsx diff --git a/src/features/chat/components/ThreadActionsSheet.tsx b/apps/web/src/features/chat/components/ThreadActionsSheet.tsx similarity index 100% rename from src/features/chat/components/ThreadActionsSheet.tsx rename to apps/web/src/features/chat/components/ThreadActionsSheet.tsx diff --git a/src/features/chat/hooks/useConversationEngine.ts b/apps/web/src/features/chat/hooks/useConversationEngine.ts similarity index 100% rename from src/features/chat/hooks/useConversationEngine.ts rename to apps/web/src/features/chat/hooks/useConversationEngine.ts diff --git a/src/features/chat/hooks/useRollbackInterceptor.ts b/apps/web/src/features/chat/hooks/useRollbackInterceptor.ts similarity index 100% rename from src/features/chat/hooks/useRollbackInterceptor.ts rename to apps/web/src/features/chat/hooks/useRollbackInterceptor.ts diff --git a/src/features/chat/lib/classifyPrompt.ts b/apps/web/src/features/chat/lib/classifyPrompt.ts similarity index 100% rename from src/features/chat/lib/classifyPrompt.ts rename to apps/web/src/features/chat/lib/classifyPrompt.ts diff --git a/src/features/chat/lib/detectRollbackIntent.test.ts b/apps/web/src/features/chat/lib/detectRollbackIntent.test.ts similarity index 100% rename from src/features/chat/lib/detectRollbackIntent.test.ts rename to apps/web/src/features/chat/lib/detectRollbackIntent.test.ts diff --git a/src/features/chat/lib/detectRollbackIntent.ts b/apps/web/src/features/chat/lib/detectRollbackIntent.ts similarity index 100% rename from src/features/chat/lib/detectRollbackIntent.ts rename to apps/web/src/features/chat/lib/detectRollbackIntent.ts diff --git a/src/features/chat/lib/threadRouting.test.ts b/apps/web/src/features/chat/lib/threadRouting.test.ts similarity index 100% rename from src/features/chat/lib/threadRouting.test.ts rename to apps/web/src/features/chat/lib/threadRouting.test.ts diff --git a/src/features/chat/lib/threadRouting.ts b/apps/web/src/features/chat/lib/threadRouting.ts similarity index 100% rename from src/features/chat/lib/threadRouting.ts rename to apps/web/src/features/chat/lib/threadRouting.ts diff --git a/src/features/controlPlane/components/BenchmarkComparison.tsx b/apps/web/src/features/controlPlane/components/BenchmarkComparison.tsx similarity index 100% rename from src/features/controlPlane/components/BenchmarkComparison.tsx rename to apps/web/src/features/controlPlane/components/BenchmarkComparison.tsx diff --git a/src/features/controlPlane/components/ChatMessage.tsx b/apps/web/src/features/controlPlane/components/ChatMessage.tsx similarity index 100% rename from src/features/controlPlane/components/ChatMessage.tsx rename to apps/web/src/features/controlPlane/components/ChatMessage.tsx diff --git a/src/features/controlPlane/components/ChatThread.tsx b/apps/web/src/features/controlPlane/components/ChatThread.tsx similarity index 100% rename from src/features/controlPlane/components/ChatThread.tsx rename to apps/web/src/features/controlPlane/components/ChatThread.tsx diff --git a/src/features/controlPlane/components/CitationFootnote.tsx b/apps/web/src/features/controlPlane/components/CitationFootnote.tsx similarity index 100% rename from src/features/controlPlane/components/CitationFootnote.tsx rename to apps/web/src/features/controlPlane/components/CitationFootnote.tsx diff --git a/src/features/controlPlane/components/CitationLink.tsx b/apps/web/src/features/controlPlane/components/CitationLink.tsx similarity index 100% rename from src/features/controlPlane/components/CitationLink.tsx rename to apps/web/src/features/controlPlane/components/CitationLink.tsx diff --git a/src/features/controlPlane/components/CompanyProfile.tsx b/apps/web/src/features/controlPlane/components/CompanyProfile.tsx similarity index 100% rename from src/features/controlPlane/components/CompanyProfile.tsx rename to apps/web/src/features/controlPlane/components/CompanyProfile.tsx diff --git a/src/features/controlPlane/components/ConferenceCapture.tsx b/apps/web/src/features/controlPlane/components/ConferenceCapture.tsx similarity index 100% rename from src/features/controlPlane/components/ConferenceCapture.tsx rename to apps/web/src/features/controlPlane/components/ConferenceCapture.tsx diff --git a/src/features/controlPlane/components/DCFCard.tsx b/apps/web/src/features/controlPlane/components/DCFCard.tsx similarity index 100% rename from src/features/controlPlane/components/DCFCard.tsx rename to apps/web/src/features/controlPlane/components/DCFCard.tsx diff --git a/src/features/controlPlane/components/DelegationModal.tsx b/apps/web/src/features/controlPlane/components/DelegationModal.tsx similarity index 100% rename from src/features/controlPlane/components/DelegationModal.tsx rename to apps/web/src/features/controlPlane/components/DelegationModal.tsx diff --git a/src/features/controlPlane/components/EntityCompare.tsx b/apps/web/src/features/controlPlane/components/EntityCompare.tsx similarity index 100% rename from src/features/controlPlane/components/EntityCompare.tsx rename to apps/web/src/features/controlPlane/components/EntityCompare.tsx diff --git a/src/features/controlPlane/components/FounderEpisodePanel.tsx b/apps/web/src/features/controlPlane/components/FounderEpisodePanel.tsx similarity index 100% rename from src/features/controlPlane/components/FounderEpisodePanel.tsx rename to apps/web/src/features/controlPlane/components/FounderEpisodePanel.tsx diff --git a/src/features/controlPlane/components/HomesHubSession.tsx b/apps/web/src/features/controlPlane/components/HomesHubSession.tsx similarity index 100% rename from src/features/controlPlane/components/HomesHubSession.tsx rename to apps/web/src/features/controlPlane/components/HomesHubSession.tsx diff --git a/src/features/controlPlane/components/LandingScroll.tsx b/apps/web/src/features/controlPlane/components/LandingScroll.tsx similarity index 100% rename from src/features/controlPlane/components/LandingScroll.tsx rename to apps/web/src/features/controlPlane/components/LandingScroll.tsx diff --git a/src/features/controlPlane/components/LivePipelineProgress.tsx b/apps/web/src/features/controlPlane/components/LivePipelineProgress.tsx similarity index 100% rename from src/features/controlPlane/components/LivePipelineProgress.tsx rename to apps/web/src/features/controlPlane/components/LivePipelineProgress.tsx diff --git a/src/features/controlPlane/components/LiveSearchTelemetry.tsx b/apps/web/src/features/controlPlane/components/LiveSearchTelemetry.tsx similarity index 100% rename from src/features/controlPlane/components/LiveSearchTelemetry.tsx rename to apps/web/src/features/controlPlane/components/LiveSearchTelemetry.tsx diff --git a/src/features/controlPlane/components/ReceiptApprovalQueue.test.tsx b/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.test.tsx similarity index 100% rename from src/features/controlPlane/components/ReceiptApprovalQueue.test.tsx rename to apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.test.tsx diff --git a/src/features/controlPlane/components/ReceiptApprovalQueue.tsx b/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx similarity index 100% rename from src/features/controlPlane/components/ReceiptApprovalQueue.tsx rename to apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx diff --git a/src/features/controlPlane/components/ReceiptCard.tsx b/apps/web/src/features/controlPlane/components/ReceiptCard.tsx similarity index 100% rename from src/features/controlPlane/components/ReceiptCard.tsx rename to apps/web/src/features/controlPlane/components/ReceiptCard.tsx diff --git a/src/features/controlPlane/components/RecentSearchHistory.tsx b/apps/web/src/features/controlPlane/components/RecentSearchHistory.tsx similarity index 100% rename from src/features/controlPlane/components/RecentSearchHistory.tsx rename to apps/web/src/features/controlPlane/components/RecentSearchHistory.tsx diff --git a/src/features/controlPlane/components/RoleLensOutput.tsx b/apps/web/src/features/controlPlane/components/RoleLensOutput.tsx similarity index 100% rename from src/features/controlPlane/components/RoleLensOutput.tsx rename to apps/web/src/features/controlPlane/components/RoleLensOutput.tsx diff --git a/src/features/controlPlane/components/SearchTrace.test.tsx b/apps/web/src/features/controlPlane/components/SearchTrace.test.tsx similarity index 100% rename from src/features/controlPlane/components/SearchTrace.test.tsx rename to apps/web/src/features/controlPlane/components/SearchTrace.test.tsx diff --git a/src/features/controlPlane/components/SearchTrace.tsx b/apps/web/src/features/controlPlane/components/SearchTrace.tsx similarity index 100% rename from src/features/controlPlane/components/SearchTrace.tsx rename to apps/web/src/features/controlPlane/components/SearchTrace.tsx diff --git a/src/features/controlPlane/components/SignalCard.tsx b/apps/web/src/features/controlPlane/components/SignalCard.tsx similarity index 100% rename from src/features/controlPlane/components/SignalCard.tsx rename to apps/web/src/features/controlPlane/components/SignalCard.tsx diff --git a/src/features/controlPlane/components/SyncProvenanceBadge.test.tsx b/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.test.tsx similarity index 100% rename from src/features/controlPlane/components/SyncProvenanceBadge.test.tsx rename to apps/web/src/features/controlPlane/components/SyncProvenanceBadge.test.tsx diff --git a/src/features/controlPlane/components/SyncProvenanceBadge.tsx b/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx similarity index 100% rename from src/features/controlPlane/components/SyncProvenanceBadge.tsx rename to apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx diff --git a/src/features/controlPlane/components/dogfoodSuite.ts b/apps/web/src/features/controlPlane/components/dogfoodSuite.ts similarity index 100% rename from src/features/controlPlane/components/dogfoodSuite.ts rename to apps/web/src/features/controlPlane/components/dogfoodSuite.ts diff --git a/src/features/controlPlane/components/dogfoodTelemetry.ts b/apps/web/src/features/controlPlane/components/dogfoodTelemetry.ts similarity index 100% rename from src/features/controlPlane/components/dogfoodTelemetry.ts rename to apps/web/src/features/controlPlane/components/dogfoodTelemetry.ts diff --git a/src/features/controlPlane/components/proofModel.test.ts b/apps/web/src/features/controlPlane/components/proofModel.test.ts similarity index 100% rename from src/features/controlPlane/components/proofModel.test.ts rename to apps/web/src/features/controlPlane/components/proofModel.test.ts diff --git a/src/features/controlPlane/components/proofModel.ts b/apps/web/src/features/controlPlane/components/proofModel.ts similarity index 100% rename from src/features/controlPlane/components/proofModel.ts rename to apps/web/src/features/controlPlane/components/proofModel.ts diff --git a/src/features/controlPlane/components/searchTypes.ts b/apps/web/src/features/controlPlane/components/searchTypes.ts similarity index 100% rename from src/features/controlPlane/components/searchTypes.ts rename to apps/web/src/features/controlPlane/components/searchTypes.ts diff --git a/src/features/controlPlane/data/receiptFixtures.ts b/apps/web/src/features/controlPlane/data/receiptFixtures.ts similarity index 100% rename from src/features/controlPlane/data/receiptFixtures.ts rename to apps/web/src/features/controlPlane/data/receiptFixtures.ts diff --git a/src/features/controlPlane/lib/onboardingState.test.ts b/apps/web/src/features/controlPlane/lib/onboardingState.test.ts similarity index 100% rename from src/features/controlPlane/lib/onboardingState.test.ts rename to apps/web/src/features/controlPlane/lib/onboardingState.test.ts diff --git a/src/features/controlPlane/lib/onboardingState.ts b/apps/web/src/features/controlPlane/lib/onboardingState.ts similarity index 100% rename from src/features/controlPlane/lib/onboardingState.ts rename to apps/web/src/features/controlPlane/lib/onboardingState.ts diff --git a/src/features/controlPlane/lib/receiptPresentation.test.ts b/apps/web/src/features/controlPlane/lib/receiptPresentation.test.ts similarity index 100% rename from src/features/controlPlane/lib/receiptPresentation.test.ts rename to apps/web/src/features/controlPlane/lib/receiptPresentation.test.ts diff --git a/src/features/controlPlane/lib/receiptPresentation.ts b/apps/web/src/features/controlPlane/lib/receiptPresentation.ts similarity index 100% rename from src/features/controlPlane/lib/receiptPresentation.ts rename to apps/web/src/features/controlPlane/lib/receiptPresentation.ts diff --git a/src/features/controlPlane/lib/toolCatalog.ts b/apps/web/src/features/controlPlane/lib/toolCatalog.ts similarity index 100% rename from src/features/controlPlane/lib/toolCatalog.ts rename to apps/web/src/features/controlPlane/lib/toolCatalog.ts diff --git a/src/features/controlPlane/types/actionReceipt.ts b/apps/web/src/features/controlPlane/types/actionReceipt.ts similarity index 100% rename from src/features/controlPlane/types/actionReceipt.ts rename to apps/web/src/features/controlPlane/types/actionReceipt.ts diff --git a/src/features/controlPlane/types/agentPassport.ts b/apps/web/src/features/controlPlane/types/agentPassport.ts similarity index 100% rename from src/features/controlPlane/types/agentPassport.ts rename to apps/web/src/features/controlPlane/types/agentPassport.ts diff --git a/src/features/controlPlane/types/index.ts b/apps/web/src/features/controlPlane/types/index.ts similarity index 100% rename from src/features/controlPlane/types/index.ts rename to apps/web/src/features/controlPlane/types/index.ts diff --git a/src/features/controlPlane/views/AboutPage.tsx b/apps/web/src/features/controlPlane/views/AboutPage.tsx similarity index 100% rename from src/features/controlPlane/views/AboutPage.tsx rename to apps/web/src/features/controlPlane/views/AboutPage.tsx diff --git a/src/features/controlPlane/views/ActionReceiptFeed.test.tsx b/apps/web/src/features/controlPlane/views/ActionReceiptFeed.test.tsx similarity index 100% rename from src/features/controlPlane/views/ActionReceiptFeed.test.tsx rename to apps/web/src/features/controlPlane/views/ActionReceiptFeed.test.tsx diff --git a/src/features/controlPlane/views/ActionReceiptFeed.tsx b/apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx similarity index 100% rename from src/features/controlPlane/views/ActionReceiptFeed.tsx rename to apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx diff --git a/src/features/controlPlane/views/ApiDocsPage.tsx b/apps/web/src/features/controlPlane/views/ApiDocsPage.tsx similarity index 100% rename from src/features/controlPlane/views/ApiDocsPage.tsx rename to apps/web/src/features/controlPlane/views/ApiDocsPage.tsx diff --git a/src/features/controlPlane/views/ChangelogPage.tsx b/apps/web/src/features/controlPlane/views/ChangelogPage.tsx similarity index 100% rename from src/features/controlPlane/views/ChangelogPage.tsx rename to apps/web/src/features/controlPlane/views/ChangelogPage.tsx diff --git a/src/features/controlPlane/views/DelegationShowcase.test.tsx b/apps/web/src/features/controlPlane/views/DelegationShowcase.test.tsx similarity index 100% rename from src/features/controlPlane/views/DelegationShowcase.test.tsx rename to apps/web/src/features/controlPlane/views/DelegationShowcase.test.tsx diff --git a/src/features/controlPlane/views/DelegationShowcase.tsx b/apps/web/src/features/controlPlane/views/DelegationShowcase.tsx similarity index 100% rename from src/features/controlPlane/views/DelegationShowcase.tsx rename to apps/web/src/features/controlPlane/views/DelegationShowcase.tsx diff --git a/src/features/controlPlane/views/DevelopersPage.tsx b/apps/web/src/features/controlPlane/views/DevelopersPage.tsx similarity index 100% rename from src/features/controlPlane/views/DevelopersPage.tsx rename to apps/web/src/features/controlPlane/views/DevelopersPage.tsx diff --git a/src/features/controlPlane/views/LegalPage.tsx b/apps/web/src/features/controlPlane/views/LegalPage.tsx similarity index 100% rename from src/features/controlPlane/views/LegalPage.tsx rename to apps/web/src/features/controlPlane/views/LegalPage.tsx diff --git a/src/features/controlPlane/views/NotFoundPage.tsx b/apps/web/src/features/controlPlane/views/NotFoundPage.tsx similarity index 100% rename from src/features/controlPlane/views/NotFoundPage.tsx rename to apps/web/src/features/controlPlane/views/NotFoundPage.tsx diff --git a/src/features/controlPlane/views/PricingPage.test.tsx b/apps/web/src/features/controlPlane/views/PricingPage.test.tsx similarity index 100% rename from src/features/controlPlane/views/PricingPage.test.tsx rename to apps/web/src/features/controlPlane/views/PricingPage.test.tsx diff --git a/src/features/controlPlane/views/PricingPage.tsx b/apps/web/src/features/controlPlane/views/PricingPage.tsx similarity index 100% rename from src/features/controlPlane/views/PricingPage.tsx rename to apps/web/src/features/controlPlane/views/PricingPage.tsx diff --git a/src/features/deepSim/components/HcsnGraphPanel.tsx b/apps/web/src/features/deepSim/components/HcsnGraphPanel.tsx similarity index 100% rename from src/features/deepSim/components/HcsnGraphPanel.tsx rename to apps/web/src/features/deepSim/components/HcsnGraphPanel.tsx diff --git a/src/features/deepSim/fixtures.ts b/apps/web/src/features/deepSim/fixtures.ts similarity index 100% rename from src/features/deepSim/fixtures.ts rename to apps/web/src/features/deepSim/fixtures.ts diff --git a/src/features/deepSim/index.ts b/apps/web/src/features/deepSim/index.ts similarity index 100% rename from src/features/deepSim/index.ts rename to apps/web/src/features/deepSim/index.ts diff --git a/src/features/deepSim/types.ts b/apps/web/src/features/deepSim/types.ts similarity index 100% rename from src/features/deepSim/types.ts rename to apps/web/src/features/deepSim/types.ts diff --git a/src/features/deepSim/views/DecisionMemoView.tsx b/apps/web/src/features/deepSim/views/DecisionMemoView.tsx similarity index 100% rename from src/features/deepSim/views/DecisionMemoView.tsx rename to apps/web/src/features/deepSim/views/DecisionMemoView.tsx diff --git a/src/features/deepSim/views/PostmortemView.tsx b/apps/web/src/features/deepSim/views/PostmortemView.tsx similarity index 100% rename from src/features/deepSim/views/PostmortemView.tsx rename to apps/web/src/features/deepSim/views/PostmortemView.tsx diff --git a/src/features/designKit/exact/ExactComposer.entityMentions.test.tsx b/apps/web/src/features/designKit/exact/ExactComposer.entityMentions.test.tsx similarity index 100% rename from src/features/designKit/exact/ExactComposer.entityMentions.test.tsx rename to apps/web/src/features/designKit/exact/ExactComposer.entityMentions.test.tsx diff --git a/src/features/designKit/exact/ExactComposer.tsx b/apps/web/src/features/designKit/exact/ExactComposer.tsx similarity index 100% rename from src/features/designKit/exact/ExactComposer.tsx rename to apps/web/src/features/designKit/exact/ExactComposer.tsx diff --git a/src/features/designKit/exact/ExactKit.tsx b/apps/web/src/features/designKit/exact/ExactKit.tsx similarity index 100% rename from src/features/designKit/exact/ExactKit.tsx rename to apps/web/src/features/designKit/exact/ExactKit.tsx diff --git a/src/features/designKit/exact/__tests__/ResponsiveSurface.dedup.test.tsx b/apps/web/src/features/designKit/exact/__tests__/ResponsiveSurface.dedup.test.tsx similarity index 100% rename from src/features/designKit/exact/__tests__/ResponsiveSurface.dedup.test.tsx rename to apps/web/src/features/designKit/exact/__tests__/ResponsiveSurface.dedup.test.tsx diff --git a/src/features/designKit/exact/__tests__/exactRuntimeContracts.test.ts b/apps/web/src/features/designKit/exact/__tests__/exactRuntimeContracts.test.ts similarity index 100% rename from src/features/designKit/exact/__tests__/exactRuntimeContracts.test.ts rename to apps/web/src/features/designKit/exact/__tests__/exactRuntimeContracts.test.ts diff --git a/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts b/apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts similarity index 100% rename from src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts rename to apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts diff --git a/src/features/designKit/exact/exactKit.css b/apps/web/src/features/designKit/exact/exactKit.css similarity index 100% rename from src/features/designKit/exact/exactKit.css rename to apps/web/src/features/designKit/exact/exactKit.css diff --git a/src/features/designKit/exact/exactRuntimeContracts.ts b/apps/web/src/features/designKit/exact/exactRuntimeContracts.ts similarity index 100% rename from src/features/designKit/exact/exactRuntimeContracts.ts rename to apps/web/src/features/designKit/exact/exactRuntimeContracts.ts diff --git a/src/features/designKit/exact/useEntitySuggest.ts b/apps/web/src/features/designKit/exact/useEntitySuggest.ts similarity index 100% rename from src/features/designKit/exact/useEntitySuggest.ts rename to apps/web/src/features/designKit/exact/useEntitySuggest.ts diff --git a/src/features/devDashboard/DevDashboard.tsx b/apps/web/src/features/devDashboard/DevDashboard.tsx similarity index 100% rename from src/features/devDashboard/DevDashboard.tsx rename to apps/web/src/features/devDashboard/DevDashboard.tsx diff --git a/src/features/devDashboard/data/timeline.json b/apps/web/src/features/devDashboard/data/timeline.json similarity index 100% rename from src/features/devDashboard/data/timeline.json rename to apps/web/src/features/devDashboard/data/timeline.json diff --git a/src/features/documents/__tests__/bundleGates.test.ts b/apps/web/src/features/documents/__tests__/bundleGates.test.ts similarity index 100% rename from src/features/documents/__tests__/bundleGates.test.ts rename to apps/web/src/features/documents/__tests__/bundleGates.test.ts diff --git a/src/features/documents/__tests__/contextIsolation.test.ts b/apps/web/src/features/documents/__tests__/contextIsolation.test.ts similarity index 100% rename from src/features/documents/__tests__/contextIsolation.test.ts rename to apps/web/src/features/documents/__tests__/contextIsolation.test.ts diff --git a/src/features/documents/__tests__/rerenderIsolation.test.ts b/apps/web/src/features/documents/__tests__/rerenderIsolation.test.ts similarity index 100% rename from src/features/documents/__tests__/rerenderIsolation.test.ts rename to apps/web/src/features/documents/__tests__/rerenderIsolation.test.ts diff --git a/src/features/documents/components/CodeViewer.tsx b/apps/web/src/features/documents/components/CodeViewer.tsx similarity index 100% rename from src/features/documents/components/CodeViewer.tsx rename to apps/web/src/features/documents/components/CodeViewer.tsx diff --git a/src/features/documents/components/DocumentBreadcrumbs.tsx b/apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx similarity index 100% rename from src/features/documents/components/DocumentBreadcrumbs.tsx rename to apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx diff --git a/src/features/documents/components/DocumentGrid.tsx b/apps/web/src/features/documents/components/DocumentGrid.tsx similarity index 100% rename from src/features/documents/components/DocumentGrid.tsx rename to apps/web/src/features/documents/components/DocumentGrid.tsx diff --git a/src/features/documents/components/DocumentHeader.tsx b/apps/web/src/features/documents/components/DocumentHeader.tsx similarity index 100% rename from src/features/documents/components/DocumentHeader.tsx rename to apps/web/src/features/documents/components/DocumentHeader.tsx diff --git a/src/features/documents/components/DocumentRecommendations.tsx b/apps/web/src/features/documents/components/DocumentRecommendations.tsx similarity index 100% rename from src/features/documents/components/DocumentRecommendations.tsx rename to apps/web/src/features/documents/components/DocumentRecommendations.tsx diff --git a/src/features/documents/components/DocumentSidebarPanel.tsx b/apps/web/src/features/documents/components/DocumentSidebarPanel.tsx similarity index 100% rename from src/features/documents/components/DocumentSidebarPanel.tsx rename to apps/web/src/features/documents/components/DocumentSidebarPanel.tsx diff --git a/src/features/documents/components/DocumentsGridSortable.tsx b/apps/web/src/features/documents/components/DocumentsGridSortable.tsx similarity index 100% rename from src/features/documents/components/DocumentsGridSortable.tsx rename to apps/web/src/features/documents/components/DocumentsGridSortable.tsx diff --git a/src/features/documents/components/DocumentsHomeHub.tsx b/apps/web/src/features/documents/components/DocumentsHomeHub.tsx similarity index 100% rename from src/features/documents/components/DocumentsHomeHub.tsx rename to apps/web/src/features/documents/components/DocumentsHomeHub.tsx diff --git a/src/features/documents/components/DocumentsPlannerOverlays.tsx b/apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx similarity index 100% rename from src/features/documents/components/DocumentsPlannerOverlays.tsx rename to apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx diff --git a/src/features/documents/components/DocumentsPlannerSurface.tsx b/apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx similarity index 100% rename from src/features/documents/components/DocumentsPlannerSurface.tsx rename to apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx diff --git a/src/features/documents/components/DocumentsTabContent.tsx b/apps/web/src/features/documents/components/DocumentsTabContent.tsx similarity index 100% rename from src/features/documents/components/DocumentsTabContent.tsx rename to apps/web/src/features/documents/components/DocumentsTabContent.tsx diff --git a/src/features/documents/components/DocumentsWorkspaceSurface.tsx b/apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx similarity index 100% rename from src/features/documents/components/DocumentsWorkspaceSurface.tsx rename to apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx diff --git a/src/features/documents/components/FiltersToolsBar.tsx b/apps/web/src/features/documents/components/FiltersToolsBar.tsx similarity index 100% rename from src/features/documents/components/FiltersToolsBar.tsx rename to apps/web/src/features/documents/components/FiltersToolsBar.tsx diff --git a/src/features/documents/components/MediaCinemaViewer.tsx b/apps/web/src/features/documents/components/MediaCinemaViewer.tsx similarity index 100% rename from src/features/documents/components/MediaCinemaViewer.tsx rename to apps/web/src/features/documents/components/MediaCinemaViewer.tsx diff --git a/src/features/documents/components/RichPreviews.tsx b/apps/web/src/features/documents/components/RichPreviews.tsx similarity index 100% rename from src/features/documents/components/RichPreviews.tsx rename to apps/web/src/features/documents/components/RichPreviews.tsx diff --git a/src/features/documents/components/WorkspaceExplorer.tsx b/apps/web/src/features/documents/components/WorkspaceExplorer.tsx similarity index 100% rename from src/features/documents/components/WorkspaceExplorer.tsx rename to apps/web/src/features/documents/components/WorkspaceExplorer.tsx diff --git a/src/features/documents/components/documentsHub/DocumentsSidebar.tsx b/apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx similarity index 100% rename from src/features/documents/components/documentsHub/DocumentsSidebar.tsx rename to apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx diff --git a/src/features/documents/components/documentsHub/cards/DocumentCard.stories.tsx b/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.stories.tsx similarity index 100% rename from src/features/documents/components/documentsHub/cards/DocumentCard.stories.tsx rename to apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.stories.tsx diff --git a/src/features/documents/components/documentsHub/cards/DocumentCard.tsx b/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx similarity index 100% rename from src/features/documents/components/documentsHub/cards/DocumentCard.tsx rename to apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx diff --git a/src/features/documents/components/documentsHub/cards/DocumentCardSkeleton.tsx b/apps/web/src/features/documents/components/documentsHub/cards/DocumentCardSkeleton.tsx similarity index 100% rename from src/features/documents/components/documentsHub/cards/DocumentCardSkeleton.tsx rename to apps/web/src/features/documents/components/documentsHub/cards/DocumentCardSkeleton.tsx diff --git a/src/features/documents/components/documentsHub/cards/VisualGlimpse.tsx b/apps/web/src/features/documents/components/documentsHub/cards/VisualGlimpse.tsx similarity index 100% rename from src/features/documents/components/documentsHub/cards/VisualGlimpse.tsx rename to apps/web/src/features/documents/components/documentsHub/cards/VisualGlimpse.tsx diff --git a/src/features/documents/components/documentsHub/cards/cardFileTypeHelpers.ts b/apps/web/src/features/documents/components/documentsHub/cards/cardFileTypeHelpers.ts similarity index 100% rename from src/features/documents/components/documentsHub/cards/cardFileTypeHelpers.ts rename to apps/web/src/features/documents/components/documentsHub/cards/cardFileTypeHelpers.ts diff --git a/src/features/documents/components/documentsHub/cards/index.ts b/apps/web/src/features/documents/components/documentsHub/cards/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/cards/index.ts rename to apps/web/src/features/documents/components/documentsHub/cards/index.ts diff --git a/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx b/apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx similarity index 100% rename from src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx rename to apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx diff --git a/src/features/documents/components/documentsHub/context/index.ts b/apps/web/src/features/documents/components/documentsHub/context/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/context/index.ts rename to apps/web/src/features/documents/components/documentsHub/context/index.ts diff --git a/src/features/documents/components/documentsHub/hooks/index.ts b/apps/web/src/features/documents/components/documentsHub/hooks/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/hooks/index.ts rename to apps/web/src/features/documents/components/documentsHub/hooks/index.ts diff --git a/src/features/documents/components/documentsHub/hooks/useWeekNavigation.ts b/apps/web/src/features/documents/components/documentsHub/hooks/useWeekNavigation.ts similarity index 100% rename from src/features/documents/components/documentsHub/hooks/useWeekNavigation.ts rename to apps/web/src/features/documents/components/documentsHub/hooks/useWeekNavigation.ts diff --git a/src/features/documents/components/documentsHub/index.ts b/apps/web/src/features/documents/components/documentsHub/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/index.ts rename to apps/web/src/features/documents/components/documentsHub/index.ts diff --git a/src/features/documents/components/documentsHub/kanban/KanbanLane.tsx b/apps/web/src/features/documents/components/documentsHub/kanban/KanbanLane.tsx similarity index 100% rename from src/features/documents/components/documentsHub/kanban/KanbanLane.tsx rename to apps/web/src/features/documents/components/documentsHub/kanban/KanbanLane.tsx diff --git a/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx b/apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx similarity index 100% rename from src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx rename to apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx diff --git a/src/features/documents/components/documentsHub/kanban/index.ts b/apps/web/src/features/documents/components/documentsHub/kanban/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/kanban/index.ts rename to apps/web/src/features/documents/components/documentsHub/kanban/index.ts diff --git a/src/features/documents/components/documentsHub/pills/RefsPills.stories.tsx b/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.stories.tsx similarity index 100% rename from src/features/documents/components/documentsHub/pills/RefsPills.stories.tsx rename to apps/web/src/features/documents/components/documentsHub/pills/RefsPills.stories.tsx diff --git a/src/features/documents/components/documentsHub/pills/RefsPills.tsx b/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx similarity index 100% rename from src/features/documents/components/documentsHub/pills/RefsPills.tsx rename to apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx diff --git a/src/features/documents/components/documentsHub/pills/index.ts b/apps/web/src/features/documents/components/documentsHub/pills/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/pills/index.ts rename to apps/web/src/features/documents/components/documentsHub/pills/index.ts diff --git a/src/features/documents/components/documentsHub/planner/PlannerAiBar.tsx b/apps/web/src/features/documents/components/documentsHub/planner/PlannerAiBar.tsx similarity index 100% rename from src/features/documents/components/documentsHub/planner/PlannerAiBar.tsx rename to apps/web/src/features/documents/components/documentsHub/planner/PlannerAiBar.tsx diff --git a/src/features/documents/components/documentsHub/planner/PlannerModeToggle.test.tsx b/apps/web/src/features/documents/components/documentsHub/planner/PlannerModeToggle.test.tsx similarity index 100% rename from src/features/documents/components/documentsHub/planner/PlannerModeToggle.test.tsx rename to apps/web/src/features/documents/components/documentsHub/planner/PlannerModeToggle.test.tsx diff --git a/src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx b/apps/web/src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx similarity index 100% rename from src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx rename to apps/web/src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx diff --git a/src/features/documents/components/documentsHub/planner/types.ts b/apps/web/src/features/documents/components/documentsHub/planner/types.ts similarity index 100% rename from src/features/documents/components/documentsHub/planner/types.ts rename to apps/web/src/features/documents/components/documentsHub/planner/types.ts diff --git a/src/features/documents/components/documentsHub/rows/DocumentRow.stories.tsx b/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.stories.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/DocumentRow.stories.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.stories.tsx diff --git a/src/features/documents/components/documentsHub/rows/DocumentRow.tsx b/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/DocumentRow.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx diff --git a/src/features/documents/components/documentsHub/rows/HolidayRow.stories.tsx b/apps/web/src/features/documents/components/documentsHub/rows/HolidayRow.stories.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/HolidayRow.stories.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/HolidayRow.stories.tsx diff --git a/src/features/documents/components/documentsHub/rows/HolidayRow.tsx b/apps/web/src/features/documents/components/documentsHub/rows/HolidayRow.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/HolidayRow.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/HolidayRow.tsx diff --git a/src/features/documents/components/documentsHub/rows/TaskRow.stories.tsx b/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.stories.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/TaskRow.stories.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/TaskRow.stories.tsx diff --git a/src/features/documents/components/documentsHub/rows/TaskRow.tsx b/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx similarity index 100% rename from src/features/documents/components/documentsHub/rows/TaskRow.tsx rename to apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx diff --git a/src/features/documents/components/documentsHub/rows/index.ts b/apps/web/src/features/documents/components/documentsHub/rows/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/rows/index.ts rename to apps/web/src/features/documents/components/documentsHub/rows/index.ts diff --git a/src/features/documents/components/documentsHub/types.ts b/apps/web/src/features/documents/components/documentsHub/types.ts similarity index 100% rename from src/features/documents/components/documentsHub/types.ts rename to apps/web/src/features/documents/components/documentsHub/types.ts diff --git a/src/features/documents/components/documentsHub/utils/__tests__/documentHelpers.test.ts b/apps/web/src/features/documents/components/documentsHub/utils/__tests__/documentHelpers.test.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/__tests__/documentHelpers.test.ts rename to apps/web/src/features/documents/components/documentsHub/utils/__tests__/documentHelpers.test.ts diff --git a/src/features/documents/components/documentsHub/utils/__tests__/eventHelpers.test.ts b/apps/web/src/features/documents/components/documentsHub/utils/__tests__/eventHelpers.test.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/__tests__/eventHelpers.test.ts rename to apps/web/src/features/documents/components/documentsHub/utils/__tests__/eventHelpers.test.ts diff --git a/src/features/documents/components/documentsHub/utils/__tests__/statusHelpers.test.ts b/apps/web/src/features/documents/components/documentsHub/utils/__tests__/statusHelpers.test.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/__tests__/statusHelpers.test.ts rename to apps/web/src/features/documents/components/documentsHub/utils/__tests__/statusHelpers.test.ts diff --git a/src/features/documents/components/documentsHub/utils/constants.ts b/apps/web/src/features/documents/components/documentsHub/utils/constants.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/constants.ts rename to apps/web/src/features/documents/components/documentsHub/utils/constants.ts diff --git a/src/features/documents/components/documentsHub/utils/documentHelpers.ts b/apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/documentHelpers.ts rename to apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts diff --git a/src/features/documents/components/documentsHub/utils/eventHelpers.tsx b/apps/web/src/features/documents/components/documentsHub/utils/eventHelpers.tsx similarity index 100% rename from src/features/documents/components/documentsHub/utils/eventHelpers.tsx rename to apps/web/src/features/documents/components/documentsHub/utils/eventHelpers.tsx diff --git a/src/features/documents/components/documentsHub/utils/index.ts b/apps/web/src/features/documents/components/documentsHub/utils/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/index.ts rename to apps/web/src/features/documents/components/documentsHub/utils/index.ts diff --git a/src/features/documents/components/documentsHub/utils/statusHelpers.ts b/apps/web/src/features/documents/components/documentsHub/utils/statusHelpers.ts similarity index 100% rename from src/features/documents/components/documentsHub/utils/statusHelpers.ts rename to apps/web/src/features/documents/components/documentsHub/utils/statusHelpers.ts diff --git a/src/features/documents/components/documentsHub/views/AgendaListSection.tsx b/apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx similarity index 100% rename from src/features/documents/components/documentsHub/views/AgendaListSection.tsx rename to apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx diff --git a/src/features/documents/components/documentsHub/views/IntelligenceTable.tsx b/apps/web/src/features/documents/components/documentsHub/views/IntelligenceTable.tsx similarity index 100% rename from src/features/documents/components/documentsHub/views/IntelligenceTable.tsx rename to apps/web/src/features/documents/components/documentsHub/views/IntelligenceTable.tsx diff --git a/src/features/documents/components/documentsHub/views/QuickCreateBar.tsx b/apps/web/src/features/documents/components/documentsHub/views/QuickCreateBar.tsx similarity index 100% rename from src/features/documents/components/documentsHub/views/QuickCreateBar.tsx rename to apps/web/src/features/documents/components/documentsHub/views/QuickCreateBar.tsx diff --git a/src/features/documents/components/documentsHub/views/SectionCard.tsx b/apps/web/src/features/documents/components/documentsHub/views/SectionCard.tsx similarity index 100% rename from src/features/documents/components/documentsHub/views/SectionCard.tsx rename to apps/web/src/features/documents/components/documentsHub/views/SectionCard.tsx diff --git a/src/features/documents/components/documentsHub/views/index.ts b/apps/web/src/features/documents/components/documentsHub/views/index.ts similarity index 100% rename from src/features/documents/components/documentsHub/views/index.ts rename to apps/web/src/features/documents/components/documentsHub/views/index.ts diff --git a/src/features/documents/components/previewDescriptor.ts b/apps/web/src/features/documents/components/previewDescriptor.ts similarity index 100% rename from src/features/documents/components/previewDescriptor.ts rename to apps/web/src/features/documents/components/previewDescriptor.ts diff --git a/src/features/documents/components/previews/LightPreviews.tsx b/apps/web/src/features/documents/components/previews/LightPreviews.tsx similarity index 100% rename from src/features/documents/components/previews/LightPreviews.tsx rename to apps/web/src/features/documents/components/previews/LightPreviews.tsx diff --git a/src/features/documents/components/previews/SpreadsheetPreview.tsx b/apps/web/src/features/documents/components/previews/SpreadsheetPreview.tsx similarity index 100% rename from src/features/documents/components/previews/SpreadsheetPreview.tsx rename to apps/web/src/features/documents/components/previews/SpreadsheetPreview.tsx diff --git a/src/features/documents/components/previews/index.ts b/apps/web/src/features/documents/components/previews/index.ts similarity index 100% rename from src/features/documents/components/previews/index.ts rename to apps/web/src/features/documents/components/previews/index.ts diff --git a/src/features/documents/components/viewModes/DocumentsCardsView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx similarity index 100% rename from src/features/documents/components/viewModes/DocumentsCardsView.tsx rename to apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx diff --git a/src/features/documents/components/viewModes/DocumentsListView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx similarity index 100% rename from src/features/documents/components/viewModes/DocumentsListView.tsx rename to apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx diff --git a/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx similarity index 100% rename from src/features/documents/components/viewModes/DocumentsSegmentedView.tsx rename to apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx diff --git a/src/features/documents/components/viewModes/index.ts b/apps/web/src/features/documents/components/viewModes/index.ts similarity index 100% rename from src/features/documents/components/viewModes/index.ts rename to apps/web/src/features/documents/components/viewModes/index.ts diff --git a/src/features/documents/context/DocumentsCoreProvider.tsx b/apps/web/src/features/documents/context/DocumentsCoreProvider.tsx similarity index 100% rename from src/features/documents/context/DocumentsCoreProvider.tsx rename to apps/web/src/features/documents/context/DocumentsCoreProvider.tsx diff --git a/src/features/documents/context/DocumentsPlannerProvider.tsx b/apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx similarity index 100% rename from src/features/documents/context/DocumentsPlannerProvider.tsx rename to apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx diff --git a/src/features/documents/context/DocumentsWorkspaceContext.tsx b/apps/web/src/features/documents/context/DocumentsWorkspaceContext.tsx similarity index 100% rename from src/features/documents/context/DocumentsWorkspaceContext.tsx rename to apps/web/src/features/documents/context/DocumentsWorkspaceContext.tsx diff --git a/src/features/documents/context/index.ts b/apps/web/src/features/documents/context/index.ts similarity index 100% rename from src/features/documents/context/index.ts rename to apps/web/src/features/documents/context/index.ts diff --git a/src/features/documents/context/types.ts b/apps/web/src/features/documents/context/types.ts similarity index 100% rename from src/features/documents/context/types.ts rename to apps/web/src/features/documents/context/types.ts diff --git a/src/features/documents/editors/DocumentMiniEditor.tsx b/apps/web/src/features/documents/editors/DocumentMiniEditor.tsx similarity index 100% rename from src/features/documents/editors/DocumentMiniEditor.tsx rename to apps/web/src/features/documents/editors/DocumentMiniEditor.tsx diff --git a/src/features/documents/editors/DossierMiniEditor.tsx b/apps/web/src/features/documents/editors/DossierMiniEditor.tsx similarity index 100% rename from src/features/documents/editors/DossierMiniEditor.tsx rename to apps/web/src/features/documents/editors/DossierMiniEditor.tsx diff --git a/src/features/documents/editors/DualCreateMiniPanel.tsx b/apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx similarity index 100% rename from src/features/documents/editors/DualCreateMiniPanel.tsx rename to apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx diff --git a/src/features/documents/editors/DualEditMiniPanel.tsx b/apps/web/src/features/documents/editors/DualEditMiniPanel.tsx similarity index 100% rename from src/features/documents/editors/DualEditMiniPanel.tsx rename to apps/web/src/features/documents/editors/DualEditMiniPanel.tsx diff --git a/src/features/documents/editors/PopoverMiniEditor.tsx b/apps/web/src/features/documents/editors/PopoverMiniEditor.tsx similarity index 100% rename from src/features/documents/editors/PopoverMiniEditor.tsx rename to apps/web/src/features/documents/editors/PopoverMiniEditor.tsx diff --git a/src/features/documents/editors/SpreadsheetMiniEditor.tsx b/apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx similarity index 100% rename from src/features/documents/editors/SpreadsheetMiniEditor.tsx rename to apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx diff --git a/src/features/documents/hooks/useDocumentData.ts b/apps/web/src/features/documents/hooks/useDocumentData.ts similarity index 100% rename from src/features/documents/hooks/useDocumentData.ts rename to apps/web/src/features/documents/hooks/useDocumentData.ts diff --git a/src/features/documents/hooks/useDocumentOrdering.ts b/apps/web/src/features/documents/hooks/useDocumentOrdering.ts similarity index 100% rename from src/features/documents/hooks/useDocumentOrdering.ts rename to apps/web/src/features/documents/hooks/useDocumentOrdering.ts diff --git a/src/features/documents/hooks/useDocumentOverlays.ts b/apps/web/src/features/documents/hooks/useDocumentOverlays.ts similarity index 100% rename from src/features/documents/hooks/useDocumentOverlays.ts rename to apps/web/src/features/documents/hooks/useDocumentOverlays.ts diff --git a/src/features/documents/hooks/useDocumentSelection.ts b/apps/web/src/features/documents/hooks/useDocumentSelection.ts similarity index 100% rename from src/features/documents/hooks/useDocumentSelection.ts rename to apps/web/src/features/documents/hooks/useDocumentSelection.ts diff --git a/src/features/documents/hooks/useDocumentUpload.ts b/apps/web/src/features/documents/hooks/useDocumentUpload.ts similarity index 100% rename from src/features/documents/hooks/useDocumentUpload.ts rename to apps/web/src/features/documents/hooks/useDocumentUpload.ts diff --git a/src/features/documents/hooks/useDocumentWorkspaceState.ts b/apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts similarity index 100% rename from src/features/documents/hooks/useDocumentWorkspaceState.ts rename to apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts diff --git a/src/features/documents/hooks/usePlannerAgendaData.ts b/apps/web/src/features/documents/hooks/usePlannerAgendaData.ts similarity index 100% rename from src/features/documents/hooks/usePlannerAgendaData.ts rename to apps/web/src/features/documents/hooks/usePlannerAgendaData.ts diff --git a/src/features/documents/hooks/usePlannerController.ts b/apps/web/src/features/documents/hooks/usePlannerController.ts similarity index 100% rename from src/features/documents/hooks/usePlannerController.ts rename to apps/web/src/features/documents/hooks/usePlannerController.ts diff --git a/src/features/documents/hooks/usePlannerDateNav.ts b/apps/web/src/features/documents/hooks/usePlannerDateNav.ts similarity index 100% rename from src/features/documents/hooks/usePlannerDateNav.ts rename to apps/web/src/features/documents/hooks/usePlannerDateNav.ts diff --git a/src/features/documents/hooks/usePlannerEditor.ts b/apps/web/src/features/documents/hooks/usePlannerEditor.ts similarity index 100% rename from src/features/documents/hooks/usePlannerEditor.ts rename to apps/web/src/features/documents/hooks/usePlannerEditor.ts diff --git a/src/features/documents/hooks/usePlannerMutations.ts b/apps/web/src/features/documents/hooks/usePlannerMutations.ts similarity index 100% rename from src/features/documents/hooks/usePlannerMutations.ts rename to apps/web/src/features/documents/hooks/usePlannerMutations.ts diff --git a/src/features/documents/hooks/usePlannerViewPrefs.ts b/apps/web/src/features/documents/hooks/usePlannerViewPrefs.ts similarity index 100% rename from src/features/documents/hooks/usePlannerViewPrefs.ts rename to apps/web/src/features/documents/hooks/usePlannerViewPrefs.ts diff --git a/src/features/documents/index.ts b/apps/web/src/features/documents/index.ts similarity index 100% rename from src/features/documents/index.ts rename to apps/web/src/features/documents/index.ts diff --git a/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx similarity index 100% rename from src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx rename to apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx diff --git a/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx similarity index 100% rename from src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx rename to apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx diff --git a/src/features/documents/views/DocumentView.tsx b/apps/web/src/features/documents/views/DocumentView.tsx similarity index 100% rename from src/features/documents/views/DocumentView.tsx rename to apps/web/src/features/documents/views/DocumentView.tsx diff --git a/src/features/documents/views/FileViewer.tsx b/apps/web/src/features/documents/views/FileViewer.tsx similarity index 100% rename from src/features/documents/views/FileViewer.tsx rename to apps/web/src/features/documents/views/FileViewer.tsx diff --git a/src/features/documents/views/PublicDocuments.tsx b/apps/web/src/features/documents/views/PublicDocuments.tsx similarity index 100% rename from src/features/documents/views/PublicDocuments.tsx rename to apps/web/src/features/documents/views/PublicDocuments.tsx diff --git a/src/features/documents/views/SpreadsheetView.tsx b/apps/web/src/features/documents/views/SpreadsheetView.tsx similarity index 100% rename from src/features/documents/views/SpreadsheetView.tsx rename to apps/web/src/features/documents/views/SpreadsheetView.tsx diff --git a/src/features/dogfood/components/TasteBenchPanel.test.tsx b/apps/web/src/features/dogfood/components/TasteBenchPanel.test.tsx similarity index 100% rename from src/features/dogfood/components/TasteBenchPanel.test.tsx rename to apps/web/src/features/dogfood/components/TasteBenchPanel.test.tsx diff --git a/src/features/dogfood/components/TasteBenchPanel.tsx b/apps/web/src/features/dogfood/components/TasteBenchPanel.tsx similarity index 100% rename from src/features/dogfood/components/TasteBenchPanel.tsx rename to apps/web/src/features/dogfood/components/TasteBenchPanel.tsx diff --git a/src/features/dogfood/views/DogfoodReviewView.tsx b/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx similarity index 100% rename from src/features/dogfood/views/DogfoodReviewView.tsx rename to apps/web/src/features/dogfood/views/DogfoodReviewView.tsx diff --git a/src/features/editor/components/UnifiedEditor.tsx b/apps/web/src/features/editor/components/UnifiedEditor.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor.tsx rename to apps/web/src/features/editor/components/UnifiedEditor.tsx diff --git a/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx b/apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx diff --git a/src/features/editor/components/UnifiedEditor/InlineAgentProgress.tsx b/apps/web/src/features/editor/components/UnifiedEditor/InlineAgentProgress.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/InlineAgentProgress.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/InlineAgentProgress.tsx diff --git a/src/features/editor/components/UnifiedEditor/InspectorPanel.tsx b/apps/web/src/features/editor/components/UnifiedEditor/InspectorPanel.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/InspectorPanel.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/InspectorPanel.tsx diff --git a/src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx b/apps/web/src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx diff --git a/src/features/editor/components/UnifiedEditor/PmBridge.tsx b/apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/PmBridge.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx diff --git a/src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx b/apps/web/src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx diff --git a/src/features/editor/components/UnifiedEditor/ProposalOverlay.tsx b/apps/web/src/features/editor/components/UnifiedEditor/ProposalOverlay.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/ProposalOverlay.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/ProposalOverlay.tsx diff --git a/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx b/apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx similarity index 100% rename from src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx rename to apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx diff --git a/src/features/editor/components/UnifiedEditor/index.ts b/apps/web/src/features/editor/components/UnifiedEditor/index.ts similarity index 100% rename from src/features/editor/components/UnifiedEditor/index.ts rename to apps/web/src/features/editor/components/UnifiedEditor/index.ts diff --git a/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts b/apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts similarity index 100% rename from src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts rename to apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts diff --git a/src/features/editor/hooks/index.ts b/apps/web/src/features/editor/hooks/index.ts similarity index 100% rename from src/features/editor/hooks/index.ts rename to apps/web/src/features/editor/hooks/index.ts diff --git a/src/features/editor/hooks/useAIKeyboard.ts b/apps/web/src/features/editor/hooks/useAIKeyboard.ts similarity index 100% rename from src/features/editor/hooks/useAIKeyboard.ts rename to apps/web/src/features/editor/hooks/useAIKeyboard.ts diff --git a/src/features/editor/hooks/useEditorSeeding.ts b/apps/web/src/features/editor/hooks/useEditorSeeding.ts similarity index 100% rename from src/features/editor/hooks/useEditorSeeding.ts rename to apps/web/src/features/editor/hooks/useEditorSeeding.ts diff --git a/src/features/editor/hooks/useFileUpload.ts b/apps/web/src/features/editor/hooks/useFileUpload.ts similarity index 100% rename from src/features/editor/hooks/useFileUpload.ts rename to apps/web/src/features/editor/hooks/useFileUpload.ts diff --git a/src/features/editor/hooks/useHashtagMenu.ts b/apps/web/src/features/editor/hooks/useHashtagMenu.ts similarity index 100% rename from src/features/editor/hooks/useHashtagMenu.ts rename to apps/web/src/features/editor/hooks/useHashtagMenu.ts diff --git a/src/features/editor/hooks/useMentionMenu.ts b/apps/web/src/features/editor/hooks/useMentionMenu.ts similarity index 100% rename from src/features/editor/hooks/useMentionMenu.ts rename to apps/web/src/features/editor/hooks/useMentionMenu.ts diff --git a/src/features/editor/hooks/usePendingEdits.ts b/apps/web/src/features/editor/hooks/usePendingEdits.ts similarity index 100% rename from src/features/editor/hooks/usePendingEdits.ts rename to apps/web/src/features/editor/hooks/usePendingEdits.ts diff --git a/src/features/editor/hooks/useProposalSystem.ts b/apps/web/src/features/editor/hooks/useProposalSystem.ts similarity index 100% rename from src/features/editor/hooks/useProposalSystem.ts rename to apps/web/src/features/editor/hooks/useProposalSystem.ts diff --git a/src/features/editor/hooks/useSlashMenuItems.ts b/apps/web/src/features/editor/hooks/useSlashMenuItems.ts similarity index 100% rename from src/features/editor/hooks/useSlashMenuItems.ts rename to apps/web/src/features/editor/hooks/useSlashMenuItems.ts diff --git a/src/features/editor/index.ts b/apps/web/src/features/editor/index.ts similarity index 100% rename from src/features/editor/index.ts rename to apps/web/src/features/editor/index.ts diff --git a/src/features/editor/types.ts b/apps/web/src/features/editor/types.ts similarity index 100% rename from src/features/editor/types.ts rename to apps/web/src/features/editor/types.ts diff --git a/src/features/editor/utils/blockUtils.ts b/apps/web/src/features/editor/utils/blockUtils.ts similarity index 100% rename from src/features/editor/utils/blockUtils.ts rename to apps/web/src/features/editor/utils/blockUtils.ts diff --git a/src/features/editor/utils/index.ts b/apps/web/src/features/editor/utils/index.ts similarity index 100% rename from src/features/editor/utils/index.ts rename to apps/web/src/features/editor/utils/index.ts diff --git a/src/features/editor/utils/sanitize.ts b/apps/web/src/features/editor/utils/sanitize.ts similarity index 100% rename from src/features/editor/utils/sanitize.ts rename to apps/web/src/features/editor/utils/sanitize.ts diff --git a/src/features/engine/views/EngineDemoView.tsx b/apps/web/src/features/engine/views/EngineDemoView.tsx similarity index 100% rename from src/features/engine/views/EngineDemoView.tsx rename to apps/web/src/features/engine/views/EngineDemoView.tsx diff --git a/src/features/entities/components/DiligenceSection.test.tsx b/apps/web/src/features/entities/components/DiligenceSection.test.tsx similarity index 100% rename from src/features/entities/components/DiligenceSection.test.tsx rename to apps/web/src/features/entities/components/DiligenceSection.test.tsx diff --git a/src/features/entities/components/DiligenceSection.tsx b/apps/web/src/features/entities/components/DiligenceSection.tsx similarity index 100% rename from src/features/entities/components/DiligenceSection.tsx rename to apps/web/src/features/entities/components/DiligenceSection.tsx diff --git a/src/features/entities/components/EntityMemoryGraph.tsx b/apps/web/src/features/entities/components/EntityMemoryGraph.tsx similarity index 100% rename from src/features/entities/components/EntityMemoryGraph.tsx rename to apps/web/src/features/entities/components/EntityMemoryGraph.tsx diff --git a/src/features/entities/components/EntityNoteEditor.tsx b/apps/web/src/features/entities/components/EntityNoteEditor.tsx similarity index 100% rename from src/features/entities/components/EntityNoteEditor.tsx rename to apps/web/src/features/entities/components/EntityNoteEditor.tsx diff --git a/src/features/entities/components/EntityNoteMarkdownEditor.tsx b/apps/web/src/features/entities/components/EntityNoteMarkdownEditor.tsx similarity index 100% rename from src/features/entities/components/EntityNoteMarkdownEditor.tsx rename to apps/web/src/features/entities/components/EntityNoteMarkdownEditor.tsx diff --git a/src/features/entities/components/EntityNotebookMeta.tsx b/apps/web/src/features/entities/components/EntityNotebookMeta.tsx similarity index 100% rename from src/features/entities/components/EntityNotebookMeta.tsx rename to apps/web/src/features/entities/components/EntityNotebookMeta.tsx diff --git a/src/features/entities/components/EntityNotebookSurface.test.tsx b/apps/web/src/features/entities/components/EntityNotebookSurface.test.tsx similarity index 100% rename from src/features/entities/components/EntityNotebookSurface.test.tsx rename to apps/web/src/features/entities/components/EntityNotebookSurface.test.tsx diff --git a/src/features/entities/components/EntityNotebookSurface.tsx b/apps/web/src/features/entities/components/EntityNotebookSurface.tsx similarity index 100% rename from src/features/entities/components/EntityNotebookSurface.tsx rename to apps/web/src/features/entities/components/EntityNotebookSurface.tsx diff --git a/src/features/entities/components/EntityNotebookView.test.tsx b/apps/web/src/features/entities/components/EntityNotebookView.test.tsx similarity index 100% rename from src/features/entities/components/EntityNotebookView.test.tsx rename to apps/web/src/features/entities/components/EntityNotebookView.test.tsx diff --git a/src/features/entities/components/EntityNotebookView.tsx b/apps/web/src/features/entities/components/EntityNotebookView.tsx similarity index 100% rename from src/features/entities/components/EntityNotebookView.tsx rename to apps/web/src/features/entities/components/EntityNotebookView.tsx diff --git a/src/features/entities/components/EntityShareSheet.tsx b/apps/web/src/features/entities/components/EntityShareSheet.tsx similarity index 100% rename from src/features/entities/components/EntityShareSheet.tsx rename to apps/web/src/features/entities/components/EntityShareSheet.tsx diff --git a/src/features/entities/components/EvidenceChip.test.tsx b/apps/web/src/features/entities/components/EvidenceChip.test.tsx similarity index 100% rename from src/features/entities/components/EvidenceChip.test.tsx rename to apps/web/src/features/entities/components/EvidenceChip.test.tsx diff --git a/src/features/entities/components/EvidenceChip.tsx b/apps/web/src/features/entities/components/EvidenceChip.tsx similarity index 100% rename from src/features/entities/components/EvidenceChip.tsx rename to apps/web/src/features/entities/components/EvidenceChip.tsx diff --git a/src/features/entities/components/LiveDiligenceSection.tsx b/apps/web/src/features/entities/components/LiveDiligenceSection.tsx similarity index 100% rename from src/features/entities/components/LiveDiligenceSection.tsx rename to apps/web/src/features/entities/components/LiveDiligenceSection.tsx diff --git a/src/features/entities/components/NotebookTopStatusRow.tsx b/apps/web/src/features/entities/components/NotebookTopStatusRow.tsx similarity index 100% rename from src/features/entities/components/NotebookTopStatusRow.tsx rename to apps/web/src/features/entities/components/NotebookTopStatusRow.tsx diff --git a/src/features/entities/components/ScratchpadViewer.test.tsx b/apps/web/src/features/entities/components/ScratchpadViewer.test.tsx similarity index 100% rename from src/features/entities/components/ScratchpadViewer.test.tsx rename to apps/web/src/features/entities/components/ScratchpadViewer.test.tsx diff --git a/src/features/entities/components/ScratchpadViewer.tsx b/apps/web/src/features/entities/components/ScratchpadViewer.tsx similarity index 100% rename from src/features/entities/components/ScratchpadViewer.tsx rename to apps/web/src/features/entities/components/ScratchpadViewer.tsx diff --git a/src/features/entities/components/ViewModeToggle.tsx b/apps/web/src/features/entities/components/ViewModeToggle.tsx similarity index 100% rename from src/features/entities/components/ViewModeToggle.tsx rename to apps/web/src/features/entities/components/ViewModeToggle.tsx diff --git a/src/features/entities/components/notebook/BlockChipRenderer.test.tsx b/apps/web/src/features/entities/components/notebook/BlockChipRenderer.test.tsx similarity index 100% rename from src/features/entities/components/notebook/BlockChipRenderer.test.tsx rename to apps/web/src/features/entities/components/notebook/BlockChipRenderer.test.tsx diff --git a/src/features/entities/components/notebook/BlockChipRenderer.tsx b/apps/web/src/features/entities/components/notebook/BlockChipRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/BlockChipRenderer.tsx rename to apps/web/src/features/entities/components/notebook/BlockChipRenderer.tsx diff --git a/src/features/entities/components/notebook/BlockProvenance.tsx b/apps/web/src/features/entities/components/notebook/BlockProvenance.tsx similarity index 100% rename from src/features/entities/components/notebook/BlockProvenance.tsx rename to apps/web/src/features/entities/components/notebook/BlockProvenance.tsx diff --git a/src/features/entities/components/notebook/BlockStatusBar.tsx b/apps/web/src/features/entities/components/notebook/BlockStatusBar.tsx similarity index 100% rename from src/features/entities/components/notebook/BlockStatusBar.tsx rename to apps/web/src/features/entities/components/notebook/BlockStatusBar.tsx diff --git a/src/features/entities/components/notebook/DiligenceDecorationPlugin.test.ts b/apps/web/src/features/entities/components/notebook/DiligenceDecorationPlugin.test.ts similarity index 100% rename from src/features/entities/components/notebook/DiligenceDecorationPlugin.test.ts rename to apps/web/src/features/entities/components/notebook/DiligenceDecorationPlugin.test.ts diff --git a/src/features/entities/components/notebook/DiligenceDecorationPlugin.ts b/apps/web/src/features/entities/components/notebook/DiligenceDecorationPlugin.ts similarity index 100% rename from src/features/entities/components/notebook/DiligenceDecorationPlugin.ts rename to apps/web/src/features/entities/components/notebook/DiligenceDecorationPlugin.ts diff --git a/src/features/entities/components/notebook/DiligenceDriftBanner.test.tsx b/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.test.tsx similarity index 100% rename from src/features/entities/components/notebook/DiligenceDriftBanner.test.tsx rename to apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.test.tsx diff --git a/src/features/entities/components/notebook/DiligenceDriftBanner.tsx b/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx similarity index 100% rename from src/features/entities/components/notebook/DiligenceDriftBanner.tsx rename to apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx diff --git a/src/features/entities/components/notebook/EntityNotebookLive.empty-state.test.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLive.empty-state.test.tsx similarity index 100% rename from src/features/entities/components/notebook/EntityNotebookLive.empty-state.test.tsx rename to apps/web/src/features/entities/components/notebook/EntityNotebookLive.empty-state.test.tsx diff --git a/src/features/entities/components/notebook/EntityNotebookLive.test.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLive.test.tsx similarity index 100% rename from src/features/entities/components/notebook/EntityNotebookLive.test.tsx rename to apps/web/src/features/entities/components/notebook/EntityNotebookLive.test.tsx diff --git a/src/features/entities/components/notebook/EntityNotebookLive.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx similarity index 100% rename from src/features/entities/components/notebook/EntityNotebookLive.tsx rename to apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx diff --git a/src/features/entities/components/notebook/EntityNotebookLiveMount.test.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLiveMount.test.tsx similarity index 100% rename from src/features/entities/components/notebook/EntityNotebookLiveMount.test.tsx rename to apps/web/src/features/entities/components/notebook/EntityNotebookLiveMount.test.tsx diff --git a/src/features/entities/components/notebook/EntityNotebookLiveMount.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLiveMount.tsx similarity index 100% rename from src/features/entities/components/notebook/EntityNotebookLiveMount.tsx rename to apps/web/src/features/entities/components/notebook/EntityNotebookLiveMount.tsx diff --git a/src/features/entities/components/notebook/ExtendedRunPanel.tsx b/apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx similarity index 100% rename from src/features/entities/components/notebook/ExtendedRunPanel.tsx rename to apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx diff --git a/src/features/entities/components/notebook/MentionPicker.test.tsx b/apps/web/src/features/entities/components/notebook/MentionPicker.test.tsx similarity index 100% rename from src/features/entities/components/notebook/MentionPicker.test.tsx rename to apps/web/src/features/entities/components/notebook/MentionPicker.test.tsx diff --git a/src/features/entities/components/notebook/MentionPicker.tsx b/apps/web/src/features/entities/components/notebook/MentionPicker.tsx similarity index 100% rename from src/features/entities/components/notebook/MentionPicker.tsx rename to apps/web/src/features/entities/components/notebook/MentionPicker.tsx diff --git a/src/features/entities/components/notebook/NotebookBlockEditor.tsx b/apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookBlockEditor.tsx rename to apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx diff --git a/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.test.tsx b/apps/web/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.test.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookDiligenceOverlayHost.test.tsx rename to apps/web/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.test.tsx diff --git a/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.tsx b/apps/web/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookDiligenceOverlayHost.tsx rename to apps/web/src/features/entities/components/notebook/NotebookDiligenceOverlayHost.tsx diff --git a/src/features/entities/components/notebook/NotebookDismissalsSync.tsx b/apps/web/src/features/entities/components/notebook/NotebookDismissalsSync.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookDismissalsSync.tsx rename to apps/web/src/features/entities/components/notebook/NotebookDismissalsSync.tsx diff --git a/src/features/entities/components/notebook/NotebookMentionNode.ts b/apps/web/src/features/entities/components/notebook/NotebookMentionNode.ts similarity index 100% rename from src/features/entities/components/notebook/NotebookMentionNode.ts rename to apps/web/src/features/entities/components/notebook/NotebookMentionNode.ts diff --git a/src/features/entities/components/notebook/NotebookRunMapPanel.tsx b/apps/web/src/features/entities/components/notebook/NotebookRunMapPanel.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookRunMapPanel.tsx rename to apps/web/src/features/entities/components/notebook/NotebookRunMapPanel.tsx diff --git a/src/features/entities/components/notebook/NotebookScratchpadTracePanel.test.tsx b/apps/web/src/features/entities/components/notebook/NotebookScratchpadTracePanel.test.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookScratchpadTracePanel.test.tsx rename to apps/web/src/features/entities/components/notebook/NotebookScratchpadTracePanel.test.tsx diff --git a/src/features/entities/components/notebook/NotebookScratchpadTracePanel.tsx b/apps/web/src/features/entities/components/notebook/NotebookScratchpadTracePanel.tsx similarity index 100% rename from src/features/entities/components/notebook/NotebookScratchpadTracePanel.tsx rename to apps/web/src/features/entities/components/notebook/NotebookScratchpadTracePanel.tsx diff --git a/src/features/entities/components/notebook/SlashPalette.tsx b/apps/web/src/features/entities/components/notebook/SlashPalette.tsx similarity index 100% rename from src/features/entities/components/notebook/SlashPalette.tsx rename to apps/web/src/features/entities/components/notebook/SlashPalette.tsx diff --git a/src/features/entities/components/notebook/WorkspaceDrawerPill.tsx b/apps/web/src/features/entities/components/notebook/WorkspaceDrawerPill.tsx similarity index 100% rename from src/features/entities/components/notebook/WorkspaceDrawerPill.tsx rename to apps/web/src/features/entities/components/notebook/WorkspaceDrawerPill.tsx diff --git a/src/features/entities/components/notebook/acceptDecorationIntoNotebook.test.ts b/apps/web/src/features/entities/components/notebook/acceptDecorationIntoNotebook.test.ts similarity index 100% rename from src/features/entities/components/notebook/acceptDecorationIntoNotebook.test.ts rename to apps/web/src/features/entities/components/notebook/acceptDecorationIntoNotebook.test.ts diff --git a/src/features/entities/components/notebook/acceptDecorationIntoNotebook.ts b/apps/web/src/features/entities/components/notebook/acceptDecorationIntoNotebook.ts similarity index 100% rename from src/features/entities/components/notebook/acceptDecorationIntoNotebook.ts rename to apps/web/src/features/entities/components/notebook/acceptDecorationIntoNotebook.ts diff --git a/src/features/entities/components/notebook/diligenceRenderers.ts b/apps/web/src/features/entities/components/notebook/diligenceRenderers.ts similarity index 100% rename from src/features/entities/components/notebook/diligenceRenderers.ts rename to apps/web/src/features/entities/components/notebook/diligenceRenderers.ts diff --git a/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts similarity index 100% rename from src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts rename to apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts diff --git a/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts similarity index 100% rename from src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts rename to apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts diff --git a/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts b/apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts similarity index 100% rename from src/features/entities/components/notebook/entityNotebookLiveHelpers.ts rename to apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts diff --git a/src/features/entities/components/notebook/notebookLexicalChips.property.test.ts b/apps/web/src/features/entities/components/notebook/notebookLexicalChips.property.test.ts similarity index 100% rename from src/features/entities/components/notebook/notebookLexicalChips.property.test.ts rename to apps/web/src/features/entities/components/notebook/notebookLexicalChips.property.test.ts diff --git a/src/features/entities/components/notebook/notebookLexicalChips.test.ts b/apps/web/src/features/entities/components/notebook/notebookLexicalChips.test.ts similarity index 100% rename from src/features/entities/components/notebook/notebookLexicalChips.test.ts rename to apps/web/src/features/entities/components/notebook/notebookLexicalChips.test.ts diff --git a/src/features/entities/components/notebook/notebookLexicalChips.ts b/apps/web/src/features/entities/components/notebook/notebookLexicalChips.ts similarity index 100% rename from src/features/entities/components/notebook/notebookLexicalChips.ts rename to apps/web/src/features/entities/components/notebook/notebookLexicalChips.ts diff --git a/src/features/entities/components/notebook/notebookOfflineQueue.test.ts b/apps/web/src/features/entities/components/notebook/notebookOfflineQueue.test.ts similarity index 100% rename from src/features/entities/components/notebook/notebookOfflineQueue.test.ts rename to apps/web/src/features/entities/components/notebook/notebookOfflineQueue.test.ts diff --git a/src/features/entities/components/notebook/notebookOfflineQueue.ts b/apps/web/src/features/entities/components/notebook/notebookOfflineQueue.ts similarity index 100% rename from src/features/entities/components/notebook/notebookOfflineQueue.ts rename to apps/web/src/features/entities/components/notebook/notebookOfflineQueue.ts diff --git a/src/features/entities/components/notebook/renderers/CompetitorRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/CompetitorRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/CompetitorRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/CompetitorRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/FinancialRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/FinancialRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/FinancialRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/FinancialRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/FounderRenderer.test.ts b/apps/web/src/features/entities/components/notebook/renderers/FounderRenderer.test.ts similarity index 100% rename from src/features/entities/components/notebook/renderers/FounderRenderer.test.ts rename to apps/web/src/features/entities/components/notebook/renderers/FounderRenderer.test.ts diff --git a/src/features/entities/components/notebook/renderers/FounderRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/FounderRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/FounderRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/FounderRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/FundingRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/FundingRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/FundingRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/FundingRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/HiringRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/HiringRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/HiringRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/HiringRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/NewsRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/NewsRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/NewsRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/NewsRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/PatentRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/PatentRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/PatentRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/PatentRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/ProductRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/ProductRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/ProductRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/ProductRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/PublicOpinionRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/PublicOpinionRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/PublicOpinionRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/PublicOpinionRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/RegulatoryRenderer.tsx b/apps/web/src/features/entities/components/notebook/renderers/RegulatoryRenderer.tsx similarity index 100% rename from src/features/entities/components/notebook/renderers/RegulatoryRenderer.tsx rename to apps/web/src/features/entities/components/notebook/renderers/RegulatoryRenderer.tsx diff --git a/src/features/entities/components/notebook/renderers/renderers.test.ts b/apps/web/src/features/entities/components/notebook/renderers/renderers.test.ts similarity index 100% rename from src/features/entities/components/notebook/renderers/renderers.test.ts rename to apps/web/src/features/entities/components/notebook/renderers/renderers.test.ts diff --git a/src/features/entities/components/notebook/renderers/sharedRendererHelpers.ts b/apps/web/src/features/entities/components/notebook/renderers/sharedRendererHelpers.ts similarity index 100% rename from src/features/entities/components/notebook/renderers/sharedRendererHelpers.ts rename to apps/web/src/features/entities/components/notebook/renderers/sharedRendererHelpers.ts diff --git a/src/features/entities/components/notebook/useDiligenceBlocks.ts b/apps/web/src/features/entities/components/notebook/useDiligenceBlocks.ts similarity index 100% rename from src/features/entities/components/notebook/useDiligenceBlocks.ts rename to apps/web/src/features/entities/components/notebook/useDiligenceBlocks.ts diff --git a/src/features/entities/components/notebook/useDiligenceDecorations.test.ts b/apps/web/src/features/entities/components/notebook/useDiligenceDecorations.test.ts similarity index 100% rename from src/features/entities/components/notebook/useDiligenceDecorations.test.ts rename to apps/web/src/features/entities/components/notebook/useDiligenceDecorations.test.ts diff --git a/src/features/entities/components/notebook/useDiligenceDecorations.ts b/apps/web/src/features/entities/components/notebook/useDiligenceDecorations.ts similarity index 100% rename from src/features/entities/components/notebook/useDiligenceDecorations.ts rename to apps/web/src/features/entities/components/notebook/useDiligenceDecorations.ts diff --git a/src/features/entities/components/notebook/useEntityNotebookDoc.ts b/apps/web/src/features/entities/components/notebook/useEntityNotebookDoc.ts similarity index 100% rename from src/features/entities/components/notebook/useEntityNotebookDoc.ts rename to apps/web/src/features/entities/components/notebook/useEntityNotebookDoc.ts diff --git a/src/features/entities/components/notebook/useNotebookAutosave.test.ts b/apps/web/src/features/entities/components/notebook/useNotebookAutosave.test.ts similarity index 100% rename from src/features/entities/components/notebook/useNotebookAutosave.test.ts rename to apps/web/src/features/entities/components/notebook/useNotebookAutosave.test.ts diff --git a/src/features/entities/components/notebook/useNotebookAutosave.ts b/apps/web/src/features/entities/components/notebook/useNotebookAutosave.ts similarity index 100% rename from src/features/entities/components/notebook/useNotebookAutosave.ts rename to apps/web/src/features/entities/components/notebook/useNotebookAutosave.ts diff --git a/src/features/entities/components/notebook/useNotebookMeta.ts b/apps/web/src/features/entities/components/notebook/useNotebookMeta.ts similarity index 100% rename from src/features/entities/components/notebook/useNotebookMeta.ts rename to apps/web/src/features/entities/components/notebook/useNotebookMeta.ts diff --git a/src/features/entities/components/notebook/useNotebookSyncStatus.ts b/apps/web/src/features/entities/components/notebook/useNotebookSyncStatus.ts similarity index 100% rename from src/features/entities/components/notebook/useNotebookSyncStatus.ts rename to apps/web/src/features/entities/components/notebook/useNotebookSyncStatus.ts diff --git a/src/features/entities/hooks/useCanonicalFastLane.ts b/apps/web/src/features/entities/hooks/useCanonicalFastLane.ts similarity index 100% rename from src/features/entities/hooks/useCanonicalFastLane.ts rename to apps/web/src/features/entities/hooks/useCanonicalFastLane.ts diff --git a/src/features/entities/lib/entityExport.test.ts b/apps/web/src/features/entities/lib/entityExport.test.ts similarity index 100% rename from src/features/entities/lib/entityExport.test.ts rename to apps/web/src/features/entities/lib/entityExport.test.ts diff --git a/src/features/entities/lib/entityExport.ts b/apps/web/src/features/entities/lib/entityExport.ts similarity index 100% rename from src/features/entities/lib/entityExport.ts rename to apps/web/src/features/entities/lib/entityExport.ts diff --git a/src/features/entities/lib/entityNoteDocument.ts b/apps/web/src/features/entities/lib/entityNoteDocument.ts similarity index 100% rename from src/features/entities/lib/entityNoteDocument.ts rename to apps/web/src/features/entities/lib/entityNoteDocument.ts diff --git a/src/features/entities/lib/starterEntityWorkspaces.ts b/apps/web/src/features/entities/lib/starterEntityWorkspaces.ts similarity index 100% rename from src/features/entities/lib/starterEntityWorkspaces.ts rename to apps/web/src/features/entities/lib/starterEntityWorkspaces.ts diff --git a/src/features/entities/lib/useViewMode.ts b/apps/web/src/features/entities/lib/useViewMode.ts similarity index 100% rename from src/features/entities/lib/useViewMode.ts rename to apps/web/src/features/entities/lib/useViewMode.ts diff --git a/src/features/entities/views/EntityPage.test.tsx b/apps/web/src/features/entities/views/EntityPage.test.tsx similarity index 100% rename from src/features/entities/views/EntityPage.test.tsx rename to apps/web/src/features/entities/views/EntityPage.test.tsx diff --git a/src/features/entities/views/EntityPage.tsx b/apps/web/src/features/entities/views/EntityPage.tsx similarity index 100% rename from src/features/entities/views/EntityPage.tsx rename to apps/web/src/features/entities/views/EntityPage.tsx diff --git a/src/features/entities/views/EntityPulseView.tsx b/apps/web/src/features/entities/views/EntityPulseView.tsx similarity index 100% rename from src/features/entities/views/EntityPulseView.tsx rename to apps/web/src/features/entities/views/EntityPulseView.tsx diff --git a/src/features/evaluation/data/index.ts b/apps/web/src/features/evaluation/data/index.ts similarity index 100% rename from src/features/evaluation/data/index.ts rename to apps/web/src/features/evaluation/data/index.ts diff --git a/src/features/evaluation/data/nodebenchWorkflowEvalBank.test.ts b/apps/web/src/features/evaluation/data/nodebenchWorkflowEvalBank.test.ts similarity index 100% rename from src/features/evaluation/data/nodebenchWorkflowEvalBank.test.ts rename to apps/web/src/features/evaluation/data/nodebenchWorkflowEvalBank.test.ts diff --git a/src/features/evaluation/data/nodebenchWorkflowEvalBank.ts b/apps/web/src/features/evaluation/data/nodebenchWorkflowEvalBank.ts similarity index 100% rename from src/features/evaluation/data/nodebenchWorkflowEvalBank.ts rename to apps/web/src/features/evaluation/data/nodebenchWorkflowEvalBank.ts diff --git a/src/features/evaluation/data/tasteBenchScenario.test.ts b/apps/web/src/features/evaluation/data/tasteBenchScenario.test.ts similarity index 100% rename from src/features/evaluation/data/tasteBenchScenario.test.ts rename to apps/web/src/features/evaluation/data/tasteBenchScenario.test.ts diff --git a/src/features/evaluation/data/tasteBenchScenario.ts b/apps/web/src/features/evaluation/data/tasteBenchScenario.ts similarity index 100% rename from src/features/evaluation/data/tasteBenchScenario.ts rename to apps/web/src/features/evaluation/data/tasteBenchScenario.ts diff --git a/src/features/evaluation/views/EvolutionDashboardView.tsx b/apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx similarity index 100% rename from src/features/evaluation/views/EvolutionDashboardView.tsx rename to apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx diff --git a/src/features/events/views/EventCorpusExplorer.test.tsx b/apps/web/src/features/events/views/EventCorpusExplorer.test.tsx similarity index 100% rename from src/features/events/views/EventCorpusExplorer.test.tsx rename to apps/web/src/features/events/views/EventCorpusExplorer.test.tsx diff --git a/src/features/events/views/EventCorpusExplorer.tsx b/apps/web/src/features/events/views/EventCorpusExplorer.tsx similarity index 100% rename from src/features/events/views/EventCorpusExplorer.tsx rename to apps/web/src/features/events/views/EventCorpusExplorer.tsx diff --git a/src/features/events/views/ScratchnodePrivateBridge.test.tsx b/apps/web/src/features/events/views/ScratchnodePrivateBridge.test.tsx similarity index 100% rename from src/features/events/views/ScratchnodePrivateBridge.test.tsx rename to apps/web/src/features/events/views/ScratchnodePrivateBridge.test.tsx diff --git a/src/features/events/views/ScratchnodePrivateBridge.tsx b/apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx similarity index 100% rename from src/features/events/views/ScratchnodePrivateBridge.tsx rename to apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx diff --git a/src/features/events/views/ScratchnodeWikiBridge.test.tsx b/apps/web/src/features/events/views/ScratchnodeWikiBridge.test.tsx similarity index 100% rename from src/features/events/views/ScratchnodeWikiBridge.test.tsx rename to apps/web/src/features/events/views/ScratchnodeWikiBridge.test.tsx diff --git a/src/features/events/views/ScratchnodeWikiBridge.tsx b/apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx similarity index 100% rename from src/features/events/views/ScratchnodeWikiBridge.tsx rename to apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx diff --git a/src/features/financialOperator/components/ApprovalCard.tsx b/apps/web/src/features/financialOperator/components/ApprovalCard.tsx similarity index 100% rename from src/features/financialOperator/components/ApprovalCard.tsx rename to apps/web/src/features/financialOperator/components/ApprovalCard.tsx diff --git a/src/features/financialOperator/components/ArtifactCard.tsx b/apps/web/src/features/financialOperator/components/ArtifactCard.tsx similarity index 100% rename from src/features/financialOperator/components/ArtifactCard.tsx rename to apps/web/src/features/financialOperator/components/ArtifactCard.tsx diff --git a/src/features/financialOperator/components/CalculationCard.tsx b/apps/web/src/features/financialOperator/components/CalculationCard.tsx similarity index 100% rename from src/features/financialOperator/components/CalculationCard.tsx rename to apps/web/src/features/financialOperator/components/CalculationCard.tsx diff --git a/src/features/financialOperator/components/EvidenceCard.tsx b/apps/web/src/features/financialOperator/components/EvidenceCard.tsx similarity index 100% rename from src/features/financialOperator/components/EvidenceCard.tsx rename to apps/web/src/features/financialOperator/components/EvidenceCard.tsx diff --git a/src/features/financialOperator/components/ExtractionCard.tsx b/apps/web/src/features/financialOperator/components/ExtractionCard.tsx similarity index 100% rename from src/features/financialOperator/components/ExtractionCard.tsx rename to apps/web/src/features/financialOperator/components/ExtractionCard.tsx diff --git a/src/features/financialOperator/components/FinancialOperatorOverlay.tsx b/apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx similarity index 100% rename from src/features/financialOperator/components/FinancialOperatorOverlay.tsx rename to apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx diff --git a/src/features/financialOperator/components/FinancialOperatorTimeline.tsx b/apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx similarity index 100% rename from src/features/financialOperator/components/FinancialOperatorTimeline.tsx rename to apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx diff --git a/src/features/financialOperator/components/ModelCapabilityBadge.tsx b/apps/web/src/features/financialOperator/components/ModelCapabilityBadge.tsx similarity index 100% rename from src/features/financialOperator/components/ModelCapabilityBadge.tsx rename to apps/web/src/features/financialOperator/components/ModelCapabilityBadge.tsx diff --git a/src/features/financialOperator/components/ResultCard.tsx b/apps/web/src/features/financialOperator/components/ResultCard.tsx similarity index 100% rename from src/features/financialOperator/components/ResultCard.tsx rename to apps/web/src/features/financialOperator/components/ResultCard.tsx diff --git a/src/features/financialOperator/components/RunBriefCard.tsx b/apps/web/src/features/financialOperator/components/RunBriefCard.tsx similarity index 100% rename from src/features/financialOperator/components/RunBriefCard.tsx rename to apps/web/src/features/financialOperator/components/RunBriefCard.tsx diff --git a/src/features/financialOperator/components/StepCard.tsx b/apps/web/src/features/financialOperator/components/StepCard.tsx similarity index 100% rename from src/features/financialOperator/components/StepCard.tsx rename to apps/web/src/features/financialOperator/components/StepCard.tsx diff --git a/src/features/financialOperator/components/StepShell.tsx b/apps/web/src/features/financialOperator/components/StepShell.tsx similarity index 100% rename from src/features/financialOperator/components/StepShell.tsx rename to apps/web/src/features/financialOperator/components/StepShell.tsx diff --git a/src/features/financialOperator/components/StepStatusBadge.tsx b/apps/web/src/features/financialOperator/components/StepStatusBadge.tsx similarity index 100% rename from src/features/financialOperator/components/StepStatusBadge.tsx rename to apps/web/src/features/financialOperator/components/StepStatusBadge.tsx diff --git a/src/features/financialOperator/components/ToolCallCard.tsx b/apps/web/src/features/financialOperator/components/ToolCallCard.tsx similarity index 100% rename from src/features/financialOperator/components/ToolCallCard.tsx rename to apps/web/src/features/financialOperator/components/ToolCallCard.tsx diff --git a/src/features/financialOperator/components/ValidationCard.tsx b/apps/web/src/features/financialOperator/components/ValidationCard.tsx similarity index 100% rename from src/features/financialOperator/components/ValidationCard.tsx rename to apps/web/src/features/financialOperator/components/ValidationCard.tsx diff --git a/src/features/financialOperator/components/WorkspaceComposer.tsx b/apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx similarity index 100% rename from src/features/financialOperator/components/WorkspaceComposer.tsx rename to apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx diff --git a/src/features/financialOperator/components/WorkspaceModePane.tsx b/apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx similarity index 100% rename from src/features/financialOperator/components/WorkspaceModePane.tsx rename to apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx diff --git a/src/features/financialOperator/components/WorkspaceModeToggle.tsx b/apps/web/src/features/financialOperator/components/WorkspaceModeToggle.tsx similarity index 100% rename from src/features/financialOperator/components/WorkspaceModeToggle.tsx rename to apps/web/src/features/financialOperator/components/WorkspaceModeToggle.tsx diff --git a/src/features/financialOperator/index.ts b/apps/web/src/features/financialOperator/index.ts similarity index 100% rename from src/features/financialOperator/index.ts rename to apps/web/src/features/financialOperator/index.ts diff --git a/src/features/financialOperator/types.ts b/apps/web/src/features/financialOperator/types.ts similarity index 100% rename from src/features/financialOperator/types.ts rename to apps/web/src/features/financialOperator/types.ts diff --git a/src/features/financialOperator/views/FinancialOperatorDemo.tsx b/apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx similarity index 100% rename from src/features/financialOperator/views/FinancialOperatorDemo.tsx rename to apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx diff --git a/src/features/founder/components/FeedbackWidget.tsx b/apps/web/src/features/founder/components/FeedbackWidget.tsx similarity index 100% rename from src/features/founder/components/FeedbackWidget.tsx rename to apps/web/src/features/founder/components/FeedbackWidget.tsx diff --git a/src/features/founder/hooks/useFeedbackStore.ts b/apps/web/src/features/founder/hooks/useFeedbackStore.ts similarity index 100% rename from src/features/founder/hooks/useFeedbackStore.ts rename to apps/web/src/features/founder/hooks/useFeedbackStore.ts diff --git a/src/features/founder/views/EmbedView.tsx b/apps/web/src/features/founder/views/EmbedView.tsx similarity index 100% rename from src/features/founder/views/EmbedView.tsx rename to apps/web/src/features/founder/views/EmbedView.tsx diff --git a/src/features/founder/views/FounderRouteResolver.tsx b/apps/web/src/features/founder/views/FounderRouteResolver.tsx similarity index 100% rename from src/features/founder/views/FounderRouteResolver.tsx rename to apps/web/src/features/founder/views/FounderRouteResolver.tsx diff --git a/src/features/founder/views/PublicCompanyProfileView.tsx b/apps/web/src/features/founder/views/PublicCompanyProfileView.tsx similarity index 100% rename from src/features/founder/views/PublicCompanyProfileView.tsx rename to apps/web/src/features/founder/views/PublicCompanyProfileView.tsx diff --git a/src/features/founder/views/ShareableMemoView.tsx b/apps/web/src/features/founder/views/ShareableMemoView.tsx similarity index 100% rename from src/features/founder/views/ShareableMemoView.tsx rename to apps/web/src/features/founder/views/ShareableMemoView.tsx diff --git a/src/features/graph/lib/graphTypes.ts b/apps/web/src/features/graph/lib/graphTypes.ts similarity index 100% rename from src/features/graph/lib/graphTypes.ts rename to apps/web/src/features/graph/lib/graphTypes.ts diff --git a/src/features/home/components/MemoryPulse.tsx b/apps/web/src/features/home/components/MemoryPulse.tsx similarity index 100% rename from src/features/home/components/MemoryPulse.tsx rename to apps/web/src/features/home/components/MemoryPulse.tsx diff --git a/src/features/home/hooks/useHomeBrief.ts b/apps/web/src/features/home/hooks/useHomeBrief.ts similarity index 100% rename from src/features/home/hooks/useHomeBrief.ts rename to apps/web/src/features/home/hooks/useHomeBrief.ts diff --git a/src/features/home/lib/briefTypes.ts b/apps/web/src/features/home/lib/briefTypes.ts similarity index 100% rename from src/features/home/lib/briefTypes.ts rename to apps/web/src/features/home/lib/briefTypes.ts diff --git a/src/features/home/lib/evidenceScoring.test.ts b/apps/web/src/features/home/lib/evidenceScoring.test.ts similarity index 100% rename from src/features/home/lib/evidenceScoring.test.ts rename to apps/web/src/features/home/lib/evidenceScoring.test.ts diff --git a/src/features/home/lib/evidenceScoring.ts b/apps/web/src/features/home/lib/evidenceScoring.ts similarity index 100% rename from src/features/home/lib/evidenceScoring.ts rename to apps/web/src/features/home/lib/evidenceScoring.ts diff --git a/src/features/home/lib/firstImpressionResearch.test.ts b/apps/web/src/features/home/lib/firstImpressionResearch.test.ts similarity index 100% rename from src/features/home/lib/firstImpressionResearch.test.ts rename to apps/web/src/features/home/lib/firstImpressionResearch.test.ts diff --git a/src/features/home/lib/firstImpressionResearch.ts b/apps/web/src/features/home/lib/firstImpressionResearch.ts similarity index 100% rename from src/features/home/lib/firstImpressionResearch.ts rename to apps/web/src/features/home/lib/firstImpressionResearch.ts diff --git a/src/features/home/lib/index.ts b/apps/web/src/features/home/lib/index.ts similarity index 100% rename from src/features/home/lib/index.ts rename to apps/web/src/features/home/lib/index.ts diff --git a/src/features/home/lib/positionAnnotation.test.ts b/apps/web/src/features/home/lib/positionAnnotation.test.ts similarity index 100% rename from src/features/home/lib/positionAnnotation.test.ts rename to apps/web/src/features/home/lib/positionAnnotation.test.ts diff --git a/src/features/home/lib/positionAnnotation.ts b/apps/web/src/features/home/lib/positionAnnotation.ts similarity index 100% rename from src/features/home/lib/positionAnnotation.ts rename to apps/web/src/features/home/lib/positionAnnotation.ts diff --git a/src/features/home/views/HomeLanding.test.ts b/apps/web/src/features/home/views/HomeLanding.test.ts similarity index 100% rename from src/features/home/views/HomeLanding.test.ts rename to apps/web/src/features/home/views/HomeLanding.test.ts diff --git a/src/features/home/views/HomeLanding.tsx b/apps/web/src/features/home/views/HomeLanding.tsx similarity index 100% rename from src/features/home/views/HomeLanding.tsx rename to apps/web/src/features/home/views/HomeLanding.tsx diff --git a/src/features/home/views/MobileHomeSurface.tsx b/apps/web/src/features/home/views/MobileHomeSurface.tsx similarity index 100% rename from src/features/home/views/MobileHomeSurface.tsx rename to apps/web/src/features/home/views/MobileHomeSurface.tsx diff --git a/src/features/mcp/components/SharedContextProtocolPanel.test.tsx b/apps/web/src/features/mcp/components/SharedContextProtocolPanel.test.tsx similarity index 100% rename from src/features/mcp/components/SharedContextProtocolPanel.test.tsx rename to apps/web/src/features/mcp/components/SharedContextProtocolPanel.test.tsx diff --git a/src/features/mcp/components/SharedContextProtocolPanel.tsx b/apps/web/src/features/mcp/components/SharedContextProtocolPanel.tsx similarity index 100% rename from src/features/mcp/components/SharedContextProtocolPanel.tsx rename to apps/web/src/features/mcp/components/SharedContextProtocolPanel.tsx diff --git a/src/features/mcp/components/SyncBridgeAccountPanel.test.tsx b/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.test.tsx similarity index 100% rename from src/features/mcp/components/SyncBridgeAccountPanel.test.tsx rename to apps/web/src/features/mcp/components/SyncBridgeAccountPanel.test.tsx diff --git a/src/features/mcp/components/SyncBridgeAccountPanel.tsx b/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx similarity index 100% rename from src/features/mcp/components/SyncBridgeAccountPanel.tsx rename to apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx diff --git a/src/features/mcp/views/ApiKeyManagementPage.tsx b/apps/web/src/features/mcp/views/ApiKeyManagementPage.tsx similarity index 100% rename from src/features/mcp/views/ApiKeyManagementPage.tsx rename to apps/web/src/features/mcp/views/ApiKeyManagementPage.tsx diff --git a/src/features/mcp/views/McpLedgerPage.tsx b/apps/web/src/features/mcp/views/McpLedgerPage.tsx similarity index 100% rename from src/features/mcp/views/McpLedgerPage.tsx rename to apps/web/src/features/mcp/views/McpLedgerPage.tsx diff --git a/src/features/me/components/wiki/WikiFreshnessBadge.tsx b/apps/web/src/features/me/components/wiki/WikiFreshnessBadge.tsx similarity index 100% rename from src/features/me/components/wiki/WikiFreshnessBadge.tsx rename to apps/web/src/features/me/components/wiki/WikiFreshnessBadge.tsx diff --git a/src/features/me/components/wiki/WikiLanding.tsx b/apps/web/src/features/me/components/wiki/WikiLanding.tsx similarity index 100% rename from src/features/me/components/wiki/WikiLanding.tsx rename to apps/web/src/features/me/components/wiki/WikiLanding.tsx diff --git a/src/features/me/components/wiki/WikiLandingRoute.tsx b/apps/web/src/features/me/components/wiki/WikiLandingRoute.tsx similarity index 100% rename from src/features/me/components/wiki/WikiLandingRoute.tsx rename to apps/web/src/features/me/components/wiki/WikiLandingRoute.tsx diff --git a/src/features/me/components/wiki/WikiNotesEditor.tsx b/apps/web/src/features/me/components/wiki/WikiNotesEditor.tsx similarity index 100% rename from src/features/me/components/wiki/WikiNotesEditor.tsx rename to apps/web/src/features/me/components/wiki/WikiNotesEditor.tsx diff --git a/src/features/me/components/wiki/WikiPageDetail.tsx b/apps/web/src/features/me/components/wiki/WikiPageDetail.tsx similarity index 100% rename from src/features/me/components/wiki/WikiPageDetail.tsx rename to apps/web/src/features/me/components/wiki/WikiPageDetail.tsx diff --git a/src/features/me/components/wiki/WikiPageDetailContainer.tsx b/apps/web/src/features/me/components/wiki/WikiPageDetailContainer.tsx similarity index 100% rename from src/features/me/components/wiki/WikiPageDetailContainer.tsx rename to apps/web/src/features/me/components/wiki/WikiPageDetailContainer.tsx diff --git a/src/features/me/components/wiki/WikiPageDetailRoute.tsx b/apps/web/src/features/me/components/wiki/WikiPageDetailRoute.tsx similarity index 100% rename from src/features/me/components/wiki/WikiPageDetailRoute.tsx rename to apps/web/src/features/me/components/wiki/WikiPageDetailRoute.tsx diff --git a/src/features/me/components/wiki/WikiRegenerateButton.tsx b/apps/web/src/features/me/components/wiki/WikiRegenerateButton.tsx similarity index 100% rename from src/features/me/components/wiki/WikiRegenerateButton.tsx rename to apps/web/src/features/me/components/wiki/WikiRegenerateButton.tsx diff --git a/src/features/me/components/wiki/WikiThemesPanel.tsx b/apps/web/src/features/me/components/wiki/WikiThemesPanel.tsx similarity index 100% rename from src/features/me/components/wiki/WikiThemesPanel.tsx rename to apps/web/src/features/me/components/wiki/WikiThemesPanel.tsx diff --git a/src/features/me/components/wiki/index.ts b/apps/web/src/features/me/components/wiki/index.ts similarity index 100% rename from src/features/me/components/wiki/index.ts rename to apps/web/src/features/me/components/wiki/index.ts diff --git a/src/features/me/views/MeHome.test.tsx b/apps/web/src/features/me/views/MeHome.test.tsx similarity index 100% rename from src/features/me/views/MeHome.test.tsx rename to apps/web/src/features/me/views/MeHome.test.tsx diff --git a/src/features/me/views/MeHome.tsx b/apps/web/src/features/me/views/MeHome.tsx similarity index 100% rename from src/features/me/views/MeHome.tsx rename to apps/web/src/features/me/views/MeHome.tsx diff --git a/src/features/me/views/MobileMeSurface.tsx b/apps/web/src/features/me/views/MobileMeSurface.tsx similarity index 100% rename from src/features/me/views/MobileMeSurface.tsx rename to apps/web/src/features/me/views/MobileMeSurface.tsx diff --git a/src/features/missions/views/MissionControlView.tsx b/apps/web/src/features/missions/views/MissionControlView.tsx similarity index 100% rename from src/features/missions/views/MissionControlView.tsx rename to apps/web/src/features/missions/views/MissionControlView.tsx diff --git a/src/features/monitoring/components/PRSuggestions.tsx b/apps/web/src/features/monitoring/components/PRSuggestions.tsx similarity index 100% rename from src/features/monitoring/components/PRSuggestions.tsx rename to apps/web/src/features/monitoring/components/PRSuggestions.tsx diff --git a/src/features/monitoring/components/PipelineRollupPanel.tsx b/apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx similarity index 100% rename from src/features/monitoring/components/PipelineRollupPanel.tsx rename to apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx diff --git a/src/features/monitoring/hooks/useImprovementData.ts b/apps/web/src/features/monitoring/hooks/useImprovementData.ts similarity index 100% rename from src/features/monitoring/hooks/useImprovementData.ts rename to apps/web/src/features/monitoring/hooks/useImprovementData.ts diff --git a/src/features/monitoring/index.ts b/apps/web/src/features/monitoring/index.ts similarity index 100% rename from src/features/monitoring/index.ts rename to apps/web/src/features/monitoring/index.ts diff --git a/src/features/monitoring/views/AgentTelemetryDashboard.tsx b/apps/web/src/features/monitoring/views/AgentTelemetryDashboard.tsx similarity index 100% rename from src/features/monitoring/views/AgentTelemetryDashboard.tsx rename to apps/web/src/features/monitoring/views/AgentTelemetryDashboard.tsx diff --git a/src/features/monitoring/views/HyperLoopDashboard.tsx b/apps/web/src/features/monitoring/views/HyperLoopDashboard.tsx similarity index 100% rename from src/features/monitoring/views/HyperLoopDashboard.tsx rename to apps/web/src/features/monitoring/views/HyperLoopDashboard.tsx diff --git a/src/features/monitoring/views/ImprovementTimeline.tsx b/apps/web/src/features/monitoring/views/ImprovementTimeline.tsx similarity index 100% rename from src/features/monitoring/views/ImprovementTimeline.tsx rename to apps/web/src/features/monitoring/views/ImprovementTimeline.tsx diff --git a/src/features/monitoring/views/JudgeDashboard.tsx b/apps/web/src/features/monitoring/views/JudgeDashboard.tsx similarity index 100% rename from src/features/monitoring/views/JudgeDashboard.tsx rename to apps/web/src/features/monitoring/views/JudgeDashboard.tsx diff --git a/src/features/monitoring/views/RunCompareView.tsx b/apps/web/src/features/monitoring/views/RunCompareView.tsx similarity index 100% rename from src/features/monitoring/views/RunCompareView.tsx rename to apps/web/src/features/monitoring/views/RunCompareView.tsx diff --git a/src/features/monitoring/views/SavingsDashboard.tsx b/apps/web/src/features/monitoring/views/SavingsDashboard.tsx similarity index 100% rename from src/features/monitoring/views/SavingsDashboard.tsx rename to apps/web/src/features/monitoring/views/SavingsDashboard.tsx diff --git a/src/features/monitoring/views/SubconsciousDashboard.tsx b/apps/web/src/features/monitoring/views/SubconsciousDashboard.tsx similarity index 100% rename from src/features/monitoring/views/SubconsciousDashboard.tsx rename to apps/web/src/features/monitoring/views/SubconsciousDashboard.tsx diff --git a/src/features/monitoring/views/TrajectoryConsole.tsx b/apps/web/src/features/monitoring/views/TrajectoryConsole.tsx similarity index 100% rename from src/features/monitoring/views/TrajectoryConsole.tsx rename to apps/web/src/features/monitoring/views/TrajectoryConsole.tsx diff --git a/src/features/monitoring/views/ValueManifestPanel.tsx b/apps/web/src/features/monitoring/views/ValueManifestPanel.tsx similarity index 100% rename from src/features/monitoring/views/ValueManifestPanel.tsx rename to apps/web/src/features/monitoring/views/ValueManifestPanel.tsx diff --git a/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx b/apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx similarity index 100% rename from src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx rename to apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx diff --git a/src/features/narrative/components/HypothesisScorecard/index.ts b/apps/web/src/features/narrative/components/HypothesisScorecard/index.ts similarity index 100% rename from src/features/narrative/components/HypothesisScorecard/index.ts rename to apps/web/src/features/narrative/components/HypothesisScorecard/index.ts diff --git a/src/features/narrative/components/NarrativeCard/NarrativeCard.tsx b/apps/web/src/features/narrative/components/NarrativeCard/NarrativeCard.tsx similarity index 100% rename from src/features/narrative/components/NarrativeCard/NarrativeCard.tsx rename to apps/web/src/features/narrative/components/NarrativeCard/NarrativeCard.tsx diff --git a/src/features/narrative/components/NarrativeCard/index.ts b/apps/web/src/features/narrative/components/NarrativeCard/index.ts similarity index 100% rename from src/features/narrative/components/NarrativeCard/index.ts rename to apps/web/src/features/narrative/components/NarrativeCard/index.ts diff --git a/src/features/narrative/components/NarrativeFeed/EvidenceDrawer.tsx b/apps/web/src/features/narrative/components/NarrativeFeed/EvidenceDrawer.tsx similarity index 100% rename from src/features/narrative/components/NarrativeFeed/EvidenceDrawer.tsx rename to apps/web/src/features/narrative/components/NarrativeFeed/EvidenceDrawer.tsx diff --git a/src/features/narrative/components/NarrativeFeed/NarrativeFeed.tsx b/apps/web/src/features/narrative/components/NarrativeFeed/NarrativeFeed.tsx similarity index 100% rename from src/features/narrative/components/NarrativeFeed/NarrativeFeed.tsx rename to apps/web/src/features/narrative/components/NarrativeFeed/NarrativeFeed.tsx diff --git a/src/features/narrative/components/NarrativeFeed/PostCard.tsx b/apps/web/src/features/narrative/components/NarrativeFeed/PostCard.tsx similarity index 100% rename from src/features/narrative/components/NarrativeFeed/PostCard.tsx rename to apps/web/src/features/narrative/components/NarrativeFeed/PostCard.tsx diff --git a/src/features/narrative/components/NarrativeFeed/ReplyThread.tsx b/apps/web/src/features/narrative/components/NarrativeFeed/ReplyThread.tsx similarity index 100% rename from src/features/narrative/components/NarrativeFeed/ReplyThread.tsx rename to apps/web/src/features/narrative/components/NarrativeFeed/ReplyThread.tsx diff --git a/src/features/narrative/components/NarrativeFeed/index.ts b/apps/web/src/features/narrative/components/NarrativeFeed/index.ts similarity index 100% rename from src/features/narrative/components/NarrativeFeed/index.ts rename to apps/web/src/features/narrative/components/NarrativeFeed/index.ts diff --git a/src/features/narrative/components/NarrativeRoadmap/CorrelationLine.tsx b/apps/web/src/features/narrative/components/NarrativeRoadmap/CorrelationLine.tsx similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/CorrelationLine.tsx rename to apps/web/src/features/narrative/components/NarrativeRoadmap/CorrelationLine.tsx diff --git a/src/features/narrative/components/NarrativeRoadmap/EventMarker.tsx b/apps/web/src/features/narrative/components/NarrativeRoadmap/EventMarker.tsx similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/EventMarker.tsx rename to apps/web/src/features/narrative/components/NarrativeRoadmap/EventMarker.tsx diff --git a/src/features/narrative/components/NarrativeRoadmap/NarrativeRoadmap.tsx b/apps/web/src/features/narrative/components/NarrativeRoadmap/NarrativeRoadmap.tsx similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/NarrativeRoadmap.tsx rename to apps/web/src/features/narrative/components/NarrativeRoadmap/NarrativeRoadmap.tsx diff --git a/src/features/narrative/components/NarrativeRoadmap/SentimentBar.tsx b/apps/web/src/features/narrative/components/NarrativeRoadmap/SentimentBar.tsx similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/SentimentBar.tsx rename to apps/web/src/features/narrative/components/NarrativeRoadmap/SentimentBar.tsx diff --git a/src/features/narrative/components/NarrativeRoadmap/ThreadLane.tsx b/apps/web/src/features/narrative/components/NarrativeRoadmap/ThreadLane.tsx similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/ThreadLane.tsx rename to apps/web/src/features/narrative/components/NarrativeRoadmap/ThreadLane.tsx diff --git a/src/features/narrative/components/NarrativeRoadmap/index.ts b/apps/web/src/features/narrative/components/NarrativeRoadmap/index.ts similarity index 100% rename from src/features/narrative/components/NarrativeRoadmap/index.ts rename to apps/web/src/features/narrative/components/NarrativeRoadmap/index.ts diff --git a/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx b/apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx similarity index 100% rename from src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx rename to apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx diff --git a/src/features/narrative/components/SignalMetricsDashboard/index.ts b/apps/web/src/features/narrative/components/SignalMetricsDashboard/index.ts similarity index 100% rename from src/features/narrative/components/SignalMetricsDashboard/index.ts rename to apps/web/src/features/narrative/components/SignalMetricsDashboard/index.ts diff --git a/src/features/narrative/components/social/EntityFindingsPanel.tsx b/apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx similarity index 100% rename from src/features/narrative/components/social/EntityFindingsPanel.tsx rename to apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx diff --git a/src/features/narrative/components/social/LinkedInPostArchiveView.tsx b/apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx similarity index 100% rename from src/features/narrative/components/social/LinkedInPostArchiveView.tsx rename to apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx diff --git a/src/features/narrative/components/social/LinkedInPostCard.tsx b/apps/web/src/features/narrative/components/social/LinkedInPostCard.tsx similarity index 100% rename from src/features/narrative/components/social/LinkedInPostCard.tsx rename to apps/web/src/features/narrative/components/social/LinkedInPostCard.tsx diff --git a/src/features/narrative/hooks/index.ts b/apps/web/src/features/narrative/hooks/index.ts similarity index 100% rename from src/features/narrative/hooks/index.ts rename to apps/web/src/features/narrative/hooks/index.ts diff --git a/src/features/narrative/hooks/useCorrelations.ts b/apps/web/src/features/narrative/hooks/useCorrelations.ts similarity index 100% rename from src/features/narrative/hooks/useCorrelations.ts rename to apps/web/src/features/narrative/hooks/useCorrelations.ts diff --git a/src/features/narrative/hooks/useHypotheses.ts b/apps/web/src/features/narrative/hooks/useHypotheses.ts similarity index 100% rename from src/features/narrative/hooks/useHypotheses.ts rename to apps/web/src/features/narrative/hooks/useHypotheses.ts diff --git a/src/features/narrative/hooks/useNarrativeEvents.ts b/apps/web/src/features/narrative/hooks/useNarrativeEvents.ts similarity index 100% rename from src/features/narrative/hooks/useNarrativeEvents.ts rename to apps/web/src/features/narrative/hooks/useNarrativeEvents.ts diff --git a/src/features/narrative/hooks/useNarrativeThreads.ts b/apps/web/src/features/narrative/hooks/useNarrativeThreads.ts similarity index 100% rename from src/features/narrative/hooks/useNarrativeThreads.ts rename to apps/web/src/features/narrative/hooks/useNarrativeThreads.ts diff --git a/src/features/narrative/hooks/useSignalMetrics.ts b/apps/web/src/features/narrative/hooks/useSignalMetrics.ts similarity index 100% rename from src/features/narrative/hooks/useSignalMetrics.ts rename to apps/web/src/features/narrative/hooks/useSignalMetrics.ts diff --git a/src/features/narrative/index.ts b/apps/web/src/features/narrative/index.ts similarity index 100% rename from src/features/narrative/index.ts rename to apps/web/src/features/narrative/index.ts diff --git a/src/features/narrative/types.ts b/apps/web/src/features/narrative/types.ts similarity index 100% rename from src/features/narrative/types.ts rename to apps/web/src/features/narrative/types.ts diff --git a/src/features/notebook/components/BacklinkList.tsx b/apps/web/src/features/notebook/components/BacklinkList.tsx similarity index 100% rename from src/features/notebook/components/BacklinkList.tsx rename to apps/web/src/features/notebook/components/BacklinkList.tsx diff --git a/src/features/notebook/components/EntityMentionText.tsx b/apps/web/src/features/notebook/components/EntityMentionText.tsx similarity index 100% rename from src/features/notebook/components/EntityMentionText.tsx rename to apps/web/src/features/notebook/components/EntityMentionText.tsx diff --git a/src/features/notebook/components/MentionExpansionPanel.tsx b/apps/web/src/features/notebook/components/MentionExpansionPanel.tsx similarity index 100% rename from src/features/notebook/components/MentionExpansionPanel.tsx rename to apps/web/src/features/notebook/components/MentionExpansionPanel.tsx diff --git a/src/features/notebook/components/MiniEntityGraph.tsx b/apps/web/src/features/notebook/components/MiniEntityGraph.tsx similarity index 100% rename from src/features/notebook/components/MiniEntityGraph.tsx rename to apps/web/src/features/notebook/components/MiniEntityGraph.tsx diff --git a/src/features/notebook/components/NotebookBlockFinder.tsx b/apps/web/src/features/notebook/components/NotebookBlockFinder.tsx similarity index 100% rename from src/features/notebook/components/NotebookBlockFinder.tsx rename to apps/web/src/features/notebook/components/NotebookBlockFinder.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.claims.test.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.claims.test.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.claims.test.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.claims.test.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.finder.test.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.finder.test.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.finder.test.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.finder.test.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.onChange.test.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.onChange.test.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.onChange.test.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.onChange.test.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.proposals.test.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.proposals.test.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.proposals.test.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.proposals.test.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.test.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.test.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.test.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.test.tsx diff --git a/src/features/notebook/components/RichNotebookEditor.tsx b/apps/web/src/features/notebook/components/RichNotebookEditor.tsx similarity index 100% rename from src/features/notebook/components/RichNotebookEditor.tsx rename to apps/web/src/features/notebook/components/RichNotebookEditor.tsx diff --git a/src/features/notebook/extensions/expandableMention.tsx b/apps/web/src/features/notebook/extensions/expandableMention.tsx similarity index 100% rename from src/features/notebook/extensions/expandableMention.tsx rename to apps/web/src/features/notebook/extensions/expandableMention.tsx diff --git a/src/features/notebook/extensions/nbClaim.tsx b/apps/web/src/features/notebook/extensions/nbClaim.tsx similarity index 100% rename from src/features/notebook/extensions/nbClaim.tsx rename to apps/web/src/features/notebook/extensions/nbClaim.tsx diff --git a/src/features/notebook/extensions/nbProposal.tsx b/apps/web/src/features/notebook/extensions/nbProposal.tsx similarity index 100% rename from src/features/notebook/extensions/nbProposal.tsx rename to apps/web/src/features/notebook/extensions/nbProposal.tsx diff --git a/src/features/notebook/extensions/slashCommand.ts b/apps/web/src/features/notebook/extensions/slashCommand.ts similarity index 100% rename from src/features/notebook/extensions/slashCommand.ts rename to apps/web/src/features/notebook/extensions/slashCommand.ts diff --git a/src/features/notebook/extensions/slashMenuRenderer.tsx b/apps/web/src/features/notebook/extensions/slashMenuRenderer.tsx similarity index 100% rename from src/features/notebook/extensions/slashMenuRenderer.tsx rename to apps/web/src/features/notebook/extensions/slashMenuRenderer.tsx diff --git a/src/features/notebook/hooks/useEntityExpansion.ts b/apps/web/src/features/notebook/hooks/useEntityExpansion.ts similarity index 100% rename from src/features/notebook/hooks/useEntityExpansion.ts rename to apps/web/src/features/notebook/hooks/useEntityExpansion.ts diff --git a/src/features/notebook/lib/notebookActionEngine.test.ts b/apps/web/src/features/notebook/lib/notebookActionEngine.test.ts similarity index 100% rename from src/features/notebook/lib/notebookActionEngine.test.ts rename to apps/web/src/features/notebook/lib/notebookActionEngine.test.ts diff --git a/src/features/notebook/lib/notebookActionEngine.ts b/apps/web/src/features/notebook/lib/notebookActionEngine.ts similarity index 100% rename from src/features/notebook/lib/notebookActionEngine.ts rename to apps/web/src/features/notebook/lib/notebookActionEngine.ts diff --git a/src/features/notebook/styles/notebook.css b/apps/web/src/features/notebook/styles/notebook.css similarity index 100% rename from src/features/notebook/styles/notebook.css rename to apps/web/src/features/notebook/styles/notebook.css diff --git a/src/features/nudges/views/MobileInboxSurface.tsx b/apps/web/src/features/nudges/views/MobileInboxSurface.tsx similarity index 100% rename from src/features/nudges/views/MobileInboxSurface.tsx rename to apps/web/src/features/nudges/views/MobileInboxSurface.tsx diff --git a/src/features/nudges/views/NudgesHome.test.tsx b/apps/web/src/features/nudges/views/NudgesHome.test.tsx similarity index 100% rename from src/features/nudges/views/NudgesHome.test.tsx rename to apps/web/src/features/nudges/views/NudgesHome.test.tsx diff --git a/src/features/nudges/views/NudgesHome.tsx b/apps/web/src/features/nudges/views/NudgesHome.tsx similarity index 100% rename from src/features/nudges/views/NudgesHome.tsx rename to apps/web/src/features/nudges/views/NudgesHome.tsx diff --git a/src/features/observability/views/ObservabilityView.tsx b/apps/web/src/features/observability/views/ObservabilityView.tsx similarity index 100% rename from src/features/observability/views/ObservabilityView.tsx rename to apps/web/src/features/observability/views/ObservabilityView.tsx diff --git a/src/features/onboarding/components/AgentGuidedOnboarding.tsx b/apps/web/src/features/onboarding/components/AgentGuidedOnboarding.tsx similarity index 100% rename from src/features/onboarding/components/AgentGuidedOnboarding.tsx rename to apps/web/src/features/onboarding/components/AgentGuidedOnboarding.tsx diff --git a/src/features/onboarding/components/OnboardingFlow.tsx b/apps/web/src/features/onboarding/components/OnboardingFlow.tsx similarity index 100% rename from src/features/onboarding/components/OnboardingFlow.tsx rename to apps/web/src/features/onboarding/components/OnboardingFlow.tsx diff --git a/src/features/onboarding/components/OnboardingWizard.tsx b/apps/web/src/features/onboarding/components/OnboardingWizard.tsx similarity index 100% rename from src/features/onboarding/components/OnboardingWizard.tsx rename to apps/web/src/features/onboarding/components/OnboardingWizard.tsx diff --git a/src/features/onboarding/utils/dossierParser.ts b/apps/web/src/features/onboarding/utils/dossierParser.ts similarity index 100% rename from src/features/onboarding/utils/dossierParser.ts rename to apps/web/src/features/onboarding/utils/dossierParser.ts diff --git a/src/features/onboarding/views/ConnectSourcesWizard.tsx b/apps/web/src/features/onboarding/views/ConnectSourcesWizard.tsx similarity index 100% rename from src/features/onboarding/views/ConnectSourcesWizard.tsx rename to apps/web/src/features/onboarding/views/ConnectSourcesWizard.tsx diff --git a/src/features/onboarding/views/TutorialPage.tsx b/apps/web/src/features/onboarding/views/TutorialPage.tsx similarity index 100% rename from src/features/onboarding/views/TutorialPage.tsx rename to apps/web/src/features/onboarding/views/TutorialPage.tsx diff --git a/src/features/pipelines/views/PipelineEvalScorecard.tsx b/apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx similarity index 100% rename from src/features/pipelines/views/PipelineEvalScorecard.tsx rename to apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx diff --git a/src/features/pipelines/views/PipelineLauncher.tsx b/apps/web/src/features/pipelines/views/PipelineLauncher.tsx similarity index 100% rename from src/features/pipelines/views/PipelineLauncher.tsx rename to apps/web/src/features/pipelines/views/PipelineLauncher.tsx diff --git a/src/features/pipelines/views/PipelineRunsPanel.tsx b/apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx similarity index 100% rename from src/features/pipelines/views/PipelineRunsPanel.tsx rename to apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx diff --git a/src/features/pipelines/views/PipelineSchedulesPanel.tsx b/apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx similarity index 100% rename from src/features/pipelines/views/PipelineSchedulesPanel.tsx rename to apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx diff --git a/src/features/product/components/ComposerRoutingPreview.tsx b/apps/web/src/features/product/components/ComposerRoutingPreview.tsx similarity index 100% rename from src/features/product/components/ComposerRoutingPreview.tsx rename to apps/web/src/features/product/components/ComposerRoutingPreview.tsx diff --git a/src/features/product/components/IntakeDetectedSources.tsx b/apps/web/src/features/product/components/IntakeDetectedSources.tsx similarity index 100% rename from src/features/product/components/IntakeDetectedSources.tsx rename to apps/web/src/features/product/components/IntakeDetectedSources.tsx diff --git a/src/features/product/components/ProductFileAssetPicker.tsx b/apps/web/src/features/product/components/ProductFileAssetPicker.tsx similarity index 100% rename from src/features/product/components/ProductFileAssetPicker.tsx rename to apps/web/src/features/product/components/ProductFileAssetPicker.tsx diff --git a/src/features/product/components/ProductIntakeComposer.test.tsx b/apps/web/src/features/product/components/ProductIntakeComposer.test.tsx similarity index 100% rename from src/features/product/components/ProductIntakeComposer.test.tsx rename to apps/web/src/features/product/components/ProductIntakeComposer.test.tsx diff --git a/src/features/product/components/ProductIntakeComposer.tsx b/apps/web/src/features/product/components/ProductIntakeComposer.tsx similarity index 100% rename from src/features/product/components/ProductIntakeComposer.tsx rename to apps/web/src/features/product/components/ProductIntakeComposer.tsx diff --git a/src/features/product/components/ProductSourceIdentity.tsx b/apps/web/src/features/product/components/ProductSourceIdentity.tsx similarity index 100% rename from src/features/product/components/ProductSourceIdentity.tsx rename to apps/web/src/features/product/components/ProductSourceIdentity.tsx diff --git a/src/features/product/components/ProductThumbnail.tsx b/apps/web/src/features/product/components/ProductThumbnail.tsx similarity index 100% rename from src/features/product/components/ProductThumbnail.tsx rename to apps/web/src/features/product/components/ProductThumbnail.tsx diff --git a/src/features/product/components/ProductWorkspaceHeader.tsx b/apps/web/src/features/product/components/ProductWorkspaceHeader.tsx similarity index 100% rename from src/features/product/components/ProductWorkspaceHeader.tsx rename to apps/web/src/features/product/components/ProductWorkspaceHeader.tsx diff --git a/src/features/product/components/intakeSourceClassifier.test.ts b/apps/web/src/features/product/components/intakeSourceClassifier.test.ts similarity index 100% rename from src/features/product/components/intakeSourceClassifier.test.ts rename to apps/web/src/features/product/components/intakeSourceClassifier.test.ts diff --git a/src/features/product/components/intakeSourceClassifier.ts b/apps/web/src/features/product/components/intakeSourceClassifier.ts similarity index 100% rename from src/features/product/components/intakeSourceClassifier.ts rename to apps/web/src/features/product/components/intakeSourceClassifier.ts diff --git a/src/features/product/lib/captureRouter.test.ts b/apps/web/src/features/product/lib/captureRouter.test.ts similarity index 100% rename from src/features/product/lib/captureRouter.test.ts rename to apps/web/src/features/product/lib/captureRouter.test.ts diff --git a/src/features/product/lib/captureRouter.ts b/apps/web/src/features/product/lib/captureRouter.ts similarity index 100% rename from src/features/product/lib/captureRouter.ts rename to apps/web/src/features/product/lib/captureRouter.ts diff --git a/src/features/product/lib/operatorContext.test.ts b/apps/web/src/features/product/lib/operatorContext.test.ts similarity index 100% rename from src/features/product/lib/operatorContext.test.ts rename to apps/web/src/features/product/lib/operatorContext.test.ts diff --git a/src/features/product/lib/operatorContext.ts b/apps/web/src/features/product/lib/operatorContext.ts similarity index 100% rename from src/features/product/lib/operatorContext.ts rename to apps/web/src/features/product/lib/operatorContext.ts diff --git a/src/features/product/lib/productIdentity.test.ts b/apps/web/src/features/product/lib/productIdentity.test.ts similarity index 100% rename from src/features/product/lib/productIdentity.test.ts rename to apps/web/src/features/product/lib/productIdentity.test.ts diff --git a/src/features/product/lib/productIdentity.ts b/apps/web/src/features/product/lib/productIdentity.ts similarity index 100% rename from src/features/product/lib/productIdentity.ts rename to apps/web/src/features/product/lib/productIdentity.ts diff --git a/src/features/product/lib/productSession.test.ts b/apps/web/src/features/product/lib/productSession.test.ts similarity index 100% rename from src/features/product/lib/productSession.test.ts rename to apps/web/src/features/product/lib/productSession.test.ts diff --git a/src/features/product/lib/productSession.ts b/apps/web/src/features/product/lib/productSession.ts similarity index 100% rename from src/features/product/lib/productSession.ts rename to apps/web/src/features/product/lib/productSession.ts diff --git a/src/features/product/lib/uploadDraftFiles.ts b/apps/web/src/features/product/lib/uploadDraftFiles.ts similarity index 100% rename from src/features/product/lib/uploadDraftFiles.ts rename to apps/web/src/features/product/lib/uploadDraftFiles.ts diff --git a/src/features/product/lib/useProductBootstrap.ts b/apps/web/src/features/product/lib/useProductBootstrap.ts similarity index 100% rename from src/features/product/lib/useProductBootstrap.ts rename to apps/web/src/features/product/lib/useProductBootstrap.ts diff --git a/src/features/pulse/components/PulseBadge.tsx b/apps/web/src/features/pulse/components/PulseBadge.tsx similarity index 100% rename from src/features/pulse/components/PulseBadge.tsx rename to apps/web/src/features/pulse/components/PulseBadge.tsx diff --git a/src/features/pulse/views/EntityPulsePage.tsx b/apps/web/src/features/pulse/views/EntityPulsePage.tsx similarity index 100% rename from src/features/pulse/views/EntityPulsePage.tsx rename to apps/web/src/features/pulse/views/EntityPulsePage.tsx diff --git a/src/features/pulse/views/GlobalPulsePage.tsx b/apps/web/src/features/pulse/views/GlobalPulsePage.tsx similarity index 100% rename from src/features/pulse/views/GlobalPulsePage.tsx rename to apps/web/src/features/pulse/views/GlobalPulsePage.tsx diff --git a/src/features/redesign/README.md b/apps/web/src/features/redesign/README.md similarity index 100% rename from src/features/redesign/README.md rename to apps/web/src/features/redesign/README.md diff --git a/src/features/redesign/RedesignShell.tsx b/apps/web/src/features/redesign/RedesignShell.tsx similarity index 100% rename from src/features/redesign/RedesignShell.tsx rename to apps/web/src/features/redesign/RedesignShell.tsx diff --git a/src/features/redesign/agent-workspace.css b/apps/web/src/features/redesign/agent-workspace.css similarity index 100% rename from src/features/redesign/agent-workspace.css rename to apps/web/src/features/redesign/agent-workspace.css diff --git a/src/features/redesign/components/AgentRail.tsx b/apps/web/src/features/redesign/components/AgentRail.tsx similarity index 100% rename from src/features/redesign/components/AgentRail.tsx rename to apps/web/src/features/redesign/components/AgentRail.tsx diff --git a/src/features/redesign/components/BlockHandle.tsx b/apps/web/src/features/redesign/components/BlockHandle.tsx similarity index 100% rename from src/features/redesign/components/BlockHandle.tsx rename to apps/web/src/features/redesign/components/BlockHandle.tsx diff --git a/src/features/redesign/components/BubbleMenu.tsx b/apps/web/src/features/redesign/components/BubbleMenu.tsx similarity index 100% rename from src/features/redesign/components/BubbleMenu.tsx rename to apps/web/src/features/redesign/components/BubbleMenu.tsx diff --git a/src/features/redesign/components/CardStack.tsx b/apps/web/src/features/redesign/components/CardStack.tsx similarity index 100% rename from src/features/redesign/components/CardStack.tsx rename to apps/web/src/features/redesign/components/CardStack.tsx diff --git a/src/features/redesign/components/ChatAssistantMessage.tsx b/apps/web/src/features/redesign/components/ChatAssistantMessage.tsx similarity index 100% rename from src/features/redesign/components/ChatAssistantMessage.tsx rename to apps/web/src/features/redesign/components/ChatAssistantMessage.tsx diff --git a/src/features/redesign/components/ChatEmptyState.tsx b/apps/web/src/features/redesign/components/ChatEmptyState.tsx similarity index 100% rename from src/features/redesign/components/ChatEmptyState.tsx rename to apps/web/src/features/redesign/components/ChatEmptyState.tsx diff --git a/src/features/redesign/components/ChatThinking.tsx b/apps/web/src/features/redesign/components/ChatThinking.tsx similarity index 100% rename from src/features/redesign/components/ChatThinking.tsx rename to apps/web/src/features/redesign/components/ChatThinking.tsx diff --git a/src/features/redesign/components/ChatToolCall.tsx b/apps/web/src/features/redesign/components/ChatToolCall.tsx similarity index 100% rename from src/features/redesign/components/ChatToolCall.tsx rename to apps/web/src/features/redesign/components/ChatToolCall.tsx diff --git a/src/features/redesign/components/CommandPalette.test.tsx b/apps/web/src/features/redesign/components/CommandPalette.test.tsx similarity index 100% rename from src/features/redesign/components/CommandPalette.test.tsx rename to apps/web/src/features/redesign/components/CommandPalette.test.tsx diff --git a/src/features/redesign/components/CommandPalette.tsx b/apps/web/src/features/redesign/components/CommandPalette.tsx similarity index 100% rename from src/features/redesign/components/CommandPalette.tsx rename to apps/web/src/features/redesign/components/CommandPalette.tsx diff --git a/src/features/redesign/components/MessageActions.tsx b/apps/web/src/features/redesign/components/MessageActions.tsx similarity index 100% rename from src/features/redesign/components/MessageActions.tsx rename to apps/web/src/features/redesign/components/MessageActions.tsx diff --git a/src/features/redesign/components/MobileShell.tsx b/apps/web/src/features/redesign/components/MobileShell.tsx similarity index 100% rename from src/features/redesign/components/MobileShell.tsx rename to apps/web/src/features/redesign/components/MobileShell.tsx diff --git a/src/features/redesign/components/Pill.tsx b/apps/web/src/features/redesign/components/Pill.tsx similarity index 100% rename from src/features/redesign/components/Pill.tsx rename to apps/web/src/features/redesign/components/Pill.tsx diff --git a/src/features/redesign/components/Rail.tsx b/apps/web/src/features/redesign/components/Rail.tsx similarity index 100% rename from src/features/redesign/components/Rail.tsx rename to apps/web/src/features/redesign/components/Rail.tsx diff --git a/src/features/redesign/components/ReportNotebookEditor.tsx b/apps/web/src/features/redesign/components/ReportNotebookEditor.tsx similarity index 100% rename from src/features/redesign/components/ReportNotebookEditor.tsx rename to apps/web/src/features/redesign/components/ReportNotebookEditor.tsx diff --git a/src/features/redesign/components/ReportNotebookView.tsx b/apps/web/src/features/redesign/components/ReportNotebookView.tsx similarity index 100% rename from src/features/redesign/components/ReportNotebookView.tsx rename to apps/web/src/features/redesign/components/ReportNotebookView.tsx diff --git a/src/features/redesign/components/ShortcutsOverlay.tsx b/apps/web/src/features/redesign/components/ShortcutsOverlay.tsx similarity index 100% rename from src/features/redesign/components/ShortcutsOverlay.tsx rename to apps/web/src/features/redesign/components/ShortcutsOverlay.tsx diff --git a/src/features/redesign/components/Skeleton.tsx b/apps/web/src/features/redesign/components/Skeleton.tsx similarity index 100% rename from src/features/redesign/components/Skeleton.tsx rename to apps/web/src/features/redesign/components/Skeleton.tsx diff --git a/src/features/redesign/components/SlashMenu.tsx b/apps/web/src/features/redesign/components/SlashMenu.tsx similarity index 100% rename from src/features/redesign/components/SlashMenu.tsx rename to apps/web/src/features/redesign/components/SlashMenu.tsx diff --git a/src/features/redesign/components/StreamingMarkdown.test.tsx b/apps/web/src/features/redesign/components/StreamingMarkdown.test.tsx similarity index 100% rename from src/features/redesign/components/StreamingMarkdown.test.tsx rename to apps/web/src/features/redesign/components/StreamingMarkdown.test.tsx diff --git a/src/features/redesign/components/StreamingMarkdown.tsx b/apps/web/src/features/redesign/components/StreamingMarkdown.tsx similarity index 100% rename from src/features/redesign/components/StreamingMarkdown.tsx rename to apps/web/src/features/redesign/components/StreamingMarkdown.tsx diff --git a/src/features/redesign/components/StyleGalleryCard.tsx b/apps/web/src/features/redesign/components/StyleGalleryCard.tsx similarity index 100% rename from src/features/redesign/components/StyleGalleryCard.tsx rename to apps/web/src/features/redesign/components/StyleGalleryCard.tsx diff --git a/src/features/redesign/components/Toast.tsx b/apps/web/src/features/redesign/components/Toast.tsx similarity index 100% rename from src/features/redesign/components/Toast.tsx rename to apps/web/src/features/redesign/components/Toast.tsx diff --git a/src/features/redesign/components/TopNav.test.tsx b/apps/web/src/features/redesign/components/TopNav.test.tsx similarity index 100% rename from src/features/redesign/components/TopNav.test.tsx rename to apps/web/src/features/redesign/components/TopNav.test.tsx diff --git a/src/features/redesign/components/TopNav.tsx b/apps/web/src/features/redesign/components/TopNav.tsx similarity index 100% rename from src/features/redesign/components/TopNav.tsx rename to apps/web/src/features/redesign/components/TopNav.tsx diff --git a/src/features/redesign/components/UniversalComposer.test.tsx b/apps/web/src/features/redesign/components/UniversalComposer.test.tsx similarity index 100% rename from src/features/redesign/components/UniversalComposer.test.tsx rename to apps/web/src/features/redesign/components/UniversalComposer.test.tsx diff --git a/src/features/redesign/components/UniversalComposer.tsx b/apps/web/src/features/redesign/components/UniversalComposer.tsx similarity index 100% rename from src/features/redesign/components/UniversalComposer.tsx rename to apps/web/src/features/redesign/components/UniversalComposer.tsx diff --git a/src/features/redesign/components/WhatChangedStrip.tsx b/apps/web/src/features/redesign/components/WhatChangedStrip.tsx similarity index 100% rename from src/features/redesign/components/WhatChangedStrip.tsx rename to apps/web/src/features/redesign/components/WhatChangedStrip.tsx diff --git a/src/features/redesign/components/edition/CapabilitiesMap.tsx b/apps/web/src/features/redesign/components/edition/CapabilitiesMap.tsx similarity index 100% rename from src/features/redesign/components/edition/CapabilitiesMap.tsx rename to apps/web/src/features/redesign/components/edition/CapabilitiesMap.tsx diff --git a/src/features/redesign/components/edition/DotGrid.tsx b/apps/web/src/features/redesign/components/edition/DotGrid.tsx similarity index 100% rename from src/features/redesign/components/edition/DotGrid.tsx rename to apps/web/src/features/redesign/components/edition/DotGrid.tsx diff --git a/src/features/redesign/components/edition/EditionErrorBoundary.tsx b/apps/web/src/features/redesign/components/edition/EditionErrorBoundary.tsx similarity index 100% rename from src/features/redesign/components/edition/EditionErrorBoundary.tsx rename to apps/web/src/features/redesign/components/edition/EditionErrorBoundary.tsx diff --git a/src/features/redesign/components/edition/EditionSelector.tsx b/apps/web/src/features/redesign/components/edition/EditionSelector.tsx similarity index 100% rename from src/features/redesign/components/edition/EditionSelector.tsx rename to apps/web/src/features/redesign/components/edition/EditionSelector.tsx diff --git a/src/features/redesign/components/edition/EditionTOC.tsx b/apps/web/src/features/redesign/components/edition/EditionTOC.tsx similarity index 100% rename from src/features/redesign/components/edition/EditionTOC.tsx rename to apps/web/src/features/redesign/components/edition/EditionTOC.tsx diff --git a/src/features/redesign/components/edition/EditorialSection.tsx b/apps/web/src/features/redesign/components/edition/EditorialSection.tsx similarity index 100% rename from src/features/redesign/components/edition/EditorialSection.tsx rename to apps/web/src/features/redesign/components/edition/EditorialSection.tsx diff --git a/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx b/apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx similarity index 100% rename from src/features/redesign/components/edition/EvidenceChecklistStrip.tsx rename to apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx diff --git a/src/features/redesign/components/edition/Footnote.tsx b/apps/web/src/features/redesign/components/edition/Footnote.tsx similarity index 100% rename from src/features/redesign/components/edition/Footnote.tsx rename to apps/web/src/features/redesign/components/edition/Footnote.tsx diff --git a/src/features/redesign/components/edition/FormatStrip.tsx b/apps/web/src/features/redesign/components/edition/FormatStrip.tsx similarity index 100% rename from src/features/redesign/components/edition/FormatStrip.tsx rename to apps/web/src/features/redesign/components/edition/FormatStrip.tsx diff --git a/src/features/redesign/components/edition/Scoreboard.tsx b/apps/web/src/features/redesign/components/edition/Scoreboard.tsx similarity index 100% rename from src/features/redesign/components/edition/Scoreboard.tsx rename to apps/web/src/features/redesign/components/edition/Scoreboard.tsx diff --git a/src/features/redesign/components/edition/VideoLiteEmbed.tsx b/apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx similarity index 100% rename from src/features/redesign/components/edition/VideoLiteEmbed.tsx rename to apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx diff --git a/src/features/redesign/components/edition/edition-print.css b/apps/web/src/features/redesign/components/edition/edition-print.css similarity index 100% rename from src/features/redesign/components/edition/edition-print.css rename to apps/web/src/features/redesign/components/edition/edition-print.css diff --git a/src/features/redesign/components/edition/edition.css b/apps/web/src/features/redesign/components/edition/edition.css similarity index 100% rename from src/features/redesign/components/edition/edition.css rename to apps/web/src/features/redesign/components/edition/edition.css diff --git a/src/features/redesign/components/notebookExtensions.ts b/apps/web/src/features/redesign/components/notebookExtensions.ts similarity index 100% rename from src/features/redesign/components/notebookExtensions.ts rename to apps/web/src/features/redesign/components/notebookExtensions.ts diff --git a/src/features/redesign/fixtures.ts b/apps/web/src/features/redesign/fixtures.ts similarity index 100% rename from src/features/redesign/fixtures.ts rename to apps/web/src/features/redesign/fixtures.ts diff --git a/src/features/redesign/hooks/editionSession.ts b/apps/web/src/features/redesign/hooks/editionSession.ts similarity index 100% rename from src/features/redesign/hooks/editionSession.ts rename to apps/web/src/features/redesign/hooks/editionSession.ts diff --git a/src/features/redesign/hooks/useActiveHypotheses.ts b/apps/web/src/features/redesign/hooks/useActiveHypotheses.ts similarity index 100% rename from src/features/redesign/hooks/useActiveHypotheses.ts rename to apps/web/src/features/redesign/hooks/useActiveHypotheses.ts diff --git a/src/features/redesign/hooks/useActiveHypothesesSwr.ts b/apps/web/src/features/redesign/hooks/useActiveHypothesesSwr.ts similarity index 100% rename from src/features/redesign/hooks/useActiveHypothesesSwr.ts rename to apps/web/src/features/redesign/hooks/useActiveHypothesesSwr.ts diff --git a/src/features/redesign/hooks/useBatchLive.ts b/apps/web/src/features/redesign/hooks/useBatchLive.ts similarity index 100% rename from src/features/redesign/hooks/useBatchLive.ts rename to apps/web/src/features/redesign/hooks/useBatchLive.ts diff --git a/src/features/redesign/hooks/useCapabilitiesDelta.ts b/apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts similarity index 100% rename from src/features/redesign/hooks/useCapabilitiesDelta.ts rename to apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts diff --git a/src/features/redesign/hooks/useCapabilitiesDeltaSwr.ts b/apps/web/src/features/redesign/hooks/useCapabilitiesDeltaSwr.ts similarity index 100% rename from src/features/redesign/hooks/useCapabilitiesDeltaSwr.ts rename to apps/web/src/features/redesign/hooks/useCapabilitiesDeltaSwr.ts diff --git a/src/features/redesign/hooks/useDailyEditionSwr.ts b/apps/web/src/features/redesign/hooks/useDailyEditionSwr.ts similarity index 100% rename from src/features/redesign/hooks/useDailyEditionSwr.ts rename to apps/web/src/features/redesign/hooks/useDailyEditionSwr.ts diff --git a/src/features/redesign/hooks/useEditionFootnotes.ts b/apps/web/src/features/redesign/hooks/useEditionFootnotes.ts similarity index 100% rename from src/features/redesign/hooks/useEditionFootnotes.ts rename to apps/web/src/features/redesign/hooks/useEditionFootnotes.ts diff --git a/src/features/redesign/hooks/useEditionFootnotesSwr.ts b/apps/web/src/features/redesign/hooks/useEditionFootnotesSwr.ts similarity index 100% rename from src/features/redesign/hooks/useEditionFootnotesSwr.ts rename to apps/web/src/features/redesign/hooks/useEditionFootnotesSwr.ts diff --git a/src/features/redesign/hooks/useEditionView.ts b/apps/web/src/features/redesign/hooks/useEditionView.ts similarity index 100% rename from src/features/redesign/hooks/useEditionView.ts rename to apps/web/src/features/redesign/hooks/useEditionView.ts diff --git a/src/features/redesign/hooks/useHomePulseLive.ts b/apps/web/src/features/redesign/hooks/useHomePulseLive.ts similarity index 100% rename from src/features/redesign/hooks/useHomePulseLive.ts rename to apps/web/src/features/redesign/hooks/useHomePulseLive.ts diff --git a/src/features/redesign/hooks/useInboxLive.ts b/apps/web/src/features/redesign/hooks/useInboxLive.ts similarity index 100% rename from src/features/redesign/hooks/useInboxLive.ts rename to apps/web/src/features/redesign/hooks/useInboxLive.ts diff --git a/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts b/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts similarity index 100% rename from src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts rename to apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts diff --git a/src/features/redesign/hooks/useLatestDailyBriefSnapshotSwr.ts b/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshotSwr.ts similarity index 100% rename from src/features/redesign/hooks/useLatestDailyBriefSnapshotSwr.ts rename to apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshotSwr.ts diff --git a/src/features/redesign/hooks/useLiveArtifacts.ts b/apps/web/src/features/redesign/hooks/useLiveArtifacts.ts similarity index 100% rename from src/features/redesign/hooks/useLiveArtifacts.ts rename to apps/web/src/features/redesign/hooks/useLiveArtifacts.ts diff --git a/src/features/redesign/hooks/useLongHorizonRetrospectiveSwr.ts b/apps/web/src/features/redesign/hooks/useLongHorizonRetrospectiveSwr.ts similarity index 100% rename from src/features/redesign/hooks/useLongHorizonRetrospectiveSwr.ts rename to apps/web/src/features/redesign/hooks/useLongHorizonRetrospectiveSwr.ts diff --git a/src/features/redesign/hooks/useMonthlyRetrospectiveSwr.ts b/apps/web/src/features/redesign/hooks/useMonthlyRetrospectiveSwr.ts similarity index 100% rename from src/features/redesign/hooks/useMonthlyRetrospectiveSwr.ts rename to apps/web/src/features/redesign/hooks/useMonthlyRetrospectiveSwr.ts diff --git a/src/features/redesign/hooks/useRedesignChatRun.test.ts b/apps/web/src/features/redesign/hooks/useRedesignChatRun.test.ts similarity index 100% rename from src/features/redesign/hooks/useRedesignChatRun.test.ts rename to apps/web/src/features/redesign/hooks/useRedesignChatRun.test.ts diff --git a/src/features/redesign/hooks/useRedesignChatRun.ts b/apps/web/src/features/redesign/hooks/useRedesignChatRun.ts similarity index 100% rename from src/features/redesign/hooks/useRedesignChatRun.ts rename to apps/web/src/features/redesign/hooks/useRedesignChatRun.ts diff --git a/src/features/redesign/hooks/useReportsLive.ts b/apps/web/src/features/redesign/hooks/useReportsLive.ts similarity index 100% rename from src/features/redesign/hooks/useReportsLive.ts rename to apps/web/src/features/redesign/hooks/useReportsLive.ts diff --git a/src/features/redesign/hooks/useScratchnodeSessionId.ts b/apps/web/src/features/redesign/hooks/useScratchnodeSessionId.ts similarity index 100% rename from src/features/redesign/hooks/useScratchnodeSessionId.ts rename to apps/web/src/features/redesign/hooks/useScratchnodeSessionId.ts diff --git a/src/features/redesign/hooks/useScrollSpy.ts b/apps/web/src/features/redesign/hooks/useScrollSpy.ts similarity index 100% rename from src/features/redesign/hooks/useScrollSpy.ts rename to apps/web/src/features/redesign/hooks/useScrollSpy.ts diff --git a/src/features/redesign/hooks/useTemporalEdition.ts b/apps/web/src/features/redesign/hooks/useTemporalEdition.ts similarity index 100% rename from src/features/redesign/hooks/useTemporalEdition.ts rename to apps/web/src/features/redesign/hooks/useTemporalEdition.ts diff --git a/src/features/redesign/hooks/useTodayPulse.ts b/apps/web/src/features/redesign/hooks/useTodayPulse.ts similarity index 100% rename from src/features/redesign/hooks/useTodayPulse.ts rename to apps/web/src/features/redesign/hooks/useTodayPulse.ts diff --git a/src/features/redesign/hooks/useTodayPulseSwr.ts b/apps/web/src/features/redesign/hooks/useTodayPulseSwr.ts similarity index 100% rename from src/features/redesign/hooks/useTodayPulseSwr.ts rename to apps/web/src/features/redesign/hooks/useTodayPulseSwr.ts diff --git a/src/features/redesign/hooks/useTopForecasts.ts b/apps/web/src/features/redesign/hooks/useTopForecasts.ts similarity index 100% rename from src/features/redesign/hooks/useTopForecasts.ts rename to apps/web/src/features/redesign/hooks/useTopForecasts.ts diff --git a/src/features/redesign/hooks/useTopForecastsSwr.ts b/apps/web/src/features/redesign/hooks/useTopForecastsSwr.ts similarity index 100% rename from src/features/redesign/hooks/useTopForecastsSwr.ts rename to apps/web/src/features/redesign/hooks/useTopForecastsSwr.ts diff --git a/src/features/redesign/hooks/useWeeklyDigestSwr.ts b/apps/web/src/features/redesign/hooks/useWeeklyDigestSwr.ts similarity index 100% rename from src/features/redesign/hooks/useWeeklyDigestSwr.ts rename to apps/web/src/features/redesign/hooks/useWeeklyDigestSwr.ts diff --git a/src/features/redesign/lib/chatContinuation.ts b/apps/web/src/features/redesign/lib/chatContinuation.ts similarity index 100% rename from src/features/redesign/lib/chatContinuation.ts rename to apps/web/src/features/redesign/lib/chatContinuation.ts diff --git a/src/features/redesign/lib/graphContextBridge.test.ts b/apps/web/src/features/redesign/lib/graphContextBridge.test.ts similarity index 100% rename from src/features/redesign/lib/graphContextBridge.test.ts rename to apps/web/src/features/redesign/lib/graphContextBridge.test.ts diff --git a/src/features/redesign/lib/graphContextBridge.ts b/apps/web/src/features/redesign/lib/graphContextBridge.ts similarity index 100% rename from src/features/redesign/lib/graphContextBridge.ts rename to apps/web/src/features/redesign/lib/graphContextBridge.ts diff --git a/src/features/redesign/lib/oneSurfaceRouting.test.ts b/apps/web/src/features/redesign/lib/oneSurfaceRouting.test.ts similarity index 100% rename from src/features/redesign/lib/oneSurfaceRouting.test.ts rename to apps/web/src/features/redesign/lib/oneSurfaceRouting.test.ts diff --git a/src/features/redesign/lib/oneSurfaceRouting.ts b/apps/web/src/features/redesign/lib/oneSurfaceRouting.ts similarity index 100% rename from src/features/redesign/lib/oneSurfaceRouting.ts rename to apps/web/src/features/redesign/lib/oneSurfaceRouting.ts diff --git a/src/features/redesign/lib/reportTopology.test.ts b/apps/web/src/features/redesign/lib/reportTopology.test.ts similarity index 100% rename from src/features/redesign/lib/reportTopology.test.ts rename to apps/web/src/features/redesign/lib/reportTopology.test.ts diff --git a/src/features/redesign/lib/reportTopology.ts b/apps/web/src/features/redesign/lib/reportTopology.ts similarity index 100% rename from src/features/redesign/lib/reportTopology.ts rename to apps/web/src/features/redesign/lib/reportTopology.ts diff --git a/src/features/redesign/pages/EditionPrintPage.tsx b/apps/web/src/features/redesign/pages/EditionPrintPage.tsx similarity index 100% rename from src/features/redesign/pages/EditionPrintPage.tsx rename to apps/web/src/features/redesign/pages/EditionPrintPage.tsx diff --git a/src/features/redesign/pages/ReproducibleChatPage.tsx b/apps/web/src/features/redesign/pages/ReproducibleChatPage.tsx similarity index 100% rename from src/features/redesign/pages/ReproducibleChatPage.tsx rename to apps/web/src/features/redesign/pages/ReproducibleChatPage.tsx diff --git a/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx b/apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx similarity index 100% rename from src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx rename to apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx diff --git a/src/features/redesign/primitives.css b/apps/web/src/features/redesign/primitives.css similarity index 100% rename from src/features/redesign/primitives.css rename to apps/web/src/features/redesign/primitives.css diff --git a/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts b/apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts rename to apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts diff --git a/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts b/apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts rename to apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts diff --git a/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts b/apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts rename to apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts diff --git a/src/features/redesign/surfaces/ChatContinuation.test.ts b/apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts similarity index 100% rename from src/features/redesign/surfaces/ChatContinuation.test.ts rename to apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts diff --git a/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/ChatResponseShape.guard.test.ts rename to apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts diff --git a/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts rename to apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts diff --git a/src/features/redesign/surfaces/ChatSurface.tsx b/apps/web/src/features/redesign/surfaces/ChatSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/ChatSurface.tsx rename to apps/web/src/features/redesign/surfaces/ChatSurface.tsx diff --git a/src/features/redesign/surfaces/ChatTypography.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/ChatTypography.guard.test.ts rename to apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts diff --git a/src/features/redesign/surfaces/EditorialHomeAudienceRelevance.ts b/apps/web/src/features/redesign/surfaces/EditorialHomeAudienceRelevance.ts similarity index 100% rename from src/features/redesign/surfaces/EditorialHomeAudienceRelevance.ts rename to apps/web/src/features/redesign/surfaces/EditorialHomeAudienceRelevance.ts diff --git a/src/features/redesign/surfaces/EditorialHomeSurface.audience.test.ts b/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.audience.test.ts similarity index 100% rename from src/features/redesign/surfaces/EditorialHomeSurface.audience.test.ts rename to apps/web/src/features/redesign/surfaces/EditorialHomeSurface.audience.test.ts diff --git a/src/features/redesign/surfaces/EditorialHomeSurface.tsx b/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/EditorialHomeSurface.tsx rename to apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx diff --git a/src/features/redesign/surfaces/HomeSurface.tsx b/apps/web/src/features/redesign/surfaces/HomeSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/HomeSurface.tsx rename to apps/web/src/features/redesign/surfaces/HomeSurface.tsx diff --git a/src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx b/apps/web/src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx rename to apps/web/src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx diff --git a/src/features/redesign/surfaces/InboxSurface.tsx b/apps/web/src/features/redesign/surfaces/InboxSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/InboxSurface.tsx rename to apps/web/src/features/redesign/surfaces/InboxSurface.tsx diff --git a/src/features/redesign/surfaces/MeSurface.tsx b/apps/web/src/features/redesign/surfaces/MeSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/MeSurface.tsx rename to apps/web/src/features/redesign/surfaces/MeSurface.tsx diff --git a/src/features/redesign/surfaces/OneSurface.guard.test.ts b/apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts similarity index 100% rename from src/features/redesign/surfaces/OneSurface.guard.test.ts rename to apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts diff --git a/src/features/redesign/surfaces/ProductDecisionQueue.test.ts b/apps/web/src/features/redesign/surfaces/ProductDecisionQueue.test.ts similarity index 100% rename from src/features/redesign/surfaces/ProductDecisionQueue.test.ts rename to apps/web/src/features/redesign/surfaces/ProductDecisionQueue.test.ts diff --git a/src/features/redesign/surfaces/ProductDecisionQueue.tsx b/apps/web/src/features/redesign/surfaces/ProductDecisionQueue.tsx similarity index 100% rename from src/features/redesign/surfaces/ProductDecisionQueue.tsx rename to apps/web/src/features/redesign/surfaces/ProductDecisionQueue.tsx diff --git a/src/features/redesign/surfaces/ReportsSurface.tsx b/apps/web/src/features/redesign/surfaces/ReportsSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/ReportsSurface.tsx rename to apps/web/src/features/redesign/surfaces/ReportsSurface.tsx diff --git a/src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx b/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx similarity index 100% rename from src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx rename to apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx diff --git a/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx b/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx rename to apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx diff --git a/src/features/redesign/surfaces/WorkspaceSurface.tsx b/apps/web/src/features/redesign/surfaces/WorkspaceSurface.tsx similarity index 100% rename from src/features/redesign/surfaces/WorkspaceSurface.tsx rename to apps/web/src/features/redesign/surfaces/WorkspaceSurface.tsx diff --git a/src/features/redesign/tokens.css b/apps/web/src/features/redesign/tokens.css similarity index 100% rename from src/features/redesign/tokens.css rename to apps/web/src/features/redesign/tokens.css diff --git a/src/features/redesign/utils/videoProvider.test.ts b/apps/web/src/features/redesign/utils/videoProvider.test.ts similarity index 100% rename from src/features/redesign/utils/videoProvider.test.ts rename to apps/web/src/features/redesign/utils/videoProvider.test.ts diff --git a/src/features/redesign/utils/videoProvider.ts b/apps/web/src/features/redesign/utils/videoProvider.ts similarity index 100% rename from src/features/redesign/utils/videoProvider.ts rename to apps/web/src/features/redesign/utils/videoProvider.ts diff --git a/src/features/reports/components/RecentPulseStrip.tsx b/apps/web/src/features/reports/components/RecentPulseStrip.tsx similarity index 100% rename from src/features/reports/components/RecentPulseStrip.tsx rename to apps/web/src/features/reports/components/RecentPulseStrip.tsx diff --git a/src/features/reports/components/ReportReadOnlyPanel.tsx b/apps/web/src/features/reports/components/ReportReadOnlyPanel.tsx similarity index 100% rename from src/features/reports/components/ReportReadOnlyPanel.tsx rename to apps/web/src/features/reports/components/ReportReadOnlyPanel.tsx diff --git a/src/features/reports/components/ReportShareSheet.tsx b/apps/web/src/features/reports/components/ReportShareSheet.tsx similarity index 100% rename from src/features/reports/components/ReportShareSheet.tsx rename to apps/web/src/features/reports/components/ReportShareSheet.tsx diff --git a/src/features/reports/components/ReportThumbnail.tsx b/apps/web/src/features/reports/components/ReportThumbnail.tsx similarity index 100% rename from src/features/reports/components/ReportThumbnail.tsx rename to apps/web/src/features/reports/components/ReportThumbnail.tsx diff --git a/src/features/reports/lib/compactReportsReadModel.test.ts b/apps/web/src/features/reports/lib/compactReportsReadModel.test.ts similarity index 100% rename from src/features/reports/lib/compactReportsReadModel.test.ts rename to apps/web/src/features/reports/lib/compactReportsReadModel.test.ts diff --git a/src/features/reports/lib/compactReportsReadModel.ts b/apps/web/src/features/reports/lib/compactReportsReadModel.ts similarity index 100% rename from src/features/reports/lib/compactReportsReadModel.ts rename to apps/web/src/features/reports/lib/compactReportsReadModel.ts diff --git a/src/features/reports/lib/reportActions.test.ts b/apps/web/src/features/reports/lib/reportActions.test.ts similarity index 100% rename from src/features/reports/lib/reportActions.test.ts rename to apps/web/src/features/reports/lib/reportActions.test.ts diff --git a/src/features/reports/lib/reportActions.ts b/apps/web/src/features/reports/lib/reportActions.ts similarity index 100% rename from src/features/reports/lib/reportActions.ts rename to apps/web/src/features/reports/lib/reportActions.ts diff --git a/src/features/reports/lib/reportNotebookRouting.test.ts b/apps/web/src/features/reports/lib/reportNotebookRouting.test.ts similarity index 100% rename from src/features/reports/lib/reportNotebookRouting.test.ts rename to apps/web/src/features/reports/lib/reportNotebookRouting.test.ts diff --git a/src/features/reports/lib/reportNotebookRouting.ts b/apps/web/src/features/reports/lib/reportNotebookRouting.ts similarity index 100% rename from src/features/reports/lib/reportNotebookRouting.ts rename to apps/web/src/features/reports/lib/reportNotebookRouting.ts diff --git a/src/features/reports/views/PublicReportView.test.tsx b/apps/web/src/features/reports/views/PublicReportView.test.tsx similarity index 100% rename from src/features/reports/views/PublicReportView.test.tsx rename to apps/web/src/features/reports/views/PublicReportView.test.tsx diff --git a/src/features/reports/views/PublicReportView.tsx b/apps/web/src/features/reports/views/PublicReportView.tsx similarity index 100% rename from src/features/reports/views/PublicReportView.tsx rename to apps/web/src/features/reports/views/PublicReportView.tsx diff --git a/src/features/reports/views/ReportNotebookDetail.persistence.test.tsx b/apps/web/src/features/reports/views/ReportNotebookDetail.persistence.test.tsx similarity index 100% rename from src/features/reports/views/ReportNotebookDetail.persistence.test.tsx rename to apps/web/src/features/reports/views/ReportNotebookDetail.persistence.test.tsx diff --git a/src/features/reports/views/ReportNotebookDetail.test.ts b/apps/web/src/features/reports/views/ReportNotebookDetail.test.ts similarity index 100% rename from src/features/reports/views/ReportNotebookDetail.test.ts rename to apps/web/src/features/reports/views/ReportNotebookDetail.test.ts diff --git a/src/features/reports/views/ReportNotebookDetail.tsx b/apps/web/src/features/reports/views/ReportNotebookDetail.tsx similarity index 100% rename from src/features/reports/views/ReportNotebookDetail.tsx rename to apps/web/src/features/reports/views/ReportNotebookDetail.tsx diff --git a/src/features/reports/views/ReportsHome.test.ts b/apps/web/src/features/reports/views/ReportsHome.test.ts similarity index 100% rename from src/features/reports/views/ReportsHome.test.ts rename to apps/web/src/features/reports/views/ReportsHome.test.ts diff --git a/src/features/reports/views/ReportsHome.tsx b/apps/web/src/features/reports/views/ReportsHome.tsx similarity index 100% rename from src/features/reports/views/ReportsHome.tsx rename to apps/web/src/features/reports/views/ReportsHome.tsx diff --git a/src/features/reports/views/ReportsHomeEnhanced.tsx b/apps/web/src/features/reports/views/ReportsHomeEnhanced.tsx similarity index 100% rename from src/features/reports/views/ReportsHomeEnhanced.tsx rename to apps/web/src/features/reports/views/ReportsHomeEnhanced.tsx diff --git a/src/features/research/LiveResearchChecklist.tsx b/apps/web/src/features/research/LiveResearchChecklist.tsx similarity index 100% rename from src/features/research/LiveResearchChecklist.tsx rename to apps/web/src/features/research/LiveResearchChecklist.tsx diff --git a/src/features/research/ProofDrawer.tsx b/apps/web/src/features/research/ProofDrawer.tsx similarity index 100% rename from src/features/research/ProofDrawer.tsx rename to apps/web/src/features/research/ProofDrawer.tsx diff --git a/src/features/research/components/ActAwareDashboard.tsx b/apps/web/src/features/research/components/ActAwareDashboard.tsx similarity index 100% rename from src/features/research/components/ActAwareDashboard.tsx rename to apps/web/src/features/research/components/ActAwareDashboard.tsx diff --git a/src/features/research/components/ActProgressIndicator.tsx b/apps/web/src/features/research/components/ActProgressIndicator.tsx similarity index 100% rename from src/features/research/components/ActProgressIndicator.tsx rename to apps/web/src/features/research/components/ActProgressIndicator.tsx diff --git a/src/features/research/components/ActionCard.tsx b/apps/web/src/features/research/components/ActionCard.tsx similarity index 100% rename from src/features/research/components/ActionCard.tsx rename to apps/web/src/features/research/components/ActionCard.tsx diff --git a/src/features/research/components/BrierTrendChart.tsx b/apps/web/src/features/research/components/BrierTrendChart.tsx similarity index 100% rename from src/features/research/components/BrierTrendChart.tsx rename to apps/web/src/features/research/components/BrierTrendChart.tsx diff --git a/src/features/research/components/CalibrationPlot.tsx b/apps/web/src/features/research/components/CalibrationPlot.tsx similarity index 100% rename from src/features/research/components/CalibrationPlot.tsx rename to apps/web/src/features/research/components/CalibrationPlot.tsx diff --git a/src/features/research/components/CardInspector.tsx b/apps/web/src/features/research/components/CardInspector.tsx similarity index 100% rename from src/features/research/components/CardInspector.tsx rename to apps/web/src/features/research/components/CardInspector.tsx diff --git a/src/features/research/components/ChangeCard.tsx b/apps/web/src/features/research/components/ChangeCard.tsx similarity index 100% rename from src/features/research/components/ChangeCard.tsx rename to apps/web/src/features/research/components/ChangeCard.tsx diff --git a/src/features/research/components/ChartAnnotationLayer.tsx b/apps/web/src/features/research/components/ChartAnnotationLayer.tsx similarity index 100% rename from src/features/research/components/ChartAnnotationLayer.tsx rename to apps/web/src/features/research/components/ChartAnnotationLayer.tsx diff --git a/src/features/research/components/ChartTooltip.tsx b/apps/web/src/features/research/components/ChartTooltip.tsx similarity index 100% rename from src/features/research/components/ChartTooltip.tsx rename to apps/web/src/features/research/components/ChartTooltip.tsx diff --git a/src/features/research/components/CompactSignalCard.tsx b/apps/web/src/features/research/components/CompactSignalCard.tsx similarity index 100% rename from src/features/research/components/CompactSignalCard.tsx rename to apps/web/src/features/research/components/CompactSignalCard.tsx diff --git a/src/features/research/components/CostCrossoverCalculator.tsx b/apps/web/src/features/research/components/CostCrossoverCalculator.tsx similarity index 100% rename from src/features/research/components/CostCrossoverCalculator.tsx rename to apps/web/src/features/research/components/CostCrossoverCalculator.tsx diff --git a/src/features/research/components/CrossLinkedText.tsx b/apps/web/src/features/research/components/CrossLinkedText.tsx similarity index 100% rename from src/features/research/components/CrossLinkedText.tsx rename to apps/web/src/features/research/components/CrossLinkedText.tsx diff --git a/src/features/research/components/DashboardPanel.tsx b/apps/web/src/features/research/components/DashboardPanel.tsx similarity index 100% rename from src/features/research/components/DashboardPanel.tsx rename to apps/web/src/features/research/components/DashboardPanel.tsx diff --git a/src/features/research/components/DayStarterCard.tsx b/apps/web/src/features/research/components/DayStarterCard.tsx similarity index 100% rename from src/features/research/components/DayStarterCard.tsx rename to apps/web/src/features/research/components/DayStarterCard.tsx diff --git a/src/features/research/components/DealListPanel.tsx b/apps/web/src/features/research/components/DealListPanel.tsx similarity index 100% rename from src/features/research/components/DealListPanel.tsx rename to apps/web/src/features/research/components/DealListPanel.tsx diff --git a/src/features/research/components/DealRadar.tsx b/apps/web/src/features/research/components/DealRadar.tsx similarity index 100% rename from src/features/research/components/DealRadar.tsx rename to apps/web/src/features/research/components/DealRadar.tsx diff --git a/src/features/research/components/DealTable.tsx b/apps/web/src/features/research/components/DealTable.tsx similarity index 100% rename from src/features/research/components/DealTable.tsx rename to apps/web/src/features/research/components/DealTable.tsx diff --git a/src/features/research/components/DeepDiveAccordion.test.tsx b/apps/web/src/features/research/components/DeepDiveAccordion.test.tsx similarity index 100% rename from src/features/research/components/DeepDiveAccordion.test.tsx rename to apps/web/src/features/research/components/DeepDiveAccordion.test.tsx diff --git a/src/features/research/components/DeepDiveAccordion.tsx b/apps/web/src/features/research/components/DeepDiveAccordion.tsx similarity index 100% rename from src/features/research/components/DeepDiveAccordion.tsx rename to apps/web/src/features/research/components/DeepDiveAccordion.tsx diff --git a/src/features/research/components/DeltaIndicator.tsx b/apps/web/src/features/research/components/DeltaIndicator.tsx similarity index 100% rename from src/features/research/components/DeltaIndicator.tsx rename to apps/web/src/features/research/components/DeltaIndicator.tsx diff --git a/src/features/research/components/EmailDigestPreview.tsx b/apps/web/src/features/research/components/EmailDigestPreview.tsx similarity index 100% rename from src/features/research/components/EmailDigestPreview.tsx rename to apps/web/src/features/research/components/EmailDigestPreview.tsx diff --git a/src/features/research/components/EnhancedLineChart.tsx b/apps/web/src/features/research/components/EnhancedLineChart.tsx similarity index 100% rename from src/features/research/components/EnhancedLineChart.tsx rename to apps/web/src/features/research/components/EnhancedLineChart.tsx diff --git a/src/features/research/components/EnhancedPersonalPulse.tsx b/apps/web/src/features/research/components/EnhancedPersonalPulse.tsx similarity index 100% rename from src/features/research/components/EnhancedPersonalPulse.tsx rename to apps/web/src/features/research/components/EnhancedPersonalPulse.tsx diff --git a/src/features/research/components/EnhancedTimelineStrip.tsx b/apps/web/src/features/research/components/EnhancedTimelineStrip.tsx similarity index 100% rename from src/features/research/components/EnhancedTimelineStrip.tsx rename to apps/web/src/features/research/components/EnhancedTimelineStrip.tsx diff --git a/src/features/research/components/EntityContextDrawer.tsx b/apps/web/src/features/research/components/EntityContextDrawer.tsx similarity index 100% rename from src/features/research/components/EntityContextDrawer.tsx rename to apps/web/src/features/research/components/EntityContextDrawer.tsx diff --git a/src/features/research/components/EntityHoverPreview.tsx b/apps/web/src/features/research/components/EntityHoverPreview.tsx similarity index 100% rename from src/features/research/components/EntityHoverPreview.tsx rename to apps/web/src/features/research/components/EntityHoverPreview.tsx diff --git a/src/features/research/components/EntityLink.tsx b/apps/web/src/features/research/components/EntityLink.tsx similarity index 100% rename from src/features/research/components/EntityLink.tsx rename to apps/web/src/features/research/components/EntityLink.tsx diff --git a/src/features/research/components/EntityRadar.tsx b/apps/web/src/features/research/components/EntityRadar.tsx similarity index 100% rename from src/features/research/components/EntityRadar.tsx rename to apps/web/src/features/research/components/EntityRadar.tsx diff --git a/src/features/research/components/EvidenceGrid.tsx b/apps/web/src/features/research/components/EvidenceGrid.tsx similarity index 100% rename from src/features/research/components/EvidenceGrid.tsx rename to apps/web/src/features/research/components/EvidenceGrid.tsx diff --git a/src/features/research/components/EvidencePanel.tsx b/apps/web/src/features/research/components/EvidencePanel.tsx similarity index 100% rename from src/features/research/components/EvidencePanel.tsx rename to apps/web/src/features/research/components/EvidencePanel.tsx diff --git a/src/features/research/components/EvidenceTimeline.tsx b/apps/web/src/features/research/components/EvidenceTimeline.tsx similarity index 100% rename from src/features/research/components/EvidenceTimeline.tsx rename to apps/web/src/features/research/components/EvidenceTimeline.tsx diff --git a/src/features/research/components/ExecutiveBriefHeader.tsx b/apps/web/src/features/research/components/ExecutiveBriefHeader.tsx similarity index 100% rename from src/features/research/components/ExecutiveBriefHeader.tsx rename to apps/web/src/features/research/components/ExecutiveBriefHeader.tsx diff --git a/src/features/research/components/ExportBriefButton.tsx b/apps/web/src/features/research/components/ExportBriefButton.tsx similarity index 100% rename from src/features/research/components/ExportBriefButton.tsx rename to apps/web/src/features/research/components/ExportBriefButton.tsx diff --git a/src/features/research/components/FeedCard.tsx b/apps/web/src/features/research/components/FeedCard.tsx similarity index 100% rename from src/features/research/components/FeedCard.tsx rename to apps/web/src/features/research/components/FeedCard.tsx diff --git a/src/features/research/components/FeedReaderModal.tsx b/apps/web/src/features/research/components/FeedReaderModal.tsx similarity index 100% rename from src/features/research/components/FeedReaderModal.tsx rename to apps/web/src/features/research/components/FeedReaderModal.tsx diff --git a/src/features/research/components/FeedReaderPanel.tsx b/apps/web/src/features/research/components/FeedReaderPanel.tsx similarity index 100% rename from src/features/research/components/FeedReaderPanel.tsx rename to apps/web/src/features/research/components/FeedReaderPanel.tsx diff --git a/src/features/research/components/FeedTimeline.tsx b/apps/web/src/features/research/components/FeedTimeline.tsx similarity index 100% rename from src/features/research/components/FeedTimeline.tsx rename to apps/web/src/features/research/components/FeedTimeline.tsx diff --git a/src/features/research/components/FootnoteMarker.tsx b/apps/web/src/features/research/components/FootnoteMarker.tsx similarity index 100% rename from src/features/research/components/FootnoteMarker.tsx rename to apps/web/src/features/research/components/FootnoteMarker.tsx diff --git a/src/features/research/components/FootnotesSection.tsx b/apps/web/src/features/research/components/FootnotesSection.tsx similarity index 100% rename from src/features/research/components/FootnotesSection.tsx rename to apps/web/src/features/research/components/FootnotesSection.tsx diff --git a/src/features/research/components/ForYouFeed.tsx b/apps/web/src/features/research/components/ForYouFeed.tsx similarity index 100% rename from src/features/research/components/ForYouFeed.tsx rename to apps/web/src/features/research/components/ForYouFeed.tsx diff --git a/src/features/research/components/ForecastCard.tsx b/apps/web/src/features/research/components/ForecastCard.tsx similarity index 100% rename from src/features/research/components/ForecastCard.tsx rename to apps/web/src/features/research/components/ForecastCard.tsx diff --git a/src/features/research/components/ForecastCockpit.tsx b/apps/web/src/features/research/components/ForecastCockpit.tsx similarity index 100% rename from src/features/research/components/ForecastCockpit.tsx rename to apps/web/src/features/research/components/ForecastCockpit.tsx diff --git a/src/features/research/components/GitHubExplorer.tsx b/apps/web/src/features/research/components/GitHubExplorer.tsx similarity index 100% rename from src/features/research/components/GitHubExplorer.tsx rename to apps/web/src/features/research/components/GitHubExplorer.tsx diff --git a/src/features/research/components/HeroSection.tsx b/apps/web/src/features/research/components/HeroSection.tsx similarity index 100% rename from src/features/research/components/HeroSection.tsx rename to apps/web/src/features/research/components/HeroSection.tsx diff --git a/src/features/research/components/IndustryUpdatesPanel.tsx b/apps/web/src/features/research/components/IndustryUpdatesPanel.tsx similarity index 100% rename from src/features/research/components/IndustryUpdatesPanel.tsx rename to apps/web/src/features/research/components/IndustryUpdatesPanel.tsx diff --git a/src/features/research/components/InstantSearchBar.tsx b/apps/web/src/features/research/components/InstantSearchBar.tsx similarity index 100% rename from src/features/research/components/InstantSearchBar.tsx rename to apps/web/src/features/research/components/InstantSearchBar.tsx diff --git a/src/features/research/components/IntelPulseMonitor.tsx b/apps/web/src/features/research/components/IntelPulseMonitor.tsx similarity index 100% rename from src/features/research/components/IntelPulseMonitor.tsx rename to apps/web/src/features/research/components/IntelPulseMonitor.tsx diff --git a/src/features/research/components/InteractiveLineChart.tsx b/apps/web/src/features/research/components/InteractiveLineChart.tsx similarity index 100% rename from src/features/research/components/InteractiveLineChart.tsx rename to apps/web/src/features/research/components/InteractiveLineChart.tsx diff --git a/src/features/research/components/InteractiveSpan.tsx b/apps/web/src/features/research/components/InteractiveSpan.tsx similarity index 100% rename from src/features/research/components/InteractiveSpan.tsx rename to apps/web/src/features/research/components/InteractiveSpan.tsx diff --git a/src/features/research/components/InteractiveSpanParser.tsx b/apps/web/src/features/research/components/InteractiveSpanParser.tsx similarity index 100% rename from src/features/research/components/InteractiveSpanParser.tsx rename to apps/web/src/features/research/components/InteractiveSpanParser.tsx diff --git a/src/features/research/components/LiveDashboard.tsx b/apps/web/src/features/research/components/LiveDashboard.tsx similarity index 100% rename from src/features/research/components/LiveDashboard.tsx rename to apps/web/src/features/research/components/LiveDashboard.tsx diff --git a/src/features/research/components/LiveRadarWidget.tsx b/apps/web/src/features/research/components/LiveRadarWidget.tsx similarity index 100% rename from src/features/research/components/LiveRadarWidget.tsx rename to apps/web/src/features/research/components/LiveRadarWidget.tsx diff --git a/src/features/research/components/MagicInputContainer.tsx b/apps/web/src/features/research/components/MagicInputContainer.tsx similarity index 100% rename from src/features/research/components/MagicInputContainer.tsx rename to apps/web/src/features/research/components/MagicInputContainer.tsx diff --git a/src/features/research/components/ModelComparisonTable.tsx b/apps/web/src/features/research/components/ModelComparisonTable.tsx similarity index 100% rename from src/features/research/components/ModelComparisonTable.tsx rename to apps/web/src/features/research/components/ModelComparisonTable.tsx diff --git a/src/features/research/components/ModelEvalDashboard.tsx b/apps/web/src/features/research/components/ModelEvalDashboard.tsx similarity index 100% rename from src/features/research/components/ModelEvalDashboard.tsx rename to apps/web/src/features/research/components/ModelEvalDashboard.tsx diff --git a/src/features/research/components/MorningBriefingHeader.tsx b/apps/web/src/features/research/components/MorningBriefingHeader.tsx similarity index 100% rename from src/features/research/components/MorningBriefingHeader.tsx rename to apps/web/src/features/research/components/MorningBriefingHeader.tsx diff --git a/src/features/research/components/MorningDigest.tsx b/apps/web/src/features/research/components/MorningDigest.tsx similarity index 100% rename from src/features/research/components/MorningDigest.tsx rename to apps/web/src/features/research/components/MorningDigest.tsx diff --git a/src/features/research/components/NarrativeThreadView.tsx b/apps/web/src/features/research/components/NarrativeThreadView.tsx similarity index 100% rename from src/features/research/components/NarrativeThreadView.tsx rename to apps/web/src/features/research/components/NarrativeThreadView.tsx diff --git a/src/features/research/components/OracleSessionBanner.tsx b/apps/web/src/features/research/components/OracleSessionBanner.tsx similarity index 100% rename from src/features/research/components/OracleSessionBanner.tsx rename to apps/web/src/features/research/components/OracleSessionBanner.tsx diff --git a/src/features/research/components/OvernightMovesCard.tsx b/apps/web/src/features/research/components/OvernightMovesCard.tsx similarity index 100% rename from src/features/research/components/OvernightMovesCard.tsx rename to apps/web/src/features/research/components/OvernightMovesCard.tsx diff --git a/src/features/research/components/PaperDetailsCard.tsx b/apps/web/src/features/research/components/PaperDetailsCard.tsx similarity index 100% rename from src/features/research/components/PaperDetailsCard.tsx rename to apps/web/src/features/research/components/PaperDetailsCard.tsx diff --git a/src/features/research/components/PersonalAnalytics.tsx b/apps/web/src/features/research/components/PersonalAnalytics.tsx similarity index 100% rename from src/features/research/components/PersonalAnalytics.tsx rename to apps/web/src/features/research/components/PersonalAnalytics.tsx diff --git a/src/features/research/components/PersonalDashboard.tsx b/apps/web/src/features/research/components/PersonalDashboard.tsx similarity index 100% rename from src/features/research/components/PersonalDashboard.tsx rename to apps/web/src/features/research/components/PersonalDashboard.tsx diff --git a/src/features/research/components/PersonalPulse.tsx b/apps/web/src/features/research/components/PersonalPulse.tsx similarity index 100% rename from src/features/research/components/PersonalPulse.tsx rename to apps/web/src/features/research/components/PersonalPulse.tsx diff --git a/src/features/research/components/ProductChangelogPanel.tsx b/apps/web/src/features/research/components/ProductChangelogPanel.tsx similarity index 100% rename from src/features/research/components/ProductChangelogPanel.tsx rename to apps/web/src/features/research/components/ProductChangelogPanel.tsx diff --git a/src/features/research/components/PulseGrid.tsx b/apps/web/src/features/research/components/PulseGrid.tsx similarity index 100% rename from src/features/research/components/PulseGrid.tsx rename to apps/web/src/features/research/components/PulseGrid.tsx diff --git a/src/features/research/components/RecommendationCard.tsx b/apps/web/src/features/research/components/RecommendationCard.tsx similarity index 100% rename from src/features/research/components/RecommendationCard.tsx rename to apps/web/src/features/research/components/RecommendationCard.tsx diff --git a/src/features/research/components/RecommendationPanel.tsx b/apps/web/src/features/research/components/RecommendationPanel.tsx similarity index 100% rename from src/features/research/components/RecommendationPanel.tsx rename to apps/web/src/features/research/components/RecommendationPanel.tsx diff --git a/src/features/research/components/RelatedFeedsGrid.tsx b/apps/web/src/features/research/components/RelatedFeedsGrid.tsx similarity index 100% rename from src/features/research/components/RelatedFeedsGrid.tsx rename to apps/web/src/features/research/components/RelatedFeedsGrid.tsx diff --git a/src/features/research/components/RepoSignalPanel.tsx b/apps/web/src/features/research/components/RepoSignalPanel.tsx similarity index 100% rename from src/features/research/components/RepoSignalPanel.tsx rename to apps/web/src/features/research/components/RepoSignalPanel.tsx diff --git a/src/features/research/components/RepoStatsPanel.tsx b/apps/web/src/features/research/components/RepoStatsPanel.tsx similarity index 100% rename from src/features/research/components/RepoStatsPanel.tsx rename to apps/web/src/features/research/components/RepoStatsPanel.tsx diff --git a/src/features/research/components/ResearchSupplement.tsx b/apps/web/src/features/research/components/ResearchSupplement.tsx similarity index 100% rename from src/features/research/components/ResearchSupplement.tsx rename to apps/web/src/features/research/components/ResearchSupplement.tsx diff --git a/src/features/research/components/SafeVegaChart.tsx b/apps/web/src/features/research/components/SafeVegaChart.tsx similarity index 100% rename from src/features/research/components/SafeVegaChart.tsx rename to apps/web/src/features/research/components/SafeVegaChart.tsx diff --git a/src/features/research/components/ScrollytellingLayout.tsx b/apps/web/src/features/research/components/ScrollytellingLayout.tsx similarity index 100% rename from src/features/research/components/ScrollytellingLayout.tsx rename to apps/web/src/features/research/components/ScrollytellingLayout.tsx diff --git a/src/features/research/components/SignalCard.tsx b/apps/web/src/features/research/components/SignalCard.tsx similarity index 100% rename from src/features/research/components/SignalCard.tsx rename to apps/web/src/features/research/components/SignalCard.tsx diff --git a/src/features/research/components/SignalMomentumMini.tsx b/apps/web/src/features/research/components/SignalMomentumMini.tsx similarity index 100% rename from src/features/research/components/SignalMomentumMini.tsx rename to apps/web/src/features/research/components/SignalMomentumMini.tsx diff --git a/src/features/research/components/SignalTimeseriesPanel.tsx b/apps/web/src/features/research/components/SignalTimeseriesPanel.tsx similarity index 100% rename from src/features/research/components/SignalTimeseriesPanel.tsx rename to apps/web/src/features/research/components/SignalTimeseriesPanel.tsx diff --git a/src/features/research/components/SmartLink.tsx b/apps/web/src/features/research/components/SmartLink.tsx similarity index 100% rename from src/features/research/components/SmartLink.tsx rename to apps/web/src/features/research/components/SmartLink.tsx diff --git a/src/features/research/components/SmartWatchlist.tsx b/apps/web/src/features/research/components/SmartWatchlist.tsx similarity index 100% rename from src/features/research/components/SmartWatchlist.tsx rename to apps/web/src/features/research/components/SmartWatchlist.tsx diff --git a/src/features/research/components/SourceFeed.tsx b/apps/web/src/features/research/components/SourceFeed.tsx similarity index 100% rename from src/features/research/components/SourceFeed.tsx rename to apps/web/src/features/research/components/SourceFeed.tsx diff --git a/src/features/research/components/Sparkline.tsx b/apps/web/src/features/research/components/Sparkline.tsx similarity index 100% rename from src/features/research/components/Sparkline.tsx rename to apps/web/src/features/research/components/Sparkline.tsx diff --git a/src/features/research/components/StackImpactPanel.tsx b/apps/web/src/features/research/components/StackImpactPanel.tsx similarity index 100% rename from src/features/research/components/StackImpactPanel.tsx rename to apps/web/src/features/research/components/StackImpactPanel.tsx diff --git a/src/features/research/components/StickyDashboard.tsx b/apps/web/src/features/research/components/StickyDashboard.tsx similarity index 100% rename from src/features/research/components/StickyDashboard.tsx rename to apps/web/src/features/research/components/StickyDashboard.tsx diff --git a/src/features/research/components/StrategyMetricsPanel.tsx b/apps/web/src/features/research/components/StrategyMetricsPanel.tsx similarity index 100% rename from src/features/research/components/StrategyMetricsPanel.tsx rename to apps/web/src/features/research/components/StrategyMetricsPanel.tsx diff --git a/src/features/research/components/TimelineScrubber.tsx b/apps/web/src/features/research/components/TimelineScrubber.tsx similarity index 100% rename from src/features/research/components/TimelineScrubber.tsx rename to apps/web/src/features/research/components/TimelineScrubber.tsx diff --git a/src/features/research/components/TimelineStrip.tsx b/apps/web/src/features/research/components/TimelineStrip.tsx similarity index 100% rename from src/features/research/components/TimelineStrip.tsx rename to apps/web/src/features/research/components/TimelineStrip.tsx diff --git a/src/features/research/components/TraceBreadcrumb.tsx b/apps/web/src/features/research/components/TraceBreadcrumb.tsx similarity index 100% rename from src/features/research/components/TraceBreadcrumb.tsx rename to apps/web/src/features/research/components/TraceBreadcrumb.tsx diff --git a/src/features/research/components/TrendRail.tsx b/apps/web/src/features/research/components/TrendRail.tsx similarity index 100% rename from src/features/research/components/TrendRail.tsx rename to apps/web/src/features/research/components/TrendRail.tsx diff --git a/src/features/research/components/VirtualizedFeedList.tsx b/apps/web/src/features/research/components/VirtualizedFeedList.tsx similarity index 100% rename from src/features/research/components/VirtualizedFeedList.tsx rename to apps/web/src/features/research/components/VirtualizedFeedList.tsx diff --git a/src/features/research/components/WhatChangedPanel.tsx b/apps/web/src/features/research/components/WhatChangedPanel.tsx similarity index 100% rename from src/features/research/components/WhatChangedPanel.tsx rename to apps/web/src/features/research/components/WhatChangedPanel.tsx diff --git a/src/features/research/components/dossier/DossierMediaGallery.tsx b/apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx similarity index 100% rename from src/features/research/components/dossier/DossierMediaGallery.tsx rename to apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx diff --git a/src/features/research/components/dossier/mediaExtractor.ts b/apps/web/src/features/research/components/dossier/mediaExtractor.ts similarity index 100% rename from src/features/research/components/dossier/mediaExtractor.ts rename to apps/web/src/features/research/components/dossier/mediaExtractor.ts diff --git a/src/features/research/components/dossier/tipTapMediaExtractor.ts b/apps/web/src/features/research/components/dossier/tipTapMediaExtractor.ts similarity index 100% rename from src/features/research/components/dossier/tipTapMediaExtractor.ts rename to apps/web/src/features/research/components/dossier/tipTapMediaExtractor.ts diff --git a/src/features/research/components/index.ts b/apps/web/src/features/research/components/index.ts similarity index 100% rename from src/features/research/components/index.ts rename to apps/web/src/features/research/components/index.ts diff --git a/src/features/research/components/modelEvalData.ts b/apps/web/src/features/research/components/modelEvalData.ts similarity index 100% rename from src/features/research/components/modelEvalData.ts rename to apps/web/src/features/research/components/modelEvalData.ts diff --git a/src/features/research/components/newsletter/EvidenceDrawer.tsx b/apps/web/src/features/research/components/newsletter/EvidenceDrawer.tsx similarity index 100% rename from src/features/research/components/newsletter/EvidenceDrawer.tsx rename to apps/web/src/features/research/components/newsletter/EvidenceDrawer.tsx diff --git a/src/features/research/components/newsletter/NewsletterComponents.tsx b/apps/web/src/features/research/components/newsletter/NewsletterComponents.tsx similarity index 100% rename from src/features/research/components/newsletter/NewsletterComponents.tsx rename to apps/web/src/features/research/components/newsletter/NewsletterComponents.tsx diff --git a/src/features/research/components/newsletter/NewsletterView.tsx b/apps/web/src/features/research/components/newsletter/NewsletterView.tsx similarity index 100% rename from src/features/research/components/newsletter/NewsletterView.tsx rename to apps/web/src/features/research/components/newsletter/NewsletterView.tsx diff --git a/src/features/research/components/newsletter/StickyTopBar.tsx b/apps/web/src/features/research/components/newsletter/StickyTopBar.tsx similarity index 100% rename from src/features/research/components/newsletter/StickyTopBar.tsx rename to apps/web/src/features/research/components/newsletter/StickyTopBar.tsx diff --git a/src/features/research/components/newsletter/WhatChangedStrip.tsx b/apps/web/src/features/research/components/newsletter/WhatChangedStrip.tsx similarity index 100% rename from src/features/research/components/newsletter/WhatChangedStrip.tsx rename to apps/web/src/features/research/components/newsletter/WhatChangedStrip.tsx diff --git a/src/features/research/components/newsletter/index.ts b/apps/web/src/features/research/components/newsletter/index.ts similarity index 100% rename from src/features/research/components/newsletter/index.ts rename to apps/web/src/features/research/components/newsletter/index.ts diff --git a/src/features/research/content/goldenBriefExample.json b/apps/web/src/features/research/content/goldenBriefExample.json similarity index 100% rename from src/features/research/content/goldenBriefExample.json rename to apps/web/src/features/research/content/goldenBriefExample.json diff --git a/src/features/research/content/researchStream.json b/apps/web/src/features/research/content/researchStream.json similarity index 100% rename from src/features/research/content/researchStream.json rename to apps/web/src/features/research/content/researchStream.json diff --git a/src/features/research/contexts/EvidenceContext.tsx b/apps/web/src/features/research/contexts/EvidenceContext.tsx similarity index 100% rename from src/features/research/contexts/EvidenceContext.tsx rename to apps/web/src/features/research/contexts/EvidenceContext.tsx diff --git a/src/features/research/contexts/FocusSyncContext.tsx b/apps/web/src/features/research/contexts/FocusSyncContext.tsx similarity index 100% rename from src/features/research/contexts/FocusSyncContext.tsx rename to apps/web/src/features/research/contexts/FocusSyncContext.tsx diff --git a/src/features/research/data/CHANGELOG.md b/apps/web/src/features/research/data/CHANGELOG.md similarity index 100% rename from src/features/research/data/CHANGELOG.md rename to apps/web/src/features/research/data/CHANGELOG.md diff --git a/src/features/research/data/audit_mocks.ts b/apps/web/src/features/research/data/audit_mocks.ts similarity index 100% rename from src/features/research/data/audit_mocks.ts rename to apps/web/src/features/research/data/audit_mocks.ts diff --git a/src/features/research/hooks/index.ts b/apps/web/src/features/research/hooks/index.ts similarity index 100% rename from src/features/research/hooks/index.ts rename to apps/web/src/features/research/hooks/index.ts diff --git a/src/features/research/hooks/useBriefData.test.ts b/apps/web/src/features/research/hooks/useBriefData.test.ts similarity index 100% rename from src/features/research/hooks/useBriefData.test.ts rename to apps/web/src/features/research/hooks/useBriefData.test.ts diff --git a/src/features/research/hooks/useBriefData.ts b/apps/web/src/features/research/hooks/useBriefData.ts similarity index 100% rename from src/features/research/hooks/useBriefData.ts rename to apps/web/src/features/research/hooks/useBriefData.ts diff --git a/src/features/research/hooks/useDealData.ts b/apps/web/src/features/research/hooks/useDealData.ts similarity index 100% rename from src/features/research/hooks/useDealData.ts rename to apps/web/src/features/research/hooks/useDealData.ts diff --git a/src/features/research/hooks/useDossierAgentHandlers.ts b/apps/web/src/features/research/hooks/useDossierAgentHandlers.ts similarity index 100% rename from src/features/research/hooks/useDossierAgentHandlers.ts rename to apps/web/src/features/research/hooks/useDossierAgentHandlers.ts diff --git a/src/features/research/hooks/useEntityHoverData.ts b/apps/web/src/features/research/hooks/useEntityHoverData.ts similarity index 100% rename from src/features/research/hooks/useEntityHoverData.ts rename to apps/web/src/features/research/hooks/useEntityHoverData.ts diff --git a/src/features/research/hooks/useFeedData.ts b/apps/web/src/features/research/hooks/useFeedData.ts similarity index 100% rename from src/features/research/hooks/useFeedData.ts rename to apps/web/src/features/research/hooks/useFeedData.ts diff --git a/src/features/research/hooks/useFocusSyncDebounced.ts b/apps/web/src/features/research/hooks/useFocusSyncDebounced.ts similarity index 100% rename from src/features/research/hooks/useFocusSyncDebounced.ts rename to apps/web/src/features/research/hooks/useFocusSyncDebounced.ts diff --git a/src/features/research/hooks/usePersonalBrief.ts b/apps/web/src/features/research/hooks/usePersonalBrief.ts similarity index 100% rename from src/features/research/hooks/usePersonalBrief.ts rename to apps/web/src/features/research/hooks/usePersonalBrief.ts diff --git a/src/features/research/hooks/useReaderContent.ts b/apps/web/src/features/research/hooks/useReaderContent.ts similarity index 100% rename from src/features/research/hooks/useReaderContent.ts rename to apps/web/src/features/research/hooks/useReaderContent.ts diff --git a/src/features/research/lib/demoSignals.ts b/apps/web/src/features/research/lib/demoSignals.ts similarity index 100% rename from src/features/research/lib/demoSignals.ts rename to apps/web/src/features/research/lib/demoSignals.ts diff --git a/src/features/research/prompts/briefConstraints.ts b/apps/web/src/features/research/prompts/briefConstraints.ts similarity index 100% rename from src/features/research/prompts/briefConstraints.ts rename to apps/web/src/features/research/prompts/briefConstraints.ts diff --git a/src/features/research/prompts/index.ts b/apps/web/src/features/research/prompts/index.ts similarity index 100% rename from src/features/research/prompts/index.ts rename to apps/web/src/features/research/prompts/index.ts diff --git a/src/features/research/sections/BriefingSection.tsx b/apps/web/src/features/research/sections/BriefingSection.tsx similarity index 100% rename from src/features/research/sections/BriefingSection.tsx rename to apps/web/src/features/research/sections/BriefingSection.tsx diff --git a/src/features/research/sections/DashboardSection.tsx b/apps/web/src/features/research/sections/DashboardSection.tsx similarity index 100% rename from src/features/research/sections/DashboardSection.tsx rename to apps/web/src/features/research/sections/DashboardSection.tsx diff --git a/src/features/research/sections/DealListSection.tsx b/apps/web/src/features/research/sections/DealListSection.tsx similarity index 100% rename from src/features/research/sections/DealListSection.tsx rename to apps/web/src/features/research/sections/DealListSection.tsx diff --git a/src/features/research/sections/DigestSection.tsx b/apps/web/src/features/research/sections/DigestSection.tsx similarity index 100% rename from src/features/research/sections/DigestSection.tsx rename to apps/web/src/features/research/sections/DigestSection.tsx diff --git a/src/features/research/sections/FeedSection.tsx b/apps/web/src/features/research/sections/FeedSection.tsx similarity index 100% rename from src/features/research/sections/FeedSection.tsx rename to apps/web/src/features/research/sections/FeedSection.tsx diff --git a/src/features/research/sections/index.ts b/apps/web/src/features/research/sections/index.ts similarity index 100% rename from src/features/research/sections/index.ts rename to apps/web/src/features/research/sections/index.ts diff --git a/src/features/research/types.ts b/apps/web/src/features/research/types.ts similarity index 100% rename from src/features/research/types.ts rename to apps/web/src/features/research/types.ts diff --git a/src/features/research/types/citationSchema.ts b/apps/web/src/features/research/types/citationSchema.ts similarity index 100% rename from src/features/research/types/citationSchema.ts rename to apps/web/src/features/research/types/citationSchema.ts diff --git a/src/features/research/types/dailyBriefSchema.ts b/apps/web/src/features/research/types/dailyBriefSchema.ts similarity index 100% rename from src/features/research/types/dailyBriefSchema.ts rename to apps/web/src/features/research/types/dailyBriefSchema.ts diff --git a/src/features/research/types/entitySchema.ts b/apps/web/src/features/research/types/entitySchema.ts similarity index 100% rename from src/features/research/types/entitySchema.ts rename to apps/web/src/features/research/types/entitySchema.ts diff --git a/src/features/research/types/index.ts b/apps/web/src/features/research/types/index.ts similarity index 100% rename from src/features/research/types/index.ts rename to apps/web/src/features/research/types/index.ts diff --git a/src/features/research/utils/briefGenerator.ts b/apps/web/src/features/research/utils/briefGenerator.ts similarity index 100% rename from src/features/research/utils/briefGenerator.ts rename to apps/web/src/features/research/utils/briefGenerator.ts diff --git a/src/features/research/utils/briefTransformers.test.ts b/apps/web/src/features/research/utils/briefTransformers.test.ts similarity index 100% rename from src/features/research/utils/briefTransformers.test.ts rename to apps/web/src/features/research/utils/briefTransformers.test.ts diff --git a/src/features/research/utils/briefTransformers.ts b/apps/web/src/features/research/utils/briefTransformers.ts similarity index 100% rename from src/features/research/utils/briefTransformers.ts rename to apps/web/src/features/research/utils/briefTransformers.ts diff --git a/src/features/research/utils/index.ts b/apps/web/src/features/research/utils/index.ts similarity index 100% rename from src/features/research/utils/index.ts rename to apps/web/src/features/research/utils/index.ts diff --git a/src/features/research/utils/newsletterParser.ts b/apps/web/src/features/research/utils/newsletterParser.ts similarity index 100% rename from src/features/research/utils/newsletterParser.ts rename to apps/web/src/features/research/utils/newsletterParser.ts diff --git a/src/features/research/validators/briefValidator.ts b/apps/web/src/features/research/validators/briefValidator.ts similarity index 100% rename from src/features/research/validators/briefValidator.ts rename to apps/web/src/features/research/validators/briefValidator.ts diff --git a/src/features/research/validators/index.ts b/apps/web/src/features/research/validators/index.ts similarity index 100% rename from src/features/research/validators/index.ts rename to apps/web/src/features/research/validators/index.ts diff --git a/src/features/research/views/CinematicHome.tsx b/apps/web/src/features/research/views/CinematicHome.tsx similarity index 100% rename from src/features/research/views/CinematicHome.tsx rename to apps/web/src/features/research/views/CinematicHome.tsx diff --git a/src/features/research/views/DossierViewer.tsx b/apps/web/src/features/research/views/DossierViewer.tsx similarity index 100% rename from src/features/research/views/DossierViewer.tsx rename to apps/web/src/features/research/views/DossierViewer.tsx diff --git a/src/features/research/views/EntityProfilePage.tsx b/apps/web/src/features/research/views/EntityProfilePage.tsx similarity index 100% rename from src/features/research/views/EntityProfilePage.tsx rename to apps/web/src/features/research/views/EntityProfilePage.tsx diff --git a/src/features/research/views/FootnotesPage.tsx b/apps/web/src/features/research/views/FootnotesPage.tsx similarity index 100% rename from src/features/research/views/FootnotesPage.tsx rename to apps/web/src/features/research/views/FootnotesPage.tsx diff --git a/src/features/research/views/FundingBriefView.tsx b/apps/web/src/features/research/views/FundingBriefView.tsx similarity index 100% rename from src/features/research/views/FundingBriefView.tsx rename to apps/web/src/features/research/views/FundingBriefView.tsx diff --git a/src/features/research/views/LiveDossierDocument.tsx b/apps/web/src/features/research/views/LiveDossierDocument.tsx similarity index 100% rename from src/features/research/views/LiveDossierDocument.tsx rename to apps/web/src/features/research/views/LiveDossierDocument.tsx diff --git a/src/features/research/views/MobileReportSurface.tsx b/apps/web/src/features/research/views/MobileReportSurface.tsx similarity index 100% rename from src/features/research/views/MobileReportSurface.tsx rename to apps/web/src/features/research/views/MobileReportSurface.tsx diff --git a/src/features/research/views/PhaseAllShowcase.tsx b/apps/web/src/features/research/views/PhaseAllShowcase.tsx similarity index 100% rename from src/features/research/views/PhaseAllShowcase.tsx rename to apps/web/src/features/research/views/PhaseAllShowcase.tsx diff --git a/src/features/research/views/PublicSignalsLog.tsx b/apps/web/src/features/research/views/PublicSignalsLog.tsx similarity index 100% rename from src/features/research/views/PublicSignalsLog.tsx rename to apps/web/src/features/research/views/PublicSignalsLog.tsx diff --git a/src/features/research/views/ReportDetailPage.tsx b/apps/web/src/features/research/views/ReportDetailPage.tsx similarity index 100% rename from src/features/research/views/ReportDetailPage.tsx rename to apps/web/src/features/research/views/ReportDetailPage.tsx diff --git a/src/features/research/views/ReportDetailWorkspace.tsx b/apps/web/src/features/research/views/ReportDetailWorkspace.tsx similarity index 100% rename from src/features/research/views/ReportDetailWorkspace.tsx rename to apps/web/src/features/research/views/ReportDetailWorkspace.tsx diff --git a/src/features/research/views/ResearchHub.routeSync.test.tsx b/apps/web/src/features/research/views/ResearchHub.routeSync.test.tsx similarity index 100% rename from src/features/research/views/ResearchHub.routeSync.test.tsx rename to apps/web/src/features/research/views/ResearchHub.routeSync.test.tsx diff --git a/src/features/research/views/ResearchHub.tsx b/apps/web/src/features/research/views/ResearchHub.tsx similarity index 100% rename from src/features/research/views/ResearchHub.tsx rename to apps/web/src/features/research/views/ResearchHub.tsx diff --git a/src/features/research/views/WatchlistsView.tsx b/apps/web/src/features/research/views/WatchlistsView.tsx similarity index 100% rename from src/features/research/views/WatchlistsView.tsx rename to apps/web/src/features/research/views/WatchlistsView.tsx diff --git a/src/features/research/views/WorldMonitorView.tsx b/apps/web/src/features/research/views/WorldMonitorView.tsx similarity index 100% rename from src/features/research/views/WorldMonitorView.tsx rename to apps/web/src/features/research/views/WorldMonitorView.tsx diff --git a/src/features/share/components/ShareEntityButton.tsx b/apps/web/src/features/share/components/ShareEntityButton.tsx similarity index 100% rename from src/features/share/components/ShareEntityButton.tsx rename to apps/web/src/features/share/components/ShareEntityButton.tsx diff --git a/src/features/share/views/PublicEntityShareView.test.tsx b/apps/web/src/features/share/views/PublicEntityShareView.test.tsx similarity index 100% rename from src/features/share/views/PublicEntityShareView.test.tsx rename to apps/web/src/features/share/views/PublicEntityShareView.test.tsx diff --git a/src/features/share/views/PublicEntityShareView.tsx b/apps/web/src/features/share/views/PublicEntityShareView.tsx similarity index 100% rename from src/features/share/views/PublicEntityShareView.tsx rename to apps/web/src/features/share/views/PublicEntityShareView.tsx diff --git a/src/features/share/views/publicShareHelpers.test.ts b/apps/web/src/features/share/views/publicShareHelpers.test.ts similarity index 100% rename from src/features/share/views/publicShareHelpers.test.ts rename to apps/web/src/features/share/views/publicShareHelpers.test.ts diff --git a/src/features/share/views/publicShareHelpers.ts b/apps/web/src/features/share/views/publicShareHelpers.ts similarity index 100% rename from src/features/share/views/publicShareHelpers.ts rename to apps/web/src/features/share/views/publicShareHelpers.ts diff --git a/src/features/strategy/data/spreadsheetExecutionTrace.ts b/apps/web/src/features/strategy/data/spreadsheetExecutionTrace.ts similarity index 100% rename from src/features/strategy/data/spreadsheetExecutionTrace.ts rename to apps/web/src/features/strategy/data/spreadsheetExecutionTrace.ts diff --git a/src/features/strategy/data/testsAssuredProductDirection.ts b/apps/web/src/features/strategy/data/testsAssuredProductDirection.ts similarity index 100% rename from src/features/strategy/data/testsAssuredProductDirection.ts rename to apps/web/src/features/strategy/data/testsAssuredProductDirection.ts diff --git a/src/features/strategy/lib/executionTraceAdapter.test.ts b/apps/web/src/features/strategy/lib/executionTraceAdapter.test.ts similarity index 100% rename from src/features/strategy/lib/executionTraceAdapter.test.ts rename to apps/web/src/features/strategy/lib/executionTraceAdapter.test.ts diff --git a/src/features/strategy/lib/executionTraceAdapter.ts b/apps/web/src/features/strategy/lib/executionTraceAdapter.ts similarity index 100% rename from src/features/strategy/lib/executionTraceAdapter.ts rename to apps/web/src/features/strategy/lib/executionTraceAdapter.ts diff --git a/src/features/strategy/types/executionTrace.test.ts b/apps/web/src/features/strategy/types/executionTrace.test.ts similarity index 100% rename from src/features/strategy/types/executionTrace.test.ts rename to apps/web/src/features/strategy/types/executionTrace.test.ts diff --git a/src/features/strategy/types/executionTrace.ts b/apps/web/src/features/strategy/types/executionTrace.ts similarity index 100% rename from src/features/strategy/types/executionTrace.ts rename to apps/web/src/features/strategy/types/executionTrace.ts diff --git a/src/features/strategy/types/inHouseProductDirection.test.ts b/apps/web/src/features/strategy/types/inHouseProductDirection.test.ts similarity index 100% rename from src/features/strategy/types/inHouseProductDirection.test.ts rename to apps/web/src/features/strategy/types/inHouseProductDirection.test.ts diff --git a/src/features/strategy/types/inHouseProductDirection.ts b/apps/web/src/features/strategy/types/inHouseProductDirection.ts similarity index 100% rename from src/features/strategy/types/inHouseProductDirection.ts rename to apps/web/src/features/strategy/types/inHouseProductDirection.ts diff --git a/src/features/strategy/views/ExecutionTraceView.test.tsx b/apps/web/src/features/strategy/views/ExecutionTraceView.test.tsx similarity index 100% rename from src/features/strategy/views/ExecutionTraceView.test.tsx rename to apps/web/src/features/strategy/views/ExecutionTraceView.test.tsx diff --git a/src/features/strategy/views/ExecutionTraceView.tsx b/apps/web/src/features/strategy/views/ExecutionTraceView.tsx similarity index 100% rename from src/features/strategy/views/ExecutionTraceView.tsx rename to apps/web/src/features/strategy/views/ExecutionTraceView.tsx diff --git a/src/features/strategy/views/ProductDirectionMemoView.test.tsx b/apps/web/src/features/strategy/views/ProductDirectionMemoView.test.tsx similarity index 100% rename from src/features/strategy/views/ProductDirectionMemoView.test.tsx rename to apps/web/src/features/strategy/views/ProductDirectionMemoView.test.tsx diff --git a/src/features/strategy/views/ProductDirectionMemoView.tsx b/apps/web/src/features/strategy/views/ProductDirectionMemoView.tsx similarity index 100% rename from src/features/strategy/views/ProductDirectionMemoView.tsx rename to apps/web/src/features/strategy/views/ProductDirectionMemoView.tsx diff --git a/src/features/telemetry/ContextInspector.tsx b/apps/web/src/features/telemetry/ContextInspector.tsx similarity index 100% rename from src/features/telemetry/ContextInspector.tsx rename to apps/web/src/features/telemetry/ContextInspector.tsx diff --git a/src/features/telemetry/ContextualGraph.tsx b/apps/web/src/features/telemetry/ContextualGraph.tsx similarity index 100% rename from src/features/telemetry/ContextualGraph.tsx rename to apps/web/src/features/telemetry/ContextualGraph.tsx diff --git a/src/features/telemetry/CostWaterfall.tsx b/apps/web/src/features/telemetry/CostWaterfall.tsx similarity index 100% rename from src/features/telemetry/CostWaterfall.tsx rename to apps/web/src/features/telemetry/CostWaterfall.tsx diff --git a/src/features/telemetry/EvalScorecard.tsx b/apps/web/src/features/telemetry/EvalScorecard.tsx similarity index 100% rename from src/features/telemetry/EvalScorecard.tsx rename to apps/web/src/features/telemetry/EvalScorecard.tsx diff --git a/src/features/telemetry/FailureClusters.tsx b/apps/web/src/features/telemetry/FailureClusters.tsx similarity index 100% rename from src/features/telemetry/FailureClusters.tsx rename to apps/web/src/features/telemetry/FailureClusters.tsx diff --git a/src/features/telemetry/JudgeHeatmap.tsx b/apps/web/src/features/telemetry/JudgeHeatmap.tsx similarity index 100% rename from src/features/telemetry/JudgeHeatmap.tsx rename to apps/web/src/features/telemetry/JudgeHeatmap.tsx diff --git a/src/features/telemetry/LiveDataBanner.tsx b/apps/web/src/features/telemetry/LiveDataBanner.tsx similarity index 100% rename from src/features/telemetry/LiveDataBanner.tsx rename to apps/web/src/features/telemetry/LiveDataBanner.tsx diff --git a/src/features/telemetry/ToolCoverageProof.tsx b/apps/web/src/features/telemetry/ToolCoverageProof.tsx similarity index 100% rename from src/features/telemetry/ToolCoverageProof.tsx rename to apps/web/src/features/telemetry/ToolCoverageProof.tsx diff --git a/src/features/telemetry/TrajectoryPanel.tsx b/apps/web/src/features/telemetry/TrajectoryPanel.tsx similarity index 100% rename from src/features/telemetry/TrajectoryPanel.tsx rename to apps/web/src/features/telemetry/TrajectoryPanel.tsx diff --git a/src/features/telemetry/index.ts b/apps/web/src/features/telemetry/index.ts similarity index 100% rename from src/features/telemetry/index.ts rename to apps/web/src/features/telemetry/index.ts diff --git a/src/features/telemetry/types.ts b/apps/web/src/features/telemetry/types.ts similarity index 100% rename from src/features/telemetry/types.ts rename to apps/web/src/features/telemetry/types.ts diff --git a/src/features/telemetry/useLiveTelemetry.ts b/apps/web/src/features/telemetry/useLiveTelemetry.ts similarity index 100% rename from src/features/telemetry/useLiveTelemetry.ts rename to apps/web/src/features/telemetry/useLiveTelemetry.ts diff --git a/src/features/tracking/index.ts b/apps/web/src/features/tracking/index.ts similarity index 100% rename from src/features/tracking/index.ts rename to apps/web/src/features/tracking/index.ts diff --git a/src/features/tracking/views/EntityTrackingView.tsx b/apps/web/src/features/tracking/views/EntityTrackingView.tsx similarity index 100% rename from src/features/tracking/views/EntityTrackingView.tsx rename to apps/web/src/features/tracking/views/EntityTrackingView.tsx diff --git a/src/features/trajectory/components/TrajectorySummaryBand.tsx b/apps/web/src/features/trajectory/components/TrajectorySummaryBand.tsx similarity index 100% rename from src/features/trajectory/components/TrajectorySummaryBand.tsx rename to apps/web/src/features/trajectory/components/TrajectorySummaryBand.tsx diff --git a/src/features/trajectory/components/TrajectoryTimelinePanel.tsx b/apps/web/src/features/trajectory/components/TrajectoryTimelinePanel.tsx similarity index 100% rename from src/features/trajectory/components/TrajectoryTimelinePanel.tsx rename to apps/web/src/features/trajectory/components/TrajectoryTimelinePanel.tsx diff --git a/src/features/trajectory/lib/trajectoryEntity.ts b/apps/web/src/features/trajectory/lib/trajectoryEntity.ts similarity index 100% rename from src/features/trajectory/lib/trajectoryEntity.ts rename to apps/web/src/features/trajectory/lib/trajectoryEntity.ts diff --git a/src/features/trajectory/types.ts b/apps/web/src/features/trajectory/types.ts similarity index 100% rename from src/features/trajectory/types.ts rename to apps/web/src/features/trajectory/types.ts diff --git a/src/features/voice/components/VoiceAuditFeed.tsx b/apps/web/src/features/voice/components/VoiceAuditFeed.tsx similarity index 100% rename from src/features/voice/components/VoiceAuditFeed.tsx rename to apps/web/src/features/voice/components/VoiceAuditFeed.tsx diff --git a/src/features/voice/components/VoiceCostBadge.tsx b/apps/web/src/features/voice/components/VoiceCostBadge.tsx similarity index 100% rename from src/features/voice/components/VoiceCostBadge.tsx rename to apps/web/src/features/voice/components/VoiceCostBadge.tsx diff --git a/src/features/voice/index.ts b/apps/web/src/features/voice/index.ts similarity index 100% rename from src/features/voice/index.ts rename to apps/web/src/features/voice/index.ts diff --git a/src/features/workspace/data/eventWorkspaceMemory.test.ts b/apps/web/src/features/workspace/data/eventWorkspaceMemory.test.ts similarity index 100% rename from src/features/workspace/data/eventWorkspaceMemory.test.ts rename to apps/web/src/features/workspace/data/eventWorkspaceMemory.test.ts diff --git a/src/features/workspace/data/eventWorkspaceMemory.ts b/apps/web/src/features/workspace/data/eventWorkspaceMemory.ts similarity index 100% rename from src/features/workspace/data/eventWorkspaceMemory.ts rename to apps/web/src/features/workspace/data/eventWorkspaceMemory.ts diff --git a/src/features/workspace/data/scenarioCatalog.test.ts b/apps/web/src/features/workspace/data/scenarioCatalog.test.ts similarity index 100% rename from src/features/workspace/data/scenarioCatalog.test.ts rename to apps/web/src/features/workspace/data/scenarioCatalog.test.ts diff --git a/src/features/workspace/data/scenarioCatalog.ts b/apps/web/src/features/workspace/data/scenarioCatalog.ts similarity index 100% rename from src/features/workspace/data/scenarioCatalog.ts rename to apps/web/src/features/workspace/data/scenarioCatalog.ts diff --git a/src/features/workspace/lib/eventWorkspacePersistence.test.ts b/apps/web/src/features/workspace/lib/eventWorkspacePersistence.test.ts similarity index 100% rename from src/features/workspace/lib/eventWorkspacePersistence.test.ts rename to apps/web/src/features/workspace/lib/eventWorkspacePersistence.test.ts diff --git a/src/features/workspace/lib/eventWorkspacePersistence.ts b/apps/web/src/features/workspace/lib/eventWorkspacePersistence.ts similarity index 100% rename from src/features/workspace/lib/eventWorkspacePersistence.ts rename to apps/web/src/features/workspace/lib/eventWorkspacePersistence.ts diff --git a/src/features/workspace/lib/useEventCaptureRecorder.ts b/apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts similarity index 100% rename from src/features/workspace/lib/useEventCaptureRecorder.ts rename to apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts diff --git a/src/features/workspace/lib/useEventWorkspacePersistence.ts b/apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts similarity index 100% rename from src/features/workspace/lib/useEventWorkspacePersistence.ts rename to apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts diff --git a/src/features/workspace/lib/workspaceRouting.test.ts b/apps/web/src/features/workspace/lib/workspaceRouting.test.ts similarity index 100% rename from src/features/workspace/lib/workspaceRouting.test.ts rename to apps/web/src/features/workspace/lib/workspaceRouting.test.ts diff --git a/src/features/workspace/lib/workspaceRouting.ts b/apps/web/src/features/workspace/lib/workspaceRouting.ts similarity index 100% rename from src/features/workspace/lib/workspaceRouting.ts rename to apps/web/src/features/workspace/lib/workspaceRouting.ts diff --git a/src/features/workspace/views/UniversalWorkspacePage.tsx b/apps/web/src/features/workspace/views/UniversalWorkspacePage.tsx similarity index 100% rename from src/features/workspace/views/UniversalWorkspacePage.tsx rename to apps/web/src/features/workspace/views/UniversalWorkspacePage.tsx diff --git a/src/hooks/FeedbackListener.tsx b/apps/web/src/hooks/FeedbackListener.tsx similarity index 100% rename from src/hooks/FeedbackListener.tsx rename to apps/web/src/hooks/FeedbackListener.tsx diff --git a/src/hooks/VOICE_INTENT_ROUTER.md b/apps/web/src/hooks/VOICE_INTENT_ROUTER.md similarity index 100% rename from src/hooks/VOICE_INTENT_ROUTER.md rename to apps/web/src/hooks/VOICE_INTENT_ROUTER.md diff --git a/src/hooks/__tests__/useViewportMobile.test.ts b/apps/web/src/hooks/__tests__/useViewportMobile.test.ts similarity index 100% rename from src/hooks/__tests__/useViewportMobile.test.ts rename to apps/web/src/hooks/__tests__/useViewportMobile.test.ts diff --git a/src/hooks/contextPills.tsx b/apps/web/src/hooks/contextPills.tsx similarity index 100% rename from src/hooks/contextPills.tsx rename to apps/web/src/hooks/contextPills.tsx diff --git a/src/hooks/index.ts b/apps/web/src/hooks/index.ts similarity index 100% rename from src/hooks/index.ts rename to apps/web/src/hooks/index.ts diff --git a/src/hooks/useAgentLanes.ts b/apps/web/src/hooks/useAgentLanes.ts similarity index 100% rename from src/hooks/useAgentLanes.ts rename to apps/web/src/hooks/useAgentLanes.ts diff --git a/src/hooks/useAgentStateApi.ts b/apps/web/src/hooks/useAgentStateApi.ts similarity index 100% rename from src/hooks/useAgentStateApi.ts rename to apps/web/src/hooks/useAgentStateApi.ts diff --git a/src/hooks/useArtifactStore.tsx b/apps/web/src/hooks/useArtifactStore.tsx similarity index 100% rename from src/hooks/useArtifactStore.tsx rename to apps/web/src/hooks/useArtifactStore.tsx diff --git a/src/hooks/useArtifactStreamConsumer.ts b/apps/web/src/hooks/useArtifactStreamConsumer.ts similarity index 100% rename from src/hooks/useArtifactStreamConsumer.ts rename to apps/web/src/hooks/useArtifactStreamConsumer.ts diff --git a/src/hooks/useCockpitRouting.ts b/apps/web/src/hooks/useCockpitRouting.ts similarity index 100% rename from src/hooks/useCockpitRouting.ts rename to apps/web/src/hooks/useCockpitRouting.ts diff --git a/src/hooks/useCommandPalette.ts b/apps/web/src/hooks/useCommandPalette.ts similarity index 100% rename from src/hooks/useCommandPalette.ts rename to apps/web/src/hooks/useCommandPalette.ts diff --git a/src/hooks/useContextualToolSuggestions.ts b/apps/web/src/hooks/useContextualToolSuggestions.ts similarity index 100% rename from src/hooks/useContextualToolSuggestions.ts rename to apps/web/src/hooks/useContextualToolSuggestions.ts diff --git a/src/hooks/useConvexSearch.ts b/apps/web/src/hooks/useConvexSearch.ts similarity index 100% rename from src/hooks/useConvexSearch.ts rename to apps/web/src/hooks/useConvexSearch.ts diff --git a/src/hooks/useCurrentUser.ts b/apps/web/src/hooks/useCurrentUser.ts similarity index 100% rename from src/hooks/useCurrentUser.ts rename to apps/web/src/hooks/useCurrentUser.ts diff --git a/src/hooks/useEngagementTracking.ts b/apps/web/src/hooks/useEngagementTracking.ts similarity index 100% rename from src/hooks/useEngagementTracking.ts rename to apps/web/src/hooks/useEngagementTracking.ts diff --git a/src/hooks/useFeedback.ts b/apps/web/src/hooks/useFeedback.ts similarity index 100% rename from src/hooks/useFeedback.ts rename to apps/web/src/hooks/useFeedback.ts diff --git a/src/hooks/useGeminiLiveSession.ts b/apps/web/src/hooks/useGeminiLiveSession.ts similarity index 100% rename from src/hooks/useGeminiLiveSession.ts rename to apps/web/src/hooks/useGeminiLiveSession.ts diff --git a/src/hooks/useGlobalEventListeners.ts b/apps/web/src/hooks/useGlobalEventListeners.ts similarity index 100% rename from src/hooks/useGlobalEventListeners.ts rename to apps/web/src/hooks/useGlobalEventListeners.ts diff --git a/src/hooks/useInlineCitations.ts b/apps/web/src/hooks/useInlineCitations.ts similarity index 100% rename from src/hooks/useInlineCitations.ts rename to apps/web/src/hooks/useInlineCitations.ts diff --git a/src/hooks/useIntentTelemetry.ts b/apps/web/src/hooks/useIntentTelemetry.ts similarity index 100% rename from src/hooks/useIntentTelemetry.ts rename to apps/web/src/hooks/useIntentTelemetry.ts diff --git a/src/hooks/useMcp.ts b/apps/web/src/hooks/useMcp.ts similarity index 100% rename from src/hooks/useMcp.ts rename to apps/web/src/hooks/useMcp.ts diff --git a/src/hooks/useMousePosition.ts b/apps/web/src/hooks/useMousePosition.ts similarity index 100% rename from src/hooks/useMousePosition.ts rename to apps/web/src/hooks/useMousePosition.ts diff --git a/src/hooks/useMouseProximity.ts b/apps/web/src/hooks/useMouseProximity.ts similarity index 100% rename from src/hooks/useMouseProximity.ts rename to apps/web/src/hooks/useMouseProximity.ts diff --git a/src/hooks/useOracleSession.ts b/apps/web/src/hooks/useOracleSession.ts similarity index 100% rename from src/hooks/useOracleSession.ts rename to apps/web/src/hooks/useOracleSession.ts diff --git a/src/hooks/usePathTracking.ts b/apps/web/src/hooks/usePathTracking.ts similarity index 100% rename from src/hooks/usePathTracking.ts rename to apps/web/src/hooks/usePathTracking.ts diff --git a/src/hooks/usePlannerState.ts b/apps/web/src/hooks/usePlannerState.ts similarity index 100% rename from src/hooks/usePlannerState.ts rename to apps/web/src/hooks/usePlannerState.ts diff --git a/src/hooks/usePwaInstallPrompt.ts b/apps/web/src/hooks/usePwaInstallPrompt.ts similarity index 100% rename from src/hooks/usePwaInstallPrompt.ts rename to apps/web/src/hooks/usePwaInstallPrompt.ts diff --git a/src/hooks/useRealtimeTranscription.ts b/apps/web/src/hooks/useRealtimeTranscription.ts similarity index 100% rename from src/hooks/useRealtimeTranscription.ts rename to apps/web/src/hooks/useRealtimeTranscription.ts diff --git a/src/hooks/useRecommendations.ts b/apps/web/src/hooks/useRecommendations.ts similarity index 100% rename from src/hooks/useRecommendations.ts rename to apps/web/src/hooks/useRecommendations.ts diff --git a/src/hooks/useReducedMotion.ts b/apps/web/src/hooks/useReducedMotion.ts similarity index 100% rename from src/hooks/useReducedMotion.ts rename to apps/web/src/hooks/useReducedMotion.ts diff --git a/src/hooks/useRevealOnMount.ts b/apps/web/src/hooks/useRevealOnMount.ts similarity index 100% rename from src/hooks/useRevealOnMount.ts rename to apps/web/src/hooks/useRevealOnMount.ts diff --git a/src/hooks/useScreenCapture.ts b/apps/web/src/hooks/useScreenCapture.ts similarity index 100% rename from src/hooks/useScreenCapture.ts rename to apps/web/src/hooks/useScreenCapture.ts diff --git a/src/hooks/useStableQuery.ts b/apps/web/src/hooks/useStableQuery.ts similarity index 100% rename from src/hooks/useStableQuery.ts rename to apps/web/src/hooks/useStableQuery.ts diff --git a/src/hooks/useStreamingSearch.test.ts b/apps/web/src/hooks/useStreamingSearch.test.ts similarity index 100% rename from src/hooks/useStreamingSearch.test.ts rename to apps/web/src/hooks/useStreamingSearch.test.ts diff --git a/src/hooks/useStreamingSearch.ts b/apps/web/src/hooks/useStreamingSearch.ts similarity index 100% rename from src/hooks/useStreamingSearch.ts rename to apps/web/src/hooks/useStreamingSearch.ts diff --git a/src/hooks/useStreamingTranscription.ts b/apps/web/src/hooks/useStreamingTranscription.ts similarity index 100% rename from src/hooks/useStreamingTranscription.ts rename to apps/web/src/hooks/useStreamingTranscription.ts diff --git a/src/hooks/useSwarm.ts b/apps/web/src/hooks/useSwarm.ts similarity index 100% rename from src/hooks/useSwarm.ts rename to apps/web/src/hooks/useSwarm.ts diff --git a/src/hooks/useTimeContext.ts b/apps/web/src/hooks/useTimeContext.ts similarity index 100% rename from src/hooks/useTimeContext.ts rename to apps/web/src/hooks/useTimeContext.ts diff --git a/src/hooks/useToast.ts b/apps/web/src/hooks/useToast.ts similarity index 100% rename from src/hooks/useToast.ts rename to apps/web/src/hooks/useToast.ts diff --git a/src/hooks/useUnifiedItems.ts b/apps/web/src/hooks/useUnifiedItems.ts similarity index 100% rename from src/hooks/useUnifiedItems.ts rename to apps/web/src/hooks/useUnifiedItems.ts diff --git a/src/hooks/useViewWebMcpTools.ts b/apps/web/src/hooks/useViewWebMcpTools.ts similarity index 100% rename from src/hooks/useViewWebMcpTools.ts rename to apps/web/src/hooks/useViewWebMcpTools.ts diff --git a/src/hooks/useViewportMobile.ts b/apps/web/src/hooks/useViewportMobile.ts similarity index 100% rename from src/hooks/useViewportMobile.ts rename to apps/web/src/hooks/useViewportMobile.ts diff --git a/src/hooks/useVoiceInput.ts b/apps/web/src/hooks/useVoiceInput.ts similarity index 100% rename from src/hooks/useVoiceInput.ts rename to apps/web/src/hooks/useVoiceInput.ts diff --git a/src/hooks/useVoiceIntentRouter.test.ts b/apps/web/src/hooks/useVoiceIntentRouter.test.ts similarity index 100% rename from src/hooks/useVoiceIntentRouter.test.ts rename to apps/web/src/hooks/useVoiceIntentRouter.test.ts diff --git a/src/hooks/useVoiceIntentRouter.ts b/apps/web/src/hooks/useVoiceIntentRouter.ts similarity index 100% rename from src/hooks/useVoiceIntentRouter.ts rename to apps/web/src/hooks/useVoiceIntentRouter.ts diff --git a/src/hooks/useVoiceOutput.ts b/apps/web/src/hooks/useVoiceOutput.ts similarity index 100% rename from src/hooks/useVoiceOutput.ts rename to apps/web/src/hooks/useVoiceOutput.ts diff --git a/src/hooks/useVoiceRecording.ts b/apps/web/src/hooks/useVoiceRecording.ts similarity index 100% rename from src/hooks/useVoiceRecording.ts rename to apps/web/src/hooks/useVoiceRecording.ts diff --git a/src/hooks/useWakeVoiceFeedback.ts b/apps/web/src/hooks/useWakeVoiceFeedback.ts similarity index 100% rename from src/hooks/useWakeVoiceFeedback.ts rename to apps/web/src/hooks/useWakeVoiceFeedback.ts diff --git a/src/hooks/useWakeVoiceSession.ts b/apps/web/src/hooks/useWakeVoiceSession.ts similarity index 100% rename from src/hooks/useWakeVoiceSession.ts rename to apps/web/src/hooks/useWakeVoiceSession.ts diff --git a/src/hooks/useWakeWordActivation.ts b/apps/web/src/hooks/useWakeWordActivation.ts similarity index 100% rename from src/hooks/useWakeWordActivation.ts rename to apps/web/src/hooks/useWakeWordActivation.ts diff --git a/src/hooks/useWebMcpProvider.ts b/apps/web/src/hooks/useWebMcpProvider.ts similarity index 100% rename from src/hooks/useWebMcpProvider.ts rename to apps/web/src/hooks/useWebMcpProvider.ts diff --git a/src/hooks/useZoom.ts b/apps/web/src/hooks/useZoom.ts similarity index 100% rename from src/hooks/useZoom.ts rename to apps/web/src/hooks/useZoom.ts diff --git a/src/index.css b/apps/web/src/index.css similarity index 100% rename from src/index.css rename to apps/web/src/index.css diff --git a/src/layouts/ActiveSurfaceHost.test.tsx b/apps/web/src/layouts/ActiveSurfaceHost.test.tsx similarity index 100% rename from src/layouts/ActiveSurfaceHost.test.tsx rename to apps/web/src/layouts/ActiveSurfaceHost.test.tsx diff --git a/src/layouts/ActiveSurfaceHost.tsx b/apps/web/src/layouts/ActiveSurfaceHost.tsx similarity index 100% rename from src/layouts/ActiveSurfaceHost.tsx rename to apps/web/src/layouts/ActiveSurfaceHost.tsx diff --git a/src/layouts/CockpitLayout.tsx b/apps/web/src/layouts/CockpitLayout.tsx similarity index 100% rename from src/layouts/CockpitLayout.tsx rename to apps/web/src/layouts/CockpitLayout.tsx diff --git a/src/layouts/CommandBar.tsx b/apps/web/src/layouts/CommandBar.tsx similarity index 100% rename from src/layouts/CommandBar.tsx rename to apps/web/src/layouts/CommandBar.tsx diff --git a/src/layouts/IOSChrome.tsx b/apps/web/src/layouts/IOSChrome.tsx similarity index 100% rename from src/layouts/IOSChrome.tsx rename to apps/web/src/layouts/IOSChrome.tsx diff --git a/src/layouts/MobileCaptureFab.tsx b/apps/web/src/layouts/MobileCaptureFab.tsx similarity index 100% rename from src/layouts/MobileCaptureFab.tsx rename to apps/web/src/layouts/MobileCaptureFab.tsx diff --git a/src/layouts/MobileTabBar.tsx b/apps/web/src/layouts/MobileTabBar.tsx similarity index 100% rename from src/layouts/MobileTabBar.tsx rename to apps/web/src/layouts/MobileTabBar.tsx diff --git a/src/layouts/ObjectBar.tsx b/apps/web/src/layouts/ObjectBar.tsx similarity index 100% rename from src/layouts/ObjectBar.tsx rename to apps/web/src/layouts/ObjectBar.tsx diff --git a/src/layouts/ObjectFirstLayout.tsx b/apps/web/src/layouts/ObjectFirstLayout.tsx similarity index 100% rename from src/layouts/ObjectFirstLayout.tsx rename to apps/web/src/layouts/ObjectFirstLayout.tsx diff --git a/src/layouts/ObjectFirstSurfaceHost.tsx b/apps/web/src/layouts/ObjectFirstSurfaceHost.tsx similarity index 100% rename from src/layouts/ObjectFirstSurfaceHost.tsx rename to apps/web/src/layouts/ObjectFirstSurfaceHost.tsx diff --git a/src/layouts/ObjectFirstToggle.tsx b/apps/web/src/layouts/ObjectFirstToggle.tsx similarity index 100% rename from src/layouts/ObjectFirstToggle.tsx rename to apps/web/src/layouts/ObjectFirstToggle.tsx diff --git a/src/layouts/ProductTopNav.tsx b/apps/web/src/layouts/ProductTopNav.tsx similarity index 100% rename from src/layouts/ProductTopNav.tsx rename to apps/web/src/layouts/ProductTopNav.tsx diff --git a/src/layouts/StatusStrip.tsx b/apps/web/src/layouts/StatusStrip.tsx similarity index 100% rename from src/layouts/StatusStrip.tsx rename to apps/web/src/layouts/StatusStrip.tsx diff --git a/src/layouts/WorkspaceRail.tsx b/apps/web/src/layouts/WorkspaceRail.tsx similarity index 100% rename from src/layouts/WorkspaceRail.tsx rename to apps/web/src/layouts/WorkspaceRail.tsx diff --git a/src/layouts/chrome/AgentMetadata.tsx b/apps/web/src/layouts/chrome/AgentMetadata.tsx similarity index 100% rename from src/layouts/chrome/AgentMetadata.tsx rename to apps/web/src/layouts/chrome/AgentMetadata.tsx diff --git a/src/layouts/chrome/CommandPalette.tsx b/apps/web/src/layouts/chrome/CommandPalette.tsx similarity index 100% rename from src/layouts/chrome/CommandPalette.tsx rename to apps/web/src/layouts/chrome/CommandPalette.tsx diff --git a/src/layouts/chrome/HashtagQuickNotePopover.tsx b/apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx similarity index 100% rename from src/layouts/chrome/HashtagQuickNotePopover.tsx rename to apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx diff --git a/src/layouts/chrome/QuickCaptureWidget.test.tsx b/apps/web/src/layouts/chrome/QuickCaptureWidget.test.tsx similarity index 100% rename from src/layouts/chrome/QuickCaptureWidget.test.tsx rename to apps/web/src/layouts/chrome/QuickCaptureWidget.test.tsx diff --git a/src/layouts/chrome/QuickCaptureWidget.tsx b/apps/web/src/layouts/chrome/QuickCaptureWidget.tsx similarity index 100% rename from src/layouts/chrome/QuickCaptureWidget.tsx rename to apps/web/src/layouts/chrome/QuickCaptureWidget.tsx diff --git a/src/layouts/chrome/commandPalette/recentSearches.ts b/apps/web/src/layouts/chrome/commandPalette/recentSearches.ts similarity index 100% rename from src/layouts/chrome/commandPalette/recentSearches.ts rename to apps/web/src/layouts/chrome/commandPalette/recentSearches.ts diff --git a/src/layouts/chrome/commandPalette/resolveResultAction.ts b/apps/web/src/layouts/chrome/commandPalette/resolveResultAction.ts similarity index 100% rename from src/layouts/chrome/commandPalette/resolveResultAction.ts rename to apps/web/src/layouts/chrome/commandPalette/resolveResultAction.ts diff --git a/src/layouts/chrome/commandPalette/types.ts b/apps/web/src/layouts/chrome/commandPalette/types.ts similarity index 100% rename from src/layouts/chrome/commandPalette/types.ts rename to apps/web/src/layouts/chrome/commandPalette/types.ts diff --git a/src/layouts/chrome/commandPalette/useFederatedSearch.ts b/apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts similarity index 100% rename from src/layouts/chrome/commandPalette/useFederatedSearch.ts rename to apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts diff --git a/src/layouts/chrome/commandPaletteUtils.test.ts b/apps/web/src/layouts/chrome/commandPaletteUtils.test.ts similarity index 100% rename from src/layouts/chrome/commandPaletteUtils.test.ts rename to apps/web/src/layouts/chrome/commandPaletteUtils.test.ts diff --git a/src/layouts/chrome/commandPaletteUtils.ts b/apps/web/src/layouts/chrome/commandPaletteUtils.ts similarity index 100% rename from src/layouts/chrome/commandPaletteUtils.ts rename to apps/web/src/layouts/chrome/commandPaletteUtils.ts diff --git a/src/layouts/chrome/index.ts b/apps/web/src/layouts/chrome/index.ts similarity index 100% rename from src/layouts/chrome/index.ts rename to apps/web/src/layouts/chrome/index.ts diff --git a/src/layouts/cockpitModes.ts b/apps/web/src/layouts/cockpitModes.ts similarity index 100% rename from src/layouts/cockpitModes.ts rename to apps/web/src/layouts/cockpitModes.ts diff --git a/src/layouts/cockpitRails.test.tsx b/apps/web/src/layouts/cockpitRails.test.tsx similarity index 100% rename from src/layouts/cockpitRails.test.tsx rename to apps/web/src/layouts/cockpitRails.test.tsx diff --git a/src/layouts/hud.css b/apps/web/src/layouts/hud.css similarity index 100% rename from src/layouts/hud.css rename to apps/web/src/layouts/hud.css diff --git a/src/layouts/index.ts b/apps/web/src/layouts/index.ts similarity index 100% rename from src/layouts/index.ts rename to apps/web/src/layouts/index.ts diff --git a/src/layouts/settings/SettingsModal.tsx b/apps/web/src/layouts/settings/SettingsModal.tsx similarity index 100% rename from src/layouts/settings/SettingsModal.tsx rename to apps/web/src/layouts/settings/SettingsModal.tsx diff --git a/src/layouts/settings/ThemeCustomizer.tsx b/apps/web/src/layouts/settings/ThemeCustomizer.tsx similarity index 100% rename from src/layouts/settings/ThemeCustomizer.tsx rename to apps/web/src/layouts/settings/ThemeCustomizer.tsx diff --git a/src/layouts/settings/WebMcpSettingsPanel.tsx b/apps/web/src/layouts/settings/WebMcpSettingsPanel.tsx similarity index 100% rename from src/layouts/settings/WebMcpSettingsPanel.tsx rename to apps/web/src/layouts/settings/WebMcpSettingsPanel.tsx diff --git a/src/layouts/useCockpitMode.test.tsx b/apps/web/src/layouts/useCockpitMode.test.tsx similarity index 100% rename from src/layouts/useCockpitMode.test.tsx rename to apps/web/src/layouts/useCockpitMode.test.tsx diff --git a/src/layouts/useCockpitMode.ts b/apps/web/src/layouts/useCockpitMode.ts similarity index 100% rename from src/layouts/useCockpitMode.ts rename to apps/web/src/layouts/useCockpitMode.ts diff --git a/src/lib/ROUTE_ARCHITECTURE.md b/apps/web/src/lib/ROUTE_ARCHITECTURE.md similarity index 100% rename from src/lib/ROUTE_ARCHITECTURE.md rename to apps/web/src/lib/ROUTE_ARCHITECTURE.md diff --git a/src/lib/__tests__/__snapshots__/tasks.reorder.spec.ts.snap b/apps/web/src/lib/__tests__/__snapshots__/tasks.reorder.spec.ts.snap similarity index 100% rename from src/lib/__tests__/__snapshots__/tasks.reorder.spec.ts.snap rename to apps/web/src/lib/__tests__/__snapshots__/tasks.reorder.spec.ts.snap diff --git a/src/lib/__tests__/tasks.reorder.spec.ts b/apps/web/src/lib/__tests__/tasks.reorder.spec.ts similarity index 100% rename from src/lib/__tests__/tasks.reorder.spec.ts rename to apps/web/src/lib/__tests__/tasks.reorder.spec.ts diff --git a/src/lib/analytics.ts b/apps/web/src/lib/analytics.ts similarity index 100% rename from src/lib/analytics.ts rename to apps/web/src/lib/analytics.ts diff --git a/src/lib/audio/pcmPlayer.ts b/apps/web/src/lib/audio/pcmPlayer.ts similarity index 100% rename from src/lib/audio/pcmPlayer.ts rename to apps/web/src/lib/audio/pcmPlayer.ts diff --git a/src/lib/audio/pcmWorklet.ts b/apps/web/src/lib/audio/pcmWorklet.ts similarity index 100% rename from src/lib/audio/pcmWorklet.ts rename to apps/web/src/lib/audio/pcmWorklet.ts diff --git a/src/lib/briefDate.ts b/apps/web/src/lib/briefDate.ts similarity index 100% rename from src/lib/briefDate.ts rename to apps/web/src/lib/briefDate.ts diff --git a/src/lib/buttonClasses.ts b/apps/web/src/lib/buttonClasses.ts similarity index 100% rename from src/lib/buttonClasses.ts rename to apps/web/src/lib/buttonClasses.ts diff --git a/src/lib/calendarHelpers.ts b/apps/web/src/lib/calendarHelpers.ts similarity index 100% rename from src/lib/calendarHelpers.ts rename to apps/web/src/lib/calendarHelpers.ts diff --git a/src/lib/convexApi.ts b/apps/web/src/lib/convexApi.ts similarity index 100% rename from src/lib/convexApi.ts rename to apps/web/src/lib/convexApi.ts diff --git a/src/lib/displayText.ts b/apps/web/src/lib/displayText.ts similarity index 100% rename from src/lib/displayText.ts rename to apps/web/src/lib/displayText.ts diff --git a/src/lib/documentThemes.ts b/apps/web/src/lib/documentThemes.ts similarity index 100% rename from src/lib/documentThemes.ts rename to apps/web/src/lib/documentThemes.ts diff --git a/src/lib/e2eCrypto.ts b/apps/web/src/lib/e2eCrypto.ts similarity index 100% rename from src/lib/e2eCrypto.ts rename to apps/web/src/lib/e2eCrypto.ts diff --git a/src/lib/elevenlabs.ts b/apps/web/src/lib/elevenlabs.ts similarity index 100% rename from src/lib/elevenlabs.ts rename to apps/web/src/lib/elevenlabs.ts diff --git a/src/lib/errorReporting.ts b/apps/web/src/lib/errorReporting.ts similarity index 100% rename from src/lib/errorReporting.ts rename to apps/web/src/lib/errorReporting.ts diff --git a/src/lib/events.ts b/apps/web/src/lib/events.ts similarity index 100% rename from src/lib/events.ts rename to apps/web/src/lib/events.ts diff --git a/src/lib/featureFlags.ts b/apps/web/src/lib/featureFlags.ts similarity index 100% rename from src/lib/featureFlags.ts rename to apps/web/src/lib/featureFlags.ts diff --git a/src/lib/fileTypes.ts b/apps/web/src/lib/fileTypes.ts similarity index 100% rename from src/lib/fileTypes.ts rename to apps/web/src/lib/fileTypes.ts diff --git a/src/lib/formatNumber.ts b/apps/web/src/lib/formatNumber.ts similarity index 100% rename from src/lib/formatNumber.ts rename to apps/web/src/lib/formatNumber.ts diff --git a/src/lib/formatting/buttonClasses.ts b/apps/web/src/lib/formatting/buttonClasses.ts similarity index 100% rename from src/lib/formatting/buttonClasses.ts rename to apps/web/src/lib/formatting/buttonClasses.ts diff --git a/src/lib/formatting/displayText.ts b/apps/web/src/lib/formatting/displayText.ts similarity index 100% rename from src/lib/formatting/displayText.ts rename to apps/web/src/lib/formatting/displayText.ts diff --git a/src/lib/formatting/formatNumber.ts b/apps/web/src/lib/formatting/formatNumber.ts similarity index 100% rename from src/lib/formatting/formatNumber.ts rename to apps/web/src/lib/formatting/formatNumber.ts diff --git a/src/lib/haptics.ts b/apps/web/src/lib/haptics.ts similarity index 100% rename from src/lib/haptics.ts rename to apps/web/src/lib/haptics.ts diff --git a/src/lib/hooks/useDataSource.ts b/apps/web/src/lib/hooks/useDataSource.ts similarity index 100% rename from src/lib/hooks/useDataSource.ts rename to apps/web/src/lib/hooks/useDataSource.ts diff --git a/src/lib/hooks/useEngagementTracking.ts b/apps/web/src/lib/hooks/useEngagementTracking.ts similarity index 100% rename from src/lib/hooks/useEngagementTracking.ts rename to apps/web/src/lib/hooks/useEngagementTracking.ts diff --git a/src/lib/hooks/useIntentTelemetry.ts b/apps/web/src/lib/hooks/useIntentTelemetry.ts similarity index 100% rename from src/lib/hooks/useIntentTelemetry.ts rename to apps/web/src/lib/hooks/useIntentTelemetry.ts diff --git a/src/lib/hooks/useSwipeNavigation.ts b/apps/web/src/lib/hooks/useSwipeNavigation.ts similarity index 100% rename from src/lib/hooks/useSwipeNavigation.ts rename to apps/web/src/lib/hooks/useSwipeNavigation.ts diff --git a/src/lib/ids.ts b/apps/web/src/lib/ids.ts similarity index 100% rename from src/lib/ids.ts rename to apps/web/src/lib/ids.ts diff --git a/src/lib/llmProvider.ts b/apps/web/src/lib/llmProvider.ts similarity index 100% rename from src/lib/llmProvider.ts rename to apps/web/src/lib/llmProvider.ts diff --git a/src/lib/metaPillMappers.ts b/apps/web/src/lib/metaPillMappers.ts similarity index 100% rename from src/lib/metaPillMappers.ts rename to apps/web/src/lib/metaPillMappers.ts diff --git a/src/lib/motion.ts b/apps/web/src/lib/motion.ts similarity index 100% rename from src/lib/motion.ts rename to apps/web/src/lib/motion.ts diff --git a/src/lib/nativeBootstrap.ts b/apps/web/src/lib/nativeBootstrap.ts similarity index 100% rename from src/lib/nativeBootstrap.ts rename to apps/web/src/lib/nativeBootstrap.ts diff --git a/src/lib/notebookAlerts.test.ts b/apps/web/src/lib/notebookAlerts.test.ts similarity index 100% rename from src/lib/notebookAlerts.test.ts rename to apps/web/src/lib/notebookAlerts.test.ts diff --git a/src/lib/notebookAlerts.ts b/apps/web/src/lib/notebookAlerts.ts similarity index 100% rename from src/lib/notebookAlerts.ts rename to apps/web/src/lib/notebookAlerts.ts diff --git a/src/lib/pdf/index.ts b/apps/web/src/lib/pdf/index.ts similarity index 100% rename from src/lib/pdf/index.ts rename to apps/web/src/lib/pdf/index.ts diff --git a/src/lib/pdf/pdfGenerator.ts b/apps/web/src/lib/pdf/pdfGenerator.ts similarity index 100% rename from src/lib/pdf/pdfGenerator.ts rename to apps/web/src/lib/pdf/pdfGenerator.ts diff --git a/src/lib/pdf/templates/companyDossierTemplate.ts b/apps/web/src/lib/pdf/templates/companyDossierTemplate.ts similarity index 100% rename from src/lib/pdf/templates/companyDossierTemplate.ts rename to apps/web/src/lib/pdf/templates/companyDossierTemplate.ts diff --git a/src/lib/pdf/templates/quarterlyFundingTemplate.ts b/apps/web/src/lib/pdf/templates/quarterlyFundingTemplate.ts similarity index 100% rename from src/lib/pdf/templates/quarterlyFundingTemplate.ts rename to apps/web/src/lib/pdf/templates/quarterlyFundingTemplate.ts diff --git a/src/lib/pdf/templates/weeklyDigestTemplate.ts b/apps/web/src/lib/pdf/templates/weeklyDigestTemplate.ts similarity index 100% rename from src/lib/pdf/templates/weeklyDigestTemplate.ts rename to apps/web/src/lib/pdf/templates/weeklyDigestTemplate.ts diff --git a/src/lib/pdf/types.ts b/apps/web/src/lib/pdf/types.ts similarity index 100% rename from src/lib/pdf/types.ts rename to apps/web/src/lib/pdf/types.ts diff --git a/src/lib/pdf/usePDFGenerator.ts b/apps/web/src/lib/pdf/usePDFGenerator.ts similarity index 100% rename from src/lib/pdf/usePDFGenerator.ts rename to apps/web/src/lib/pdf/usePDFGenerator.ts diff --git a/src/lib/performance/deepAgentMonitoring.ts b/apps/web/src/lib/performance/deepAgentMonitoring.ts similarity index 100% rename from src/lib/performance/deepAgentMonitoring.ts rename to apps/web/src/lib/performance/deepAgentMonitoring.ts diff --git a/src/lib/performance/idbSwrCache.test.ts b/apps/web/src/lib/performance/idbSwrCache.test.ts similarity index 100% rename from src/lib/performance/idbSwrCache.test.ts rename to apps/web/src/lib/performance/idbSwrCache.test.ts diff --git a/src/lib/performance/idbSwrCache.ts b/apps/web/src/lib/performance/idbSwrCache.ts similarity index 100% rename from src/lib/performance/idbSwrCache.ts rename to apps/web/src/lib/performance/idbSwrCache.ts diff --git a/src/lib/performance/routeTiming.test.ts b/apps/web/src/lib/performance/routeTiming.test.ts similarity index 100% rename from src/lib/performance/routeTiming.test.ts rename to apps/web/src/lib/performance/routeTiming.test.ts diff --git a/src/lib/performance/routeTiming.ts b/apps/web/src/lib/performance/routeTiming.ts similarity index 100% rename from src/lib/performance/routeTiming.ts rename to apps/web/src/lib/performance/routeTiming.ts diff --git a/src/lib/performance/useIdleGate.ts b/apps/web/src/lib/performance/useIdleGate.ts similarity index 100% rename from src/lib/performance/useIdleGate.ts rename to apps/web/src/lib/performance/useIdleGate.ts diff --git a/src/lib/performance/useOnlineStatus.ts b/apps/web/src/lib/performance/useOnlineStatus.ts similarity index 100% rename from src/lib/performance/useOnlineStatus.ts rename to apps/web/src/lib/performance/useOnlineStatus.ts diff --git a/src/lib/performance/useStaleWhileRevalidate.ts b/apps/web/src/lib/performance/useStaleWhileRevalidate.ts similarity index 100% rename from src/lib/performance/useStaleWhileRevalidate.ts rename to apps/web/src/lib/performance/useStaleWhileRevalidate.ts diff --git a/src/lib/performance/useWindowedList.test.ts b/apps/web/src/lib/performance/useWindowedList.test.ts similarity index 100% rename from src/lib/performance/useWindowedList.test.ts rename to apps/web/src/lib/performance/useWindowedList.test.ts diff --git a/src/lib/performance/useWindowedList.ts b/apps/web/src/lib/performance/useWindowedList.ts similarity index 100% rename from src/lib/performance/useWindowedList.ts rename to apps/web/src/lib/performance/useWindowedList.ts diff --git a/src/lib/registry/viewBreadcrumbs.test.ts b/apps/web/src/lib/registry/viewBreadcrumbs.test.ts similarity index 100% rename from src/lib/registry/viewBreadcrumbs.test.ts rename to apps/web/src/lib/registry/viewBreadcrumbs.test.ts diff --git a/src/lib/registry/viewBreadcrumbs.ts b/apps/web/src/lib/registry/viewBreadcrumbs.ts similarity index 100% rename from src/lib/registry/viewBreadcrumbs.ts rename to apps/web/src/lib/registry/viewBreadcrumbs.ts diff --git a/src/lib/registry/viewCapabilityRegistry.ts b/apps/web/src/lib/registry/viewCapabilityRegistry.ts similarity index 100% rename from src/lib/registry/viewCapabilityRegistry.ts rename to apps/web/src/lib/registry/viewCapabilityRegistry.ts diff --git a/src/lib/registry/viewRegistry.share.test.ts b/apps/web/src/lib/registry/viewRegistry.share.test.ts similarity index 100% rename from src/lib/registry/viewRegistry.share.test.ts rename to apps/web/src/lib/registry/viewRegistry.share.test.ts diff --git a/src/lib/registry/viewRegistry.test.ts b/apps/web/src/lib/registry/viewRegistry.test.ts similarity index 100% rename from src/lib/registry/viewRegistry.test.ts rename to apps/web/src/lib/registry/viewRegistry.test.ts diff --git a/src/lib/registry/viewRegistry.ts b/apps/web/src/lib/registry/viewRegistry.ts similarity index 100% rename from src/lib/registry/viewRegistry.ts rename to apps/web/src/lib/registry/viewRegistry.ts diff --git a/src/lib/registry/viewToolMap.ts b/apps/web/src/lib/registry/viewToolMap.ts similarity index 100% rename from src/lib/registry/viewToolMap.ts rename to apps/web/src/lib/registry/viewToolMap.ts diff --git a/src/lib/searchApi.ts b/apps/web/src/lib/searchApi.ts similarity index 100% rename from src/lib/searchApi.ts rename to apps/web/src/lib/searchApi.ts diff --git a/src/lib/shapes/e2eCrypto.ts b/apps/web/src/lib/shapes/e2eCrypto.ts similarity index 100% rename from src/lib/shapes/e2eCrypto.ts rename to apps/web/src/lib/shapes/e2eCrypto.ts diff --git a/src/lib/shapes/events.ts b/apps/web/src/lib/shapes/events.ts similarity index 100% rename from src/lib/shapes/events.ts rename to apps/web/src/lib/shapes/events.ts diff --git a/src/lib/shapes/ids.ts b/apps/web/src/lib/shapes/ids.ts similarity index 100% rename from src/lib/shapes/ids.ts rename to apps/web/src/lib/shapes/ids.ts diff --git a/src/lib/shapes/tasks.ts b/apps/web/src/lib/shapes/tasks.ts similarity index 100% rename from src/lib/shapes/tasks.ts rename to apps/web/src/lib/shapes/tasks.ts diff --git a/src/lib/sources.ts b/apps/web/src/lib/sources.ts similarity index 100% rename from src/lib/sources.ts rename to apps/web/src/lib/sources.ts diff --git a/src/lib/syncBridgeApi.ts b/apps/web/src/lib/syncBridgeApi.ts similarity index 100% rename from src/lib/syncBridgeApi.ts rename to apps/web/src/lib/syncBridgeApi.ts diff --git a/src/lib/tasks.ts b/apps/web/src/lib/tasks.ts similarity index 100% rename from src/lib/tasks.ts rename to apps/web/src/lib/tasks.ts diff --git a/src/lib/time/briefDate.ts b/apps/web/src/lib/time/briefDate.ts similarity index 100% rename from src/lib/time/briefDate.ts rename to apps/web/src/lib/time/briefDate.ts diff --git a/src/lib/time/calendarHelpers.ts b/apps/web/src/lib/time/calendarHelpers.ts similarity index 100% rename from src/lib/time/calendarHelpers.ts rename to apps/web/src/lib/time/calendarHelpers.ts diff --git a/src/lib/time/timezones.ts b/apps/web/src/lib/time/timezones.ts similarity index 100% rename from src/lib/time/timezones.ts rename to apps/web/src/lib/time/timezones.ts diff --git a/src/lib/time/useBriefDateSelection.ts b/apps/web/src/lib/time/useBriefDateSelection.ts similarity index 100% rename from src/lib/time/useBriefDateSelection.ts rename to apps/web/src/lib/time/useBriefDateSelection.ts diff --git a/src/lib/timezones.ts b/apps/web/src/lib/timezones.ts similarity index 100% rename from src/lib/timezones.ts rename to apps/web/src/lib/timezones.ts diff --git a/src/lib/ui/documentThemes.ts b/apps/web/src/lib/ui/documentThemes.ts similarity index 100% rename from src/lib/ui/documentThemes.ts rename to apps/web/src/lib/ui/documentThemes.ts diff --git a/src/lib/ui/fileTypes.ts b/apps/web/src/lib/ui/fileTypes.ts similarity index 100% rename from src/lib/ui/fileTypes.ts rename to apps/web/src/lib/ui/fileTypes.ts diff --git a/src/lib/ui/metaPillMappers.ts b/apps/web/src/lib/ui/metaPillMappers.ts similarity index 100% rename from src/lib/ui/metaPillMappers.ts rename to apps/web/src/lib/ui/metaPillMappers.ts diff --git a/src/lib/ui/sources.ts b/apps/web/src/lib/ui/sources.ts similarity index 100% rename from src/lib/ui/sources.ts rename to apps/web/src/lib/ui/sources.ts diff --git a/src/lib/ui/stagger.ts b/apps/web/src/lib/ui/stagger.ts similarity index 100% rename from src/lib/ui/stagger.ts rename to apps/web/src/lib/ui/stagger.ts diff --git a/src/lib/useBriefDateSelection.ts b/apps/web/src/lib/useBriefDateSelection.ts similarity index 100% rename from src/lib/useBriefDateSelection.ts rename to apps/web/src/lib/useBriefDateSelection.ts diff --git a/src/lib/utils.ts b/apps/web/src/lib/utils.ts similarity index 100% rename from src/lib/utils.ts rename to apps/web/src/lib/utils.ts diff --git a/src/main.tsx b/apps/web/src/main.tsx similarity index 100% rename from src/main.tsx rename to apps/web/src/main.tsx diff --git a/src/shared/agent-ui/AgentScreen.tsx b/apps/web/src/shared/agent-ui/AgentScreen.tsx similarity index 100% rename from src/shared/agent-ui/AgentScreen.tsx rename to apps/web/src/shared/agent-ui/AgentScreen.tsx diff --git a/src/shared/agent-ui/agentAction.ts b/apps/web/src/shared/agent-ui/agentAction.ts similarity index 100% rename from src/shared/agent-ui/agentAction.ts rename to apps/web/src/shared/agent-ui/agentAction.ts diff --git a/src/shared/agent-ui/index.ts b/apps/web/src/shared/agent-ui/index.ts similarity index 100% rename from src/shared/agent-ui/index.ts rename to apps/web/src/shared/agent-ui/index.ts diff --git a/src/shared/agentOutputContract.test.ts b/apps/web/src/shared/agentOutputContract.test.ts similarity index 100% rename from src/shared/agentOutputContract.test.ts rename to apps/web/src/shared/agentOutputContract.test.ts diff --git a/src/shared/agentOutputContract.ts b/apps/web/src/shared/agentOutputContract.ts similarity index 100% rename from src/shared/agentOutputContract.ts rename to apps/web/src/shared/agentOutputContract.ts diff --git a/src/shared/artifacts.ts b/apps/web/src/shared/artifacts.ts similarity index 100% rename from src/shared/artifacts.ts rename to apps/web/src/shared/artifacts.ts diff --git a/src/shared/components/AnimatedComponents.tsx b/apps/web/src/shared/components/AnimatedComponents.tsx similarity index 100% rename from src/shared/components/AnimatedComponents.tsx rename to apps/web/src/shared/components/AnimatedComponents.tsx diff --git a/src/shared/components/ContextPills.tsx b/apps/web/src/shared/components/ContextPills.tsx similarity index 100% rename from src/shared/components/ContextPills.tsx rename to apps/web/src/shared/components/ContextPills.tsx diff --git a/src/shared/components/DataSourceBanner.tsx b/apps/web/src/shared/components/DataSourceBanner.tsx similarity index 100% rename from src/shared/components/DataSourceBanner.tsx rename to apps/web/src/shared/components/DataSourceBanner.tsx diff --git a/src/shared/components/DialogOverlay.tsx b/apps/web/src/shared/components/DialogOverlay.tsx similarity index 100% rename from src/shared/components/DialogOverlay.tsx rename to apps/web/src/shared/components/DialogOverlay.tsx diff --git a/src/shared/components/EmptyStates.tsx b/apps/web/src/shared/components/EmptyStates.tsx similarity index 100% rename from src/shared/components/EmptyStates.tsx rename to apps/web/src/shared/components/EmptyStates.tsx diff --git a/src/shared/components/ErrorBoundary.tsx b/apps/web/src/shared/components/ErrorBoundary.tsx similarity index 100% rename from src/shared/components/ErrorBoundary.tsx rename to apps/web/src/shared/components/ErrorBoundary.tsx diff --git a/src/shared/components/FileDropOverlay.tsx b/apps/web/src/shared/components/FileDropOverlay.tsx similarity index 100% rename from src/shared/components/FileDropOverlay.tsx rename to apps/web/src/shared/components/FileDropOverlay.tsx diff --git a/src/shared/components/FileTypeIcon.tsx b/apps/web/src/shared/components/FileTypeIcon.tsx similarity index 100% rename from src/shared/components/FileTypeIcon.tsx rename to apps/web/src/shared/components/FileTypeIcon.tsx diff --git a/src/shared/components/LazyCodeBlock.tsx b/apps/web/src/shared/components/LazyCodeBlock.tsx similarity index 100% rename from src/shared/components/LazyCodeBlock.tsx rename to apps/web/src/shared/components/LazyCodeBlock.tsx diff --git a/src/shared/components/LazyView.tsx b/apps/web/src/shared/components/LazyView.tsx similarity index 100% rename from src/shared/components/LazyView.tsx rename to apps/web/src/shared/components/LazyView.tsx diff --git a/src/shared/components/LiveRegion.tsx b/apps/web/src/shared/components/LiveRegion.tsx similarity index 100% rename from src/shared/components/LiveRegion.tsx rename to apps/web/src/shared/components/LiveRegion.tsx diff --git a/src/shared/components/MetaPills.tsx b/apps/web/src/shared/components/MetaPills.tsx similarity index 100% rename from src/shared/components/MetaPills.tsx rename to apps/web/src/shared/components/MetaPills.tsx diff --git a/src/shared/components/MiniEditorPopover.tsx b/apps/web/src/shared/components/MiniEditorPopover.tsx similarity index 100% rename from src/shared/components/MiniEditorPopover.tsx rename to apps/web/src/shared/components/MiniEditorPopover.tsx diff --git a/src/shared/components/PillAction.tsx b/apps/web/src/shared/components/PillAction.tsx similarity index 100% rename from src/shared/components/PillAction.tsx rename to apps/web/src/shared/components/PillAction.tsx diff --git a/src/shared/components/PresenceIndicator.tsx b/apps/web/src/shared/components/PresenceIndicator.tsx similarity index 100% rename from src/shared/components/PresenceIndicator.tsx rename to apps/web/src/shared/components/PresenceIndicator.tsx diff --git a/src/shared/components/SectionLabel.tsx b/apps/web/src/shared/components/SectionLabel.tsx similarity index 100% rename from src/shared/components/SectionLabel.tsx rename to apps/web/src/shared/components/SectionLabel.tsx diff --git a/src/shared/components/SkeletonCard.tsx b/apps/web/src/shared/components/SkeletonCard.tsx similarity index 100% rename from src/shared/components/SkeletonCard.tsx rename to apps/web/src/shared/components/SkeletonCard.tsx diff --git a/src/shared/components/SkipLinks.tsx b/apps/web/src/shared/components/SkipLinks.tsx similarity index 100% rename from src/shared/components/SkipLinks.tsx rename to apps/web/src/shared/components/SkipLinks.tsx diff --git a/src/shared/components/SortableList.tsx b/apps/web/src/shared/components/SortableList.tsx similarity index 100% rename from src/shared/components/SortableList.tsx rename to apps/web/src/shared/components/SortableList.tsx diff --git a/src/shared/components/SurfaceHero.tsx b/apps/web/src/shared/components/SurfaceHero.tsx similarity index 100% rename from src/shared/components/SurfaceHero.tsx rename to apps/web/src/shared/components/SurfaceHero.tsx diff --git a/src/shared/components/ViewBreadcrumbs.tsx b/apps/web/src/shared/components/ViewBreadcrumbs.tsx similarity index 100% rename from src/shared/components/ViewBreadcrumbs.tsx rename to apps/web/src/shared/components/ViewBreadcrumbs.tsx diff --git a/src/shared/components/ZoomControls.tsx b/apps/web/src/shared/components/ZoomControls.tsx similarity index 100% rename from src/shared/components/ZoomControls.tsx rename to apps/web/src/shared/components/ZoomControls.tsx diff --git a/src/shared/editors/PopoverMiniDocEditor.tsx b/apps/web/src/shared/editors/PopoverMiniDocEditor.tsx similarity index 100% rename from src/shared/editors/PopoverMiniDocEditor.tsx rename to apps/web/src/shared/editors/PopoverMiniDocEditor.tsx diff --git a/src/shared/editors/index.ts b/apps/web/src/shared/editors/index.ts similarity index 100% rename from src/shared/editors/index.ts rename to apps/web/src/shared/editors/index.ts diff --git a/src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json b/apps/web/src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json similarity index 100% rename from src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json rename to apps/web/src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json diff --git a/src/shared/hooks/FeedbackListener.tsx b/apps/web/src/shared/hooks/FeedbackListener.tsx similarity index 100% rename from src/shared/hooks/FeedbackListener.tsx rename to apps/web/src/shared/hooks/FeedbackListener.tsx diff --git a/src/shared/hooks/useFeedback.ts b/apps/web/src/shared/hooks/useFeedback.ts similarity index 100% rename from src/shared/hooks/useFeedback.ts rename to apps/web/src/shared/hooks/useFeedback.ts diff --git a/src/shared/llm/approvedModels.ts b/apps/web/src/shared/llm/approvedModels.ts similarity index 100% rename from src/shared/llm/approvedModels.ts rename to apps/web/src/shared/llm/approvedModels.ts diff --git a/src/shared/llm/pipelineModelRoutes.test.ts b/apps/web/src/shared/llm/pipelineModelRoutes.test.ts similarity index 100% rename from src/shared/llm/pipelineModelRoutes.test.ts rename to apps/web/src/shared/llm/pipelineModelRoutes.test.ts diff --git a/src/shared/llm/pipelineModelRoutes.ts b/apps/web/src/shared/llm/pipelineModelRoutes.ts similarity index 100% rename from src/shared/llm/pipelineModelRoutes.ts rename to apps/web/src/shared/llm/pipelineModelRoutes.ts diff --git a/src/shared/nodeBenchWorkflowCandidate.test.ts b/apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts similarity index 100% rename from src/shared/nodeBenchWorkflowCandidate.test.ts rename to apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts diff --git a/src/shared/nodeBenchWorkflowCandidate.ts b/apps/web/src/shared/nodeBenchWorkflowCandidate.ts similarity index 100% rename from src/shared/nodeBenchWorkflowCandidate.ts rename to apps/web/src/shared/nodeBenchWorkflowCandidate.ts diff --git a/src/shared/riskAttackEvaluator.test.ts b/apps/web/src/shared/riskAttackEvaluator.test.ts similarity index 100% rename from src/shared/riskAttackEvaluator.test.ts rename to apps/web/src/shared/riskAttackEvaluator.test.ts diff --git a/src/shared/riskAttackEvaluator.ts b/apps/web/src/shared/riskAttackEvaluator.ts similarity index 100% rename from src/shared/riskAttackEvaluator.ts rename to apps/web/src/shared/riskAttackEvaluator.ts diff --git a/src/shared/rocketRideEvidenceBundle.test.ts b/apps/web/src/shared/rocketRideEvidenceBundle.test.ts similarity index 100% rename from src/shared/rocketRideEvidenceBundle.test.ts rename to apps/web/src/shared/rocketRideEvidenceBundle.test.ts diff --git a/src/shared/rocketRideEvidenceBundle.ts b/apps/web/src/shared/rocketRideEvidenceBundle.ts similarity index 100% rename from src/shared/rocketRideEvidenceBundle.ts rename to apps/web/src/shared/rocketRideEvidenceBundle.ts diff --git a/src/shared/ui/AnimatedNumber.tsx b/apps/web/src/shared/ui/AnimatedNumber.tsx similarity index 100% rename from src/shared/ui/AnimatedNumber.tsx rename to apps/web/src/shared/ui/AnimatedNumber.tsx diff --git a/src/shared/ui/AnimatedProgressBar.tsx b/apps/web/src/shared/ui/AnimatedProgressBar.tsx similarity index 100% rename from src/shared/ui/AnimatedProgressBar.tsx rename to apps/web/src/shared/ui/AnimatedProgressBar.tsx diff --git a/src/shared/ui/Badge.tsx b/apps/web/src/shared/ui/Badge.tsx similarity index 100% rename from src/shared/ui/Badge.tsx rename to apps/web/src/shared/ui/Badge.tsx diff --git a/src/shared/ui/Button.tsx b/apps/web/src/shared/ui/Button.tsx similarity index 100% rename from src/shared/ui/Button.tsx rename to apps/web/src/shared/ui/Button.tsx diff --git a/src/shared/ui/Card.tsx b/apps/web/src/shared/ui/Card.tsx similarity index 100% rename from src/shared/ui/Card.tsx rename to apps/web/src/shared/ui/Card.tsx diff --git a/src/shared/ui/EmptyState.tsx b/apps/web/src/shared/ui/EmptyState.tsx similarity index 100% rename from src/shared/ui/EmptyState.tsx rename to apps/web/src/shared/ui/EmptyState.tsx diff --git a/src/shared/ui/PageHeroHeader.tsx b/apps/web/src/shared/ui/PageHeroHeader.tsx similarity index 100% rename from src/shared/ui/PageHeroHeader.tsx rename to apps/web/src/shared/ui/PageHeroHeader.tsx diff --git a/src/shared/ui/PresetChip.tsx b/apps/web/src/shared/ui/PresetChip.tsx similarity index 100% rename from src/shared/ui/PresetChip.tsx rename to apps/web/src/shared/ui/PresetChip.tsx diff --git a/src/shared/ui/ProgressBar.tsx b/apps/web/src/shared/ui/ProgressBar.tsx similarity index 100% rename from src/shared/ui/ProgressBar.tsx rename to apps/web/src/shared/ui/ProgressBar.tsx diff --git a/src/shared/ui/SidebarButton.tsx b/apps/web/src/shared/ui/SidebarButton.tsx similarity index 100% rename from src/shared/ui/SidebarButton.tsx rename to apps/web/src/shared/ui/SidebarButton.tsx diff --git a/src/shared/ui/SidebarMiniCalendar.tsx b/apps/web/src/shared/ui/SidebarMiniCalendar.tsx similarity index 100% rename from src/shared/ui/SidebarMiniCalendar.tsx rename to apps/web/src/shared/ui/SidebarMiniCalendar.tsx diff --git a/src/shared/ui/SidebarUpcoming.tsx b/apps/web/src/shared/ui/SidebarUpcoming.tsx similarity index 100% rename from src/shared/ui/SidebarUpcoming.tsx rename to apps/web/src/shared/ui/SidebarUpcoming.tsx diff --git a/src/shared/ui/SignatureOrb.tsx b/apps/web/src/shared/ui/SignatureOrb.tsx similarity index 100% rename from src/shared/ui/SignatureOrb.tsx rename to apps/web/src/shared/ui/SignatureOrb.tsx diff --git a/src/shared/ui/SourceChip.test.tsx b/apps/web/src/shared/ui/SourceChip.test.tsx similarity index 100% rename from src/shared/ui/SourceChip.test.tsx rename to apps/web/src/shared/ui/SourceChip.test.tsx diff --git a/src/shared/ui/SourceChip.tsx b/apps/web/src/shared/ui/SourceChip.tsx similarity index 100% rename from src/shared/ui/SourceChip.tsx rename to apps/web/src/shared/ui/SourceChip.tsx diff --git a/src/shared/ui/Sparkline.tsx b/apps/web/src/shared/ui/Sparkline.tsx similarity index 100% rename from src/shared/ui/Sparkline.tsx rename to apps/web/src/shared/ui/Sparkline.tsx diff --git a/src/shared/ui/SurfacePrimitives.tsx b/apps/web/src/shared/ui/SurfacePrimitives.tsx similarity index 100% rename from src/shared/ui/SurfacePrimitives.tsx rename to apps/web/src/shared/ui/SurfacePrimitives.tsx diff --git a/src/shared/ui/Toast.test.tsx b/apps/web/src/shared/ui/Toast.test.tsx similarity index 100% rename from src/shared/ui/Toast.test.tsx rename to apps/web/src/shared/ui/Toast.test.tsx diff --git a/src/shared/ui/Toast.tsx b/apps/web/src/shared/ui/Toast.tsx similarity index 100% rename from src/shared/ui/Toast.tsx rename to apps/web/src/shared/ui/Toast.tsx diff --git a/src/shared/ui/Tooltip.tsx b/apps/web/src/shared/ui/Tooltip.tsx similarity index 100% rename from src/shared/ui/Tooltip.tsx rename to apps/web/src/shared/ui/Tooltip.tsx diff --git a/src/shared/ui/TopDividerBar.tsx b/apps/web/src/shared/ui/TopDividerBar.tsx similarity index 100% rename from src/shared/ui/TopDividerBar.tsx rename to apps/web/src/shared/ui/TopDividerBar.tsx diff --git a/src/shared/ui/TrajectorySparkline.tsx b/apps/web/src/shared/ui/TrajectorySparkline.tsx similarity index 100% rename from src/shared/ui/TrajectorySparkline.tsx rename to apps/web/src/shared/ui/TrajectorySparkline.tsx diff --git a/src/shared/ui/UnifiedHubPills.tsx b/apps/web/src/shared/ui/UnifiedHubPills.tsx similarity index 100% rename from src/shared/ui/UnifiedHubPills.tsx rename to apps/web/src/shared/ui/UnifiedHubPills.tsx diff --git a/src/shared/ui/index.ts b/apps/web/src/shared/ui/index.ts similarity index 100% rename from src/shared/ui/index.ts rename to apps/web/src/shared/ui/index.ts diff --git a/src/shared/ui/surface-tokens.css b/apps/web/src/shared/ui/surface-tokens.css similarity index 100% rename from src/shared/ui/surface-tokens.css rename to apps/web/src/shared/ui/surface-tokens.css diff --git a/src/shared/workflowExecutionPort.ts b/apps/web/src/shared/workflowExecutionPort.ts similarity index 100% rename from src/shared/workflowExecutionPort.ts rename to apps/web/src/shared/workflowExecutionPort.ts diff --git a/src/styles/agentDashboard.css b/apps/web/src/styles/agentDashboard.css similarity index 100% rename from src/styles/agentDashboard.css rename to apps/web/src/styles/agentDashboard.css diff --git a/src/test/AgentResponseFlywheelPanel.test.tsx b/apps/web/src/test/AgentResponseFlywheelPanel.test.tsx similarity index 100% rename from src/test/AgentResponseFlywheelPanel.test.tsx rename to apps/web/src/test/AgentResponseFlywheelPanel.test.tsx diff --git a/src/test/CalendarAgentsNav.test.tsx b/apps/web/src/test/CalendarAgentsNav.test.tsx similarity index 100% rename from src/test/CalendarAgentsNav.test.tsx rename to apps/web/src/test/CalendarAgentsNav.test.tsx diff --git a/src/test/CalendarHomeHub.pills.test.tsx b/apps/web/src/test/CalendarHomeHub.pills.test.tsx similarity index 100% rename from src/test/CalendarHomeHub.pills.test.tsx rename to apps/web/src/test/CalendarHomeHub.pills.test.tsx diff --git a/src/test/DocumentsHomeHub.pills.test.tsx b/apps/web/src/test/DocumentsHomeHub.pills.test.tsx similarity index 100% rename from src/test/DocumentsHomeHub.pills.test.tsx rename to apps/web/src/test/DocumentsHomeHub.pills.test.tsx diff --git a/src/test/LinkedInPostCard.test.tsx b/apps/web/src/test/LinkedInPostCard.test.tsx similarity index 100% rename from src/test/LinkedInPostCard.test.tsx rename to apps/web/src/test/LinkedInPostCard.test.tsx diff --git a/src/test/Orchestrator.live.e2e.test.ts b/apps/web/src/test/Orchestrator.live.e2e.test.ts similarity index 100% rename from src/test/Orchestrator.live.e2e.test.ts rename to apps/web/src/test/Orchestrator.live.e2e.test.ts diff --git a/src/test/Orchestrator.live.eval.e2e.test.ts b/apps/web/src/test/Orchestrator.live.eval.e2e.test.ts similarity index 100% rename from src/test/Orchestrator.live.eval.e2e.test.ts rename to apps/web/src/test/Orchestrator.live.eval.e2e.test.ts diff --git a/src/test/SuccessLoopsPanel.test.tsx b/apps/web/src/test/SuccessLoopsPanel.test.tsx similarity index 100% rename from src/test/SuccessLoopsPanel.test.tsx rename to apps/web/src/test/SuccessLoopsPanel.test.tsx diff --git a/src/test/TrajectorySummaryBand.test.tsx b/apps/web/src/test/TrajectorySummaryBand.test.tsx similarity index 100% rename from src/test/TrajectorySummaryBand.test.tsx rename to apps/web/src/test/TrajectorySummaryBand.test.tsx diff --git a/src/test/UnifiedHubPills.test.tsx b/apps/web/src/test/UnifiedHubPills.test.tsx similarity index 100% rename from src/test/UnifiedHubPills.test.tsx rename to apps/web/src/test/UnifiedHubPills.test.tsx diff --git a/src/test/agentResponseFlywheel.test.ts b/apps/web/src/test/agentResponseFlywheel.test.ts similarity index 100% rename from src/test/agentResponseFlywheel.test.ts rename to apps/web/src/test/agentResponseFlywheel.test.ts diff --git a/src/test/dcfSpreadsheetMapping.test.ts b/apps/web/src/test/dcfSpreadsheetMapping.test.ts similarity index 100% rename from src/test/dcfSpreadsheetMapping.test.ts rename to apps/web/src/test/dcfSpreadsheetMapping.test.ts diff --git a/src/test/displayText.test.ts b/apps/web/src/test/displayText.test.ts similarity index 100% rename from src/test/displayText.test.ts rename to apps/web/src/test/displayText.test.ts diff --git a/src/test/mocks/blocknote/core/fonts/inter.css b/apps/web/src/test/mocks/blocknote/core/fonts/inter.css similarity index 100% rename from src/test/mocks/blocknote/core/fonts/inter.css rename to apps/web/src/test/mocks/blocknote/core/fonts/inter.css diff --git a/src/test/mocks/blocknote/core/index.ts b/apps/web/src/test/mocks/blocknote/core/index.ts similarity index 100% rename from src/test/mocks/blocknote/core/index.ts rename to apps/web/src/test/mocks/blocknote/core/index.ts diff --git a/src/test/mocks/blocknote/mantine/index.tsx b/apps/web/src/test/mocks/blocknote/mantine/index.tsx similarity index 100% rename from src/test/mocks/blocknote/mantine/index.tsx rename to apps/web/src/test/mocks/blocknote/mantine/index.tsx diff --git a/src/test/mocks/blocknote/mantine/style.css b/apps/web/src/test/mocks/blocknote/mantine/style.css similarity index 100% rename from src/test/mocks/blocknote/mantine/style.css rename to apps/web/src/test/mocks/blocknote/mantine/style.css diff --git a/src/test/scratchnodeLaunchGoalLoopSelection.test.ts b/apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts similarity index 100% rename from src/test/scratchnodeLaunchGoalLoopSelection.test.ts rename to apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts diff --git a/src/test/setup.ts b/apps/web/src/test/setup.ts similarity index 100% rename from src/test/setup.ts rename to apps/web/src/test/setup.ts diff --git a/src/test/successLoopsLib.test.ts b/apps/web/src/test/successLoopsLib.test.ts similarity index 100% rename from src/test/successLoopsLib.test.ts rename to apps/web/src/test/successLoopsLib.test.ts diff --git a/src/test/taskSessionProofPack.test.ts b/apps/web/src/test/taskSessionProofPack.test.ts similarity index 100% rename from src/test/taskSessionProofPack.test.ts rename to apps/web/src/test/taskSessionProofPack.test.ts diff --git a/src/test/testUtils.tsx b/apps/web/src/test/testUtils.tsx similarity index 100% rename from src/test/testUtils.tsx rename to apps/web/src/test/testUtils.tsx diff --git a/src/test/trajectoryScore.test.ts b/apps/web/src/test/trajectoryScore.test.ts similarity index 100% rename from src/test/trajectoryScore.test.ts rename to apps/web/src/test/trajectoryScore.test.ts diff --git a/src/test/useWakeVoiceFeedback.test.tsx b/apps/web/src/test/useWakeVoiceFeedback.test.tsx similarity index 100% rename from src/test/useWakeVoiceFeedback.test.tsx rename to apps/web/src/test/useWakeVoiceFeedback.test.tsx diff --git a/src/test/useWakeVoiceSession.test.tsx b/apps/web/src/test/useWakeVoiceSession.test.tsx similarity index 100% rename from src/test/useWakeVoiceSession.test.tsx rename to apps/web/src/test/useWakeVoiceSession.test.tsx diff --git a/src/test/useWakeWordActivation.test.ts b/apps/web/src/test/useWakeWordActivation.test.ts similarity index 100% rename from src/test/useWakeWordActivation.test.ts rename to apps/web/src/test/useWakeWordActivation.test.ts diff --git a/src/test/viewCapabilityRegistry.test.ts b/apps/web/src/test/viewCapabilityRegistry.test.ts similarity index 100% rename from src/test/viewCapabilityRegistry.test.ts rename to apps/web/src/test/viewCapabilityRegistry.test.ts diff --git a/src/types/theme.ts b/apps/web/src/types/theme.ts similarity index 100% rename from src/types/theme.ts rename to apps/web/src/types/theme.ts diff --git a/src/types/unified.ts b/apps/web/src/types/unified.ts similarity index 100% rename from src/types/unified.ts rename to apps/web/src/types/unified.ts diff --git a/src/types/wx-react-gantt.d.ts b/apps/web/src/types/wx-react-gantt.d.ts similarity index 100% rename from src/types/wx-react-gantt.d.ts rename to apps/web/src/types/wx-react-gantt.d.ts diff --git a/src/utils/a11y.ts b/apps/web/src/utils/a11y.ts similarity index 100% rename from src/utils/a11y.ts rename to apps/web/src/utils/a11y.ts diff --git a/src/utils/animations.ts b/apps/web/src/utils/animations.ts similarity index 100% rename from src/utils/animations.ts rename to apps/web/src/utils/animations.ts diff --git a/src/vite-env.d.ts b/apps/web/src/vite-env.d.ts similarity index 100% rename from src/vite-env.d.ts rename to apps/web/src/vite-env.d.ts diff --git a/convex/__tests__/agentPlanning.listPlans.test.ts b/backend/convex/__tests__/agentPlanning.listPlans.test.ts similarity index 100% rename from convex/__tests__/agentPlanning.listPlans.test.ts rename to backend/convex/__tests__/agentPlanning.listPlans.test.ts diff --git a/convex/__tests__/agentRuntimeTierFallback.test.ts b/backend/convex/__tests__/agentRuntimeTierFallback.test.ts similarity index 100% rename from convex/__tests__/agentRuntimeTierFallback.test.ts rename to backend/convex/__tests__/agentRuntimeTierFallback.test.ts diff --git a/convex/__tests__/scratchnode.doorPolicy.test.ts b/backend/convex/__tests__/scratchnode.doorPolicy.test.ts similarity index 100% rename from convex/__tests__/scratchnode.doorPolicy.test.ts rename to backend/convex/__tests__/scratchnode.doorPolicy.test.ts diff --git a/convex/__tests__/scratchnode.events.test.ts b/backend/convex/__tests__/scratchnode.events.test.ts similarity index 100% rename from convex/__tests__/scratchnode.events.test.ts rename to backend/convex/__tests__/scratchnode.events.test.ts diff --git a/convex/__tests__/scratchnode.handoffToken.test.ts b/backend/convex/__tests__/scratchnode.handoffToken.test.ts similarity index 100% rename from convex/__tests__/scratchnode.handoffToken.test.ts rename to backend/convex/__tests__/scratchnode.handoffToken.test.ts diff --git a/convex/__tests__/scratchnode.publicWiki.test.ts b/backend/convex/__tests__/scratchnode.publicWiki.test.ts similarity index 100% rename from convex/__tests__/scratchnode.publicWiki.test.ts rename to backend/convex/__tests__/scratchnode.publicWiki.test.ts diff --git a/convex/__tests__/scratchnode.publicWikiRead.test.ts b/backend/convex/__tests__/scratchnode.publicWikiRead.test.ts similarity index 100% rename from convex/__tests__/scratchnode.publicWikiRead.test.ts rename to backend/convex/__tests__/scratchnode.publicWikiRead.test.ts diff --git a/convex/__tests__/scratchnode.wall.test.ts b/backend/convex/__tests__/scratchnode.wall.test.ts similarity index 100% rename from convex/__tests__/scratchnode.wall.test.ts rename to backend/convex/__tests__/scratchnode.wall.test.ts diff --git a/convex/__tests__/scratchnodeLiveCues.test.ts b/backend/convex/__tests__/scratchnodeLiveCues.test.ts similarity index 100% rename from convex/__tests__/scratchnodeLiveCues.test.ts rename to backend/convex/__tests__/scratchnodeLiveCues.test.ts diff --git a/convex/_generated/api.d.ts b/backend/convex/_generated/api.d.ts similarity index 100% rename from convex/_generated/api.d.ts rename to backend/convex/_generated/api.d.ts diff --git a/convex/_generated/api.js b/backend/convex/_generated/api.js similarity index 100% rename from convex/_generated/api.js rename to backend/convex/_generated/api.js diff --git a/convex/_generated/dataModel.d.ts b/backend/convex/_generated/dataModel.d.ts similarity index 100% rename from convex/_generated/dataModel.d.ts rename to backend/convex/_generated/dataModel.d.ts diff --git a/convex/_generated/server.d.ts b/backend/convex/_generated/server.d.ts similarity index 100% rename from convex/_generated/server.d.ts rename to backend/convex/_generated/server.d.ts diff --git a/convex/_generated/server.js b/backend/convex/_generated/server.js similarity index 100% rename from convex/_generated/server.js rename to backend/convex/_generated/server.js diff --git a/convex/_type_shims/convex-server.d.ts b/backend/convex/_type_shims/convex-server.d.ts similarity index 100% rename from convex/_type_shims/convex-server.d.ts rename to backend/convex/_type_shims/convex-server.d.ts diff --git a/convex/_type_shims/convex-values.d.ts b/backend/convex/_type_shims/convex-values.d.ts similarity index 100% rename from convex/_type_shims/convex-values.d.ts rename to backend/convex/_type_shims/convex-values.d.ts diff --git a/convex/actions/__tests__/spreadsheetActions.test.ts b/backend/convex/actions/__tests__/spreadsheetActions.test.ts similarity index 100% rename from convex/actions/__tests__/spreadsheetActions.test.ts rename to backend/convex/actions/__tests__/spreadsheetActions.test.ts diff --git a/convex/actions/coordinatorWorkflowActions.ts b/backend/convex/actions/coordinatorWorkflowActions.ts similarity index 100% rename from convex/actions/coordinatorWorkflowActions.ts rename to backend/convex/actions/coordinatorWorkflowActions.ts diff --git a/convex/actions/externalOrchestrator.ts b/backend/convex/actions/externalOrchestrator.ts similarity index 100% rename from convex/actions/externalOrchestrator.ts rename to backend/convex/actions/externalOrchestrator.ts diff --git a/convex/actions/openbbActions.ts b/backend/convex/actions/openbbActions.ts similarity index 100% rename from convex/actions/openbbActions.ts rename to backend/convex/actions/openbbActions.ts diff --git a/convex/actions/parallelDelegation.ts b/backend/convex/actions/parallelDelegation.ts similarity index 100% rename from convex/actions/parallelDelegation.ts rename to backend/convex/actions/parallelDelegation.ts diff --git a/convex/actions/researchMcpActions.ts b/backend/convex/actions/researchMcpActions.ts similarity index 100% rename from convex/actions/researchMcpActions.ts rename to backend/convex/actions/researchMcpActions.ts diff --git a/convex/actions/spreadsheetActions.ts b/backend/convex/actions/spreadsheetActions.ts similarity index 100% rename from convex/actions/spreadsheetActions.ts rename to backend/convex/actions/spreadsheetActions.ts diff --git a/convex/agentOS.ts b/backend/convex/agentOS.ts similarity index 100% rename from convex/agentOS.ts rename to backend/convex/agentOS.ts diff --git a/convex/agentsPrefs.ts b/backend/convex/agentsPrefs.ts similarity index 100% rename from convex/agentsPrefs.ts rename to backend/convex/agentsPrefs.ts diff --git a/convex/auth.config.ts b/backend/convex/auth.config.ts similarity index 100% rename from convex/auth.config.ts rename to backend/convex/auth.config.ts diff --git a/convex/auth.ts b/backend/convex/auth.ts similarity index 100% rename from convex/auth.ts rename to backend/convex/auth.ts diff --git a/convex/config/autonomousConfig.ts b/backend/convex/config/autonomousConfig.ts similarity index 100% rename from convex/config/autonomousConfig.ts rename to backend/convex/config/autonomousConfig.ts diff --git a/convex/convex.config.ts b/backend/convex/convex.config.ts similarity index 100% rename from convex/convex.config.ts rename to backend/convex/convex.config.ts diff --git a/convex/crons.ts b/backend/convex/crons.ts similarity index 100% rename from convex/crons.ts rename to backend/convex/crons.ts diff --git a/convex/crons/dailyDossierCron.ts b/backend/convex/crons/dailyDossierCron.ts similarity index 100% rename from convex/crons/dailyDossierCron.ts rename to backend/convex/crons/dailyDossierCron.ts diff --git a/convex/crons/emailIntelligenceCron.ts b/backend/convex/crons/emailIntelligenceCron.ts similarity index 100% rename from convex/crons/emailIntelligenceCron.ts rename to backend/convex/crons/emailIntelligenceCron.ts diff --git a/convex/crons/proactiveCalendarIngestion.ts b/backend/convex/crons/proactiveCalendarIngestion.ts similarity index 100% rename from convex/crons/proactiveCalendarIngestion.ts rename to backend/convex/crons/proactiveCalendarIngestion.ts diff --git a/convex/crons/proactiveDelivery.ts b/backend/convex/crons/proactiveDelivery.ts similarity index 100% rename from convex/crons/proactiveDelivery.ts rename to backend/convex/crons/proactiveDelivery.ts diff --git a/convex/crons/proactiveDetectorRuns.ts b/backend/convex/crons/proactiveDetectorRuns.ts similarity index 100% rename from convex/crons/proactiveDetectorRuns.ts rename to backend/convex/crons/proactiveDetectorRuns.ts diff --git a/convex/crons/proactiveEmailIngestion.ts b/backend/convex/crons/proactiveEmailIngestion.ts similarity index 100% rename from convex/crons/proactiveEmailIngestion.ts rename to backend/convex/crons/proactiveEmailIngestion.ts diff --git a/convex/crons/sloCalculation.ts b/backend/convex/crons/sloCalculation.ts similarity index 100% rename from convex/crons/sloCalculation.ts rename to backend/convex/crons/sloCalculation.ts diff --git a/convex/dataAudit.ts b/backend/convex/dataAudit.ts similarity index 100% rename from convex/dataAudit.ts rename to backend/convex/dataAudit.ts diff --git a/convex/debugEnv.ts b/backend/convex/debugEnv.ts similarity index 100% rename from convex/debugEnv.ts rename to backend/convex/debugEnv.ts diff --git a/convex/domains/agents/MODEL_CONSOLIDATION_PLAN.md b/backend/convex/domains/agents/MODEL_CONSOLIDATION_PLAN.md similarity index 100% rename from convex/domains/agents/MODEL_CONSOLIDATION_PLAN.md rename to backend/convex/domains/agents/MODEL_CONSOLIDATION_PLAN.md diff --git a/convex/domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md b/backend/convex/domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md similarity index 100% rename from convex/domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md rename to backend/convex/domains/agents/MORNING_DOSSIER_GAP_ANALYSIS.md diff --git a/convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter.ts b/backend/convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter.ts rename to backend/convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter.ts diff --git a/convex/domains/agents/adapters/anthropic/promptCacheHelpers.test.ts b/backend/convex/domains/agents/adapters/anthropic/promptCacheHelpers.test.ts similarity index 100% rename from convex/domains/agents/adapters/anthropic/promptCacheHelpers.test.ts rename to backend/convex/domains/agents/adapters/anthropic/promptCacheHelpers.test.ts diff --git a/convex/domains/agents/adapters/anthropic/promptCacheHelpers.ts b/backend/convex/domains/agents/adapters/anthropic/promptCacheHelpers.ts similarity index 100% rename from convex/domains/agents/adapters/anthropic/promptCacheHelpers.ts rename to backend/convex/domains/agents/adapters/anthropic/promptCacheHelpers.ts diff --git a/convex/domains/agents/adapters/convex/convexAgentAdapter.ts b/backend/convex/domains/agents/adapters/convex/convexAgentAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/convex/convexAgentAdapter.ts rename to backend/convex/domains/agents/adapters/convex/convexAgentAdapter.ts diff --git a/convex/domains/agents/adapters/google/googleInteractionsAdapter.test.ts b/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.test.ts similarity index 100% rename from convex/domains/agents/adapters/google/googleInteractionsAdapter.test.ts rename to backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.test.ts diff --git a/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts b/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/google/googleInteractionsAdapter.ts rename to backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts diff --git a/convex/domains/agents/adapters/handoffBridge.ts b/backend/convex/domains/agents/adapters/handoffBridge.ts similarity index 100% rename from convex/domains/agents/adapters/handoffBridge.ts rename to backend/convex/domains/agents/adapters/handoffBridge.ts diff --git a/convex/domains/agents/adapters/index.ts b/backend/convex/domains/agents/adapters/index.ts similarity index 100% rename from convex/domains/agents/adapters/index.ts rename to backend/convex/domains/agents/adapters/index.ts diff --git a/convex/domains/agents/adapters/langgraph/langgraphAdapter.test.ts b/backend/convex/domains/agents/adapters/langgraph/langgraphAdapter.test.ts similarity index 100% rename from convex/domains/agents/adapters/langgraph/langgraphAdapter.test.ts rename to backend/convex/domains/agents/adapters/langgraph/langgraphAdapter.test.ts diff --git a/convex/domains/agents/adapters/langgraph/langgraphAdapter.ts b/backend/convex/domains/agents/adapters/langgraph/langgraphAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/langgraph/langgraphAdapter.ts rename to backend/convex/domains/agents/adapters/langgraph/langgraphAdapter.ts diff --git a/convex/domains/agents/adapters/multiSdkDelegation.ts b/backend/convex/domains/agents/adapters/multiSdkDelegation.ts similarity index 100% rename from convex/domains/agents/adapters/multiSdkDelegation.ts rename to backend/convex/domains/agents/adapters/multiSdkDelegation.ts diff --git a/convex/domains/agents/adapters/openai/openaiAgentsAdapter.ts b/backend/convex/domains/agents/adapters/openai/openaiAgentsAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/openai/openaiAgentsAdapter.ts rename to backend/convex/domains/agents/adapters/openai/openaiAgentsAdapter.ts diff --git a/convex/domains/agents/adapters/registerDefaultAdapters.ts b/backend/convex/domains/agents/adapters/registerDefaultAdapters.ts similarity index 100% rename from convex/domains/agents/adapters/registerDefaultAdapters.ts rename to backend/convex/domains/agents/adapters/registerDefaultAdapters.ts diff --git a/convex/domains/agents/adapters/registry.ts b/backend/convex/domains/agents/adapters/registry.ts similarity index 100% rename from convex/domains/agents/adapters/registry.ts rename to backend/convex/domains/agents/adapters/registry.ts diff --git a/convex/domains/agents/adapters/routing/personaRouter.ts b/backend/convex/domains/agents/adapters/routing/personaRouter.ts similarity index 100% rename from convex/domains/agents/adapters/routing/personaRouter.ts rename to backend/convex/domains/agents/adapters/routing/personaRouter.ts diff --git a/convex/domains/agents/adapters/types.ts b/backend/convex/domains/agents/adapters/types.ts similarity index 100% rename from convex/domains/agents/adapters/types.ts rename to backend/convex/domains/agents/adapters/types.ts diff --git a/convex/domains/agents/adapters/vercel/vercelAiSdkAdapter.ts b/backend/convex/domains/agents/adapters/vercel/vercelAiSdkAdapter.ts similarity index 100% rename from convex/domains/agents/adapters/vercel/vercelAiSdkAdapter.ts rename to backend/convex/domains/agents/adapters/vercel/vercelAiSdkAdapter.ts diff --git a/convex/domains/agents/agentActions.ts b/backend/convex/domains/agents/agentActions.ts similarity index 100% rename from convex/domains/agents/agentActions.ts rename to backend/convex/domains/agents/agentActions.ts diff --git a/convex/domains/agents/agentChat.ts b/backend/convex/domains/agents/agentChat.ts similarity index 100% rename from convex/domains/agents/agentChat.ts rename to backend/convex/domains/agents/agentChat.ts diff --git a/convex/domains/agents/agentChatActions.ts b/backend/convex/domains/agents/agentChatActions.ts similarity index 100% rename from convex/domains/agents/agentChatActions.ts rename to backend/convex/domains/agents/agentChatActions.ts diff --git a/convex/domains/agents/agentDelegations.ts b/backend/convex/domains/agents/agentDelegations.ts similarity index 100% rename from convex/domains/agents/agentDelegations.ts rename to backend/convex/domains/agents/agentDelegations.ts diff --git a/convex/domains/agents/agentFeedRanking.ts b/backend/convex/domains/agents/agentFeedRanking.ts similarity index 100% rename from convex/domains/agents/agentFeedRanking.ts rename to backend/convex/domains/agents/agentFeedRanking.ts diff --git a/convex/domains/agents/agentFeedTraversal.ts b/backend/convex/domains/agents/agentFeedTraversal.ts similarity index 100% rename from convex/domains/agents/agentFeedTraversal.ts rename to backend/convex/domains/agents/agentFeedTraversal.ts diff --git a/convex/domains/agents/agentHubQueries.ts b/backend/convex/domains/agents/agentHubQueries.ts similarity index 100% rename from convex/domains/agents/agentHubQueries.ts rename to backend/convex/domains/agents/agentHubQueries.ts diff --git a/convex/domains/agents/agentInitializer.ts b/backend/convex/domains/agents/agentInitializer.ts similarity index 100% rename from convex/domains/agents/agentInitializer.ts rename to backend/convex/domains/agents/agentInitializer.ts diff --git a/convex/domains/agents/agentLoop.ts b/backend/convex/domains/agents/agentLoop.ts similarity index 100% rename from convex/domains/agents/agentLoop.ts rename to backend/convex/domains/agents/agentLoop.ts diff --git a/convex/domains/agents/agentLoopQueries.ts b/backend/convex/domains/agents/agentLoopQueries.ts similarity index 100% rename from convex/domains/agents/agentLoopQueries.ts rename to backend/convex/domains/agents/agentLoopQueries.ts diff --git a/convex/domains/agents/agentMarketplace.ts b/backend/convex/domains/agents/agentMarketplace.ts similarity index 100% rename from convex/domains/agents/agentMarketplace.ts rename to backend/convex/domains/agents/agentMarketplace.ts diff --git a/convex/domains/agents/agentMemory.ts b/backend/convex/domains/agents/agentMemory.ts similarity index 100% rename from convex/domains/agents/agentMemory.ts rename to backend/convex/domains/agents/agentMemory.ts diff --git a/convex/domains/agents/agentMemorySummary.ts b/backend/convex/domains/agents/agentMemorySummary.ts similarity index 100% rename from convex/domains/agents/agentMemorySummary.ts rename to backend/convex/domains/agents/agentMemorySummary.ts diff --git a/convex/domains/agents/agentNavigation.ts b/backend/convex/domains/agents/agentNavigation.ts similarity index 100% rename from convex/domains/agents/agentNavigation.ts rename to backend/convex/domains/agents/agentNavigation.ts diff --git a/convex/domains/agents/agentPlanSummary.ts b/backend/convex/domains/agents/agentPlanSummary.ts similarity index 100% rename from convex/domains/agents/agentPlanSummary.ts rename to backend/convex/domains/agents/agentPlanSummary.ts diff --git a/convex/domains/agents/agentPlanning.ts b/backend/convex/domains/agents/agentPlanning.ts similarity index 100% rename from convex/domains/agents/agentPlanning.ts rename to backend/convex/domains/agents/agentPlanning.ts diff --git a/convex/domains/agents/agentPostingPipeline.ts b/backend/convex/domains/agents/agentPostingPipeline.ts similarity index 100% rename from convex/domains/agents/agentPostingPipeline.ts rename to backend/convex/domains/agents/agentPostingPipeline.ts diff --git a/convex/domains/agents/agentRouter.ts b/backend/convex/domains/agents/agentRouter.ts similarity index 100% rename from convex/domains/agents/agentRouter.ts rename to backend/convex/domains/agents/agentRouter.ts diff --git a/convex/domains/agents/agentRunPresentation.ts b/backend/convex/domains/agents/agentRunPresentation.ts similarity index 100% rename from convex/domains/agents/agentRunPresentation.ts rename to backend/convex/domains/agents/agentRunPresentation.ts diff --git a/convex/domains/agents/agentScratchpads.ts b/backend/convex/domains/agents/agentScratchpads.ts similarity index 100% rename from convex/domains/agents/agentScratchpads.ts rename to backend/convex/domains/agents/agentScratchpads.ts diff --git a/convex/domains/agents/agentTimelines.ts b/backend/convex/domains/agents/agentTimelines.ts similarity index 100% rename from convex/domains/agents/agentTimelines.ts rename to backend/convex/domains/agents/agentTimelines.ts diff --git a/convex/domains/agents/agentViewManifest.ts b/backend/convex/domains/agents/agentViewManifest.ts similarity index 100% rename from convex/domains/agents/agentViewManifest.ts rename to backend/convex/domains/agents/agentViewManifest.ts diff --git a/convex/domains/agents/arbitrage/agent.ts b/backend/convex/domains/agents/arbitrage/agent.ts similarity index 100% rename from convex/domains/agents/arbitrage/agent.ts rename to backend/convex/domains/agents/arbitrage/agent.ts diff --git a/convex/domains/agents/arbitrage/config.ts b/backend/convex/domains/agents/arbitrage/config.ts similarity index 100% rename from convex/domains/agents/arbitrage/config.ts rename to backend/convex/domains/agents/arbitrage/config.ts diff --git a/convex/domains/agents/arbitrage/index.ts b/backend/convex/domains/agents/arbitrage/index.ts similarity index 100% rename from convex/domains/agents/arbitrage/index.ts rename to backend/convex/domains/agents/arbitrage/index.ts diff --git a/convex/domains/agents/arbitrage/tools/contradictionDetection.ts b/backend/convex/domains/agents/arbitrage/tools/contradictionDetection.ts similarity index 100% rename from convex/domains/agents/arbitrage/tools/contradictionDetection.ts rename to backend/convex/domains/agents/arbitrage/tools/contradictionDetection.ts diff --git a/convex/domains/agents/arbitrage/tools/deltaDetection.ts b/backend/convex/domains/agents/arbitrage/tools/deltaDetection.ts similarity index 100% rename from convex/domains/agents/arbitrage/tools/deltaDetection.ts rename to backend/convex/domains/agents/arbitrage/tools/deltaDetection.ts diff --git a/convex/domains/agents/arbitrage/tools/index.ts b/backend/convex/domains/agents/arbitrage/tools/index.ts similarity index 100% rename from convex/domains/agents/arbitrage/tools/index.ts rename to backend/convex/domains/agents/arbitrage/tools/index.ts diff --git a/convex/domains/agents/arbitrage/tools/sourceHealthCheck.ts b/backend/convex/domains/agents/arbitrage/tools/sourceHealthCheck.ts similarity index 100% rename from convex/domains/agents/arbitrage/tools/sourceHealthCheck.ts rename to backend/convex/domains/agents/arbitrage/tools/sourceHealthCheck.ts diff --git a/convex/domains/agents/arbitrage/tools/sourceQualityRanking.ts b/backend/convex/domains/agents/arbitrage/tools/sourceQualityRanking.ts similarity index 100% rename from convex/domains/agents/arbitrage/tools/sourceQualityRanking.ts rename to backend/convex/domains/agents/arbitrage/tools/sourceQualityRanking.ts diff --git a/convex/domains/agents/autonomousCrons.ts b/backend/convex/domains/agents/autonomousCrons.ts similarity index 100% rename from convex/domains/agents/autonomousCrons.ts rename to backend/convex/domains/agents/autonomousCrons.ts diff --git a/convex/domains/agents/autonomousCronsQueries.ts b/backend/convex/domains/agents/autonomousCronsQueries.ts similarity index 100% rename from convex/domains/agents/autonomousCronsQueries.ts rename to backend/convex/domains/agents/autonomousCronsQueries.ts diff --git a/convex/domains/agents/autonomy/autonomy.integration.test.ts b/backend/convex/domains/agents/autonomy/autonomy.integration.test.ts similarity index 100% rename from convex/domains/agents/autonomy/autonomy.integration.test.ts rename to backend/convex/domains/agents/autonomy/autonomy.integration.test.ts diff --git a/convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts b/backend/convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts similarity index 100% rename from convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts rename to backend/convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts diff --git a/convex/domains/agents/autonomy/commits.ts b/backend/convex/domains/agents/autonomy/commits.ts similarity index 100% rename from convex/domains/agents/autonomy/commits.ts rename to backend/convex/domains/agents/autonomy/commits.ts diff --git a/convex/domains/agents/autonomy/evidence.ts b/backend/convex/domains/agents/autonomy/evidence.ts similarity index 100% rename from convex/domains/agents/autonomy/evidence.ts rename to backend/convex/domains/agents/autonomy/evidence.ts diff --git a/convex/domains/agents/autonomy/grants.ts b/backend/convex/domains/agents/autonomy/grants.ts similarity index 100% rename from convex/domains/agents/autonomy/grants.ts rename to backend/convex/domains/agents/autonomy/grants.ts diff --git a/convex/domains/agents/autonomy/hash.ts b/backend/convex/domains/agents/autonomy/hash.ts similarity index 100% rename from convex/domains/agents/autonomy/hash.ts rename to backend/convex/domains/agents/autonomy/hash.ts diff --git a/convex/domains/agents/autonomy/policy.test.ts b/backend/convex/domains/agents/autonomy/policy.test.ts similarity index 100% rename from convex/domains/agents/autonomy/policy.test.ts rename to backend/convex/domains/agents/autonomy/policy.test.ts diff --git a/convex/domains/agents/autonomy/policy.ts b/backend/convex/domains/agents/autonomy/policy.ts similarity index 100% rename from convex/domains/agents/autonomy/policy.ts rename to backend/convex/domains/agents/autonomy/policy.ts diff --git a/convex/domains/agents/autonomy/proposals.ts b/backend/convex/domains/agents/autonomy/proposals.ts similarity index 100% rename from convex/domains/agents/autonomy/proposals.ts rename to backend/convex/domains/agents/autonomy/proposals.ts diff --git a/convex/domains/agents/autonomy/remainders.ts b/backend/convex/domains/agents/autonomy/remainders.ts similarity index 100% rename from convex/domains/agents/autonomy/remainders.ts rename to backend/convex/domains/agents/autonomy/remainders.ts diff --git a/convex/domains/agents/autonomy/schema.ts b/backend/convex/domains/agents/autonomy/schema.ts similarity index 100% rename from convex/domains/agents/autonomy/schema.ts rename to backend/convex/domains/agents/autonomy/schema.ts diff --git a/convex/domains/agents/batchAPI.ts b/backend/convex/domains/agents/batchAPI.ts similarity index 100% rename from convex/domains/agents/batchAPI.ts rename to backend/convex/domains/agents/batchAPI.ts diff --git a/convex/domains/agents/budget/budgetGate.ts b/backend/convex/domains/agents/budget/budgetGate.ts similarity index 100% rename from convex/domains/agents/budget/budgetGate.ts rename to backend/convex/domains/agents/budget/budgetGate.ts diff --git a/convex/domains/agents/canonicalPlanner.ts b/backend/convex/domains/agents/canonicalPlanner.ts similarity index 100% rename from convex/domains/agents/canonicalPlanner.ts rename to backend/convex/domains/agents/canonicalPlanner.ts diff --git a/convex/domains/agents/canonicalRuntimeMutations.ts b/backend/convex/domains/agents/canonicalRuntimeMutations.ts similarity index 100% rename from convex/domains/agents/canonicalRuntimeMutations.ts rename to backend/convex/domains/agents/canonicalRuntimeMutations.ts diff --git a/convex/domains/agents/canonicalRuntimeQueries.ts b/backend/convex/domains/agents/canonicalRuntimeQueries.ts similarity index 100% rename from convex/domains/agents/canonicalRuntimeQueries.ts rename to backend/convex/domains/agents/canonicalRuntimeQueries.ts diff --git a/convex/domains/agents/chatPanelBackend.ts b/backend/convex/domains/agents/chatPanelBackend.ts similarity index 100% rename from convex/domains/agents/chatPanelBackend.ts rename to backend/convex/domains/agents/chatPanelBackend.ts diff --git a/convex/domains/agents/chatThreads.ts b/backend/convex/domains/agents/chatThreads.ts similarity index 100% rename from convex/domains/agents/chatThreads.ts rename to backend/convex/domains/agents/chatThreads.ts diff --git a/convex/domains/agents/checkpointing.ts b/backend/convex/domains/agents/checkpointing.ts similarity index 100% rename from convex/domains/agents/checkpointing.ts rename to backend/convex/domains/agents/checkpointing.ts diff --git a/convex/domains/agents/consistencyIndex.ts b/backend/convex/domains/agents/consistencyIndex.ts similarity index 100% rename from convex/domains/agents/consistencyIndex.ts rename to backend/convex/domains/agents/consistencyIndex.ts diff --git a/convex/domains/agents/consistencyIndexQueries.ts b/backend/convex/domains/agents/consistencyIndexQueries.ts similarity index 100% rename from convex/domains/agents/consistencyIndexQueries.ts rename to backend/convex/domains/agents/consistencyIndexQueries.ts diff --git a/convex/domains/agents/coordinator/agent.ts b/backend/convex/domains/agents/coordinator/agent.ts similarity index 100% rename from convex/domains/agents/coordinator/agent.ts rename to backend/convex/domains/agents/coordinator/agent.ts diff --git a/convex/domains/agents/coordinator/config.ts b/backend/convex/domains/agents/coordinator/config.ts similarity index 100% rename from convex/domains/agents/coordinator/config.ts rename to backend/convex/domains/agents/coordinator/config.ts diff --git a/convex/domains/agents/coordinator/contextPack.ts b/backend/convex/domains/agents/coordinator/contextPack.ts similarity index 100% rename from convex/domains/agents/coordinator/contextPack.ts rename to backend/convex/domains/agents/coordinator/contextPack.ts diff --git a/convex/domains/agents/coordinator/contextPackMutations.ts b/backend/convex/domains/agents/coordinator/contextPackMutations.ts similarity index 100% rename from convex/domains/agents/coordinator/contextPackMutations.ts rename to backend/convex/domains/agents/coordinator/contextPackMutations.ts diff --git a/convex/domains/agents/coordinator/contextPackQueries.ts b/backend/convex/domains/agents/coordinator/contextPackQueries.ts similarity index 100% rename from convex/domains/agents/coordinator/contextPackQueries.ts rename to backend/convex/domains/agents/coordinator/contextPackQueries.ts diff --git a/convex/domains/agents/coordinator/index.ts b/backend/convex/domains/agents/coordinator/index.ts similarity index 100% rename from convex/domains/agents/coordinator/index.ts rename to backend/convex/domains/agents/coordinator/index.ts diff --git a/convex/domains/agents/coordinator/tools/delegationTools.ts b/backend/convex/domains/agents/coordinator/tools/delegationTools.ts similarity index 100% rename from convex/domains/agents/coordinator/tools/delegationTools.ts rename to backend/convex/domains/agents/coordinator/tools/delegationTools.ts diff --git a/convex/domains/agents/coordinator/tools/index.ts b/backend/convex/domains/agents/coordinator/tools/index.ts similarity index 100% rename from convex/domains/agents/coordinator/tools/index.ts rename to backend/convex/domains/agents/coordinator/tools/index.ts diff --git a/convex/domains/agents/core/README.md b/backend/convex/domains/agents/core/README.md similarity index 100% rename from convex/domains/agents/core/README.md rename to backend/convex/domains/agents/core/README.md diff --git a/convex/domains/agents/core/coordinatorAgent.ts b/backend/convex/domains/agents/core/coordinatorAgent.ts similarity index 100% rename from convex/domains/agents/core/coordinatorAgent.ts rename to backend/convex/domains/agents/core/coordinatorAgent.ts diff --git a/convex/domains/agents/core/delegation/README.md b/backend/convex/domains/agents/core/delegation/README.md similarity index 100% rename from convex/domains/agents/core/delegation/README.md rename to backend/convex/domains/agents/core/delegation/README.md diff --git a/convex/domains/agents/core/delegation/delegationHelpers.ts b/backend/convex/domains/agents/core/delegation/delegationHelpers.ts similarity index 100% rename from convex/domains/agents/core/delegation/delegationHelpers.ts rename to backend/convex/domains/agents/core/delegation/delegationHelpers.ts diff --git a/convex/domains/agents/core/delegation/delegationTools.ts b/backend/convex/domains/agents/core/delegation/delegationTools.ts similarity index 100% rename from convex/domains/agents/core/delegation/delegationTools.ts rename to backend/convex/domains/agents/core/delegation/delegationTools.ts diff --git a/convex/domains/agents/core/delegation/temporalContext.ts b/backend/convex/domains/agents/core/delegation/temporalContext.ts similarity index 100% rename from convex/domains/agents/core/delegation/temporalContext.ts rename to backend/convex/domains/agents/core/delegation/temporalContext.ts diff --git a/convex/domains/agents/core/multiAgentWorkflow.ts b/backend/convex/domains/agents/core/multiAgentWorkflow.ts similarity index 100% rename from convex/domains/agents/core/multiAgentWorkflow.ts rename to backend/convex/domains/agents/core/multiAgentWorkflow.ts diff --git a/convex/domains/agents/core/prompts.ts b/backend/convex/domains/agents/core/prompts.ts similarity index 100% rename from convex/domains/agents/core/prompts.ts rename to backend/convex/domains/agents/core/prompts.ts diff --git a/convex/domains/agents/core/subagents/comment_harvester/index.ts b/backend/convex/domains/agents/core/subagents/comment_harvester/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/comment_harvester/index.ts rename to backend/convex/domains/agents/core/subagents/comment_harvester/index.ts diff --git a/convex/domains/agents/core/subagents/comment_harvester/mutations.ts b/backend/convex/domains/agents/core/subagents/comment_harvester/mutations.ts similarity index 100% rename from convex/domains/agents/core/subagents/comment_harvester/mutations.ts rename to backend/convex/domains/agents/core/subagents/comment_harvester/mutations.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/README.md b/backend/convex/domains/agents/core/subagents/document_subagent/README.md similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/README.md rename to backend/convex/domains/agents/core/subagents/document_subagent/README.md diff --git a/convex/domains/agents/core/subagents/document_subagent/documentAgent.ts b/backend/convex/domains/agents/core/subagents/document_subagent/documentAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/documentAgent.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/documentAgent.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts b/backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/tools/deepAgentEditTools.ts b/backend/convex/domains/agents/core/subagents/document_subagent/tools/deepAgentEditTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/tools/deepAgentEditTools.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/tools/deepAgentEditTools.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/tools/documentTools.ts b/backend/convex/domains/agents/core/subagents/document_subagent/tools/documentTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/tools/documentTools.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/tools/documentTools.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/tools/geminiFileSearch.ts b/backend/convex/domains/agents/core/subagents/document_subagent/tools/geminiFileSearch.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/tools/geminiFileSearch.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/tools/geminiFileSearch.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/tools/hashtagSearchTools.ts b/backend/convex/domains/agents/core/subagents/document_subagent/tools/hashtagSearchTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/tools/hashtagSearchTools.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/tools/hashtagSearchTools.ts diff --git a/convex/domains/agents/core/subagents/document_subagent/tools/index.ts b/backend/convex/domains/agents/core/subagents/document_subagent/tools/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/document_subagent/tools/index.ts rename to backend/convex/domains/agents/core/subagents/document_subagent/tools/index.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/dossierAgent.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/dossierAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/dossierAgent.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/dossierAgent.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/enrichDataPoint.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/enrichDataPoint.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/enrichDataPoint.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/enrichDataPoint.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/generateAnnotation.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/generateAnnotation.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/generateAnnotation.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/generateAnnotation.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/getChartContext.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/getChartContext.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/getChartContext.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/getChartContext.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/index.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/index.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/index.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/updateFocusState.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/updateFocusState.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/updateFocusState.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/updateFocusState.ts diff --git a/convex/domains/agents/core/subagents/dossier_subagent/tools/updateNarrativeSection.ts b/backend/convex/domains/agents/core/subagents/dossier_subagent/tools/updateNarrativeSection.ts similarity index 100% rename from convex/domains/agents/core/subagents/dossier_subagent/tools/updateNarrativeSection.ts rename to backend/convex/domains/agents/core/subagents/dossier_subagent/tools/updateNarrativeSection.ts diff --git a/convex/domains/agents/core/subagents/entity_subagent/entityResearchAgent.ts b/backend/convex/domains/agents/core/subagents/entity_subagent/entityResearchAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/entity_subagent/entityResearchAgent.ts rename to backend/convex/domains/agents/core/subagents/entity_subagent/entityResearchAgent.ts diff --git a/convex/domains/agents/core/subagents/media_subagent/mediaAgent.ts b/backend/convex/domains/agents/core/subagents/media_subagent/mediaAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/media_subagent/mediaAgent.ts rename to backend/convex/domains/agents/core/subagents/media_subagent/mediaAgent.ts diff --git a/convex/domains/agents/core/subagents/media_subagent/tools/index.ts b/backend/convex/domains/agents/core/subagents/media_subagent/tools/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/media_subagent/tools/index.ts rename to backend/convex/domains/agents/core/subagents/media_subagent/tools/index.ts diff --git a/convex/domains/agents/core/subagents/media_subagent/tools/linkupSearch.ts b/backend/convex/domains/agents/core/subagents/media_subagent/tools/linkupSearch.ts similarity index 100% rename from convex/domains/agents/core/subagents/media_subagent/tools/linkupSearch.ts rename to backend/convex/domains/agents/core/subagents/media_subagent/tools/linkupSearch.ts diff --git a/convex/domains/agents/core/subagents/media_subagent/tools/mediaTools.ts b/backend/convex/domains/agents/core/subagents/media_subagent/tools/mediaTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/media_subagent/tools/mediaTools.ts rename to backend/convex/domains/agents/core/subagents/media_subagent/tools/mediaTools.ts diff --git a/convex/domains/agents/core/subagents/media_subagent/tools/youtubeSearch.ts b/backend/convex/domains/agents/core/subagents/media_subagent/tools/youtubeSearch.ts similarity index 100% rename from convex/domains/agents/core/subagents/media_subagent/tools/youtubeSearch.ts rename to backend/convex/domains/agents/core/subagents/media_subagent/tools/youtubeSearch.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/README.md b/backend/convex/domains/agents/core/subagents/openbb_subagent/README.md similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/README.md rename to backend/convex/domains/agents/core/subagents/openbb_subagent/README.md diff --git a/convex/domains/agents/core/subagents/openbb_subagent/openbbAgent.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/openbbAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/openbbAgent.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/openbbAgent.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/adminTools.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/adminTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/adminTools.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/adminTools.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/cryptoTools.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/cryptoTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/cryptoTools.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/cryptoTools.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/economyTools.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/economyTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/economyTools.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/economyTools.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/equityTools.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/equityTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/equityTools.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/equityTools.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/index.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/index.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/index.ts diff --git a/convex/domains/agents/core/subagents/openbb_subagent/tools/newsTools.ts b/backend/convex/domains/agents/core/subagents/openbb_subagent/tools/newsTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/openbb_subagent/tools/newsTools.ts rename to backend/convex/domains/agents/core/subagents/openbb_subagent/tools/newsTools.ts diff --git a/convex/domains/agents/core/subagents/research_subagent/multiSourceResearchAgent.ts b/backend/convex/domains/agents/core/subagents/research_subagent/multiSourceResearchAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/research_subagent/multiSourceResearchAgent.ts rename to backend/convex/domains/agents/core/subagents/research_subagent/multiSourceResearchAgent.ts diff --git a/convex/domains/agents/core/subagents/sec_subagent/secAgent.ts b/backend/convex/domains/agents/core/subagents/sec_subagent/secAgent.ts similarity index 100% rename from convex/domains/agents/core/subagents/sec_subagent/secAgent.ts rename to backend/convex/domains/agents/core/subagents/sec_subagent/secAgent.ts diff --git a/convex/domains/agents/core/subagents/sec_subagent/tools/index.ts b/backend/convex/domains/agents/core/subagents/sec_subagent/tools/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/sec_subagent/tools/index.ts rename to backend/convex/domains/agents/core/subagents/sec_subagent/tools/index.ts diff --git a/convex/domains/agents/core/subagents/sec_subagent/tools/secCompanySearch.ts b/backend/convex/domains/agents/core/subagents/sec_subagent/tools/secCompanySearch.ts similarity index 100% rename from convex/domains/agents/core/subagents/sec_subagent/tools/secCompanySearch.ts rename to backend/convex/domains/agents/core/subagents/sec_subagent/tools/secCompanySearch.ts diff --git a/convex/domains/agents/core/subagents/sec_subagent/tools/secFilingTools.ts b/backend/convex/domains/agents/core/subagents/sec_subagent/tools/secFilingTools.ts similarity index 100% rename from convex/domains/agents/core/subagents/sec_subagent/tools/secFilingTools.ts rename to backend/convex/domains/agents/core/subagents/sec_subagent/tools/secFilingTools.ts diff --git a/convex/domains/agents/core/subagents/thread_curator/index.ts b/backend/convex/domains/agents/core/subagents/thread_curator/index.ts similarity index 100% rename from convex/domains/agents/core/subagents/thread_curator/index.ts rename to backend/convex/domains/agents/core/subagents/thread_curator/index.ts diff --git a/convex/domains/agents/core/subagents/thread_curator/queries.ts b/backend/convex/domains/agents/core/subagents/thread_curator/queries.ts similarity index 100% rename from convex/domains/agents/core/subagents/thread_curator/queries.ts rename to backend/convex/domains/agents/core/subagents/thread_curator/queries.ts diff --git a/convex/domains/agents/core/tools/externalOrchestratorTools.ts b/backend/convex/domains/agents/core/tools/externalOrchestratorTools.ts similarity index 100% rename from convex/domains/agents/core/tools/externalOrchestratorTools.ts rename to backend/convex/domains/agents/core/tools/externalOrchestratorTools.ts diff --git a/convex/domains/agents/dataAccess/agent.ts b/backend/convex/domains/agents/dataAccess/agent.ts similarity index 100% rename from convex/domains/agents/dataAccess/agent.ts rename to backend/convex/domains/agents/dataAccess/agent.ts diff --git a/convex/domains/agents/dataAccess/config.ts b/backend/convex/domains/agents/dataAccess/config.ts similarity index 100% rename from convex/domains/agents/dataAccess/config.ts rename to backend/convex/domains/agents/dataAccess/config.ts diff --git a/convex/domains/agents/dataAccess/index.ts b/backend/convex/domains/agents/dataAccess/index.ts similarity index 100% rename from convex/domains/agents/dataAccess/index.ts rename to backend/convex/domains/agents/dataAccess/index.ts diff --git a/convex/domains/agents/dataAccess/tools/calendarTools.ts b/backend/convex/domains/agents/dataAccess/tools/calendarTools.ts similarity index 100% rename from convex/domains/agents/dataAccess/tools/calendarTools.ts rename to backend/convex/domains/agents/dataAccess/tools/calendarTools.ts diff --git a/convex/domains/agents/dataAccess/tools/index.ts b/backend/convex/domains/agents/dataAccess/tools/index.ts similarity index 100% rename from convex/domains/agents/dataAccess/tools/index.ts rename to backend/convex/domains/agents/dataAccess/tools/index.ts diff --git a/convex/domains/agents/dataAccess/tools/taskTools.ts b/backend/convex/domains/agents/dataAccess/tools/taskTools.ts similarity index 100% rename from convex/domains/agents/dataAccess/tools/taskTools.ts rename to backend/convex/domains/agents/dataAccess/tools/taskTools.ts diff --git a/convex/domains/agents/decisionMemory.ts b/backend/convex/domains/agents/decisionMemory.ts similarity index 100% rename from convex/domains/agents/decisionMemory.ts rename to backend/convex/domains/agents/decisionMemory.ts diff --git a/convex/domains/agents/decisionMemoryQueries.ts b/backend/convex/domains/agents/decisionMemoryQueries.ts similarity index 100% rename from convex/domains/agents/decisionMemoryQueries.ts rename to backend/convex/domains/agents/decisionMemoryQueries.ts diff --git a/convex/domains/agents/decorationPreferences.ts b/backend/convex/domains/agents/decorationPreferences.ts similarity index 100% rename from convex/domains/agents/decorationPreferences.ts rename to backend/convex/domains/agents/decorationPreferences.ts diff --git a/convex/domains/agents/deliberationToEvolution.ts b/backend/convex/domains/agents/deliberationToEvolution.ts similarity index 100% rename from convex/domains/agents/deliberationToEvolution.ts rename to backend/convex/domains/agents/deliberationToEvolution.ts diff --git a/convex/domains/agents/digestAgent.ts b/backend/convex/domains/agents/digestAgent.ts similarity index 100% rename from convex/domains/agents/digestAgent.ts rename to backend/convex/domains/agents/digestAgent.ts diff --git a/convex/domains/agents/docs/2025_AGENT_ORCHESTRATION_RESEARCH.md b/backend/convex/domains/agents/docs/2025_AGENT_ORCHESTRATION_RESEARCH.md similarity index 100% rename from convex/domains/agents/docs/2025_AGENT_ORCHESTRATION_RESEARCH.md rename to backend/convex/domains/agents/docs/2025_AGENT_ORCHESTRATION_RESEARCH.md diff --git a/convex/domains/agents/docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md b/backend/convex/domains/agents/docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md similarity index 100% rename from convex/domains/agents/docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md rename to backend/convex/domains/agents/docs/MODEL_CONSOLIDATION_SMOKE_TEST_RESULTS.md diff --git a/convex/domains/agents/dueDiligence/branches/companyProfile.ts b/backend/convex/domains/agents/dueDiligence/branches/companyProfile.ts similarity index 100% rename from convex/domains/agents/dueDiligence/branches/companyProfile.ts rename to backend/convex/domains/agents/dueDiligence/branches/companyProfile.ts diff --git a/convex/domains/agents/dueDiligence/branches/conditionalBranches.ts b/backend/convex/domains/agents/dueDiligence/branches/conditionalBranches.ts similarity index 100% rename from convex/domains/agents/dueDiligence/branches/conditionalBranches.ts rename to backend/convex/domains/agents/dueDiligence/branches/conditionalBranches.ts diff --git a/convex/domains/agents/dueDiligence/branches/marketCompetitive.ts b/backend/convex/domains/agents/dueDiligence/branches/marketCompetitive.ts similarity index 100% rename from convex/domains/agents/dueDiligence/branches/marketCompetitive.ts rename to backend/convex/domains/agents/dueDiligence/branches/marketCompetitive.ts diff --git a/convex/domains/agents/dueDiligence/branches/teamDeepResearch.ts b/backend/convex/domains/agents/dueDiligence/branches/teamDeepResearch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/branches/teamDeepResearch.ts rename to backend/convex/domains/agents/dueDiligence/branches/teamDeepResearch.ts diff --git a/convex/domains/agents/dueDiligence/crossChecker.ts b/backend/convex/domains/agents/dueDiligence/crossChecker.ts similarity index 100% rename from convex/domains/agents/dueDiligence/crossChecker.ts rename to backend/convex/domains/agents/dueDiligence/crossChecker.ts diff --git a/convex/domains/agents/dueDiligence/ddBranchHandoff.ts b/backend/convex/domains/agents/dueDiligence/ddBranchHandoff.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddBranchHandoff.ts rename to backend/convex/domains/agents/dueDiligence/ddBranchHandoff.ts diff --git a/convex/domains/agents/dueDiligence/ddContextEngine.ts b/backend/convex/domains/agents/dueDiligence/ddContextEngine.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddContextEngine.ts rename to backend/convex/domains/agents/dueDiligence/ddContextEngine.ts diff --git a/convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts b/backend/convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts rename to backend/convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts diff --git a/convex/domains/agents/dueDiligence/ddMutations.ts b/backend/convex/domains/agents/dueDiligence/ddMutations.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddMutations.ts rename to backend/convex/domains/agents/dueDiligence/ddMutations.ts diff --git a/convex/domains/agents/dueDiligence/ddOrchestrator.ts b/backend/convex/domains/agents/dueDiligence/ddOrchestrator.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddOrchestrator.ts rename to backend/convex/domains/agents/dueDiligence/ddOrchestrator.ts diff --git a/convex/domains/agents/dueDiligence/ddOwnership.auth.test.ts b/backend/convex/domains/agents/dueDiligence/ddOwnership.auth.test.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddOwnership.auth.test.ts rename to backend/convex/domains/agents/dueDiligence/ddOwnership.auth.test.ts diff --git a/convex/domains/agents/dueDiligence/ddTriggerQueries.ts b/backend/convex/domains/agents/dueDiligence/ddTriggerQueries.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddTriggerQueries.ts rename to backend/convex/domains/agents/dueDiligence/ddTriggerQueries.ts diff --git a/convex/domains/agents/dueDiligence/ddTriggers.ts b/backend/convex/domains/agents/dueDiligence/ddTriggers.ts similarity index 100% rename from convex/domains/agents/dueDiligence/ddTriggers.ts rename to backend/convex/domains/agents/dueDiligence/ddTriggers.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/agents/newsVerificationAgent.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/agents/newsVerificationAgent.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/agents/newsVerificationAgent.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/agents/newsVerificationAgent.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/agents/personResearchAgent.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/agents/personResearchAgent.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/agents/personResearchAgent.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/agents/personResearchAgent.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/claimClassifier.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/claimClassifier.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/claimClassifier.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/claimClassifier.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/hypothesisEngine.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/hypothesisEngine.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/hypothesisEngine.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/hypothesisEngine.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/index.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/index.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/index.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/index.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/queryDecomposer.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/queryDecomposer.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/queryDecomposer.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/queryDecomposer.ts diff --git a/convex/domains/agents/dueDiligence/deepResearch/types.ts b/backend/convex/domains/agents/dueDiligence/deepResearch/types.ts similarity index 100% rename from convex/domains/agents/dueDiligence/deepResearch/types.ts rename to backend/convex/domains/agents/dueDiligence/deepResearch/types.ts diff --git a/convex/domains/agents/dueDiligence/index.ts b/backend/convex/domains/agents/dueDiligence/index.ts similarity index 100% rename from convex/domains/agents/dueDiligence/index.ts rename to backend/convex/domains/agents/dueDiligence/index.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/claimVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/claimVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/claimVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/claimVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedClaimVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedClaimVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedClaimVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedClaimVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedNewsVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedNewsVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedNewsVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/enhancedNewsVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/entityVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/entityVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/entityVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/entityVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/fdaVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/fdaVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/fdaVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/fdaVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/dealMemoSynthesis.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/dealMemoSynthesis.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/dealMemoSynthesis.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/dealMemoSynthesis.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/fundPerformanceVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/fundPerformanceVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/fundPerformanceVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/financial/fundPerformanceVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/finraValidationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/finraValidationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/finraValidationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/finraValidationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/index.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/index.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/index.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/index.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/clinicalTrialVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/clinicalTrialVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/clinicalTrialVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/clinicalTrialVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/literatureTriangulation.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/literatureTriangulation.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/literatureTriangulation.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/industry/literatureTriangulation.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/moneyFlowBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/moneyFlowBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/moneyFlowBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/moneyFlowBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/newsVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/newsVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/newsVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/newsVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/personVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/personVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/personVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/personVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/scientificClaimVerificationBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/scientificClaimVerificationBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/scientificClaimVerificationBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/scientificClaimVerificationBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/secEdgarBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/secEdgarBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/secEdgarBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/secEdgarBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/economicIndicatorVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/economicIndicatorVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/economicIndicatorVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/economicIndicatorVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/maActivityVerification.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/maActivityVerification.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/maActivityVerification.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/strategic/maActivityVerification.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/branches/usptoBranch.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/usptoBranch.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/branches/usptoBranch.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/branches/usptoBranch.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/index.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/index.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/index.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/index.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/playbookOrchestrator.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookOrchestrator.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/playbookOrchestrator.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookOrchestrator.ts diff --git a/convex/domains/agents/dueDiligence/investorPlaybook/types.ts b/backend/convex/domains/agents/dueDiligence/investorPlaybook/types.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorPlaybook/types.ts rename to backend/convex/domains/agents/dueDiligence/investorPlaybook/types.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/index.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/index.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/index.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/index.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.ts diff --git a/convex/domains/agents/dueDiligence/investorProtection/types.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/types.ts similarity index 100% rename from convex/domains/agents/dueDiligence/investorProtection/types.ts rename to backend/convex/domains/agents/dueDiligence/investorProtection/types.ts diff --git a/convex/domains/agents/dueDiligence/memoSynthesizer.ts b/backend/convex/domains/agents/dueDiligence/memoSynthesizer.ts similarity index 100% rename from convex/domains/agents/dueDiligence/memoSynthesizer.ts rename to backend/convex/domains/agents/dueDiligence/memoSynthesizer.ts diff --git a/convex/domains/agents/dueDiligence/microBranches.ts b/backend/convex/domains/agents/dueDiligence/microBranches.ts similarity index 100% rename from convex/domains/agents/dueDiligence/microBranches.ts rename to backend/convex/domains/agents/dueDiligence/microBranches.ts diff --git a/convex/domains/agents/dueDiligence/riskScoring.ts b/backend/convex/domains/agents/dueDiligence/riskScoring.ts similarity index 100% rename from convex/domains/agents/dueDiligence/riskScoring.ts rename to backend/convex/domains/agents/dueDiligence/riskScoring.ts diff --git a/convex/domains/agents/dueDiligence/types.ts b/backend/convex/domains/agents/dueDiligence/types.ts similarity index 100% rename from convex/domains/agents/dueDiligence/types.ts rename to backend/convex/domains/agents/dueDiligence/types.ts diff --git a/convex/domains/agents/emailAgent.ts b/backend/convex/domains/agents/emailAgent.ts similarity index 100% rename from convex/domains/agents/emailAgent.ts rename to backend/convex/domains/agents/emailAgent.ts diff --git a/convex/domains/agents/evolutionVerification.ts b/backend/convex/domains/agents/evolutionVerification.ts similarity index 100% rename from convex/domains/agents/evolutionVerification.ts rename to backend/convex/domains/agents/evolutionVerification.ts diff --git a/convex/domains/agents/fastAgentChat.ts b/backend/convex/domains/agents/fastAgentChat.ts similarity index 100% rename from convex/domains/agents/fastAgentChat.ts rename to backend/convex/domains/agents/fastAgentChat.ts diff --git a/convex/domains/agents/fastAgentChatHelpers.ts b/backend/convex/domains/agents/fastAgentChatHelpers.ts similarity index 100% rename from convex/domains/agents/fastAgentChatHelpers.ts rename to backend/convex/domains/agents/fastAgentChatHelpers.ts diff --git a/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts b/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts similarity index 100% rename from convex/domains/agents/fastAgentCitationProvenance.guard.test.ts rename to backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts diff --git a/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts b/backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts similarity index 100% rename from convex/domains/agents/fastAgentDocumentCreation.auth.test.ts rename to backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts diff --git a/convex/domains/agents/fastAgentDocumentCreation.ts b/backend/convex/domains/agents/fastAgentDocumentCreation.ts similarity index 100% rename from convex/domains/agents/fastAgentDocumentCreation.ts rename to backend/convex/domains/agents/fastAgentDocumentCreation.ts diff --git a/convex/domains/agents/fastAgentDocumentCreationOwnership.ts b/backend/convex/domains/agents/fastAgentDocumentCreationOwnership.ts similarity index 100% rename from convex/domains/agents/fastAgentDocumentCreationOwnership.ts rename to backend/convex/domains/agents/fastAgentDocumentCreationOwnership.ts diff --git a/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts b/backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts similarity index 100% rename from convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts rename to backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts diff --git a/convex/domains/agents/fastAgentPanelStreaming.ts b/backend/convex/domains/agents/fastAgentPanelStreaming.ts similarity index 100% rename from convex/domains/agents/fastAgentPanelStreaming.ts rename to backend/convex/domains/agents/fastAgentPanelStreaming.ts diff --git a/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts b/backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts similarity index 100% rename from convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts rename to backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts diff --git a/convex/domains/agents/glmFlashWithReasoning.ts b/backend/convex/domains/agents/glmFlashWithReasoning.ts similarity index 100% rename from convex/domains/agents/glmFlashWithReasoning.ts rename to backend/convex/domains/agents/glmFlashWithReasoning.ts diff --git a/convex/domains/agents/glmHybridApproach.ts b/backend/convex/domains/agents/glmHybridApproach.ts similarity index 100% rename from convex/domains/agents/glmHybridApproach.ts rename to backend/convex/domains/agents/glmHybridApproach.ts diff --git a/convex/domains/agents/hitl/config.ts b/backend/convex/domains/agents/hitl/config.ts similarity index 100% rename from convex/domains/agents/hitl/config.ts rename to backend/convex/domains/agents/hitl/config.ts diff --git a/convex/domains/agents/hitl/index.ts b/backend/convex/domains/agents/hitl/index.ts similarity index 100% rename from convex/domains/agents/hitl/index.ts rename to backend/convex/domains/agents/hitl/index.ts diff --git a/convex/domains/agents/hitl/interruptManager.ts b/backend/convex/domains/agents/hitl/interruptManager.ts similarity index 100% rename from convex/domains/agents/hitl/interruptManager.ts rename to backend/convex/domains/agents/hitl/interruptManager.ts diff --git a/convex/domains/agents/hitl/tools/askHuman.ts b/backend/convex/domains/agents/hitl/tools/askHuman.ts similarity index 100% rename from convex/domains/agents/hitl/tools/askHuman.ts rename to backend/convex/domains/agents/hitl/tools/askHuman.ts diff --git a/convex/domains/agents/hitl/tools/index.ts b/backend/convex/domains/agents/hitl/tools/index.ts similarity index 100% rename from convex/domains/agents/hitl/tools/index.ts rename to backend/convex/domains/agents/hitl/tools/index.ts diff --git a/convex/domains/agents/humanInTheLoop.ts b/backend/convex/domains/agents/humanInTheLoop.ts similarity index 100% rename from convex/domains/agents/humanInTheLoop.ts rename to backend/convex/domains/agents/humanInTheLoop.ts diff --git a/convex/domains/agents/index.ts b/backend/convex/domains/agents/index.ts similarity index 100% rename from convex/domains/agents/index.ts rename to backend/convex/domains/agents/index.ts diff --git a/convex/domains/agents/lessons/captureLesson.ts b/backend/convex/domains/agents/lessons/captureLesson.ts similarity index 100% rename from convex/domains/agents/lessons/captureLesson.ts rename to backend/convex/domains/agents/lessons/captureLesson.ts diff --git a/convex/domains/agents/lessons/getRelevantLessons.ts b/backend/convex/domains/agents/lessons/getRelevantLessons.ts similarity index 100% rename from convex/domains/agents/lessons/getRelevantLessons.ts rename to backend/convex/domains/agents/lessons/getRelevantLessons.ts diff --git a/convex/domains/agents/lessons/infraPreferIds.ts b/backend/convex/domains/agents/lessons/infraPreferIds.ts similarity index 100% rename from convex/domains/agents/lessons/infraPreferIds.ts rename to backend/convex/domains/agents/lessons/infraPreferIds.ts diff --git a/convex/domains/agents/lessons/lessonInjection.test.ts b/backend/convex/domains/agents/lessons/lessonInjection.test.ts similarity index 100% rename from convex/domains/agents/lessons/lessonInjection.test.ts rename to backend/convex/domains/agents/lessons/lessonInjection.test.ts diff --git a/convex/domains/agents/lessons/lessonInjection.ts b/backend/convex/domains/agents/lessons/lessonInjection.ts similarity index 100% rename from convex/domains/agents/lessons/lessonInjection.ts rename to backend/convex/domains/agents/lessons/lessonInjection.ts diff --git a/convex/domains/agents/lessons/lessonsPublic.ts b/backend/convex/domains/agents/lessons/lessonsPublic.ts similarity index 100% rename from convex/domains/agents/lessons/lessonsPublic.ts rename to backend/convex/domains/agents/lessons/lessonsPublic.ts diff --git a/convex/domains/agents/lessons/systemPromptBuilder.test.ts b/backend/convex/domains/agents/lessons/systemPromptBuilder.test.ts similarity index 100% rename from convex/domains/agents/lessons/systemPromptBuilder.test.ts rename to backend/convex/domains/agents/lessons/systemPromptBuilder.test.ts diff --git a/convex/domains/agents/lessons/systemPromptBuilder.ts b/backend/convex/domains/agents/lessons/systemPromptBuilder.ts similarity index 100% rename from convex/domains/agents/lessons/systemPromptBuilder.ts rename to backend/convex/domains/agents/lessons/systemPromptBuilder.ts diff --git a/convex/domains/agents/mcp_tools/context/contextInitializerTool.ts b/backend/convex/domains/agents/mcp_tools/context/contextInitializerTool.ts similarity index 100% rename from convex/domains/agents/mcp_tools/context/contextInitializerTool.ts rename to backend/convex/domains/agents/mcp_tools/context/contextInitializerTool.ts diff --git a/convex/domains/agents/mcp_tools/context/index.ts b/backend/convex/domains/agents/mcp_tools/context/index.ts similarity index 100% rename from convex/domains/agents/mcp_tools/context/index.ts rename to backend/convex/domains/agents/mcp_tools/context/index.ts diff --git a/convex/domains/agents/mcp_tools/index.ts b/backend/convex/domains/agents/mcp_tools/index.ts similarity index 100% rename from convex/domains/agents/mcp_tools/index.ts rename to backend/convex/domains/agents/mcp_tools/index.ts diff --git a/convex/domains/agents/mcp_tools/models/healthcheck.ts b/backend/convex/domains/agents/mcp_tools/models/healthcheck.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/healthcheck.ts rename to backend/convex/domains/agents/mcp_tools/models/healthcheck.ts diff --git a/convex/domains/agents/mcp_tools/models/index.ts b/backend/convex/domains/agents/mcp_tools/models/index.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/index.ts rename to backend/convex/domains/agents/mcp_tools/models/index.ts diff --git a/convex/domains/agents/mcp_tools/models/migration.ts b/backend/convex/domains/agents/mcp_tools/models/migration.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/migration.ts rename to backend/convex/domains/agents/mcp_tools/models/migration.ts diff --git a/convex/domains/agents/mcp_tools/models/modelResolver.test.ts b/backend/convex/domains/agents/mcp_tools/models/modelResolver.test.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/modelResolver.test.ts rename to backend/convex/domains/agents/mcp_tools/models/modelResolver.test.ts diff --git a/convex/domains/agents/mcp_tools/models/modelResolver.ts b/backend/convex/domains/agents/mcp_tools/models/modelResolver.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/modelResolver.ts rename to backend/convex/domains/agents/mcp_tools/models/modelResolver.ts diff --git a/convex/domains/agents/mcp_tools/models/promptCaching.ts b/backend/convex/domains/agents/mcp_tools/models/promptCaching.ts similarity index 100% rename from convex/domains/agents/mcp_tools/models/promptCaching.ts rename to backend/convex/domains/agents/mcp_tools/models/promptCaching.ts diff --git a/convex/domains/agents/mcp_tools/reasoningTool.ts b/backend/convex/domains/agents/mcp_tools/reasoningTool.ts similarity index 100% rename from convex/domains/agents/mcp_tools/reasoningTool.ts rename to backend/convex/domains/agents/mcp_tools/reasoningTool.ts diff --git a/convex/domains/agents/mcp_tools/testReasoningPersonas.ts b/backend/convex/domains/agents/mcp_tools/testReasoningPersonas.ts similarity index 100% rename from convex/domains/agents/mcp_tools/testReasoningPersonas.ts rename to backend/convex/domains/agents/mcp_tools/testReasoningPersonas.ts diff --git a/convex/domains/agents/mcp_tools/tracking/index.ts b/backend/convex/domains/agents/mcp_tools/tracking/index.ts similarity index 100% rename from convex/domains/agents/mcp_tools/tracking/index.ts rename to backend/convex/domains/agents/mcp_tools/tracking/index.ts diff --git a/convex/domains/agents/mcp_tools/tracking/taskTrackerTool.ts b/backend/convex/domains/agents/mcp_tools/tracking/taskTrackerTool.ts similarity index 100% rename from convex/domains/agents/mcp_tools/tracking/taskTrackerTool.ts rename to backend/convex/domains/agents/mcp_tools/tracking/taskTrackerTool.ts diff --git a/convex/domains/agents/orchestrator/geminiVideoWrapper.ts b/backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts similarity index 100% rename from convex/domains/agents/orchestrator/geminiVideoWrapper.ts rename to backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts diff --git a/convex/domains/agents/orchestrator/passportEnforcement.ts b/backend/convex/domains/agents/orchestrator/passportEnforcement.ts similarity index 100% rename from convex/domains/agents/orchestrator/passportEnforcement.ts rename to backend/convex/domains/agents/orchestrator/passportEnforcement.ts diff --git a/convex/domains/agents/orchestrator/passportEnforcementQueries.ts b/backend/convex/domains/agents/orchestrator/passportEnforcementQueries.ts similarity index 100% rename from convex/domains/agents/orchestrator/passportEnforcementQueries.ts rename to backend/convex/domains/agents/orchestrator/passportEnforcementQueries.ts diff --git a/convex/domains/agents/orchestrator/queueProtocol.ts b/backend/convex/domains/agents/orchestrator/queueProtocol.ts similarity index 100% rename from convex/domains/agents/orchestrator/queueProtocol.ts rename to backend/convex/domains/agents/orchestrator/queueProtocol.ts diff --git a/convex/domains/agents/orchestrator/secEdgarWrapper.ts b/backend/convex/domains/agents/orchestrator/secEdgarWrapper.ts similarity index 100% rename from convex/domains/agents/orchestrator/secEdgarWrapper.ts rename to backend/convex/domains/agents/orchestrator/secEdgarWrapper.ts diff --git a/convex/domains/agents/orchestrator/toolHealth.ts b/backend/convex/domains/agents/orchestrator/toolHealth.ts similarity index 100% rename from convex/domains/agents/orchestrator/toolHealth.ts rename to backend/convex/domains/agents/orchestrator/toolHealth.ts diff --git a/convex/domains/agents/orchestrator/toolRouter.ts b/backend/convex/domains/agents/orchestrator/toolRouter.ts similarity index 100% rename from convex/domains/agents/orchestrator/toolRouter.ts rename to backend/convex/domains/agents/orchestrator/toolRouter.ts diff --git a/convex/domains/agents/orchestrator/worker.ts b/backend/convex/domains/agents/orchestrator/worker.ts similarity index 100% rename from convex/domains/agents/orchestrator/worker.ts rename to backend/convex/domains/agents/orchestrator/worker.ts diff --git a/convex/domains/agents/parallelTaskTree.auth.test.ts b/backend/convex/domains/agents/parallelTaskTree.auth.test.ts similarity index 100% rename from convex/domains/agents/parallelTaskTree.auth.test.ts rename to backend/convex/domains/agents/parallelTaskTree.auth.test.ts diff --git a/convex/domains/agents/parallelTaskTree.ts b/backend/convex/domains/agents/parallelTaskTree.ts similarity index 100% rename from convex/domains/agents/parallelTaskTree.ts rename to backend/convex/domains/agents/parallelTaskTree.ts diff --git a/convex/domains/agents/promptEnhancer.ts b/backend/convex/domains/agents/promptEnhancer.ts similarity index 100% rename from convex/domains/agents/promptEnhancer.ts rename to backend/convex/domains/agents/promptEnhancer.ts diff --git a/convex/domains/agents/publicWrappers.ts b/backend/convex/domains/agents/publicWrappers.ts similarity index 100% rename from convex/domains/agents/publicWrappers.ts rename to backend/convex/domains/agents/publicWrappers.ts diff --git a/convex/domains/agents/receipts/actionReceipts.auth.test.ts b/backend/convex/domains/agents/receipts/actionReceipts.auth.test.ts similarity index 100% rename from convex/domains/agents/receipts/actionReceipts.auth.test.ts rename to backend/convex/domains/agents/receipts/actionReceipts.auth.test.ts diff --git a/convex/domains/agents/receipts/actionReceipts.ts b/backend/convex/domains/agents/receipts/actionReceipts.ts similarity index 100% rename from convex/domains/agents/receipts/actionReceipts.ts rename to backend/convex/domains/agents/receipts/actionReceipts.ts diff --git a/convex/domains/agents/receipts/emitWithReceipt.test.ts b/backend/convex/domains/agents/receipts/emitWithReceipt.test.ts similarity index 100% rename from convex/domains/agents/receipts/emitWithReceipt.test.ts rename to backend/convex/domains/agents/receipts/emitWithReceipt.test.ts diff --git a/convex/domains/agents/receipts/emitWithReceipt.ts b/backend/convex/domains/agents/receipts/emitWithReceipt.ts similarity index 100% rename from convex/domains/agents/receipts/emitWithReceipt.ts rename to backend/convex/domains/agents/receipts/emitWithReceipt.ts diff --git a/convex/domains/agents/researchJobs.ts b/backend/convex/domains/agents/researchJobs.ts similarity index 100% rename from convex/domains/agents/researchJobs.ts rename to backend/convex/domains/agents/researchJobs.ts diff --git a/convex/domains/agents/responseFlywheel.ts b/backend/convex/domains/agents/responseFlywheel.ts similarity index 100% rename from convex/domains/agents/responseFlywheel.ts rename to backend/convex/domains/agents/responseFlywheel.ts diff --git a/convex/domains/agents/runtimeRouting.test.ts b/backend/convex/domains/agents/runtimeRouting.test.ts similarity index 100% rename from convex/domains/agents/runtimeRouting.test.ts rename to backend/convex/domains/agents/runtimeRouting.test.ts diff --git a/convex/domains/agents/runtimeRouting.ts b/backend/convex/domains/agents/runtimeRouting.ts similarity index 100% rename from convex/domains/agents/runtimeRouting.ts rename to backend/convex/domains/agents/runtimeRouting.ts diff --git a/convex/domains/agents/runtimeTierFallback.ts b/backend/convex/domains/agents/runtimeTierFallback.ts similarity index 100% rename from convex/domains/agents/runtimeTierFallback.ts rename to backend/convex/domains/agents/runtimeTierFallback.ts diff --git a/convex/domains/agents/safety/artifactDecisionGate.ts b/backend/convex/domains/agents/safety/artifactDecisionGate.ts similarity index 100% rename from convex/domains/agents/safety/artifactDecisionGate.ts rename to backend/convex/domains/agents/safety/artifactDecisionGate.ts diff --git a/convex/domains/agents/safety/lowConfidenceGuard.ts b/backend/convex/domains/agents/safety/lowConfidenceGuard.ts similarity index 100% rename from convex/domains/agents/safety/lowConfidenceGuard.ts rename to backend/convex/domains/agents/safety/lowConfidenceGuard.ts diff --git a/convex/domains/agents/safety/rateLimitGuard.ts b/backend/convex/domains/agents/safety/rateLimitGuard.ts similarity index 100% rename from convex/domains/agents/safety/rateLimitGuard.ts rename to backend/convex/domains/agents/safety/rateLimitGuard.ts diff --git a/convex/domains/agents/safety/safety.test.ts b/backend/convex/domains/agents/safety/safety.test.ts similarity index 100% rename from convex/domains/agents/safety/safety.test.ts rename to backend/convex/domains/agents/safety/safety.test.ts diff --git a/convex/domains/agents/safety/singleflightMap.ts b/backend/convex/domains/agents/safety/singleflightMap.ts similarity index 100% rename from convex/domains/agents/safety/singleflightMap.ts rename to backend/convex/domains/agents/safety/singleflightMap.ts diff --git a/convex/domains/agents/schema.ts b/backend/convex/domains/agents/schema.ts similarity index 100% rename from convex/domains/agents/schema.ts rename to backend/convex/domains/agents/schema.ts diff --git a/convex/domains/agents/selfEvolution.ts b/backend/convex/domains/agents/selfEvolution.ts similarity index 100% rename from convex/domains/agents/selfEvolution.ts rename to backend/convex/domains/agents/selfEvolution.ts diff --git a/convex/domains/agents/selfEvolutionQueries.ts b/backend/convex/domains/agents/selfEvolutionQueries.ts similarity index 100% rename from convex/domains/agents/selfEvolutionQueries.ts rename to backend/convex/domains/agents/selfEvolutionQueries.ts diff --git a/convex/domains/agents/snapshots/rollbackToCheckpoint.ts b/backend/convex/domains/agents/snapshots/rollbackToCheckpoint.ts similarity index 100% rename from convex/domains/agents/snapshots/rollbackToCheckpoint.ts rename to backend/convex/domains/agents/snapshots/rollbackToCheckpoint.ts diff --git a/convex/domains/agents/snapshots/snapshotCheckpoint.ts b/backend/convex/domains/agents/snapshots/snapshotCheckpoint.ts similarity index 100% rename from convex/domains/agents/snapshots/snapshotCheckpoint.ts rename to backend/convex/domains/agents/snapshots/snapshotCheckpoint.ts diff --git a/convex/domains/agents/spiral/spiralDetector.test.ts b/backend/convex/domains/agents/spiral/spiralDetector.test.ts similarity index 100% rename from convex/domains/agents/spiral/spiralDetector.test.ts rename to backend/convex/domains/agents/spiral/spiralDetector.test.ts diff --git a/convex/domains/agents/spiral/spiralDetector.ts b/backend/convex/domains/agents/spiral/spiralDetector.ts similarity index 100% rename from convex/domains/agents/spiral/spiralDetector.ts rename to backend/convex/domains/agents/spiral/spiralDetector.ts diff --git a/convex/domains/agents/swarmDeliberation.ts b/backend/convex/domains/agents/swarmDeliberation.ts similarity index 100% rename from convex/domains/agents/swarmDeliberation.ts rename to backend/convex/domains/agents/swarmDeliberation.ts diff --git a/convex/domains/agents/swarmDeliberationQueries.ts b/backend/convex/domains/agents/swarmDeliberationQueries.ts similarity index 100% rename from convex/domains/agents/swarmDeliberationQueries.ts rename to backend/convex/domains/agents/swarmDeliberationQueries.ts diff --git a/convex/domains/agents/swarmMutations.ts b/backend/convex/domains/agents/swarmMutations.ts similarity index 100% rename from convex/domains/agents/swarmMutations.ts rename to backend/convex/domains/agents/swarmMutations.ts diff --git a/convex/domains/agents/swarmOrchestrator.ts b/backend/convex/domains/agents/swarmOrchestrator.ts similarity index 100% rename from convex/domains/agents/swarmOrchestrator.ts rename to backend/convex/domains/agents/swarmOrchestrator.ts diff --git a/convex/domains/agents/swarmOrchestratorEnhanced.ts b/backend/convex/domains/agents/swarmOrchestratorEnhanced.ts similarity index 100% rename from convex/domains/agents/swarmOrchestratorEnhanced.ts rename to backend/convex/domains/agents/swarmOrchestratorEnhanced.ts diff --git a/convex/domains/agents/swarmOwnership.auth.test.ts b/backend/convex/domains/agents/swarmOwnership.auth.test.ts similarity index 100% rename from convex/domains/agents/swarmOwnership.auth.test.ts rename to backend/convex/domains/agents/swarmOwnership.auth.test.ts diff --git a/convex/domains/agents/swarmQueries.ts b/backend/convex/domains/agents/swarmQueries.ts similarity index 100% rename from convex/domains/agents/swarmQueries.ts rename to backend/convex/domains/agents/swarmQueries.ts diff --git a/convex/domains/agents/testGlmFlash.ts b/backend/convex/domains/agents/testGlmFlash.ts similarity index 100% rename from convex/domains/agents/testGlmFlash.ts rename to backend/convex/domains/agents/testGlmFlash.ts diff --git a/convex/domains/agents/testGlmFlashFix.ts b/backend/convex/domains/agents/testGlmFlashFix.ts similarity index 100% rename from convex/domains/agents/testGlmFlashFix.ts rename to backend/convex/domains/agents/testGlmFlashFix.ts diff --git a/convex/domains/agents/testOrchestratorReasoningIntegration.ts b/backend/convex/domains/agents/testOrchestratorReasoningIntegration.ts similarity index 100% rename from convex/domains/agents/testOrchestratorReasoningIntegration.ts rename to backend/convex/domains/agents/testOrchestratorReasoningIntegration.ts diff --git a/convex/domains/agents/testParallelOrchestrator.ts b/backend/convex/domains/agents/testParallelOrchestrator.ts similarity index 100% rename from convex/domains/agents/testParallelOrchestrator.ts rename to backend/convex/domains/agents/testParallelOrchestrator.ts diff --git a/convex/domains/agents/tools/createDCFSpreadsheet.ts b/backend/convex/domains/agents/tools/createDCFSpreadsheet.ts similarity index 100% rename from convex/domains/agents/tools/createDCFSpreadsheet.ts rename to backend/convex/domains/agents/tools/createDCFSpreadsheet.ts diff --git a/convex/domains/agents/tools/editDCFSpreadsheet.ts b/backend/convex/domains/agents/tools/editDCFSpreadsheet.ts similarity index 100% rename from convex/domains/agents/tools/editDCFSpreadsheet.ts rename to backend/convex/domains/agents/tools/editDCFSpreadsheet.ts diff --git a/convex/domains/agents/traceAuditLog.auth.test.ts b/backend/convex/domains/agents/traceAuditLog.auth.test.ts similarity index 100% rename from convex/domains/agents/traceAuditLog.auth.test.ts rename to backend/convex/domains/agents/traceAuditLog.auth.test.ts diff --git a/convex/domains/agents/traceAuditLog.ts b/backend/convex/domains/agents/traceAuditLog.ts similarity index 100% rename from convex/domains/agents/traceAuditLog.ts rename to backend/convex/domains/agents/traceAuditLog.ts diff --git a/convex/domains/agents/traceOrchestrator.ts b/backend/convex/domains/agents/traceOrchestrator.ts similarity index 100% rename from convex/domains/agents/traceOrchestrator.ts rename to backend/convex/domains/agents/traceOrchestrator.ts diff --git a/convex/domains/agents/traceTypes.ts b/backend/convex/domains/agents/traceTypes.ts similarity index 100% rename from convex/domains/agents/traceTypes.ts rename to backend/convex/domains/agents/traceTypes.ts diff --git a/convex/domains/agents/types.ts b/backend/convex/domains/agents/types.ts similarity index 100% rename from convex/domains/agents/types.ts rename to backend/convex/domains/agents/types.ts diff --git a/convex/domains/agents/unified.ts b/backend/convex/domains/agents/unified.ts similarity index 100% rename from convex/domains/agents/unified.ts rename to backend/convex/domains/agents/unified.ts diff --git a/convex/domains/ai/ai.ts b/backend/convex/domains/ai/ai.ts similarity index 100% rename from convex/domains/ai/ai.ts rename to backend/convex/domains/ai/ai.ts diff --git a/convex/domains/ai/genai.ts b/backend/convex/domains/ai/genai.ts similarity index 100% rename from convex/domains/ai/genai.ts rename to backend/convex/domains/ai/genai.ts diff --git a/convex/domains/ai/metadataAnalyzer.ts b/backend/convex/domains/ai/metadataAnalyzer.ts similarity index 100% rename from convex/domains/ai/metadataAnalyzer.ts rename to backend/convex/domains/ai/metadataAnalyzer.ts diff --git a/convex/domains/ai/models/autonomousModelResolver.ts b/backend/convex/domains/ai/models/autonomousModelResolver.ts similarity index 100% rename from convex/domains/ai/models/autonomousModelResolver.ts rename to backend/convex/domains/ai/models/autonomousModelResolver.ts diff --git a/convex/domains/ai/models/capabilityRegistry.ts b/backend/convex/domains/ai/models/capabilityRegistry.ts similarity index 100% rename from convex/domains/ai/models/capabilityRegistry.ts rename to backend/convex/domains/ai/models/capabilityRegistry.ts diff --git a/convex/domains/ai/models/chainResolver.test.ts b/backend/convex/domains/ai/models/chainResolver.test.ts similarity index 100% rename from convex/domains/ai/models/chainResolver.test.ts rename to backend/convex/domains/ai/models/chainResolver.test.ts diff --git a/convex/domains/ai/models/chainResolver.ts b/backend/convex/domains/ai/models/chainResolver.ts similarity index 100% rename from convex/domains/ai/models/chainResolver.ts rename to backend/convex/domains/ai/models/chainResolver.ts diff --git a/convex/domains/ai/models/freeModelDiscovery.ts b/backend/convex/domains/ai/models/freeModelDiscovery.ts similarity index 100% rename from convex/domains/ai/models/freeModelDiscovery.ts rename to backend/convex/domains/ai/models/freeModelDiscovery.ts diff --git a/convex/domains/ai/models/index.ts b/backend/convex/domains/ai/models/index.ts similarity index 100% rename from convex/domains/ai/models/index.ts rename to backend/convex/domains/ai/models/index.ts diff --git a/convex/domains/ai/models/livePerformanceEval.ts b/backend/convex/domains/ai/models/livePerformanceEval.ts similarity index 100% rename from convex/domains/ai/models/livePerformanceEval.ts rename to backend/convex/domains/ai/models/livePerformanceEval.ts diff --git a/convex/domains/ai/models/modelRouter.ts b/backend/convex/domains/ai/models/modelRouter.ts similarity index 100% rename from convex/domains/ai/models/modelRouter.ts rename to backend/convex/domains/ai/models/modelRouter.ts diff --git a/convex/domains/ai/models/modelRouterQueries.ts b/backend/convex/domains/ai/models/modelRouterQueries.ts similarity index 100% rename from convex/domains/ai/models/modelRouterQueries.ts rename to backend/convex/domains/ai/models/modelRouterQueries.ts diff --git a/convex/domains/ai/morningDigest.ts b/backend/convex/domains/ai/morningDigest.ts similarity index 100% rename from convex/domains/ai/morningDigest.ts rename to backend/convex/domains/ai/morningDigest.ts diff --git a/convex/domains/ai/morningDigestQueries.ts b/backend/convex/domains/ai/morningDigestQueries.ts similarity index 100% rename from convex/domains/ai/morningDigestQueries.ts rename to backend/convex/domains/ai/morningDigestQueries.ts diff --git a/convex/domains/ai/realtimeTranscription.ts b/backend/convex/domains/ai/realtimeTranscription.ts similarity index 100% rename from convex/domains/ai/realtimeTranscription.ts rename to backend/convex/domains/ai/realtimeTranscription.ts diff --git a/convex/domains/ai/whisperTranscribe.ts b/backend/convex/domains/ai/whisperTranscribe.ts similarity index 100% rename from convex/domains/ai/whisperTranscribe.ts rename to backend/convex/domains/ai/whisperTranscribe.ts diff --git a/convex/domains/analytics/__tests__/intentSignals.test.ts b/backend/convex/domains/analytics/__tests__/intentSignals.test.ts similarity index 100% rename from convex/domains/analytics/__tests__/intentSignals.test.ts rename to backend/convex/domains/analytics/__tests__/intentSignals.test.ts diff --git a/convex/domains/analytics/analytics.ts b/backend/convex/domains/analytics/analytics.ts similarity index 100% rename from convex/domains/analytics/analytics.ts rename to backend/convex/domains/analytics/analytics.ts diff --git a/convex/domains/analytics/componentMetrics.ts b/backend/convex/domains/analytics/componentMetrics.ts similarity index 100% rename from convex/domains/analytics/componentMetrics.ts rename to backend/convex/domains/analytics/componentMetrics.ts diff --git a/convex/domains/analytics/intentSignals.ts b/backend/convex/domains/analytics/intentSignals.ts similarity index 100% rename from convex/domains/analytics/intentSignals.ts rename to backend/convex/domains/analytics/intentSignals.ts diff --git a/convex/domains/analytics/ossStats.ts b/backend/convex/domains/analytics/ossStats.ts similarity index 100% rename from convex/domains/analytics/ossStats.ts rename to backend/convex/domains/analytics/ossStats.ts diff --git a/convex/domains/artifacts/evidenceIndex.ts b/backend/convex/domains/artifacts/evidenceIndex.ts similarity index 100% rename from convex/domains/artifacts/evidenceIndex.ts rename to backend/convex/domains/artifacts/evidenceIndex.ts diff --git a/convex/domains/artifacts/evidenceIndexActions.ts b/backend/convex/domains/artifacts/evidenceIndexActions.ts similarity index 100% rename from convex/domains/artifacts/evidenceIndexActions.ts rename to backend/convex/domains/artifacts/evidenceIndexActions.ts diff --git a/convex/domains/artifacts/evidencePacks.ts b/backend/convex/domains/artifacts/evidencePacks.ts similarity index 100% rename from convex/domains/artifacts/evidencePacks.ts rename to backend/convex/domains/artifacts/evidencePacks.ts diff --git a/convex/domains/artifacts/evidenceSearch.ts b/backend/convex/domains/artifacts/evidenceSearch.ts similarity index 100% rename from convex/domains/artifacts/evidenceSearch.ts rename to backend/convex/domains/artifacts/evidenceSearch.ts diff --git a/convex/domains/artifacts/sourceArtifacts.ts b/backend/convex/domains/artifacts/sourceArtifacts.ts similarity index 100% rename from convex/domains/artifacts/sourceArtifacts.ts rename to backend/convex/domains/artifacts/sourceArtifacts.ts diff --git a/convex/domains/auth/account.ts b/backend/convex/domains/auth/account.ts similarity index 100% rename from convex/domains/auth/account.ts rename to backend/convex/domains/auth/account.ts diff --git a/convex/domains/auth/apiKeys.ts b/backend/convex/domains/auth/apiKeys.ts similarity index 100% rename from convex/domains/auth/apiKeys.ts rename to backend/convex/domains/auth/apiKeys.ts diff --git a/convex/domains/auth/apiKeysActions.ts b/backend/convex/domains/auth/apiKeysActions.ts similarity index 100% rename from convex/domains/auth/apiKeysActions.ts rename to backend/convex/domains/auth/apiKeysActions.ts diff --git a/convex/domains/auth/auth.config.ts b/backend/convex/domains/auth/auth.config.ts similarity index 100% rename from convex/domains/auth/auth.config.ts rename to backend/convex/domains/auth/auth.config.ts diff --git a/convex/domains/auth/auth.ts b/backend/convex/domains/auth/auth.ts similarity index 100% rename from convex/domains/auth/auth.ts rename to backend/convex/domains/auth/auth.ts diff --git a/convex/domains/auth/index.ts b/backend/convex/domains/auth/index.ts similarity index 100% rename from convex/domains/auth/index.ts rename to backend/convex/domains/auth/index.ts diff --git a/convex/domains/auth/onboarding.ts b/backend/convex/domains/auth/onboarding.ts similarity index 100% rename from convex/domains/auth/onboarding.ts rename to backend/convex/domains/auth/onboarding.ts diff --git a/convex/domains/auth/personas/index.ts b/backend/convex/domains/auth/personas/index.ts similarity index 100% rename from convex/domains/auth/personas/index.ts rename to backend/convex/domains/auth/personas/index.ts diff --git a/convex/domains/auth/personas/multiPersonaSynthesizer.ts b/backend/convex/domains/auth/personas/multiPersonaSynthesizer.ts similarity index 100% rename from convex/domains/auth/personas/multiPersonaSynthesizer.ts rename to backend/convex/domains/auth/personas/multiPersonaSynthesizer.ts diff --git a/convex/domains/auth/personas/personaAutonomousAgent.ts b/backend/convex/domains/auth/personas/personaAutonomousAgent.ts similarity index 100% rename from convex/domains/auth/personas/personaAutonomousAgent.ts rename to backend/convex/domains/auth/personas/personaAutonomousAgent.ts diff --git a/convex/domains/auth/presence.ts b/backend/convex/domains/auth/presence.ts similarity index 100% rename from convex/domains/auth/presence.ts rename to backend/convex/domains/auth/presence.ts diff --git a/convex/domains/auth/usage.ts b/backend/convex/domains/auth/usage.ts similarity index 100% rename from convex/domains/auth/usage.ts rename to backend/convex/domains/auth/usage.ts diff --git a/convex/domains/auth/userPreferences.ts b/backend/convex/domains/auth/userPreferences.ts similarity index 100% rename from convex/domains/auth/userPreferences.ts rename to backend/convex/domains/auth/userPreferences.ts diff --git a/convex/domains/auth/userStats.ts b/backend/convex/domains/auth/userStats.ts similarity index 100% rename from convex/domains/auth/userStats.ts rename to backend/convex/domains/auth/userStats.ts diff --git a/convex/domains/auth/users.ts b/backend/convex/domains/auth/users.ts similarity index 100% rename from convex/domains/auth/users.ts rename to backend/convex/domains/auth/users.ts diff --git a/convex/domains/batchAutopilot/deltaCollector.ts b/backend/convex/domains/batchAutopilot/deltaCollector.ts similarity index 100% rename from convex/domains/batchAutopilot/deltaCollector.ts rename to backend/convex/domains/batchAutopilot/deltaCollector.ts diff --git a/convex/domains/batchAutopilot/mutations.ts b/backend/convex/domains/batchAutopilot/mutations.ts similarity index 100% rename from convex/domains/batchAutopilot/mutations.ts rename to backend/convex/domains/batchAutopilot/mutations.ts diff --git a/convex/domains/batchAutopilot/promptBuilder.ts b/backend/convex/domains/batchAutopilot/promptBuilder.ts similarity index 100% rename from convex/domains/batchAutopilot/promptBuilder.ts rename to backend/convex/domains/batchAutopilot/promptBuilder.ts diff --git a/convex/domains/batchAutopilot/queries.ts b/backend/convex/domains/batchAutopilot/queries.ts similarity index 100% rename from convex/domains/batchAutopilot/queries.ts rename to backend/convex/domains/batchAutopilot/queries.ts diff --git a/convex/domains/batchAutopilot/runner.ts b/backend/convex/domains/batchAutopilot/runner.ts similarity index 100% rename from convex/domains/batchAutopilot/runner.ts rename to backend/convex/domains/batchAutopilot/runner.ts diff --git a/convex/domains/batchAutopilot/scheduler.ts b/backend/convex/domains/batchAutopilot/scheduler.ts similarity index 100% rename from convex/domains/batchAutopilot/scheduler.ts rename to backend/convex/domains/batchAutopilot/scheduler.ts diff --git a/convex/domains/billing/apiUsageTracking.ts b/backend/convex/domains/billing/apiUsageTracking.ts similarity index 100% rename from convex/domains/billing/apiUsageTracking.ts rename to backend/convex/domains/billing/apiUsageTracking.ts diff --git a/convex/domains/billing/billing.ts b/backend/convex/domains/billing/billing.ts similarity index 100% rename from convex/domains/billing/billing.ts rename to backend/convex/domains/billing/billing.ts diff --git a/convex/domains/billing/index.ts b/backend/convex/domains/billing/index.ts similarity index 100% rename from convex/domains/billing/index.ts rename to backend/convex/domains/billing/index.ts diff --git a/convex/domains/billing/rateLimiting.ts b/backend/convex/domains/billing/rateLimiting.ts similarity index 100% rename from convex/domains/billing/rateLimiting.ts rename to backend/convex/domains/billing/rateLimiting.ts diff --git a/convex/domains/blips/blipClaimExtraction.ts b/backend/convex/domains/blips/blipClaimExtraction.ts similarity index 100% rename from convex/domains/blips/blipClaimExtraction.ts rename to backend/convex/domains/blips/blipClaimExtraction.ts diff --git a/convex/domains/blips/blipGeneration.ts b/backend/convex/domains/blips/blipGeneration.ts similarity index 100% rename from convex/domains/blips/blipGeneration.ts rename to backend/convex/domains/blips/blipGeneration.ts diff --git a/convex/domains/blips/blipIngestion.ts b/backend/convex/domains/blips/blipIngestion.ts similarity index 100% rename from convex/domains/blips/blipIngestion.ts rename to backend/convex/domains/blips/blipIngestion.ts diff --git a/convex/domains/blips/blipMutations.ts b/backend/convex/domains/blips/blipMutations.ts similarity index 100% rename from convex/domains/blips/blipMutations.ts rename to backend/convex/domains/blips/blipMutations.ts diff --git a/convex/domains/blips/blipPersonaLens.ts b/backend/convex/domains/blips/blipPersonaLens.ts similarity index 100% rename from convex/domains/blips/blipPersonaLens.ts rename to backend/convex/domains/blips/blipPersonaLens.ts diff --git a/convex/domains/blips/blipPipeline.ts b/backend/convex/domains/blips/blipPipeline.ts similarity index 100% rename from convex/domains/blips/blipPipeline.ts rename to backend/convex/domains/blips/blipPipeline.ts diff --git a/convex/domains/blips/blipQueries.ts b/backend/convex/domains/blips/blipQueries.ts similarity index 100% rename from convex/domains/blips/blipQueries.ts rename to backend/convex/domains/blips/blipQueries.ts diff --git a/convex/domains/blips/blipVerification.ts b/backend/convex/domains/blips/blipVerification.ts similarity index 100% rename from convex/domains/blips/blipVerification.ts rename to backend/convex/domains/blips/blipVerification.ts diff --git a/convex/domains/blips/index.ts b/backend/convex/domains/blips/index.ts similarity index 100% rename from convex/domains/blips/index.ts rename to backend/convex/domains/blips/index.ts diff --git a/convex/domains/blips/types.ts b/backend/convex/domains/blips/types.ts similarity index 100% rename from convex/domains/blips/types.ts rename to backend/convex/domains/blips/types.ts diff --git a/convex/domains/calendar/calendar.ts b/backend/convex/domains/calendar/calendar.ts similarity index 100% rename from convex/domains/calendar/calendar.ts rename to backend/convex/domains/calendar/calendar.ts diff --git a/convex/domains/calendar/events.ts b/backend/convex/domains/calendar/events.ts similarity index 100% rename from convex/domains/calendar/events.ts rename to backend/convex/domains/calendar/events.ts diff --git a/convex/domains/calendar/holidays.ts b/backend/convex/domains/calendar/holidays.ts similarity index 100% rename from convex/domains/calendar/holidays.ts rename to backend/convex/domains/calendar/holidays.ts diff --git a/convex/domains/calendar/holidaysActions.ts b/backend/convex/domains/calendar/holidaysActions.ts similarity index 100% rename from convex/domains/calendar/holidaysActions.ts rename to backend/convex/domains/calendar/holidaysActions.ts diff --git a/convex/domains/calendar/index.ts b/backend/convex/domains/calendar/index.ts similarity index 100% rename from convex/domains/calendar/index.ts rename to backend/convex/domains/calendar/index.ts diff --git a/convex/domains/canonicalization/duplicateDetection.ts b/backend/convex/domains/canonicalization/duplicateDetection.ts similarity index 100% rename from convex/domains/canonicalization/duplicateDetection.ts rename to backend/convex/domains/canonicalization/duplicateDetection.ts diff --git a/convex/domains/channels/channelIntelligence.ts b/backend/convex/domains/channels/channelIntelligence.ts similarity index 100% rename from convex/domains/channels/channelIntelligence.ts rename to backend/convex/domains/channels/channelIntelligence.ts diff --git a/convex/domains/channels/engagementOptimizer.ts b/backend/convex/domains/channels/engagementOptimizer.ts similarity index 100% rename from convex/domains/channels/engagementOptimizer.ts rename to backend/convex/domains/channels/engagementOptimizer.ts diff --git a/convex/domains/channels/index.ts b/backend/convex/domains/channels/index.ts similarity index 100% rename from convex/domains/channels/index.ts rename to backend/convex/domains/channels/index.ts diff --git a/convex/domains/deepTrace/causalChainEngine.ts b/backend/convex/domains/deepTrace/causalChainEngine.ts similarity index 100% rename from convex/domains/deepTrace/causalChainEngine.ts rename to backend/convex/domains/deepTrace/causalChainEngine.ts diff --git a/convex/domains/deepTrace/dimensionEngine.ts b/backend/convex/domains/deepTrace/dimensionEngine.ts similarity index 100% rename from convex/domains/deepTrace/dimensionEngine.ts rename to backend/convex/domains/deepTrace/dimensionEngine.ts diff --git a/convex/domains/deepTrace/dimensionModel.ts b/backend/convex/domains/deepTrace/dimensionModel.ts similarity index 100% rename from convex/domains/deepTrace/dimensionModel.ts rename to backend/convex/domains/deepTrace/dimensionModel.ts diff --git a/convex/domains/deepTrace/dimensions.ts b/backend/convex/domains/deepTrace/dimensions.ts similarity index 100% rename from convex/domains/deepTrace/dimensions.ts rename to backend/convex/domains/deepTrace/dimensions.ts diff --git a/convex/domains/deepTrace/heuristics.test.ts b/backend/convex/domains/deepTrace/heuristics.test.ts similarity index 100% rename from convex/domains/deepTrace/heuristics.test.ts rename to backend/convex/domains/deepTrace/heuristics.test.ts diff --git a/convex/domains/deepTrace/heuristics.ts b/backend/convex/domains/deepTrace/heuristics.ts similarity index 100% rename from convex/domains/deepTrace/heuristics.ts rename to backend/convex/domains/deepTrace/heuristics.ts diff --git a/convex/domains/deepTrace/integrations.ts b/backend/convex/domains/deepTrace/integrations.ts similarity index 100% rename from convex/domains/deepTrace/integrations.ts rename to backend/convex/domains/deepTrace/integrations.ts diff --git a/convex/domains/deepTrace/researchCell.test.ts b/backend/convex/domains/deepTrace/researchCell.test.ts similarity index 100% rename from convex/domains/deepTrace/researchCell.test.ts rename to backend/convex/domains/deepTrace/researchCell.test.ts diff --git a/convex/domains/deepTrace/researchCell.ts b/backend/convex/domains/deepTrace/researchCell.ts similarity index 100% rename from convex/domains/deepTrace/researchCell.ts rename to backend/convex/domains/deepTrace/researchCell.ts diff --git a/convex/domains/deepTrace/schema.ts b/backend/convex/domains/deepTrace/schema.ts similarity index 100% rename from convex/domains/deepTrace/schema.ts rename to backend/convex/domains/deepTrace/schema.ts diff --git a/convex/domains/documents/artifacts/evidenceIndex.ts b/backend/convex/domains/documents/artifacts/evidenceIndex.ts similarity index 100% rename from convex/domains/documents/artifacts/evidenceIndex.ts rename to backend/convex/domains/documents/artifacts/evidenceIndex.ts diff --git a/convex/domains/documents/artifacts/evidenceIndexActions.ts b/backend/convex/domains/documents/artifacts/evidenceIndexActions.ts similarity index 100% rename from convex/domains/documents/artifacts/evidenceIndexActions.ts rename to backend/convex/domains/documents/artifacts/evidenceIndexActions.ts diff --git a/convex/domains/documents/artifacts/evidencePacks.ts b/backend/convex/domains/documents/artifacts/evidencePacks.ts similarity index 100% rename from convex/domains/documents/artifacts/evidencePacks.ts rename to backend/convex/domains/documents/artifacts/evidencePacks.ts diff --git a/convex/domains/documents/artifacts/evidenceSearch.ts b/backend/convex/domains/documents/artifacts/evidenceSearch.ts similarity index 100% rename from convex/domains/documents/artifacts/evidenceSearch.ts rename to backend/convex/domains/documents/artifacts/evidenceSearch.ts diff --git a/convex/domains/documents/artifacts/ingestionPipeline.ts b/backend/convex/domains/documents/artifacts/ingestionPipeline.ts similarity index 100% rename from convex/domains/documents/artifacts/ingestionPipeline.ts rename to backend/convex/domains/documents/artifacts/ingestionPipeline.ts diff --git a/convex/domains/documents/artifacts/sourceArtifacts.ts b/backend/convex/domains/documents/artifacts/sourceArtifacts.ts similarity index 100% rename from convex/domains/documents/artifacts/sourceArtifacts.ts rename to backend/convex/domains/documents/artifacts/sourceArtifacts.ts diff --git a/convex/domains/documents/batchOperations.ts b/backend/convex/domains/documents/batchOperations.ts similarity index 100% rename from convex/domains/documents/batchOperations.ts rename to backend/convex/domains/documents/batchOperations.ts diff --git a/convex/domains/documents/calendar/calendar.ts b/backend/convex/domains/documents/calendar/calendar.ts similarity index 100% rename from convex/domains/documents/calendar/calendar.ts rename to backend/convex/domains/documents/calendar/calendar.ts diff --git a/convex/domains/documents/calendar/events.ts b/backend/convex/domains/documents/calendar/events.ts similarity index 100% rename from convex/domains/documents/calendar/events.ts rename to backend/convex/domains/documents/calendar/events.ts diff --git a/convex/domains/documents/calendar/holidays.ts b/backend/convex/domains/documents/calendar/holidays.ts similarity index 100% rename from convex/domains/documents/calendar/holidays.ts rename to backend/convex/domains/documents/calendar/holidays.ts diff --git a/convex/domains/documents/calendar/holidaysActions.ts b/backend/convex/domains/documents/calendar/holidaysActions.ts similarity index 100% rename from convex/domains/documents/calendar/holidaysActions.ts rename to backend/convex/domains/documents/calendar/holidaysActions.ts diff --git a/convex/domains/documents/calendar/index.ts b/backend/convex/domains/documents/calendar/index.ts similarity index 100% rename from convex/domains/documents/calendar/index.ts rename to backend/convex/domains/documents/calendar/index.ts diff --git a/convex/domains/documents/chunks.ts b/backend/convex/domains/documents/chunks.ts similarity index 100% rename from convex/domains/documents/chunks.ts rename to backend/convex/domains/documents/chunks.ts diff --git a/convex/domains/documents/citationValidator.ts b/backend/convex/domains/documents/citationValidator.ts similarity index 100% rename from convex/domains/documents/citationValidator.ts rename to backend/convex/domains/documents/citationValidator.ts diff --git a/convex/domains/documents/citations.ts b/backend/convex/domains/documents/citations.ts similarity index 100% rename from convex/domains/documents/citations.ts rename to backend/convex/domains/documents/citations.ts diff --git a/convex/domains/documents/documentEvents.ts b/backend/convex/domains/documents/documentEvents.ts similarity index 100% rename from convex/domains/documents/documentEvents.ts rename to backend/convex/domains/documents/documentEvents.ts diff --git a/convex/domains/documents/documentMetadataParser.ts b/backend/convex/domains/documents/documentMetadataParser.ts similarity index 100% rename from convex/domains/documents/documentMetadataParser.ts rename to backend/convex/domains/documents/documentMetadataParser.ts diff --git a/convex/domains/documents/documentTasks.ts b/backend/convex/domains/documents/documentTasks.ts similarity index 100% rename from convex/domains/documents/documentTasks.ts rename to backend/convex/domains/documents/documentTasks.ts diff --git a/convex/domains/documents/documentVersions.ts b/backend/convex/domains/documents/documentVersions.ts similarity index 100% rename from convex/domains/documents/documentVersions.ts rename to backend/convex/domains/documents/documentVersions.ts diff --git a/convex/domains/documents/documents.ts b/backend/convex/domains/documents/documents.ts similarity index 100% rename from convex/domains/documents/documents.ts rename to backend/convex/domains/documents/documents.ts diff --git a/convex/domains/documents/dossier/annotations.ts b/backend/convex/domains/documents/dossier/annotations.ts similarity index 100% rename from convex/domains/documents/dossier/annotations.ts rename to backend/convex/domains/documents/dossier/annotations.ts diff --git a/convex/domains/documents/dossier/enrichment.ts b/backend/convex/domains/documents/dossier/enrichment.ts similarity index 100% rename from convex/domains/documents/dossier/enrichment.ts rename to backend/convex/domains/documents/dossier/enrichment.ts diff --git a/convex/domains/documents/dossier/focusState.ts b/backend/convex/domains/documents/dossier/focusState.ts similarity index 100% rename from convex/domains/documents/dossier/focusState.ts rename to backend/convex/domains/documents/dossier/focusState.ts diff --git a/convex/domains/documents/dossier/index.ts b/backend/convex/domains/documents/dossier/index.ts similarity index 100% rename from convex/domains/documents/dossier/index.ts rename to backend/convex/domains/documents/dossier/index.ts diff --git a/convex/domains/documents/dossier/schema.ts b/backend/convex/domains/documents/dossier/schema.ts similarity index 100% rename from convex/domains/documents/dossier/schema.ts rename to backend/convex/domains/documents/dossier/schema.ts diff --git a/convex/domains/documents/exportDocument.ts b/backend/convex/domains/documents/exportDocument.ts similarity index 100% rename from convex/domains/documents/exportDocument.ts rename to backend/convex/domains/documents/exportDocument.ts diff --git a/convex/domains/documents/fileAnalysis.ts b/backend/convex/domains/documents/fileAnalysis.ts similarity index 100% rename from convex/domains/documents/fileAnalysis.ts rename to backend/convex/domains/documents/fileAnalysis.ts diff --git a/convex/domains/documents/fileDocuments.ts b/backend/convex/domains/documents/fileDocuments.ts similarity index 100% rename from convex/domains/documents/fileDocuments.ts rename to backend/convex/domains/documents/fileDocuments.ts diff --git a/convex/domains/documents/fileQueries.ts b/backend/convex/domains/documents/fileQueries.ts similarity index 100% rename from convex/domains/documents/fileQueries.ts rename to backend/convex/domains/documents/fileQueries.ts diff --git a/convex/domains/documents/fileSearch.ts b/backend/convex/domains/documents/fileSearch.ts similarity index 100% rename from convex/domains/documents/fileSearch.ts rename to backend/convex/domains/documents/fileSearch.ts diff --git a/convex/domains/documents/fileSearchData.ts b/backend/convex/domains/documents/fileSearchData.ts similarity index 100% rename from convex/domains/documents/fileSearchData.ts rename to backend/convex/domains/documents/fileSearchData.ts diff --git a/convex/domains/documents/files.ts b/backend/convex/domains/documents/files.ts similarity index 100% rename from convex/domains/documents/files.ts rename to backend/convex/domains/documents/files.ts diff --git a/convex/domains/documents/folders.ts b/backend/convex/domains/documents/folders.ts similarity index 100% rename from convex/domains/documents/folders.ts rename to backend/convex/domains/documents/folders.ts diff --git a/convex/domains/documents/gridProjects.ts b/backend/convex/domains/documents/gridProjects.ts similarity index 100% rename from convex/domains/documents/gridProjects.ts rename to backend/convex/domains/documents/gridProjects.ts diff --git a/convex/domains/documents/index.ts b/backend/convex/domains/documents/index.ts similarity index 100% rename from convex/domains/documents/index.ts rename to backend/convex/domains/documents/index.ts diff --git a/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts b/backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts similarity index 100% rename from convex/domains/documents/mcpDocumentEndpoints.auth.test.ts rename to backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts diff --git a/convex/domains/documents/mcpDocumentEndpoints.ts b/backend/convex/domains/documents/mcpDocumentEndpoints.ts similarity index 100% rename from convex/domains/documents/mcpDocumentEndpoints.ts rename to backend/convex/domains/documents/mcpDocumentEndpoints.ts diff --git a/convex/domains/documents/pdfAnalysis.ts b/backend/convex/domains/documents/pdfAnalysis.ts similarity index 100% rename from convex/domains/documents/pdfAnalysis.ts rename to backend/convex/domains/documents/pdfAnalysis.ts diff --git a/convex/domains/documents/pdfInsights.ts b/backend/convex/domains/documents/pdfInsights.ts similarity index 100% rename from convex/domains/documents/pdfInsights.ts rename to backend/convex/domains/documents/pdfInsights.ts diff --git a/convex/domains/documents/pendingEdits.ts b/backend/convex/domains/documents/pendingEdits.ts similarity index 100% rename from convex/domains/documents/pendingEdits.ts rename to backend/convex/domains/documents/pendingEdits.ts diff --git a/convex/domains/documents/prosemirror.ts b/backend/convex/domains/documents/prosemirror.ts similarity index 100% rename from convex/domains/documents/prosemirror.ts rename to backend/convex/domains/documents/prosemirror.ts diff --git a/convex/domains/documents/quickCapture/index.ts b/backend/convex/domains/documents/quickCapture/index.ts similarity index 100% rename from convex/domains/documents/quickCapture/index.ts rename to backend/convex/domains/documents/quickCapture/index.ts diff --git a/convex/domains/documents/quickCapture/quickCapture.ts b/backend/convex/domains/documents/quickCapture/quickCapture.ts similarity index 100% rename from convex/domains/documents/quickCapture/quickCapture.ts rename to backend/convex/domains/documents/quickCapture/quickCapture.ts diff --git a/convex/domains/documents/quickCapture/voiceMemos.ts b/backend/convex/domains/documents/quickCapture/voiceMemos.ts similarity index 100% rename from convex/domains/documents/quickCapture/voiceMemos.ts rename to backend/convex/domains/documents/quickCapture/voiceMemos.ts diff --git a/convex/domains/documents/reportDocuments.ts b/backend/convex/domains/documents/reportDocuments.ts similarity index 100% rename from convex/domains/documents/reportDocuments.ts rename to backend/convex/domains/documents/reportDocuments.ts diff --git a/convex/domains/documents/search.ts b/backend/convex/domains/documents/search.ts similarity index 100% rename from convex/domains/documents/search.ts rename to backend/convex/domains/documents/search.ts diff --git a/convex/domains/documents/smartDateExtraction.ts b/backend/convex/domains/documents/smartDateExtraction.ts similarity index 100% rename from convex/domains/documents/smartDateExtraction.ts rename to backend/convex/domains/documents/smartDateExtraction.ts diff --git a/convex/domains/documents/sync.ts b/backend/convex/domains/documents/sync.ts similarity index 100% rename from convex/domains/documents/sync.ts rename to backend/convex/domains/documents/sync.ts diff --git a/convex/domains/documents/syncMutations.ts b/backend/convex/domains/documents/syncMutations.ts similarity index 100% rename from convex/domains/documents/syncMutations.ts rename to backend/convex/domains/documents/syncMutations.ts diff --git a/convex/domains/dogfood/screenshotQa.ts b/backend/convex/domains/dogfood/screenshotQa.ts similarity index 100% rename from convex/domains/dogfood/screenshotQa.ts rename to backend/convex/domains/dogfood/screenshotQa.ts diff --git a/convex/domains/dogfood/videoQa.ts b/backend/convex/domains/dogfood/videoQa.ts similarity index 100% rename from convex/domains/dogfood/videoQa.ts rename to backend/convex/domains/dogfood/videoQa.ts diff --git a/convex/domains/dogfood/videoQaMutations.ts b/backend/convex/domains/dogfood/videoQaMutations.ts similarity index 100% rename from convex/domains/dogfood/videoQaMutations.ts rename to backend/convex/domains/dogfood/videoQaMutations.ts diff --git a/convex/domains/dogfood/videoQaQueries.ts b/backend/convex/domains/dogfood/videoQaQueries.ts similarity index 100% rename from convex/domains/dogfood/videoQaQueries.ts rename to backend/convex/domains/dogfood/videoQaQueries.ts diff --git a/convex/domains/dossier/annotations.ts b/backend/convex/domains/dossier/annotations.ts similarity index 100% rename from convex/domains/dossier/annotations.ts rename to backend/convex/domains/dossier/annotations.ts diff --git a/convex/domains/dossier/enrichment.ts b/backend/convex/domains/dossier/enrichment.ts similarity index 100% rename from convex/domains/dossier/enrichment.ts rename to backend/convex/domains/dossier/enrichment.ts diff --git a/convex/domains/dossier/focusState.ts b/backend/convex/domains/dossier/focusState.ts similarity index 100% rename from convex/domains/dossier/focusState.ts rename to backend/convex/domains/dossier/focusState.ts diff --git a/convex/domains/dossier/index.ts b/backend/convex/domains/dossier/index.ts similarity index 100% rename from convex/domains/dossier/index.ts rename to backend/convex/domains/dossier/index.ts diff --git a/convex/domains/dossier/schema.ts b/backend/convex/domains/dossier/schema.ts similarity index 100% rename from convex/domains/dossier/schema.ts rename to backend/convex/domains/dossier/schema.ts diff --git a/convex/domains/encounters/encounterCapture.ts b/backend/convex/domains/encounters/encounterCapture.ts similarity index 100% rename from convex/domains/encounters/encounterCapture.ts rename to backend/convex/domains/encounters/encounterCapture.ts diff --git a/convex/domains/encounters/encounterFastPass.ts b/backend/convex/domains/encounters/encounterFastPass.ts similarity index 100% rename from convex/domains/encounters/encounterFastPass.ts rename to backend/convex/domains/encounters/encounterFastPass.ts diff --git a/convex/domains/encounters/encounterMutations.ts b/backend/convex/domains/encounters/encounterMutations.ts similarity index 100% rename from convex/domains/encounters/encounterMutations.ts rename to backend/convex/domains/encounters/encounterMutations.ts diff --git a/convex/domains/encounters/encounterQueries.ts b/backend/convex/domains/encounters/encounterQueries.ts similarity index 100% rename from convex/domains/encounters/encounterQueries.ts rename to backend/convex/domains/encounters/encounterQueries.ts diff --git a/convex/domains/encounters/index.ts b/backend/convex/domains/encounters/index.ts similarity index 100% rename from convex/domains/encounters/index.ts rename to backend/convex/domains/encounters/index.ts diff --git a/convex/domains/encounters/types.ts b/backend/convex/domains/encounters/types.ts similarity index 100% rename from convex/domains/encounters/types.ts rename to backend/convex/domains/encounters/types.ts diff --git a/convex/domains/enrichment/backfillMetadata.ts b/backend/convex/domains/enrichment/backfillMetadata.ts similarity index 100% rename from convex/domains/enrichment/backfillMetadata.ts rename to backend/convex/domains/enrichment/backfillMetadata.ts diff --git a/convex/domains/enrichment/betterSectorClassifier.ts b/backend/convex/domains/enrichment/betterSectorClassifier.ts similarity index 100% rename from convex/domains/enrichment/betterSectorClassifier.ts rename to backend/convex/domains/enrichment/betterSectorClassifier.ts diff --git a/convex/domains/enrichment/canonicalization/duplicateDetection.ts b/backend/convex/domains/enrichment/canonicalization/duplicateDetection.ts similarity index 100% rename from convex/domains/enrichment/canonicalization/duplicateDetection.ts rename to backend/convex/domains/enrichment/canonicalization/duplicateDetection.ts diff --git a/convex/domains/enrichment/dataCleanup.ts b/backend/convex/domains/enrichment/dataCleanup.ts similarity index 100% rename from convex/domains/enrichment/dataCleanup.ts rename to backend/convex/domains/enrichment/dataCleanup.ts diff --git a/convex/domains/enrichment/deleteDuplicates.ts b/backend/convex/domains/enrichment/deleteDuplicates.ts similarity index 100% rename from convex/domains/enrichment/deleteDuplicates.ts rename to backend/convex/domains/enrichment/deleteDuplicates.ts diff --git a/convex/domains/enrichment/documentStore.ts b/backend/convex/domains/enrichment/documentStore.ts similarity index 100% rename from convex/domains/enrichment/documentStore.ts rename to backend/convex/domains/enrichment/documentStore.ts diff --git a/convex/domains/enrichment/enrichmentQueue.ts b/backend/convex/domains/enrichment/enrichmentQueue.ts similarity index 100% rename from convex/domains/enrichment/enrichmentQueue.ts rename to backend/convex/domains/enrichment/enrichmentQueue.ts diff --git a/convex/domains/enrichment/enrichmentWorker.ts b/backend/convex/domains/enrichment/enrichmentWorker.ts similarity index 100% rename from convex/domains/enrichment/enrichmentWorker.ts rename to backend/convex/domains/enrichment/enrichmentWorker.ts diff --git a/convex/domains/enrichment/entityBackfill.ts b/backend/convex/domains/enrichment/entityBackfill.ts similarity index 100% rename from convex/domains/enrichment/entityBackfill.ts rename to backend/convex/domains/enrichment/entityBackfill.ts diff --git a/convex/domains/enrichment/entityLinkingJudge.ts b/backend/convex/domains/enrichment/entityLinkingJudge.ts similarity index 100% rename from convex/domains/enrichment/entityLinkingJudge.ts rename to backend/convex/domains/enrichment/entityLinkingJudge.ts diff --git a/convex/domains/enrichment/entityLinkingMutations.ts b/backend/convex/domains/enrichment/entityLinkingMutations.ts similarity index 100% rename from convex/domains/enrichment/entityLinkingMutations.ts rename to backend/convex/domains/enrichment/entityLinkingMutations.ts diff --git a/convex/domains/enrichment/entityLinkingQueries.ts b/backend/convex/domains/enrichment/entityLinkingQueries.ts similarity index 100% rename from convex/domains/enrichment/entityLinkingQueries.ts rename to backend/convex/domains/enrichment/entityLinkingQueries.ts diff --git a/convex/domains/enrichment/entityLinkingService.ts b/backend/convex/domains/enrichment/entityLinkingService.ts similarity index 100% rename from convex/domains/enrichment/entityLinkingService.ts rename to backend/convex/domains/enrichment/entityLinkingService.ts diff --git a/convex/domains/enrichment/entityPromotion.ts b/backend/convex/domains/enrichment/entityPromotion.ts similarity index 100% rename from convex/domains/enrichment/entityPromotion.ts rename to backend/convex/domains/enrichment/entityPromotion.ts diff --git a/convex/domains/enrichment/fundingDetection.ts b/backend/convex/domains/enrichment/fundingDetection.ts similarity index 100% rename from convex/domains/enrichment/fundingDetection.ts rename to backend/convex/domains/enrichment/fundingDetection.ts diff --git a/convex/domains/enrichment/fundingMutations.ts b/backend/convex/domains/enrichment/fundingMutations.ts similarity index 100% rename from convex/domains/enrichment/fundingMutations.ts rename to backend/convex/domains/enrichment/fundingMutations.ts diff --git a/convex/domains/enrichment/fundingQueries.ts b/backend/convex/domains/enrichment/fundingQueries.ts similarity index 100% rename from convex/domains/enrichment/fundingQueries.ts rename to backend/convex/domains/enrichment/fundingQueries.ts diff --git a/convex/domains/enrichment/fundingVerification.ts b/backend/convex/domains/enrichment/fundingVerification.ts similarity index 100% rename from convex/domains/enrichment/fundingVerification.ts rename to backend/convex/domains/enrichment/fundingVerification.ts diff --git a/convex/domains/enrichment/llmCompanyExtraction.ts b/backend/convex/domains/enrichment/llmCompanyExtraction.ts similarity index 100% rename from convex/domains/enrichment/llmCompanyExtraction.ts rename to backend/convex/domains/enrichment/llmCompanyExtraction.ts diff --git a/convex/domains/enrichment/llmEnrichment.ts b/backend/convex/domains/enrichment/llmEnrichment.ts similarity index 100% rename from convex/domains/enrichment/llmEnrichment.ts rename to backend/convex/domains/enrichment/llmEnrichment.ts diff --git a/convex/domains/enrichment/quickVerificationUpgrade.ts b/backend/convex/domains/enrichment/quickVerificationUpgrade.ts similarity index 100% rename from convex/domains/enrichment/quickVerificationUpgrade.ts rename to backend/convex/domains/enrichment/quickVerificationUpgrade.ts diff --git a/convex/domains/enrichment/signals/index.ts b/backend/convex/domains/enrichment/signals/index.ts similarity index 100% rename from convex/domains/enrichment/signals/index.ts rename to backend/convex/domains/enrichment/signals/index.ts diff --git a/convex/domains/enrichment/signals/signalIngester.ts b/backend/convex/domains/enrichment/signals/signalIngester.ts similarity index 100% rename from convex/domains/enrichment/signals/signalIngester.ts rename to backend/convex/domains/enrichment/signals/signalIngester.ts diff --git a/convex/domains/enrichment/signals/signalProcessor.ts b/backend/convex/domains/enrichment/signals/signalProcessor.ts similarity index 100% rename from convex/domains/enrichment/signals/signalProcessor.ts rename to backend/convex/domains/enrichment/signals/signalProcessor.ts diff --git a/convex/domains/enrichment/testQueries.ts b/backend/convex/domains/enrichment/testQueries.ts similarity index 100% rename from convex/domains/enrichment/testQueries.ts rename to backend/convex/domains/enrichment/testQueries.ts diff --git a/convex/domains/enrichment/useOfProceedsExtractor.ts b/backend/convex/domains/enrichment/useOfProceedsExtractor.ts similarity index 100% rename from convex/domains/enrichment/useOfProceedsExtractor.ts rename to backend/convex/domains/enrichment/useOfProceedsExtractor.ts diff --git a/convex/domains/enrichment/workpools.ts b/backend/convex/domains/enrichment/workpools.ts similarity index 100% rename from convex/domains/enrichment/workpools.ts rename to backend/convex/domains/enrichment/workpools.ts diff --git a/convex/domains/entities/decayManager.ts b/backend/convex/domains/entities/decayManager.ts similarity index 100% rename from convex/domains/entities/decayManager.ts rename to backend/convex/domains/entities/decayManager.ts diff --git a/convex/domains/entities/entityLifecycle.ts b/backend/convex/domains/entities/entityLifecycle.ts similarity index 100% rename from convex/domains/entities/entityLifecycle.ts rename to backend/convex/domains/entities/entityLifecycle.ts diff --git a/convex/domains/entities/index.ts b/backend/convex/domains/entities/index.ts similarity index 100% rename from convex/domains/entities/index.ts rename to backend/convex/domains/entities/index.ts diff --git a/convex/domains/eval/evalHelpers.ts b/backend/convex/domains/eval/evalHelpers.ts similarity index 100% rename from convex/domains/eval/evalHelpers.ts rename to backend/convex/domains/eval/evalHelpers.ts diff --git a/convex/domains/eval/evalMutations.ts b/backend/convex/domains/eval/evalMutations.ts similarity index 100% rename from convex/domains/eval/evalMutations.ts rename to backend/convex/domains/eval/evalMutations.ts diff --git a/convex/domains/eval/evalStorage.ts b/backend/convex/domains/eval/evalStorage.ts similarity index 100% rename from convex/domains/eval/evalStorage.ts rename to backend/convex/domains/eval/evalStorage.ts diff --git a/convex/domains/eval/productionTestCases.ts b/backend/convex/domains/eval/productionTestCases.ts similarity index 100% rename from convex/domains/eval/productionTestCases.ts rename to backend/convex/domains/eval/productionTestCases.ts diff --git a/convex/domains/eval/runBatch.ts b/backend/convex/domains/eval/runBatch.ts similarity index 100% rename from convex/domains/eval/runBatch.ts rename to backend/convex/domains/eval/runBatch.ts diff --git a/convex/domains/eval/runBatchNative.ts b/backend/convex/domains/eval/runBatchNative.ts similarity index 100% rename from convex/domains/eval/runBatchNative.ts rename to backend/convex/domains/eval/runBatchNative.ts diff --git a/convex/domains/evaluation/README.md b/backend/convex/domains/evaluation/README.md similarity index 100% rename from convex/domains/evaluation/README.md rename to backend/convex/domains/evaluation/README.md diff --git a/convex/domains/evaluation/agentRunJudge.ts b/backend/convex/domains/evaluation/agentRunJudge.ts similarity index 100% rename from convex/domains/evaluation/agentRunJudge.ts rename to backend/convex/domains/evaluation/agentRunJudge.ts diff --git a/convex/domains/evaluation/benchmarkHarness.ts b/backend/convex/domains/evaluation/benchmarkHarness.ts similarity index 100% rename from convex/domains/evaluation/benchmarkHarness.ts rename to backend/convex/domains/evaluation/benchmarkHarness.ts diff --git a/convex/domains/evaluation/booleanEvaluator.ts b/backend/convex/domains/evaluation/booleanEvaluator.ts similarity index 100% rename from convex/domains/evaluation/booleanEvaluator.ts rename to backend/convex/domains/evaluation/booleanEvaluator.ts diff --git a/convex/domains/evaluation/comprehensiveEval.ts b/backend/convex/domains/evaluation/comprehensiveEval.ts similarity index 100% rename from convex/domains/evaluation/comprehensiveEval.ts rename to backend/convex/domains/evaluation/comprehensiveEval.ts diff --git a/convex/domains/evaluation/cronHandlers.ts b/backend/convex/domains/evaluation/cronHandlers.ts similarity index 100% rename from convex/domains/evaluation/cronHandlers.ts rename to backend/convex/domains/evaluation/cronHandlers.ts diff --git a/convex/domains/evaluation/ddEvaluation.ts b/backend/convex/domains/evaluation/ddEvaluation.ts similarity index 100% rename from convex/domains/evaluation/ddEvaluation.ts rename to backend/convex/domains/evaluation/ddEvaluation.ts diff --git a/convex/domains/evaluation/dogfood/screenshotQa.ts b/backend/convex/domains/evaluation/dogfood/screenshotQa.ts similarity index 100% rename from convex/domains/evaluation/dogfood/screenshotQa.ts rename to backend/convex/domains/evaluation/dogfood/screenshotQa.ts diff --git a/convex/domains/evaluation/dogfood/videoQa.ts b/backend/convex/domains/evaluation/dogfood/videoQa.ts similarity index 100% rename from convex/domains/evaluation/dogfood/videoQa.ts rename to backend/convex/domains/evaluation/dogfood/videoQa.ts diff --git a/convex/domains/evaluation/dogfood/videoQaMutations.ts b/backend/convex/domains/evaluation/dogfood/videoQaMutations.ts similarity index 100% rename from convex/domains/evaluation/dogfood/videoQaMutations.ts rename to backend/convex/domains/evaluation/dogfood/videoQaMutations.ts diff --git a/convex/domains/evaluation/dogfood/videoQaQueries.ts b/backend/convex/domains/evaluation/dogfood/videoQaQueries.ts similarity index 100% rename from convex/domains/evaluation/dogfood/videoQaQueries.ts rename to backend/convex/domains/evaluation/dogfood/videoQaQueries.ts diff --git a/convex/domains/evaluation/e2eValidation.ts b/backend/convex/domains/evaluation/e2eValidation.ts similarity index 100% rename from convex/domains/evaluation/e2eValidation.ts rename to backend/convex/domains/evaluation/e2eValidation.ts diff --git a/convex/domains/evaluation/eval/evalHelpers.ts b/backend/convex/domains/evaluation/eval/evalHelpers.ts similarity index 100% rename from convex/domains/evaluation/eval/evalHelpers.ts rename to backend/convex/domains/evaluation/eval/evalHelpers.ts diff --git a/convex/domains/evaluation/eval/evalMutations.ts b/backend/convex/domains/evaluation/eval/evalMutations.ts similarity index 100% rename from convex/domains/evaluation/eval/evalMutations.ts rename to backend/convex/domains/evaluation/eval/evalMutations.ts diff --git a/convex/domains/evaluation/eval/evalStorage.ts b/backend/convex/domains/evaluation/eval/evalStorage.ts similarity index 100% rename from convex/domains/evaluation/eval/evalStorage.ts rename to backend/convex/domains/evaluation/eval/evalStorage.ts diff --git a/convex/domains/evaluation/eval/productionTestCases.ts b/backend/convex/domains/evaluation/eval/productionTestCases.ts similarity index 100% rename from convex/domains/evaluation/eval/productionTestCases.ts rename to backend/convex/domains/evaluation/eval/productionTestCases.ts diff --git a/convex/domains/evaluation/eval/runBatch.ts b/backend/convex/domains/evaluation/eval/runBatch.ts similarity index 100% rename from convex/domains/evaluation/eval/runBatch.ts rename to backend/convex/domains/evaluation/eval/runBatch.ts diff --git a/convex/domains/evaluation/eval/runBatchNative.ts b/backend/convex/domains/evaluation/eval/runBatchNative.ts similarity index 100% rename from convex/domains/evaluation/eval/runBatchNative.ts rename to backend/convex/domains/evaluation/eval/runBatchNative.ts diff --git a/convex/domains/evaluation/evalHarness.ts b/backend/convex/domains/evaluation/evalHarness.ts similarity index 100% rename from convex/domains/evaluation/evalHarness.ts rename to backend/convex/domains/evaluation/evalHarness.ts diff --git a/convex/domains/evaluation/evalRunTracking.ts b/backend/convex/domains/evaluation/evalRunTracking.ts similarity index 100% rename from convex/domains/evaluation/evalRunTracking.ts rename to backend/convex/domains/evaluation/evalRunTracking.ts diff --git a/convex/domains/evaluation/evaluationPrompts.ts b/backend/convex/domains/evaluation/evaluationPrompts.ts similarity index 100% rename from convex/domains/evaluation/evaluationPrompts.ts rename to backend/convex/domains/evaluation/evaluationPrompts.ts diff --git a/convex/domains/evaluation/evaluationSafeResponse.test.ts b/backend/convex/domains/evaluation/evaluationSafeResponse.test.ts similarity index 100% rename from convex/domains/evaluation/evaluationSafeResponse.test.ts rename to backend/convex/domains/evaluation/evaluationSafeResponse.test.ts diff --git a/convex/domains/evaluation/evaluationSafeResponse.ts b/backend/convex/domains/evaluation/evaluationSafeResponse.ts similarity index 100% rename from convex/domains/evaluation/evaluationSafeResponse.ts rename to backend/convex/domains/evaluation/evaluationSafeResponse.ts diff --git a/convex/domains/evaluation/evidencePlanner.ts b/backend/convex/domains/evaluation/evidencePlanner.ts similarity index 100% rename from convex/domains/evaluation/evidencePlanner.ts rename to backend/convex/domains/evaluation/evidencePlanner.ts diff --git a/convex/domains/evaluation/financial/corrections.ts b/backend/convex/domains/evaluation/financial/corrections.ts similarity index 100% rename from convex/domains/evaluation/financial/corrections.ts rename to backend/convex/domains/evaluation/financial/corrections.ts diff --git a/convex/domains/evaluation/financial/dcfComparison.ts b/backend/convex/domains/evaluation/financial/dcfComparison.ts similarity index 100% rename from convex/domains/evaluation/financial/dcfComparison.ts rename to backend/convex/domains/evaluation/financial/dcfComparison.ts diff --git a/convex/domains/evaluation/financial/dcfEngine.ts b/backend/convex/domains/evaluation/financial/dcfEngine.ts similarity index 100% rename from convex/domains/evaluation/financial/dcfEngine.ts rename to backend/convex/domains/evaluation/financial/dcfEngine.ts diff --git a/convex/domains/evaluation/financial/evaluationOrchestrator.ts b/backend/convex/domains/evaluation/financial/evaluationOrchestrator.ts similarity index 100% rename from convex/domains/evaluation/financial/evaluationOrchestrator.ts rename to backend/convex/domains/evaluation/financial/evaluationOrchestrator.ts diff --git a/convex/domains/evaluation/financial/index.ts b/backend/convex/domains/evaluation/financial/index.ts similarity index 100% rename from convex/domains/evaluation/financial/index.ts rename to backend/convex/domains/evaluation/financial/index.ts diff --git a/convex/domains/evaluation/financial/reproPack.ts b/backend/convex/domains/evaluation/financial/reproPack.ts similarity index 100% rename from convex/domains/evaluation/financial/reproPack.ts rename to backend/convex/domains/evaluation/financial/reproPack.ts diff --git a/convex/domains/evaluation/financial/seedData.ts b/backend/convex/domains/evaluation/financial/seedData.ts similarity index 100% rename from convex/domains/evaluation/financial/seedData.ts rename to backend/convex/domains/evaluation/financial/seedData.ts diff --git a/convex/domains/evaluation/financial/sourceQuality.ts b/backend/convex/domains/evaluation/financial/sourceQuality.ts similarity index 100% rename from convex/domains/evaluation/financial/sourceQuality.ts rename to backend/convex/domains/evaluation/financial/sourceQuality.ts diff --git a/convex/domains/evaluation/financial/types.ts b/backend/convex/domains/evaluation/financial/types.ts similarity index 100% rename from convex/domains/evaluation/financial/types.ts rename to backend/convex/domains/evaluation/financial/types.ts diff --git a/convex/domains/evaluation/fixtures/shipDemoDayFixtures.ts b/backend/convex/domains/evaluation/fixtures/shipDemoDayFixtures.ts similarity index 100% rename from convex/domains/evaluation/fixtures/shipDemoDayFixtures.ts rename to backend/convex/domains/evaluation/fixtures/shipDemoDayFixtures.ts diff --git a/convex/domains/evaluation/groundTruth.ts b/backend/convex/domains/evaluation/groundTruth.ts similarity index 100% rename from convex/domains/evaluation/groundTruth.ts rename to backend/convex/domains/evaluation/groundTruth.ts diff --git a/convex/domains/evaluation/groundTruth/auditLog.ts b/backend/convex/domains/evaluation/groundTruth/auditLog.ts similarity index 100% rename from convex/domains/evaluation/groundTruth/auditLog.ts rename to backend/convex/domains/evaluation/groundTruth/auditLog.ts diff --git a/convex/domains/evaluation/groundTruth/versions.ts b/backend/convex/domains/evaluation/groundTruth/versions.ts similarity index 100% rename from convex/domains/evaluation/groundTruth/versions.ts rename to backend/convex/domains/evaluation/groundTruth/versions.ts diff --git a/convex/domains/evaluation/index.ts b/backend/convex/domains/evaluation/index.ts similarity index 100% rename from convex/domains/evaluation/index.ts rename to backend/convex/domains/evaluation/index.ts diff --git a/convex/domains/evaluation/inference/becPlaybook.ts b/backend/convex/domains/evaluation/inference/becPlaybook.ts similarity index 100% rename from convex/domains/evaluation/inference/becPlaybook.ts rename to backend/convex/domains/evaluation/inference/becPlaybook.ts diff --git a/convex/domains/evaluation/inference/index.ts b/backend/convex/domains/evaluation/inference/index.ts similarity index 100% rename from convex/domains/evaluation/inference/index.ts rename to backend/convex/domains/evaluation/inference/index.ts diff --git a/convex/domains/evaluation/inference/llmJudge.ts b/backend/convex/domains/evaluation/inference/llmJudge.ts similarity index 100% rename from convex/domains/evaluation/inference/llmJudge.ts rename to backend/convex/domains/evaluation/inference/llmJudge.ts diff --git a/convex/domains/evaluation/inference/personaInferenceEval.ts b/backend/convex/domains/evaluation/inference/personaInferenceEval.ts similarity index 100% rename from convex/domains/evaluation/inference/personaInferenceEval.ts rename to backend/convex/domains/evaluation/inference/personaInferenceEval.ts diff --git a/convex/domains/evaluation/judgeMetrics.ts b/backend/convex/domains/evaluation/judgeMetrics.ts similarity index 100% rename from convex/domains/evaluation/judgeMetrics.ts rename to backend/convex/domains/evaluation/judgeMetrics.ts diff --git a/convex/domains/evaluation/liveApiSmoke.ts b/backend/convex/domains/evaluation/liveApiSmoke.ts similarity index 100% rename from convex/domains/evaluation/liveApiSmoke.ts rename to backend/convex/domains/evaluation/liveApiSmoke.ts diff --git a/convex/domains/evaluation/liveEval.ts b/backend/convex/domains/evaluation/liveEval.ts similarity index 100% rename from convex/domains/evaluation/liveEval.ts rename to backend/convex/domains/evaluation/liveEval.ts diff --git a/convex/domains/evaluation/llmJudge.ts b/backend/convex/domains/evaluation/llmJudge.ts similarity index 100% rename from convex/domains/evaluation/llmJudge.ts rename to backend/convex/domains/evaluation/llmJudge.ts diff --git a/convex/domains/evaluation/mediaContextScenarios.ts b/backend/convex/domains/evaluation/mediaContextScenarios.ts similarity index 100% rename from convex/domains/evaluation/mediaContextScenarios.ts rename to backend/convex/domains/evaluation/mediaContextScenarios.ts diff --git a/convex/domains/evaluation/memoryFirstScenarios.ts b/backend/convex/domains/evaluation/memoryFirstScenarios.ts similarity index 100% rename from convex/domains/evaluation/memoryFirstScenarios.ts rename to backend/convex/domains/evaluation/memoryFirstScenarios.ts diff --git a/convex/domains/evaluation/migrateEvaluationScenarios.ts b/backend/convex/domains/evaluation/migrateEvaluationScenarios.ts similarity index 100% rename from convex/domains/evaluation/migrateEvaluationScenarios.ts rename to backend/convex/domains/evaluation/migrateEvaluationScenarios.ts diff --git a/convex/domains/evaluation/multiTurnScenarios.ts b/backend/convex/domains/evaluation/multiTurnScenarios.ts similarity index 100% rename from convex/domains/evaluation/multiTurnScenarios.ts rename to backend/convex/domains/evaluation/multiTurnScenarios.ts diff --git a/convex/domains/evaluation/operations.ts b/backend/convex/domains/evaluation/operations.ts similarity index 100% rename from convex/domains/evaluation/operations.ts rename to backend/convex/domains/evaluation/operations.ts diff --git a/convex/domains/evaluation/personaEpisodeEval.ts b/backend/convex/domains/evaluation/personaEpisodeEval.ts similarity index 100% rename from convex/domains/evaluation/personaEpisodeEval.ts rename to backend/convex/domains/evaluation/personaEpisodeEval.ts diff --git a/convex/domains/evaluation/personaInferenceScenarios.ts b/backend/convex/domains/evaluation/personaInferenceScenarios.ts similarity index 100% rename from convex/domains/evaluation/personaInferenceScenarios.ts rename to backend/convex/domains/evaluation/personaInferenceScenarios.ts diff --git a/convex/domains/evaluation/personaLiveEval.ts b/backend/convex/domains/evaluation/personaLiveEval.ts similarity index 100% rename from convex/domains/evaluation/personaLiveEval.ts rename to backend/convex/domains/evaluation/personaLiveEval.ts diff --git a/convex/domains/evaluation/personas/financial/financialGroundTruth.ts b/backend/convex/domains/evaluation/personas/financial/financialGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/financial/financialGroundTruth.ts rename to backend/convex/domains/evaluation/personas/financial/financialGroundTruth.ts diff --git a/convex/domains/evaluation/personas/financial/jpmBankerEval.ts b/backend/convex/domains/evaluation/personas/financial/jpmBankerEval.ts similarity index 100% rename from convex/domains/evaluation/personas/financial/jpmBankerEval.ts rename to backend/convex/domains/evaluation/personas/financial/jpmBankerEval.ts diff --git a/convex/domains/evaluation/personas/financial/lpAllocatorEval.ts b/backend/convex/domains/evaluation/personas/financial/lpAllocatorEval.ts similarity index 100% rename from convex/domains/evaluation/personas/financial/lpAllocatorEval.ts rename to backend/convex/domains/evaluation/personas/financial/lpAllocatorEval.ts diff --git a/convex/domains/evaluation/personas/financial/quantPMEval.ts b/backend/convex/domains/evaluation/personas/financial/quantPMEval.ts similarity index 100% rename from convex/domains/evaluation/personas/financial/quantPMEval.ts rename to backend/convex/domains/evaluation/personas/financial/quantPMEval.ts diff --git a/convex/domains/evaluation/personas/financial/quantPMGroundTruth.ts b/backend/convex/domains/evaluation/personas/financial/quantPMGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/financial/quantPMGroundTruth.ts rename to backend/convex/domains/evaluation/personas/financial/quantPMGroundTruth.ts diff --git a/convex/domains/evaluation/personas/identityAssurance.ts b/backend/convex/domains/evaluation/personas/identityAssurance.ts similarity index 100% rename from convex/domains/evaluation/personas/identityAssurance.ts rename to backend/convex/domains/evaluation/personas/identityAssurance.ts diff --git a/convex/domains/evaluation/personas/index.ts b/backend/convex/domains/evaluation/personas/index.ts similarity index 100% rename from convex/domains/evaluation/personas/index.ts rename to backend/convex/domains/evaluation/personas/index.ts diff --git a/convex/domains/evaluation/personas/industry/academicRDEval.ts b/backend/convex/domains/evaluation/personas/industry/academicRDEval.ts similarity index 100% rename from convex/domains/evaluation/personas/industry/academicRDEval.ts rename to backend/convex/domains/evaluation/personas/industry/academicRDEval.ts diff --git a/convex/domains/evaluation/personas/industry/industryGroundTruth.ts b/backend/convex/domains/evaluation/personas/industry/industryGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/industry/industryGroundTruth.ts rename to backend/convex/domains/evaluation/personas/industry/industryGroundTruth.ts diff --git a/convex/domains/evaluation/personas/industry/pharmaBDEval.ts b/backend/convex/domains/evaluation/personas/industry/pharmaBDEval.ts similarity index 100% rename from convex/domains/evaluation/personas/industry/pharmaBDEval.ts rename to backend/convex/domains/evaluation/personas/industry/pharmaBDEval.ts diff --git a/convex/domains/evaluation/personas/media/journalistEval.ts b/backend/convex/domains/evaluation/personas/media/journalistEval.ts similarity index 100% rename from convex/domains/evaluation/personas/media/journalistEval.ts rename to backend/convex/domains/evaluation/personas/media/journalistEval.ts diff --git a/convex/domains/evaluation/personas/media/mediaGroundTruth.ts b/backend/convex/domains/evaluation/personas/media/mediaGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/media/mediaGroundTruth.ts rename to backend/convex/domains/evaluation/personas/media/mediaGroundTruth.ts diff --git a/convex/domains/evaluation/personas/strategic/corpDevEval.ts b/backend/convex/domains/evaluation/personas/strategic/corpDevEval.ts similarity index 100% rename from convex/domains/evaluation/personas/strategic/corpDevEval.ts rename to backend/convex/domains/evaluation/personas/strategic/corpDevEval.ts diff --git a/convex/domains/evaluation/personas/strategic/founderStrategyEval.ts b/backend/convex/domains/evaluation/personas/strategic/founderStrategyEval.ts similarity index 100% rename from convex/domains/evaluation/personas/strategic/founderStrategyEval.ts rename to backend/convex/domains/evaluation/personas/strategic/founderStrategyEval.ts diff --git a/convex/domains/evaluation/personas/strategic/founderStrategyGroundTruth.ts b/backend/convex/domains/evaluation/personas/strategic/founderStrategyGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/strategic/founderStrategyGroundTruth.ts rename to backend/convex/domains/evaluation/personas/strategic/founderStrategyGroundTruth.ts diff --git a/convex/domains/evaluation/personas/strategic/macroStratEval.ts b/backend/convex/domains/evaluation/personas/strategic/macroStratEval.ts similarity index 100% rename from convex/domains/evaluation/personas/strategic/macroStratEval.ts rename to backend/convex/domains/evaluation/personas/strategic/macroStratEval.ts diff --git a/convex/domains/evaluation/personas/strategic/strategicGroundTruth.ts b/backend/convex/domains/evaluation/personas/strategic/strategicGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/strategic/strategicGroundTruth.ts rename to backend/convex/domains/evaluation/personas/strategic/strategicGroundTruth.ts diff --git a/convex/domains/evaluation/personas/technical/ctoTechLeadEval.ts b/backend/convex/domains/evaluation/personas/technical/ctoTechLeadEval.ts similarity index 100% rename from convex/domains/evaluation/personas/technical/ctoTechLeadEval.ts rename to backend/convex/domains/evaluation/personas/technical/ctoTechLeadEval.ts diff --git a/convex/domains/evaluation/personas/technical/technicalGroundTruth.ts b/backend/convex/domains/evaluation/personas/technical/technicalGroundTruth.ts similarity index 100% rename from convex/domains/evaluation/personas/technical/technicalGroundTruth.ts rename to backend/convex/domains/evaluation/personas/technical/technicalGroundTruth.ts diff --git a/convex/domains/evaluation/personas/types.ts b/backend/convex/domains/evaluation/personas/types.ts similarity index 100% rename from convex/domains/evaluation/personas/types.ts rename to backend/convex/domains/evaluation/personas/types.ts diff --git a/convex/domains/evaluation/personas/unifiedPersonaHarness.ts b/backend/convex/domains/evaluation/personas/unifiedPersonaHarness.ts similarity index 100% rename from convex/domains/evaluation/personas/unifiedPersonaHarness.ts rename to backend/convex/domains/evaluation/personas/unifiedPersonaHarness.ts diff --git a/convex/domains/evaluation/promptEnhancerScenarios.ts b/backend/convex/domains/evaluation/promptEnhancerScenarios.ts similarity index 100% rename from convex/domains/evaluation/promptEnhancerScenarios.ts rename to backend/convex/domains/evaluation/promptEnhancerScenarios.ts diff --git a/convex/domains/evaluation/runBenchmark.ts b/backend/convex/domains/evaluation/runBenchmark.ts similarity index 100% rename from convex/domains/evaluation/runBenchmark.ts rename to backend/convex/domains/evaluation/runBenchmark.ts diff --git a/convex/domains/evaluation/scenarioQueries.ts b/backend/convex/domains/evaluation/scenarioQueries.ts similarity index 100% rename from convex/domains/evaluation/scenarioQueries.ts rename to backend/convex/domains/evaluation/scenarioQueries.ts diff --git a/convex/domains/evaluation/scenarios/researchToolEval.ts b/backend/convex/domains/evaluation/scenarios/researchToolEval.ts similarity index 100% rename from convex/domains/evaluation/scenarios/researchToolEval.ts rename to backend/convex/domains/evaluation/scenarios/researchToolEval.ts diff --git a/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts b/backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts similarity index 100% rename from convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts rename to backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts diff --git a/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts b/backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts similarity index 100% rename from convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts rename to backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts diff --git a/convex/domains/evaluation/schema.ts b/backend/convex/domains/evaluation/schema.ts similarity index 100% rename from convex/domains/evaluation/schema.ts rename to backend/convex/domains/evaluation/schema.ts diff --git a/convex/domains/evaluation/scoring/benchmarkSuite.ts b/backend/convex/domains/evaluation/scoring/benchmarkSuite.ts similarity index 100% rename from convex/domains/evaluation/scoring/benchmarkSuite.ts rename to backend/convex/domains/evaluation/scoring/benchmarkSuite.ts diff --git a/convex/domains/evaluation/scoring/claimLifecycle.ts b/backend/convex/domains/evaluation/scoring/claimLifecycle.ts similarity index 100% rename from convex/domains/evaluation/scoring/claimLifecycle.ts rename to backend/convex/domains/evaluation/scoring/claimLifecycle.ts diff --git a/convex/domains/evaluation/scoring/personaWeights.ts b/backend/convex/domains/evaluation/scoring/personaWeights.ts similarity index 100% rename from convex/domains/evaluation/scoring/personaWeights.ts rename to backend/convex/domains/evaluation/scoring/personaWeights.ts diff --git a/convex/domains/evaluation/scoring/riskCalibration.ts b/backend/convex/domains/evaluation/scoring/riskCalibration.ts similarity index 100% rename from convex/domains/evaluation/scoring/riskCalibration.ts rename to backend/convex/domains/evaluation/scoring/riskCalibration.ts diff --git a/convex/domains/evaluation/scoring/scoringFramework.ts b/backend/convex/domains/evaluation/scoring/scoringFramework.ts similarity index 100% rename from convex/domains/evaluation/scoring/scoringFramework.ts rename to backend/convex/domains/evaluation/scoring/scoringFramework.ts diff --git a/convex/domains/evaluation/scoring/sourceCitations.ts b/backend/convex/domains/evaluation/scoring/sourceCitations.ts similarity index 100% rename from convex/domains/evaluation/scoring/sourceCitations.ts rename to backend/convex/domains/evaluation/scoring/sourceCitations.ts diff --git a/convex/domains/evaluation/sourceQuality.ts b/backend/convex/domains/evaluation/sourceQuality.ts similarity index 100% rename from convex/domains/evaluation/sourceQuality.ts rename to backend/convex/domains/evaluation/sourceQuality.ts diff --git a/convex/domains/evaluation/systemE2E.ts b/backend/convex/domains/evaluation/systemE2E.ts similarity index 100% rename from convex/domains/evaluation/systemE2E.ts rename to backend/convex/domains/evaluation/systemE2E.ts diff --git a/convex/domains/evaluation/tasteBench.integration.test.ts b/backend/convex/domains/evaluation/tasteBench.integration.test.ts similarity index 100% rename from convex/domains/evaluation/tasteBench.integration.test.ts rename to backend/convex/domains/evaluation/tasteBench.integration.test.ts diff --git a/convex/domains/evaluation/tasteBench.ts b/backend/convex/domains/evaluation/tasteBench.ts similarity index 100% rename from convex/domains/evaluation/tasteBench.ts rename to backend/convex/domains/evaluation/tasteBench.ts diff --git a/convex/domains/evaluation/tasteBenchPolicy.test.ts b/backend/convex/domains/evaluation/tasteBenchPolicy.test.ts similarity index 100% rename from convex/domains/evaluation/tasteBenchPolicy.test.ts rename to backend/convex/domains/evaluation/tasteBenchPolicy.test.ts diff --git a/convex/domains/evaluation/tasteBenchPolicy.ts b/backend/convex/domains/evaluation/tasteBenchPolicy.ts similarity index 100% rename from convex/domains/evaluation/tasteBenchPolicy.ts rename to backend/convex/domains/evaluation/tasteBenchPolicy.ts diff --git a/convex/domains/evaluation/tasteBenchSchema.ts b/backend/convex/domains/evaluation/tasteBenchSchema.ts similarity index 100% rename from convex/domains/evaluation/tasteBenchSchema.ts rename to backend/convex/domains/evaluation/tasteBenchSchema.ts diff --git a/convex/domains/evaluation/testAgentDirect.ts b/backend/convex/domains/evaluation/testAgentDirect.ts similarity index 100% rename from convex/domains/evaluation/testAgentDirect.ts rename to backend/convex/domains/evaluation/testAgentDirect.ts diff --git a/convex/domains/evaluation/testAgentQueries.ts b/backend/convex/domains/evaluation/testAgentQueries.ts similarity index 100% rename from convex/domains/evaluation/testAgentQueries.ts rename to backend/convex/domains/evaluation/testAgentQueries.ts diff --git a/convex/domains/evaluation/testAnthropicApi.ts b/backend/convex/domains/evaluation/testAnthropicApi.ts similarity index 100% rename from convex/domains/evaluation/testAnthropicApi.ts rename to backend/convex/domains/evaluation/testAnthropicApi.ts diff --git a/convex/domains/evaluation/testDirectApi.ts b/backend/convex/domains/evaluation/testDirectApi.ts similarity index 100% rename from convex/domains/evaluation/testDirectApi.ts rename to backend/convex/domains/evaluation/testDirectApi.ts diff --git a/convex/domains/evaluation/testLlmJudge.ts b/backend/convex/domains/evaluation/testLlmJudge.ts similarity index 100% rename from convex/domains/evaluation/testLlmJudge.ts rename to backend/convex/domains/evaluation/testLlmJudge.ts diff --git a/convex/domains/evaluation/testing/testingFramework.ts b/backend/convex/domains/evaluation/testing/testingFramework.ts similarity index 100% rename from convex/domains/evaluation/testing/testingFramework.ts rename to backend/convex/domains/evaluation/testing/testingFramework.ts diff --git a/convex/domains/evaluation/ultraLongChat/batchRunner.ts b/backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts similarity index 100% rename from convex/domains/evaluation/ultraLongChat/batchRunner.ts rename to backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts diff --git a/convex/domains/evaluation/ultraLongChat/judge.ts b/backend/convex/domains/evaluation/ultraLongChat/judge.ts similarity index 100% rename from convex/domains/evaluation/ultraLongChat/judge.ts rename to backend/convex/domains/evaluation/ultraLongChat/judge.ts diff --git a/convex/domains/evaluation/ultraLongChat/regressionGate.ts b/backend/convex/domains/evaluation/ultraLongChat/regressionGate.ts similarity index 100% rename from convex/domains/evaluation/ultraLongChat/regressionGate.ts rename to backend/convex/domains/evaluation/ultraLongChat/regressionGate.ts diff --git a/convex/domains/evaluation/ultraLongChat/scenarios.ts b/backend/convex/domains/evaluation/ultraLongChat/scenarios.ts similarity index 100% rename from convex/domains/evaluation/ultraLongChat/scenarios.ts rename to backend/convex/domains/evaluation/ultraLongChat/scenarios.ts diff --git a/convex/domains/evaluation/ultraLongChat/storage.ts b/backend/convex/domains/evaluation/ultraLongChat/storage.ts similarity index 100% rename from convex/domains/evaluation/ultraLongChat/storage.ts rename to backend/convex/domains/evaluation/ultraLongChat/storage.ts diff --git a/convex/domains/evaluation/validators.ts b/backend/convex/domains/evaluation/validators.ts similarity index 100% rename from convex/domains/evaluation/validators.ts rename to backend/convex/domains/evaluation/validators.ts diff --git a/convex/domains/evaluation/workbenchQueries.ts b/backend/convex/domains/evaluation/workbenchQueries.ts similarity index 100% rename from convex/domains/evaluation/workbenchQueries.ts rename to backend/convex/domains/evaluation/workbenchQueries.ts diff --git a/convex/domains/financial/balanceSheetFetcher.ts b/backend/convex/domains/financial/balanceSheetFetcher.ts similarity index 100% rename from convex/domains/financial/balanceSheetFetcher.ts rename to backend/convex/domains/financial/balanceSheetFetcher.ts diff --git a/convex/domains/financial/corporateActions.ts b/backend/convex/domains/financial/corporateActions.ts similarity index 100% rename from convex/domains/financial/corporateActions.ts rename to backend/convex/domains/financial/corporateActions.ts diff --git a/convex/domains/financial/corrections.ts b/backend/convex/domains/financial/corrections.ts similarity index 100% rename from convex/domains/financial/corrections.ts rename to backend/convex/domains/financial/corrections.ts diff --git a/convex/domains/financial/dcfBuilder.ts b/backend/convex/domains/financial/dcfBuilder.ts similarity index 100% rename from convex/domains/financial/dcfBuilder.ts rename to backend/convex/domains/financial/dcfBuilder.ts diff --git a/convex/domains/financial/dcfEvaluator.ts b/backend/convex/domains/financial/dcfEvaluator.ts similarity index 100% rename from convex/domains/financial/dcfEvaluator.ts rename to backend/convex/domains/financial/dcfEvaluator.ts diff --git a/convex/domains/financial/dcfOrchestrator.ts b/backend/convex/domains/financial/dcfOrchestrator.ts similarity index 100% rename from convex/domains/financial/dcfOrchestrator.ts rename to backend/convex/domains/financial/dcfOrchestrator.ts diff --git a/convex/domains/financial/dcfProgress.ts b/backend/convex/domains/financial/dcfProgress.ts similarity index 100% rename from convex/domains/financial/dcfProgress.ts rename to backend/convex/domains/financial/dcfProgress.ts diff --git a/convex/domains/financial/dcfSpreadsheetAdapter.ts b/backend/convex/domains/financial/dcfSpreadsheetAdapter.ts similarity index 100% rename from convex/domains/financial/dcfSpreadsheetAdapter.ts rename to backend/convex/domains/financial/dcfSpreadsheetAdapter.ts diff --git a/convex/domains/financial/dcfSpreadsheetMapping.ts b/backend/convex/domains/financial/dcfSpreadsheetMapping.ts similarity index 100% rename from convex/domains/financial/dcfSpreadsheetMapping.ts rename to backend/convex/domains/financial/dcfSpreadsheetMapping.ts diff --git a/convex/domains/financial/dcfTools.ts b/backend/convex/domains/financial/dcfTools.ts similarity index 100% rename from convex/domains/financial/dcfTools.ts rename to backend/convex/domains/financial/dcfTools.ts diff --git a/convex/domains/financial/financialAnalystAgent.ts b/backend/convex/domains/financial/financialAnalystAgent.ts similarity index 100% rename from convex/domains/financial/financialAnalystAgent.ts rename to backend/convex/domains/financial/financialAnalystAgent.ts diff --git a/convex/domains/financial/fundamentals.ts b/backend/convex/domains/financial/fundamentals.ts similarity index 100% rename from convex/domains/financial/fundamentals.ts rename to backend/convex/domains/financial/fundamentals.ts diff --git a/convex/domains/financial/groundTruthFetcher.ts b/backend/convex/domains/financial/groundTruthFetcher.ts similarity index 100% rename from convex/domains/financial/groundTruthFetcher.ts rename to backend/convex/domains/financial/groundTruthFetcher.ts diff --git a/convex/domains/financial/groundTruthManager.ts b/backend/convex/domains/financial/groundTruthManager.ts similarity index 100% rename from convex/domains/financial/groundTruthManager.ts rename to backend/convex/domains/financial/groundTruthManager.ts diff --git a/convex/domains/financial/inconclusiveOnFailure.ts b/backend/convex/domains/financial/inconclusiveOnFailure.ts similarity index 100% rename from convex/domains/financial/inconclusiveOnFailure.ts rename to backend/convex/domains/financial/inconclusiveOnFailure.ts diff --git a/convex/domains/financial/index.ts b/backend/convex/domains/financial/index.ts similarity index 100% rename from convex/domains/financial/index.ts rename to backend/convex/domains/financial/index.ts diff --git a/convex/domains/financial/interactiveDCFSession.ts b/backend/convex/domains/financial/interactiveDCFSession.ts similarity index 100% rename from convex/domains/financial/interactiveDCFSession.ts rename to backend/convex/domains/financial/interactiveDCFSession.ts diff --git a/convex/domains/financial/modelRiskGovernance.ts b/backend/convex/domains/financial/modelRiskGovernance.ts similarity index 100% rename from convex/domains/financial/modelRiskGovernance.ts rename to backend/convex/domains/financial/modelRiskGovernance.ts diff --git a/convex/domains/financial/reportGenerator.ts b/backend/convex/domains/financial/reportGenerator.ts similarity index 100% rename from convex/domains/financial/reportGenerator.ts rename to backend/convex/domains/financial/reportGenerator.ts diff --git a/convex/domains/financial/restatementPolicy.ts b/backend/convex/domains/financial/restatementPolicy.ts similarity index 100% rename from convex/domains/financial/restatementPolicy.ts rename to backend/convex/domains/financial/restatementPolicy.ts diff --git a/convex/domains/financial/secEdgarClient.ts b/backend/convex/domains/financial/secEdgarClient.ts similarity index 100% rename from convex/domains/financial/secEdgarClient.ts rename to backend/convex/domains/financial/secEdgarClient.ts diff --git a/convex/domains/financial/sensitivityAnalysis.ts b/backend/convex/domains/financial/sensitivityAnalysis.ts similarity index 100% rename from convex/domains/financial/sensitivityAnalysis.ts rename to backend/convex/domains/financial/sensitivityAnalysis.ts diff --git a/convex/domains/financial/taxonomyManagement.ts b/backend/convex/domains/financial/taxonomyManagement.ts similarity index 100% rename from convex/domains/financial/taxonomyManagement.ts rename to backend/convex/domains/financial/taxonomyManagement.ts diff --git a/convex/domains/financial/validation.ts b/backend/convex/domains/financial/validation.ts similarity index 100% rename from convex/domains/financial/validation.ts rename to backend/convex/domains/financial/validation.ts diff --git a/convex/domains/financial/xbrlParser.ts b/backend/convex/domains/financial/xbrlParser.ts similarity index 100% rename from convex/domains/financial/xbrlParser.ts rename to backend/convex/domains/financial/xbrlParser.ts diff --git a/convex/domains/financialOperator/__tests__/sandbox.scenario.test.ts b/backend/convex/domains/financialOperator/__tests__/sandbox.scenario.test.ts similarity index 100% rename from convex/domains/financialOperator/__tests__/sandbox.scenario.test.ts rename to backend/convex/domains/financialOperator/__tests__/sandbox.scenario.test.ts diff --git a/convex/domains/financialOperator/__tests__/validators.scenario.test.ts b/backend/convex/domains/financialOperator/__tests__/validators.scenario.test.ts similarity index 100% rename from convex/domains/financialOperator/__tests__/validators.scenario.test.ts rename to backend/convex/domains/financialOperator/__tests__/validators.scenario.test.ts diff --git a/convex/domains/financialOperator/attFixture.ts b/backend/convex/domains/financialOperator/attFixture.ts similarity index 100% rename from convex/domains/financialOperator/attFixture.ts rename to backend/convex/domains/financialOperator/attFixture.ts diff --git a/convex/domains/financialOperator/extractors.ts b/backend/convex/domains/financialOperator/extractors.ts similarity index 100% rename from convex/domains/financialOperator/extractors.ts rename to backend/convex/domains/financialOperator/extractors.ts diff --git a/convex/domains/financialOperator/fixtures/covenantFixture.ts b/backend/convex/domains/financialOperator/fixtures/covenantFixture.ts similarity index 100% rename from convex/domains/financialOperator/fixtures/covenantFixture.ts rename to backend/convex/domains/financialOperator/fixtures/covenantFixture.ts diff --git a/convex/domains/financialOperator/fixtures/crmFixture.ts b/backend/convex/domains/financialOperator/fixtures/crmFixture.ts similarity index 100% rename from convex/domains/financialOperator/fixtures/crmFixture.ts rename to backend/convex/domains/financialOperator/fixtures/crmFixture.ts diff --git a/convex/domains/financialOperator/fixtures/varianceFixture.ts b/backend/convex/domains/financialOperator/fixtures/varianceFixture.ts similarity index 100% rename from convex/domains/financialOperator/fixtures/varianceFixture.ts rename to backend/convex/domains/financialOperator/fixtures/varianceFixture.ts diff --git a/convex/domains/financialOperator/index.ts b/backend/convex/domains/financialOperator/index.ts similarity index 100% rename from convex/domains/financialOperator/index.ts rename to backend/convex/domains/financialOperator/index.ts diff --git a/convex/domains/financialOperator/orchestrator.ts b/backend/convex/domains/financialOperator/orchestrator.ts similarity index 100% rename from convex/domains/financialOperator/orchestrator.ts rename to backend/convex/domains/financialOperator/orchestrator.ts diff --git a/convex/domains/financialOperator/orchestratorExamples.ts b/backend/convex/domains/financialOperator/orchestratorExamples.ts similarity index 100% rename from convex/domains/financialOperator/orchestratorExamples.ts rename to backend/convex/domains/financialOperator/orchestratorExamples.ts diff --git a/convex/domains/financialOperator/realExtractors.ts b/backend/convex/domains/financialOperator/realExtractors.ts similarity index 100% rename from convex/domains/financialOperator/realExtractors.ts rename to backend/convex/domains/financialOperator/realExtractors.ts diff --git a/convex/domains/financialOperator/runOps.ts b/backend/convex/domains/financialOperator/runOps.ts similarity index 100% rename from convex/domains/financialOperator/runOps.ts rename to backend/convex/domains/financialOperator/runOps.ts diff --git a/convex/domains/financialOperator/sandbox.ts b/backend/convex/domains/financialOperator/sandbox.ts similarity index 100% rename from convex/domains/financialOperator/sandbox.ts rename to backend/convex/domains/financialOperator/sandbox.ts diff --git a/convex/domains/financialOperator/types.ts b/backend/convex/domains/financialOperator/types.ts similarity index 100% rename from convex/domains/financialOperator/types.ts rename to backend/convex/domains/financialOperator/types.ts diff --git a/convex/domains/financialOperator/validators.ts b/backend/convex/domains/financialOperator/validators.ts similarity index 100% rename from convex/domains/financialOperator/validators.ts rename to backend/convex/domains/financialOperator/validators.ts diff --git a/convex/domains/forecasting/actions/computeCalibration.ts b/backend/convex/domains/forecasting/actions/computeCalibration.ts similarity index 100% rename from convex/domains/forecasting/actions/computeCalibration.ts rename to backend/convex/domains/forecasting/actions/computeCalibration.ts diff --git a/convex/domains/forecasting/actions/createForecast.ts b/backend/convex/domains/forecasting/actions/createForecast.ts similarity index 100% rename from convex/domains/forecasting/actions/createForecast.ts rename to backend/convex/domains/forecasting/actions/createForecast.ts diff --git a/convex/domains/forecasting/actions/refreshForecast.ts b/backend/convex/domains/forecasting/actions/refreshForecast.ts similarity index 100% rename from convex/domains/forecasting/actions/refreshForecast.ts rename to backend/convex/domains/forecasting/actions/refreshForecast.ts diff --git a/convex/domains/forecasting/actions/resolveForecast.ts b/backend/convex/domains/forecasting/actions/resolveForecast.ts similarity index 100% rename from convex/domains/forecasting/actions/resolveForecast.ts rename to backend/convex/domains/forecasting/actions/resolveForecast.ts diff --git a/convex/domains/forecasting/cronHandlers/dailyForecastRefresh.ts b/backend/convex/domains/forecasting/cronHandlers/dailyForecastRefresh.ts similarity index 100% rename from convex/domains/forecasting/cronHandlers/dailyForecastRefresh.ts rename to backend/convex/domains/forecasting/cronHandlers/dailyForecastRefresh.ts diff --git a/convex/domains/forecasting/cronHandlers/resolutionCheck.ts b/backend/convex/domains/forecasting/cronHandlers/resolutionCheck.ts similarity index 100% rename from convex/domains/forecasting/cronHandlers/resolutionCheck.ts rename to backend/convex/domains/forecasting/cronHandlers/resolutionCheck.ts diff --git a/convex/domains/forecasting/cronHandlers/weeklyCalibration.ts b/backend/convex/domains/forecasting/cronHandlers/weeklyCalibration.ts similarity index 100% rename from convex/domains/forecasting/cronHandlers/weeklyCalibration.ts rename to backend/convex/domains/forecasting/cronHandlers/weeklyCalibration.ts diff --git a/convex/domains/forecasting/forecastManager.ts b/backend/convex/domains/forecasting/forecastManager.ts similarity index 100% rename from convex/domains/forecasting/forecastManager.ts rename to backend/convex/domains/forecasting/forecastManager.ts diff --git a/convex/domains/forecasting/schema.ts b/backend/convex/domains/forecasting/schema.ts similarity index 100% rename from convex/domains/forecasting/schema.ts rename to backend/convex/domains/forecasting/schema.ts diff --git a/convex/domains/forecasting/scoringEngine.ts b/backend/convex/domains/forecasting/scoringEngine.ts similarity index 100% rename from convex/domains/forecasting/scoringEngine.ts rename to backend/convex/domains/forecasting/scoringEngine.ts diff --git a/convex/domains/forecasting/signalMatcher.ts b/backend/convex/domains/forecasting/signalMatcher.ts similarity index 100% rename from convex/domains/forecasting/signalMatcher.ts rename to backend/convex/domains/forecasting/signalMatcher.ts diff --git a/convex/domains/forecasting/traceWrapper.ts b/backend/convex/domains/forecasting/traceWrapper.ts similarity index 100% rename from convex/domains/forecasting/traceWrapper.ts rename to backend/convex/domains/forecasting/traceWrapper.ts diff --git a/convex/domains/forecasting/validators.ts b/backend/convex/domains/forecasting/validators.ts similarity index 100% rename from convex/domains/forecasting/validators.ts rename to backend/convex/domains/forecasting/validators.ts diff --git a/convex/domains/founder/__tests__/ambientIntelligenceOps.test.ts b/backend/convex/domains/founder/__tests__/ambientIntelligenceOps.test.ts similarity index 100% rename from convex/domains/founder/__tests__/ambientIntelligenceOps.test.ts rename to backend/convex/domains/founder/__tests__/ambientIntelligenceOps.test.ts diff --git a/convex/domains/founder/ambientIntelligenceJobs.ts b/backend/convex/domains/founder/ambientIntelligenceJobs.ts similarity index 100% rename from convex/domains/founder/ambientIntelligenceJobs.ts rename to backend/convex/domains/founder/ambientIntelligenceJobs.ts diff --git a/convex/domains/founder/ambientIntelligenceOps.ts b/backend/convex/domains/founder/ambientIntelligenceOps.ts similarity index 100% rename from convex/domains/founder/ambientIntelligenceOps.ts rename to backend/convex/domains/founder/ambientIntelligenceOps.ts diff --git a/convex/domains/founder/backgroundJobs.ts b/backend/convex/domains/founder/backgroundJobs.ts similarity index 100% rename from convex/domains/founder/backgroundJobs.ts rename to backend/convex/domains/founder/backgroundJobs.ts diff --git a/convex/domains/founder/causalMemoryJobs.ts b/backend/convex/domains/founder/causalMemoryJobs.ts similarity index 100% rename from convex/domains/founder/causalMemoryJobs.ts rename to backend/convex/domains/founder/causalMemoryJobs.ts diff --git a/convex/domains/founder/causalMemoryOps.ts b/backend/convex/domains/founder/causalMemoryOps.ts similarity index 100% rename from convex/domains/founder/causalMemoryOps.ts rename to backend/convex/domains/founder/causalMemoryOps.ts diff --git a/convex/domains/founder/founderHarnessOps.ts b/backend/convex/domains/founder/founderHarnessOps.ts similarity index 100% rename from convex/domains/founder/founderHarnessOps.ts rename to backend/convex/domains/founder/founderHarnessOps.ts diff --git a/convex/domains/founder/index.ts b/backend/convex/domains/founder/index.ts similarity index 100% rename from convex/domains/founder/index.ts rename to backend/convex/domains/founder/index.ts diff --git a/convex/domains/founder/operations.ts b/backend/convex/domains/founder/operations.ts similarity index 100% rename from convex/domains/founder/operations.ts rename to backend/convex/domains/founder/operations.ts diff --git a/convex/domains/founder/schema.ts b/backend/convex/domains/founder/schema.ts similarity index 100% rename from convex/domains/founder/schema.ts rename to backend/convex/domains/founder/schema.ts diff --git a/convex/domains/founder/seed.ts b/backend/convex/domains/founder/seed.ts similarity index 100% rename from convex/domains/founder/seed.ts rename to backend/convex/domains/founder/seed.ts diff --git a/convex/domains/founder/seedTrigger.ts b/backend/convex/domains/founder/seedTrigger.ts similarity index 100% rename from convex/domains/founder/seedTrigger.ts rename to backend/convex/domains/founder/seedTrigger.ts diff --git a/convex/domains/founder/sharedContextOps.ts b/backend/convex/domains/founder/sharedContextOps.ts similarity index 100% rename from convex/domains/founder/sharedContextOps.ts rename to backend/convex/domains/founder/sharedContextOps.ts diff --git a/convex/domains/governance/provenanceExplainer.ts b/backend/convex/domains/governance/provenanceExplainer.ts similarity index 100% rename from convex/domains/governance/provenanceExplainer.ts rename to backend/convex/domains/governance/provenanceExplainer.ts diff --git a/convex/domains/governance/quarantine.ts b/backend/convex/domains/governance/quarantine.ts similarity index 100% rename from convex/domains/governance/quarantine.ts rename to backend/convex/domains/governance/quarantine.ts diff --git a/convex/domains/governance/trustPolicy.ts b/backend/convex/domains/governance/trustPolicy.ts similarity index 100% rename from convex/domains/governance/trustPolicy.ts rename to backend/convex/domains/governance/trustPolicy.ts diff --git a/convex/domains/graph/__tests__/graphPatch.test.ts b/backend/convex/domains/graph/__tests__/graphPatch.test.ts similarity index 100% rename from convex/domains/graph/__tests__/graphPatch.test.ts rename to backend/convex/domains/graph/__tests__/graphPatch.test.ts diff --git a/convex/domains/graph/applyGraphPatch.ts b/backend/convex/domains/graph/applyGraphPatch.ts similarity index 100% rename from convex/domains/graph/applyGraphPatch.ts rename to backend/convex/domains/graph/applyGraphPatch.ts diff --git a/convex/domains/graph/autoExtractMentions.ts b/backend/convex/domains/graph/autoExtractMentions.ts similarity index 100% rename from convex/domains/graph/autoExtractMentions.ts rename to backend/convex/domains/graph/autoExtractMentions.ts diff --git a/convex/domains/graph/backlinkQueries.ts b/backend/convex/domains/graph/backlinkQueries.ts similarity index 100% rename from convex/domains/graph/backlinkQueries.ts rename to backend/convex/domains/graph/backlinkQueries.ts diff --git a/convex/domains/graph/expandEntity.ts b/backend/convex/domains/graph/expandEntity.ts similarity index 100% rename from convex/domains/graph/expandEntity.ts rename to backend/convex/domains/graph/expandEntity.ts diff --git a/convex/domains/graph/expansionQueries.ts b/backend/convex/domains/graph/expansionQueries.ts similarity index 100% rename from convex/domains/graph/expansionQueries.ts rename to backend/convex/domains/graph/expansionQueries.ts diff --git a/convex/domains/graph/index.ts b/backend/convex/domains/graph/index.ts similarity index 100% rename from convex/domains/graph/index.ts rename to backend/convex/domains/graph/index.ts diff --git a/convex/domains/groundTruth/auditLog.ts b/backend/convex/domains/groundTruth/auditLog.ts similarity index 100% rename from convex/domains/groundTruth/auditLog.ts rename to backend/convex/domains/groundTruth/auditLog.ts diff --git a/convex/domains/groundTruth/versions.ts b/backend/convex/domains/groundTruth/versions.ts similarity index 100% rename from convex/domains/groundTruth/versions.ts rename to backend/convex/domains/groundTruth/versions.ts diff --git a/convex/domains/hitl/adjudicationWorkflow.ts b/backend/convex/domains/hitl/adjudicationWorkflow.ts similarity index 100% rename from convex/domains/hitl/adjudicationWorkflow.ts rename to backend/convex/domains/hitl/adjudicationWorkflow.ts diff --git a/convex/domains/hitl/decisions.ts b/backend/convex/domains/hitl/decisions.ts similarity index 100% rename from convex/domains/hitl/decisions.ts rename to backend/convex/domains/hitl/decisions.ts diff --git a/convex/domains/hitl/distributionDriftDetection.ts b/backend/convex/domains/hitl/distributionDriftDetection.ts similarity index 100% rename from convex/domains/hitl/distributionDriftDetection.ts rename to backend/convex/domains/hitl/distributionDriftDetection.ts diff --git a/convex/domains/hitl/labelerCalibration.ts b/backend/convex/domains/hitl/labelerCalibration.ts similarity index 100% rename from convex/domains/hitl/labelerCalibration.ts rename to backend/convex/domains/hitl/labelerCalibration.ts diff --git a/convex/domains/hitl/labelingQueue.ts b/backend/convex/domains/hitl/labelingQueue.ts similarity index 100% rename from convex/domains/hitl/labelingQueue.ts rename to backend/convex/domains/hitl/labelingQueue.ts diff --git a/convex/domains/hitl/validationWorkspaceEnforcement.ts b/backend/convex/domains/hitl/validationWorkspaceEnforcement.ts similarity index 100% rename from convex/domains/hitl/validationWorkspaceEnforcement.ts rename to backend/convex/domains/hitl/validationWorkspaceEnforcement.ts diff --git a/convex/domains/hyperloop/operations.ts b/backend/convex/domains/hyperloop/operations.ts similarity index 100% rename from convex/domains/hyperloop/operations.ts rename to backend/convex/domains/hyperloop/operations.ts diff --git a/convex/domains/hyperloop/policy.test.ts b/backend/convex/domains/hyperloop/policy.test.ts similarity index 100% rename from convex/domains/hyperloop/policy.test.ts rename to backend/convex/domains/hyperloop/policy.test.ts diff --git a/convex/domains/hyperloop/policy.ts b/backend/convex/domains/hyperloop/policy.ts similarity index 100% rename from convex/domains/hyperloop/policy.ts rename to backend/convex/domains/hyperloop/policy.ts diff --git a/convex/domains/hyperloop/schema.ts b/backend/convex/domains/hyperloop/schema.ts similarity index 100% rename from convex/domains/hyperloop/schema.ts rename to backend/convex/domains/hyperloop/schema.ts diff --git a/convex/domains/integrations/billing/apiUsageTracking.ts b/backend/convex/domains/integrations/billing/apiUsageTracking.ts similarity index 100% rename from convex/domains/integrations/billing/apiUsageTracking.ts rename to backend/convex/domains/integrations/billing/apiUsageTracking.ts diff --git a/convex/domains/integrations/billing/billing.ts b/backend/convex/domains/integrations/billing/billing.ts similarity index 100% rename from convex/domains/integrations/billing/billing.ts rename to backend/convex/domains/integrations/billing/billing.ts diff --git a/convex/domains/integrations/billing/index.ts b/backend/convex/domains/integrations/billing/index.ts similarity index 100% rename from convex/domains/integrations/billing/index.ts rename to backend/convex/domains/integrations/billing/index.ts diff --git a/convex/domains/integrations/billing/rateLimiting.ts b/backend/convex/domains/integrations/billing/rateLimiting.ts similarity index 100% rename from convex/domains/integrations/billing/rateLimiting.ts rename to backend/convex/domains/integrations/billing/rateLimiting.ts diff --git a/convex/domains/integrations/discord.ts b/backend/convex/domains/integrations/discord.ts similarity index 100% rename from convex/domains/integrations/discord.ts rename to backend/convex/domains/integrations/discord.ts diff --git a/convex/domains/integrations/discordAgent.ts b/backend/convex/domains/integrations/discordAgent.ts similarity index 100% rename from convex/domains/integrations/discordAgent.ts rename to backend/convex/domains/integrations/discordAgent.ts diff --git a/convex/domains/integrations/email.ts b/backend/convex/domains/integrations/email.ts similarity index 100% rename from convex/domains/integrations/email.ts rename to backend/convex/domains/integrations/email.ts diff --git a/convex/domains/integrations/email/dailyEmailReport.ts b/backend/convex/domains/integrations/email/dailyEmailReport.ts similarity index 100% rename from convex/domains/integrations/email/dailyEmailReport.ts rename to backend/convex/domains/integrations/email/dailyEmailReport.ts diff --git a/convex/domains/integrations/email/dossierEmailExample.ts b/backend/convex/domains/integrations/email/dossierEmailExample.ts similarity index 100% rename from convex/domains/integrations/email/dossierEmailExample.ts rename to backend/convex/domains/integrations/email/dossierEmailExample.ts diff --git a/convex/domains/integrations/email/dossierEmailTemplate.ts b/backend/convex/domains/integrations/email/dossierEmailTemplate.ts similarity index 100% rename from convex/domains/integrations/email/dossierEmailTemplate.ts rename to backend/convex/domains/integrations/email/dossierEmailTemplate.ts diff --git a/convex/domains/integrations/email/emailAdmin.ts b/backend/convex/domains/integrations/email/emailAdmin.ts similarity index 100% rename from convex/domains/integrations/email/emailAdmin.ts rename to backend/convex/domains/integrations/email/emailAdmin.ts diff --git a/convex/domains/integrations/email/emailAdminActions.ts b/backend/convex/domains/integrations/email/emailAdminActions.ts similarity index 100% rename from convex/domains/integrations/email/emailAdminActions.ts rename to backend/convex/domains/integrations/email/emailAdminActions.ts diff --git a/convex/domains/integrations/email/emailEncounterIngest.ts b/backend/convex/domains/integrations/email/emailEncounterIngest.ts similarity index 100% rename from convex/domains/integrations/email/emailEncounterIngest.ts rename to backend/convex/domains/integrations/email/emailEncounterIngest.ts diff --git a/convex/domains/integrations/email/emailQueries.ts b/backend/convex/domains/integrations/email/emailQueries.ts similarity index 100% rename from convex/domains/integrations/email/emailQueries.ts rename to backend/convex/domains/integrations/email/emailQueries.ts diff --git a/convex/domains/integrations/email/emailService.ts b/backend/convex/domains/integrations/email/emailService.ts similarity index 100% rename from convex/domains/integrations/email/emailService.ts rename to backend/convex/domains/integrations/email/emailService.ts diff --git a/convex/domains/integrations/email/emailWebhook.ts b/backend/convex/domains/integrations/email/emailWebhook.ts similarity index 100% rename from convex/domains/integrations/email/emailWebhook.ts rename to backend/convex/domains/integrations/email/emailWebhook.ts diff --git a/convex/domains/integrations/email/morningDigestEmailTemplate.ts b/backend/convex/domains/integrations/email/morningDigestEmailTemplate.ts similarity index 100% rename from convex/domains/integrations/email/morningDigestEmailTemplate.ts rename to backend/convex/domains/integrations/email/morningDigestEmailTemplate.ts diff --git a/convex/domains/integrations/gcal.ts b/backend/convex/domains/integrations/gcal.ts similarity index 100% rename from convex/domains/integrations/gcal.ts rename to backend/convex/domains/integrations/gcal.ts diff --git a/convex/domains/integrations/gmail.ts b/backend/convex/domains/integrations/gmail.ts similarity index 100% rename from convex/domains/integrations/gmail.ts rename to backend/convex/domains/integrations/gmail.ts diff --git a/convex/domains/integrations/gmail/types.ts b/backend/convex/domains/integrations/gmail/types.ts similarity index 100% rename from convex/domains/integrations/gmail/types.ts rename to backend/convex/domains/integrations/gmail/types.ts diff --git a/convex/domains/integrations/index.ts b/backend/convex/domains/integrations/index.ts similarity index 100% rename from convex/domains/integrations/index.ts rename to backend/convex/domains/integrations/index.ts diff --git a/convex/domains/integrations/integrations.ts b/backend/convex/domains/integrations/integrations.ts similarity index 100% rename from convex/domains/integrations/integrations.ts rename to backend/convex/domains/integrations/integrations.ts diff --git a/convex/domains/integrations/landing/landingPageLog.ts b/backend/convex/domains/integrations/landing/landingPageLog.ts similarity index 100% rename from convex/domains/integrations/landing/landingPageLog.ts rename to backend/convex/domains/integrations/landing/landingPageLog.ts diff --git a/convex/domains/integrations/macro/fredSeed.ts b/backend/convex/domains/integrations/macro/fredSeed.ts similarity index 100% rename from convex/domains/integrations/macro/fredSeed.ts rename to backend/convex/domains/integrations/macro/fredSeed.ts diff --git a/convex/domains/integrations/ntfy.ts b/backend/convex/domains/integrations/ntfy.ts similarity index 100% rename from convex/domains/integrations/ntfy.ts rename to backend/convex/domains/integrations/ntfy.ts diff --git a/convex/domains/integrations/polar.ts b/backend/convex/domains/integrations/polar.ts similarity index 100% rename from convex/domains/integrations/polar.ts rename to backend/convex/domains/integrations/polar.ts diff --git a/convex/domains/integrations/resend.ts b/backend/convex/domains/integrations/resend.ts similarity index 100% rename from convex/domains/integrations/resend.ts rename to backend/convex/domains/integrations/resend.ts diff --git a/convex/domains/integrations/slack/encounterMutations.ts b/backend/convex/domains/integrations/slack/encounterMutations.ts similarity index 100% rename from convex/domains/integrations/slack/encounterMutations.ts rename to backend/convex/domains/integrations/slack/encounterMutations.ts diff --git a/convex/domains/integrations/slack/encounterParser.ts b/backend/convex/domains/integrations/slack/encounterParser.ts similarity index 100% rename from convex/domains/integrations/slack/encounterParser.ts rename to backend/convex/domains/integrations/slack/encounterParser.ts diff --git a/convex/domains/integrations/slack/encounterResearch.ts b/backend/convex/domains/integrations/slack/encounterResearch.ts similarity index 100% rename from convex/domains/integrations/slack/encounterResearch.ts rename to backend/convex/domains/integrations/slack/encounterResearch.ts diff --git a/convex/domains/integrations/slack/encounterResearchQueries.ts b/backend/convex/domains/integrations/slack/encounterResearchQueries.ts similarity index 100% rename from convex/domains/integrations/slack/encounterResearchQueries.ts rename to backend/convex/domains/integrations/slack/encounterResearchQueries.ts diff --git a/convex/domains/integrations/slack/encounterResolver.ts b/backend/convex/domains/integrations/slack/encounterResolver.ts similarity index 100% rename from convex/domains/integrations/slack/encounterResolver.ts rename to backend/convex/domains/integrations/slack/encounterResolver.ts diff --git a/convex/domains/integrations/slack/index.ts b/backend/convex/domains/integrations/slack/index.ts similarity index 100% rename from convex/domains/integrations/slack/index.ts rename to backend/convex/domains/integrations/slack/index.ts diff --git a/convex/domains/integrations/slack/slackAgent.ts b/backend/convex/domains/integrations/slack/slackAgent.ts similarity index 100% rename from convex/domains/integrations/slack/slackAgent.ts rename to backend/convex/domains/integrations/slack/slackAgent.ts diff --git a/convex/domains/integrations/slack/slackBlocks.ts b/backend/convex/domains/integrations/slack/slackBlocks.ts similarity index 100% rename from convex/domains/integrations/slack/slackBlocks.ts rename to backend/convex/domains/integrations/slack/slackBlocks.ts diff --git a/convex/domains/integrations/slack/slackWebhook.ts b/backend/convex/domains/integrations/slack/slackWebhook.ts similarity index 100% rename from convex/domains/integrations/slack/slackWebhook.ts rename to backend/convex/domains/integrations/slack/slackWebhook.ts diff --git a/convex/domains/integrations/sms.ts b/backend/convex/domains/integrations/sms.ts similarity index 100% rename from convex/domains/integrations/sms.ts rename to backend/convex/domains/integrations/sms.ts diff --git a/convex/domains/integrations/spreadsheets.ts b/backend/convex/domains/integrations/spreadsheets.ts similarity index 100% rename from convex/domains/integrations/spreadsheets.ts rename to backend/convex/domains/integrations/spreadsheets.ts diff --git a/convex/domains/integrations/telegram.ts b/backend/convex/domains/integrations/telegram.ts similarity index 100% rename from convex/domains/integrations/telegram.ts rename to backend/convex/domains/integrations/telegram.ts diff --git a/convex/domains/integrations/telegramAgent.ts b/backend/convex/domains/integrations/telegramAgent.ts similarity index 100% rename from convex/domains/integrations/telegramAgent.ts rename to backend/convex/domains/integrations/telegramAgent.ts diff --git a/convex/domains/integrations/video/oembedFetcher.ts b/backend/convex/domains/integrations/video/oembedFetcher.ts similarity index 100% rename from convex/domains/integrations/video/oembedFetcher.ts rename to backend/convex/domains/integrations/video/oembedFetcher.ts diff --git a/convex/domains/integrations/video/oembedFetcherQueries.ts b/backend/convex/domains/integrations/video/oembedFetcherQueries.ts similarity index 100% rename from convex/domains/integrations/video/oembedFetcherQueries.ts rename to backend/convex/domains/integrations/video/oembedFetcherQueries.ts diff --git a/convex/domains/integrations/voice/costLedger.ts b/backend/convex/domains/integrations/voice/costLedger.ts similarity index 100% rename from convex/domains/integrations/voice/costLedger.ts rename to backend/convex/domains/integrations/voice/costLedger.ts diff --git a/convex/domains/integrations/voice/editionTts.ts b/backend/convex/domains/integrations/voice/editionTts.ts similarity index 100% rename from convex/domains/integrations/voice/editionTts.ts rename to backend/convex/domains/integrations/voice/editionTts.ts diff --git a/convex/domains/integrations/voice/realtimeAudit.ts b/backend/convex/domains/integrations/voice/realtimeAudit.ts similarity index 100% rename from convex/domains/integrations/voice/realtimeAudit.ts rename to backend/convex/domains/integrations/voice/realtimeAudit.ts diff --git a/convex/domains/integrations/voice/realtimeGateway.ts b/backend/convex/domains/integrations/voice/realtimeGateway.ts similarity index 100% rename from convex/domains/integrations/voice/realtimeGateway.ts rename to backend/convex/domains/integrations/voice/realtimeGateway.ts diff --git a/convex/domains/integrations/voice/voiceActions.ts b/backend/convex/domains/integrations/voice/voiceActions.ts similarity index 100% rename from convex/domains/integrations/voice/voiceActions.ts rename to backend/convex/domains/integrations/voice/voiceActions.ts diff --git a/convex/domains/integrations/voice/voiceAgent.ts b/backend/convex/domains/integrations/voice/voiceAgent.ts similarity index 100% rename from convex/domains/integrations/voice/voiceAgent.ts rename to backend/convex/domains/integrations/voice/voiceAgent.ts diff --git a/convex/domains/integrations/voice/voiceMutations.ts b/backend/convex/domains/integrations/voice/voiceMutations.ts similarity index 100% rename from convex/domains/integrations/voice/voiceMutations.ts rename to backend/convex/domains/integrations/voice/voiceMutations.ts diff --git a/convex/domains/intelligence/operations.ts b/backend/convex/domains/intelligence/operations.ts similarity index 100% rename from convex/domains/intelligence/operations.ts rename to backend/convex/domains/intelligence/operations.ts diff --git a/convex/domains/intelligence/schema.ts b/backend/convex/domains/intelligence/schema.ts similarity index 100% rename from convex/domains/intelligence/schema.ts rename to backend/convex/domains/intelligence/schema.ts diff --git a/convex/domains/knowledge/adaptiveEntityEnrichment.ts b/backend/convex/domains/knowledge/adaptiveEntityEnrichment.ts similarity index 100% rename from convex/domains/knowledge/adaptiveEntityEnrichment.ts rename to backend/convex/domains/knowledge/adaptiveEntityEnrichment.ts diff --git a/convex/domains/knowledge/adaptiveEntityQueries.ts b/backend/convex/domains/knowledge/adaptiveEntityQueries.ts similarity index 100% rename from convex/domains/knowledge/adaptiveEntityQueries.ts rename to backend/convex/domains/knowledge/adaptiveEntityQueries.ts diff --git a/convex/domains/knowledge/entityContexts.ts b/backend/convex/domains/knowledge/entityContexts.ts similarity index 100% rename from convex/domains/knowledge/entityContexts.ts rename to backend/convex/domains/knowledge/entityContexts.ts diff --git a/convex/domains/knowledge/entityInsights.ts b/backend/convex/domains/knowledge/entityInsights.ts similarity index 100% rename from convex/domains/knowledge/entityInsights.ts rename to backend/convex/domains/knowledge/entityInsights.ts diff --git a/convex/domains/knowledge/index.ts b/backend/convex/domains/knowledge/index.ts similarity index 100% rename from convex/domains/knowledge/index.ts rename to backend/convex/domains/knowledge/index.ts diff --git a/convex/domains/knowledge/knowledgeGraph.ts b/backend/convex/domains/knowledge/knowledgeGraph.ts similarity index 100% rename from convex/domains/knowledge/knowledgeGraph.ts rename to backend/convex/domains/knowledge/knowledgeGraph.ts diff --git a/convex/domains/knowledge/learning/adaptiveLearning.ts b/backend/convex/domains/knowledge/learning/adaptiveLearning.ts similarity index 100% rename from convex/domains/knowledge/learning/adaptiveLearning.ts rename to backend/convex/domains/knowledge/learning/adaptiveLearning.ts diff --git a/convex/domains/knowledge/nodes.ts b/backend/convex/domains/knowledge/nodes.ts similarity index 100% rename from convex/domains/knowledge/nodes.ts rename to backend/convex/domains/knowledge/nodes.ts diff --git a/convex/domains/knowledge/relationTypes.ts b/backend/convex/domains/knowledge/relationTypes.ts similarity index 100% rename from convex/domains/knowledge/relationTypes.ts rename to backend/convex/domains/knowledge/relationTypes.ts diff --git a/convex/domains/knowledge/relations.ts b/backend/convex/domains/knowledge/relations.ts similarity index 100% rename from convex/domains/knowledge/relations.ts rename to backend/convex/domains/knowledge/relations.ts diff --git a/convex/domains/knowledge/relationshipGraph.ts b/backend/convex/domains/knowledge/relationshipGraph.ts similarity index 100% rename from convex/domains/knowledge/relationshipGraph.ts rename to backend/convex/domains/knowledge/relationshipGraph.ts diff --git a/convex/domains/knowledge/sourceDiffs.ts b/backend/convex/domains/knowledge/sourceDiffs.ts similarity index 100% rename from convex/domains/knowledge/sourceDiffs.ts rename to backend/convex/domains/knowledge/sourceDiffs.ts diff --git a/convex/domains/knowledge/sourceRegistry.ts b/backend/convex/domains/knowledge/sourceRegistry.ts similarity index 100% rename from convex/domains/knowledge/sourceRegistry.ts rename to backend/convex/domains/knowledge/sourceRegistry.ts diff --git a/convex/domains/knowledge/tags.ts b/backend/convex/domains/knowledge/tags.ts similarity index 100% rename from convex/domains/knowledge/tags.ts rename to backend/convex/domains/knowledge/tags.ts diff --git a/convex/domains/knowledge/teachability/index.ts b/backend/convex/domains/knowledge/teachability/index.ts similarity index 100% rename from convex/domains/knowledge/teachability/index.ts rename to backend/convex/domains/knowledge/teachability/index.ts diff --git a/convex/domains/landing/landingPageLog.ts b/backend/convex/domains/landing/landingPageLog.ts similarity index 100% rename from convex/domains/landing/landingPageLog.ts rename to backend/convex/domains/landing/landingPageLog.ts diff --git a/convex/domains/learning/adaptiveLearning.ts b/backend/convex/domains/learning/adaptiveLearning.ts similarity index 100% rename from convex/domains/learning/adaptiveLearning.ts rename to backend/convex/domains/learning/adaptiveLearning.ts diff --git a/convex/domains/mcp/apiKeys.ts b/backend/convex/domains/mcp/apiKeys.ts similarity index 100% rename from convex/domains/mcp/apiKeys.ts rename to backend/convex/domains/mcp/apiKeys.ts diff --git a/convex/domains/mcp/apiKeysSchema.ts b/backend/convex/domains/mcp/apiKeysSchema.ts similarity index 100% rename from convex/domains/mcp/apiKeysSchema.ts rename to backend/convex/domains/mcp/apiKeysSchema.ts diff --git a/convex/domains/mcp/mcp.ts b/backend/convex/domains/mcp/mcp.ts similarity index 100% rename from convex/domains/mcp/mcp.ts rename to backend/convex/domains/mcp/mcp.ts diff --git a/convex/domains/mcp/mcpAuth.ts b/backend/convex/domains/mcp/mcpAuth.ts similarity index 100% rename from convex/domains/mcp/mcpAuth.ts rename to backend/convex/domains/mcp/mcpAuth.ts diff --git a/convex/domains/mcp/mcpBridgeHttp.ts b/backend/convex/domains/mcp/mcpBridgeHttp.ts similarity index 100% rename from convex/domains/mcp/mcpBridgeHttp.ts rename to backend/convex/domains/mcp/mcpBridgeHttp.ts diff --git a/convex/domains/mcp/mcpBridgeQueries.ts b/backend/convex/domains/mcp/mcpBridgeQueries.ts similarity index 100% rename from convex/domains/mcp/mcpBridgeQueries.ts rename to backend/convex/domains/mcp/mcpBridgeQueries.ts diff --git a/convex/domains/mcp/mcpClient.ts b/backend/convex/domains/mcp/mcpClient.ts similarity index 100% rename from convex/domains/mcp/mcpClient.ts rename to backend/convex/domains/mcp/mcpClient.ts diff --git a/convex/domains/mcp/mcpExecutionTraceEndpoints.ts b/backend/convex/domains/mcp/mcpExecutionTraceEndpoints.ts similarity index 100% rename from convex/domains/mcp/mcpExecutionTraceEndpoints.ts rename to backend/convex/domains/mcp/mcpExecutionTraceEndpoints.ts diff --git a/convex/domains/mcp/mcpGatewayDispatcher.ts b/backend/convex/domains/mcp/mcpGatewayDispatcher.ts similarity index 100% rename from convex/domains/mcp/mcpGatewayDispatcher.ts rename to backend/convex/domains/mcp/mcpGatewayDispatcher.ts diff --git a/convex/domains/mcp/mcpHttpAuth.ts b/backend/convex/domains/mcp/mcpHttpAuth.ts similarity index 100% rename from convex/domains/mcp/mcpHttpAuth.ts rename to backend/convex/domains/mcp/mcpHttpAuth.ts diff --git a/convex/domains/mcp/mcpHybridSearch.ts b/backend/convex/domains/mcp/mcpHybridSearch.ts similarity index 100% rename from convex/domains/mcp/mcpHybridSearch.ts rename to backend/convex/domains/mcp/mcpHybridSearch.ts diff --git a/convex/domains/mcp/mcpLearning.ts b/backend/convex/domains/mcp/mcpLearning.ts similarity index 100% rename from convex/domains/mcp/mcpLearning.ts rename to backend/convex/domains/mcp/mcpLearning.ts diff --git a/convex/domains/mcp/mcpMemory.ts b/backend/convex/domains/mcp/mcpMemory.ts similarity index 100% rename from convex/domains/mcp/mcpMemory.ts rename to backend/convex/domains/mcp/mcpMemory.ts diff --git a/convex/domains/mcp/mcpMemoryHttp.ts b/backend/convex/domains/mcp/mcpMemoryHttp.ts similarity index 100% rename from convex/domains/mcp/mcpMemoryHttp.ts rename to backend/convex/domains/mcp/mcpMemoryHttp.ts diff --git a/convex/domains/mcp/mcpNarrativeEndpoints.ts b/backend/convex/domains/mcp/mcpNarrativeEndpoints.ts similarity index 100% rename from convex/domains/mcp/mcpNarrativeEndpoints.ts rename to backend/convex/domains/mcp/mcpNarrativeEndpoints.ts diff --git a/convex/domains/mcp/mcpPlans.ts b/backend/convex/domains/mcp/mcpPlans.ts similarity index 100% rename from convex/domains/mcp/mcpPlans.ts rename to backend/convex/domains/mcp/mcpPlans.ts diff --git a/convex/domains/mcp/mcpPlansHttp.ts b/backend/convex/domains/mcp/mcpPlansHttp.ts similarity index 100% rename from convex/domains/mcp/mcpPlansHttp.ts rename to backend/convex/domains/mcp/mcpPlansHttp.ts diff --git a/convex/domains/mcp/mcpResearchEndpoints.ts b/backend/convex/domains/mcp/mcpResearchEndpoints.ts similarity index 100% rename from convex/domains/mcp/mcpResearchEndpoints.ts rename to backend/convex/domains/mcp/mcpResearchEndpoints.ts diff --git a/convex/domains/mcp/mcpToolLedger.ts b/backend/convex/domains/mcp/mcpToolLedger.ts similarity index 100% rename from convex/domains/mcp/mcpToolLedger.ts rename to backend/convex/domains/mcp/mcpToolLedger.ts diff --git a/convex/domains/mcp/mcpToolRegistry.ts b/backend/convex/domains/mcp/mcpToolRegistry.ts similarity index 100% rename from convex/domains/mcp/mcpToolRegistry.ts rename to backend/convex/domains/mcp/mcpToolRegistry.ts diff --git a/convex/domains/mcp/mcpVerificationEndpoints.ts b/backend/convex/domains/mcp/mcpVerificationEndpoints.ts similarity index 100% rename from convex/domains/mcp/mcpVerificationEndpoints.ts rename to backend/convex/domains/mcp/mcpVerificationEndpoints.ts diff --git a/convex/domains/mcp/webmcpOriginManager.ts b/backend/convex/domains/mcp/webmcpOriginManager.ts similarity index 100% rename from convex/domains/mcp/webmcpOriginManager.ts rename to backend/convex/domains/mcp/webmcpOriginManager.ts diff --git a/convex/domains/messaging/channelPreferencesManager.ts b/backend/convex/domains/messaging/channelPreferencesManager.ts similarity index 100% rename from convex/domains/messaging/channelPreferencesManager.ts rename to backend/convex/domains/messaging/channelPreferencesManager.ts diff --git a/convex/domains/messaging/channelProvider.ts b/backend/convex/domains/messaging/channelProvider.ts similarity index 100% rename from convex/domains/messaging/channelProvider.ts rename to backend/convex/domains/messaging/channelProvider.ts diff --git a/convex/domains/messaging/channels/channelIntelligence.ts b/backend/convex/domains/messaging/channels/channelIntelligence.ts similarity index 100% rename from convex/domains/messaging/channels/channelIntelligence.ts rename to backend/convex/domains/messaging/channels/channelIntelligence.ts diff --git a/convex/domains/messaging/channels/engagementOptimizer.ts b/backend/convex/domains/messaging/channels/engagementOptimizer.ts similarity index 100% rename from convex/domains/messaging/channels/engagementOptimizer.ts rename to backend/convex/domains/messaging/channels/engagementOptimizer.ts diff --git a/convex/domains/messaging/channels/index.ts b/backend/convex/domains/messaging/channels/index.ts similarity index 100% rename from convex/domains/messaging/channels/index.ts rename to backend/convex/domains/messaging/channels/index.ts diff --git a/convex/domains/messaging/inboundPipeline.ts b/backend/convex/domains/messaging/inboundPipeline.ts similarity index 100% rename from convex/domains/messaging/inboundPipeline.ts rename to backend/convex/domains/messaging/inboundPipeline.ts diff --git a/convex/domains/messaging/messagingObservability.ts b/backend/convex/domains/messaging/messagingObservability.ts similarity index 100% rename from convex/domains/messaging/messagingObservability.ts rename to backend/convex/domains/messaging/messagingObservability.ts diff --git a/convex/domains/messaging/messagingSecurity.ts b/backend/convex/domains/messaging/messagingSecurity.ts similarity index 100% rename from convex/domains/messaging/messagingSecurity.ts rename to backend/convex/domains/messaging/messagingSecurity.ts diff --git a/convex/domains/messaging/outboundPipeline.ts b/backend/convex/domains/messaging/outboundPipeline.ts similarity index 100% rename from convex/domains/messaging/outboundPipeline.ts rename to backend/convex/domains/messaging/outboundPipeline.ts diff --git a/convex/domains/messaging/providerRegistry.ts b/backend/convex/domains/messaging/providerRegistry.ts similarity index 100% rename from convex/domains/messaging/providerRegistry.ts rename to backend/convex/domains/messaging/providerRegistry.ts diff --git a/convex/domains/messaging/providers/discordProvider.ts b/backend/convex/domains/messaging/providers/discordProvider.ts similarity index 100% rename from convex/domains/messaging/providers/discordProvider.ts rename to backend/convex/domains/messaging/providers/discordProvider.ts diff --git a/convex/domains/messaging/providers/emailProvider.ts b/backend/convex/domains/messaging/providers/emailProvider.ts similarity index 100% rename from convex/domains/messaging/providers/emailProvider.ts rename to backend/convex/domains/messaging/providers/emailProvider.ts diff --git a/convex/domains/messaging/providers/ntfyProvider.ts b/backend/convex/domains/messaging/providers/ntfyProvider.ts similarity index 100% rename from convex/domains/messaging/providers/ntfyProvider.ts rename to backend/convex/domains/messaging/providers/ntfyProvider.ts diff --git a/convex/domains/messaging/providers/openclawGatewayClient.ts b/backend/convex/domains/messaging/providers/openclawGatewayClient.ts similarity index 100% rename from convex/domains/messaging/providers/openclawGatewayClient.ts rename to backend/convex/domains/messaging/providers/openclawGatewayClient.ts diff --git a/convex/domains/messaging/providers/openclawProvider.ts b/backend/convex/domains/messaging/providers/openclawProvider.ts similarity index 100% rename from convex/domains/messaging/providers/openclawProvider.ts rename to backend/convex/domains/messaging/providers/openclawProvider.ts diff --git a/convex/domains/messaging/providers/slackProvider.ts b/backend/convex/domains/messaging/providers/slackProvider.ts similarity index 100% rename from convex/domains/messaging/providers/slackProvider.ts rename to backend/convex/domains/messaging/providers/slackProvider.ts diff --git a/convex/domains/messaging/providers/smsProvider.ts b/backend/convex/domains/messaging/providers/smsProvider.ts similarity index 100% rename from convex/domains/messaging/providers/smsProvider.ts rename to backend/convex/domains/messaging/providers/smsProvider.ts diff --git a/convex/domains/messaging/providers/telegramProvider.ts b/backend/convex/domains/messaging/providers/telegramProvider.ts similarity index 100% rename from convex/domains/messaging/providers/telegramProvider.ts rename to backend/convex/domains/messaging/providers/telegramProvider.ts diff --git a/convex/domains/messaging/providers/uiProvider.ts b/backend/convex/domains/messaging/providers/uiProvider.ts similarity index 100% rename from convex/domains/messaging/providers/uiProvider.ts rename to backend/convex/domains/messaging/providers/uiProvider.ts diff --git a/convex/domains/missions/costQueries.ts b/backend/convex/domains/missions/costQueries.ts similarity index 100% rename from convex/domains/missions/costQueries.ts rename to backend/convex/domains/missions/costQueries.ts diff --git a/convex/domains/missions/index.ts b/backend/convex/domains/missions/index.ts similarity index 100% rename from convex/domains/missions/index.ts rename to backend/convex/domains/missions/index.ts diff --git a/convex/domains/missions/missionOrchestrator.ts b/backend/convex/domains/missions/missionOrchestrator.ts similarity index 100% rename from convex/domains/missions/missionOrchestrator.ts rename to backend/convex/domains/missions/missionOrchestrator.ts diff --git a/convex/domains/missions/preExecutionGate.ts b/backend/convex/domains/missions/preExecutionGate.ts similarity index 100% rename from convex/domains/missions/preExecutionGate.ts rename to backend/convex/domains/missions/preExecutionGate.ts diff --git a/convex/domains/missions/preExecutionGateQueries.ts b/backend/convex/domains/missions/preExecutionGateQueries.ts similarity index 100% rename from convex/domains/missions/preExecutionGateQueries.ts rename to backend/convex/domains/missions/preExecutionGateQueries.ts diff --git a/convex/domains/missions/schema.ts b/backend/convex/domains/missions/schema.ts similarity index 100% rename from convex/domains/missions/schema.ts rename to backend/convex/domains/missions/schema.ts diff --git a/convex/domains/models/autonomousModelResolver.ts b/backend/convex/domains/models/autonomousModelResolver.ts similarity index 100% rename from convex/domains/models/autonomousModelResolver.ts rename to backend/convex/domains/models/autonomousModelResolver.ts diff --git a/convex/domains/models/freeModelDiscovery.ts b/backend/convex/domains/models/freeModelDiscovery.ts similarity index 100% rename from convex/domains/models/freeModelDiscovery.ts rename to backend/convex/domains/models/freeModelDiscovery.ts diff --git a/convex/domains/models/index.ts b/backend/convex/domains/models/index.ts similarity index 100% rename from convex/domains/models/index.ts rename to backend/convex/domains/models/index.ts diff --git a/convex/domains/models/livePerformanceEval.ts b/backend/convex/domains/models/livePerformanceEval.ts similarity index 100% rename from convex/domains/models/livePerformanceEval.ts rename to backend/convex/domains/models/livePerformanceEval.ts diff --git a/convex/domains/models/modelRouter.ts b/backend/convex/domains/models/modelRouter.ts similarity index 100% rename from convex/domains/models/modelRouter.ts rename to backend/convex/domains/models/modelRouter.ts diff --git a/convex/domains/models/modelRouterQueries.ts b/backend/convex/domains/models/modelRouterQueries.ts similarity index 100% rename from convex/domains/models/modelRouterQueries.ts rename to backend/convex/domains/models/modelRouterQueries.ts diff --git a/convex/domains/monitoring/gdeltSeed.ts b/backend/convex/domains/monitoring/gdeltSeed.ts similarity index 100% rename from convex/domains/monitoring/gdeltSeed.ts rename to backend/convex/domains/monitoring/gdeltSeed.ts diff --git a/convex/domains/monitoring/industryUpdates.ts b/backend/convex/domains/monitoring/industryUpdates.ts similarity index 100% rename from convex/domains/monitoring/industryUpdates.ts rename to backend/convex/domains/monitoring/industryUpdates.ts diff --git a/convex/domains/monitoring/industryUpdatesEnhanced.ts b/backend/convex/domains/monitoring/industryUpdatesEnhanced.ts similarity index 100% rename from convex/domains/monitoring/industryUpdatesEnhanced.ts rename to backend/convex/domains/monitoring/industryUpdatesEnhanced.ts diff --git a/convex/domains/monitoring/integrationHelpers.ts b/backend/convex/domains/monitoring/integrationHelpers.ts similarity index 100% rename from convex/domains/monitoring/integrationHelpers.ts rename to backend/convex/domains/monitoring/integrationHelpers.ts diff --git a/convex/domains/monitoring/publicTrendingSeed.test.ts b/backend/convex/domains/monitoring/publicTrendingSeed.test.ts similarity index 100% rename from convex/domains/monitoring/publicTrendingSeed.test.ts rename to backend/convex/domains/monitoring/publicTrendingSeed.test.ts diff --git a/convex/domains/monitoring/publicTrendingSeed.ts b/backend/convex/domains/monitoring/publicTrendingSeed.ts similarity index 100% rename from convex/domains/monitoring/publicTrendingSeed.ts rename to backend/convex/domains/monitoring/publicTrendingSeed.ts diff --git a/convex/domains/monitoring/worldMonitor.ts b/backend/convex/domains/monitoring/worldMonitor.ts similarity index 100% rename from convex/domains/monitoring/worldMonitor.ts rename to backend/convex/domains/monitoring/worldMonitor.ts diff --git a/convex/domains/narrative/actions/competingExplanations.ts b/backend/convex/domains/narrative/actions/competingExplanations.ts similarity index 100% rename from convex/domains/narrative/actions/competingExplanations.ts rename to backend/convex/domains/narrative/actions/competingExplanations.ts diff --git a/convex/domains/narrative/actions/hypothesisLifecycle.ts b/backend/convex/domains/narrative/actions/hypothesisLifecycle.ts similarity index 100% rename from convex/domains/narrative/actions/hypothesisLifecycle.ts rename to backend/convex/domains/narrative/actions/hypothesisLifecycle.ts diff --git a/convex/domains/narrative/adapters/briefAdapter.ts b/backend/convex/domains/narrative/adapters/briefAdapter.ts similarity index 100% rename from convex/domains/narrative/adapters/briefAdapter.ts rename to backend/convex/domains/narrative/adapters/briefAdapter.ts diff --git a/convex/domains/narrative/adapters/feedAdapter.ts b/backend/convex/domains/narrative/adapters/feedAdapter.ts similarity index 100% rename from convex/domains/narrative/adapters/feedAdapter.ts rename to backend/convex/domains/narrative/adapters/feedAdapter.ts diff --git a/convex/domains/narrative/adapters/index.ts b/backend/convex/domains/narrative/adapters/index.ts similarity index 100% rename from convex/domains/narrative/adapters/index.ts rename to backend/convex/domains/narrative/adapters/index.ts diff --git a/convex/domains/narrative/adapters/linkedinAdapter.ts b/backend/convex/domains/narrative/adapters/linkedinAdapter.ts similarity index 100% rename from convex/domains/narrative/adapters/linkedinAdapter.ts rename to backend/convex/domains/narrative/adapters/linkedinAdapter.ts diff --git a/convex/domains/narrative/adapters/pipelineQueries.ts b/backend/convex/domains/narrative/adapters/pipelineQueries.ts similarity index 100% rename from convex/domains/narrative/adapters/pipelineQueries.ts rename to backend/convex/domains/narrative/adapters/pipelineQueries.ts diff --git a/convex/domains/narrative/adapters/types.ts b/backend/convex/domains/narrative/adapters/types.ts similarity index 100% rename from convex/domains/narrative/adapters/types.ts rename to backend/convex/domains/narrative/adapters/types.ts diff --git a/convex/domains/narrative/contracts/eventClassificationContract.ts b/backend/convex/domains/narrative/contracts/eventClassificationContract.ts similarity index 100% rename from convex/domains/narrative/contracts/eventClassificationContract.ts rename to backend/convex/domains/narrative/contracts/eventClassificationContract.ts diff --git a/convex/domains/narrative/cronHandlers.ts b/backend/convex/domains/narrative/cronHandlers.ts similarity index 100% rename from convex/domains/narrative/cronHandlers.ts rename to backend/convex/domains/narrative/cronHandlers.ts diff --git a/convex/domains/narrative/crons.ts b/backend/convex/domains/narrative/crons.ts similarity index 100% rename from convex/domains/narrative/crons.ts rename to backend/convex/domains/narrative/crons.ts diff --git a/convex/domains/narrative/didYouKnow.ts b/backend/convex/domains/narrative/didYouKnow.ts similarity index 100% rename from convex/domains/narrative/didYouKnow.ts rename to backend/convex/domains/narrative/didYouKnow.ts diff --git a/convex/domains/narrative/didYouKnowSources.ts b/backend/convex/domains/narrative/didYouKnowSources.ts similarity index 100% rename from convex/domains/narrative/didYouKnowSources.ts rename to backend/convex/domains/narrative/didYouKnowSources.ts diff --git a/convex/domains/narrative/experiments/freshNewsDidYouKnowExperiment.ts b/backend/convex/domains/narrative/experiments/freshNewsDidYouKnowExperiment.ts similarity index 100% rename from convex/domains/narrative/experiments/freshNewsDidYouKnowExperiment.ts rename to backend/convex/domains/narrative/experiments/freshNewsDidYouKnowExperiment.ts diff --git a/convex/domains/narrative/guards/claimClassificationGate.ts b/backend/convex/domains/narrative/guards/claimClassificationGate.ts similarity index 100% rename from convex/domains/narrative/guards/claimClassificationGate.ts rename to backend/convex/domains/narrative/guards/claimClassificationGate.ts diff --git a/convex/domains/narrative/guards/claimClassificationGateQueries.ts b/backend/convex/domains/narrative/guards/claimClassificationGateQueries.ts similarity index 100% rename from convex/domains/narrative/guards/claimClassificationGateQueries.ts rename to backend/convex/domains/narrative/guards/claimClassificationGateQueries.ts diff --git a/convex/domains/narrative/guards/claimClassifier.ts b/backend/convex/domains/narrative/guards/claimClassifier.ts similarity index 100% rename from convex/domains/narrative/guards/claimClassifier.ts rename to backend/convex/domains/narrative/guards/claimClassifier.ts diff --git a/convex/domains/narrative/guards/contentRights.ts b/backend/convex/domains/narrative/guards/contentRights.ts similarity index 100% rename from convex/domains/narrative/guards/contentRights.ts rename to backend/convex/domains/narrative/guards/contentRights.ts diff --git a/convex/domains/narrative/guards/index.ts b/backend/convex/domains/narrative/guards/index.ts similarity index 100% rename from convex/domains/narrative/guards/index.ts rename to backend/convex/domains/narrative/guards/index.ts diff --git a/convex/domains/narrative/guards/injectionContainment.ts b/backend/convex/domains/narrative/guards/injectionContainment.ts similarity index 100% rename from convex/domains/narrative/guards/injectionContainment.ts rename to backend/convex/domains/narrative/guards/injectionContainment.ts diff --git a/convex/domains/narrative/guards/quarantine.ts b/backend/convex/domains/narrative/guards/quarantine.ts similarity index 100% rename from convex/domains/narrative/guards/quarantine.ts rename to backend/convex/domains/narrative/guards/quarantine.ts diff --git a/convex/domains/narrative/guards/selfCitationGuard.ts b/backend/convex/domains/narrative/guards/selfCitationGuard.ts similarity index 100% rename from convex/domains/narrative/guards/selfCitationGuard.ts rename to backend/convex/domains/narrative/guards/selfCitationGuard.ts diff --git a/convex/domains/narrative/guards/trustScoring.ts b/backend/convex/domains/narrative/guards/trustScoring.ts similarity index 100% rename from convex/domains/narrative/guards/trustScoring.ts rename to backend/convex/domains/narrative/guards/trustScoring.ts diff --git a/convex/domains/narrative/guards/truthMaintenance.ts b/backend/convex/domains/narrative/guards/truthMaintenance.ts similarity index 100% rename from convex/domains/narrative/guards/truthMaintenance.ts rename to backend/convex/domains/narrative/guards/truthMaintenance.ts diff --git a/convex/domains/narrative/index.ts b/backend/convex/domains/narrative/index.ts similarity index 100% rename from convex/domains/narrative/index.ts rename to backend/convex/domains/narrative/index.ts diff --git a/convex/domains/narrative/integrations/hooks.ts b/backend/convex/domains/narrative/integrations/hooks.ts similarity index 100% rename from convex/domains/narrative/integrations/hooks.ts rename to backend/convex/domains/narrative/integrations/hooks.ts diff --git a/convex/domains/narrative/mutations/correlations.ts b/backend/convex/domains/narrative/mutations/correlations.ts similarity index 100% rename from convex/domains/narrative/mutations/correlations.ts rename to backend/convex/domains/narrative/mutations/correlations.ts diff --git a/convex/domains/narrative/mutations/dedup.ts b/backend/convex/domains/narrative/mutations/dedup.ts similarity index 100% rename from convex/domains/narrative/mutations/dedup.ts rename to backend/convex/domains/narrative/mutations/dedup.ts diff --git a/convex/domains/narrative/mutations/disputes.ts b/backend/convex/domains/narrative/mutations/disputes.ts similarity index 100% rename from convex/domains/narrative/mutations/disputes.ts rename to backend/convex/domains/narrative/mutations/disputes.ts diff --git a/convex/domains/narrative/mutations/events.ts b/backend/convex/domains/narrative/mutations/events.ts similarity index 100% rename from convex/domains/narrative/mutations/events.ts rename to backend/convex/domains/narrative/mutations/events.ts diff --git a/convex/domains/narrative/mutations/evidence.ts b/backend/convex/domains/narrative/mutations/evidence.ts similarity index 100% rename from convex/domains/narrative/mutations/evidence.ts rename to backend/convex/domains/narrative/mutations/evidence.ts diff --git a/convex/domains/narrative/mutations/hypotheses.ts b/backend/convex/domains/narrative/mutations/hypotheses.ts similarity index 100% rename from convex/domains/narrative/mutations/hypotheses.ts rename to backend/convex/domains/narrative/mutations/hypotheses.ts diff --git a/convex/domains/narrative/mutations/policyEnforcedOps.ts b/backend/convex/domains/narrative/mutations/policyEnforcedOps.ts similarity index 100% rename from convex/domains/narrative/mutations/policyEnforcedOps.ts rename to backend/convex/domains/narrative/mutations/policyEnforcedOps.ts diff --git a/convex/domains/narrative/mutations/posts.ts b/backend/convex/domains/narrative/mutations/posts.ts similarity index 100% rename from convex/domains/narrative/mutations/posts.ts rename to backend/convex/domains/narrative/mutations/posts.ts diff --git a/convex/domains/narrative/mutations/replies.ts b/backend/convex/domains/narrative/mutations/replies.ts similarity index 100% rename from convex/domains/narrative/mutations/replies.ts rename to backend/convex/domains/narrative/mutations/replies.ts diff --git a/convex/domains/narrative/mutations/searchLog.ts b/backend/convex/domains/narrative/mutations/searchLog.ts similarity index 100% rename from convex/domains/narrative/mutations/searchLog.ts rename to backend/convex/domains/narrative/mutations/searchLog.ts diff --git a/convex/domains/narrative/mutations/signalMetrics.ts b/backend/convex/domains/narrative/mutations/signalMetrics.ts similarity index 100% rename from convex/domains/narrative/mutations/signalMetrics.ts rename to backend/convex/domains/narrative/mutations/signalMetrics.ts diff --git a/convex/domains/narrative/mutations/temporalFacts.ts b/backend/convex/domains/narrative/mutations/temporalFacts.ts similarity index 100% rename from convex/domains/narrative/mutations/temporalFacts.ts rename to backend/convex/domains/narrative/mutations/temporalFacts.ts diff --git a/convex/domains/narrative/mutations/threads.ts b/backend/convex/domains/narrative/mutations/threads.ts similarity index 100% rename from convex/domains/narrative/mutations/threads.ts rename to backend/convex/domains/narrative/mutations/threads.ts diff --git a/convex/domains/narrative/mutations/toolReplay.ts b/backend/convex/domains/narrative/mutations/toolReplay.ts similarity index 100% rename from convex/domains/narrative/mutations/toolReplay.ts rename to backend/convex/domains/narrative/mutations/toolReplay.ts diff --git a/convex/domains/narrative/mutations/workflowTrace.ts b/backend/convex/domains/narrative/mutations/workflowTrace.ts similarity index 100% rename from convex/domains/narrative/mutations/workflowTrace.ts rename to backend/convex/domains/narrative/mutations/workflowTrace.ts diff --git a/convex/domains/narrative/newsroom/agents/analystAgent.ts b/backend/convex/domains/narrative/newsroom/agents/analystAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/analystAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/analystAgent.ts diff --git a/convex/domains/narrative/newsroom/agents/commentHarvester.ts b/backend/convex/domains/narrative/newsroom/agents/commentHarvester.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/commentHarvester.ts rename to backend/convex/domains/narrative/newsroom/agents/commentHarvester.ts diff --git a/convex/domains/narrative/newsroom/agents/curatorAgent.ts b/backend/convex/domains/narrative/newsroom/agents/curatorAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/curatorAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/curatorAgent.ts diff --git a/convex/domains/narrative/newsroom/agents/historianAgent.ts b/backend/convex/domains/narrative/newsroom/agents/historianAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/historianAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/historianAgent.ts diff --git a/convex/domains/narrative/newsroom/agents/index.ts b/backend/convex/domains/narrative/newsroom/agents/index.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/index.ts rename to backend/convex/domains/narrative/newsroom/agents/index.ts diff --git a/convex/domains/narrative/newsroom/agents/publisherAgent.ts b/backend/convex/domains/narrative/newsroom/agents/publisherAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/publisherAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/publisherAgent.ts diff --git a/convex/domains/narrative/newsroom/agents/scoutAgent.ts b/backend/convex/domains/narrative/newsroom/agents/scoutAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/scoutAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/scoutAgent.ts diff --git a/convex/domains/narrative/newsroom/agents/signalCollectorAgent.ts b/backend/convex/domains/narrative/newsroom/agents/signalCollectorAgent.ts similarity index 100% rename from convex/domains/narrative/newsroom/agents/signalCollectorAgent.ts rename to backend/convex/domains/narrative/newsroom/agents/signalCollectorAgent.ts diff --git a/convex/domains/narrative/newsroom/recordReplayLane.ts b/backend/convex/domains/narrative/newsroom/recordReplayLane.ts similarity index 100% rename from convex/domains/narrative/newsroom/recordReplayLane.ts rename to backend/convex/domains/narrative/newsroom/recordReplayLane.ts diff --git a/convex/domains/narrative/newsroom/state.ts b/backend/convex/domains/narrative/newsroom/state.ts similarity index 100% rename from convex/domains/narrative/newsroom/state.ts rename to backend/convex/domains/narrative/newsroom/state.ts diff --git a/convex/domains/narrative/newsroom/workflow.ts b/backend/convex/domains/narrative/newsroom/workflow.ts similarity index 100% rename from convex/domains/narrative/newsroom/workflow.ts rename to backend/convex/domains/narrative/newsroom/workflow.ts diff --git a/convex/domains/narrative/policies/contentRights.ts b/backend/convex/domains/narrative/policies/contentRights.ts similarity index 100% rename from convex/domains/narrative/policies/contentRights.ts rename to backend/convex/domains/narrative/policies/contentRights.ts diff --git a/convex/domains/narrative/queries/correlations.ts b/backend/convex/domains/narrative/queries/correlations.ts similarity index 100% rename from convex/domains/narrative/queries/correlations.ts rename to backend/convex/domains/narrative/queries/correlations.ts diff --git a/convex/domains/narrative/queries/disputes.ts b/backend/convex/domains/narrative/queries/disputes.ts similarity index 100% rename from convex/domains/narrative/queries/disputes.ts rename to backend/convex/domains/narrative/queries/disputes.ts diff --git a/convex/domains/narrative/queries/events.ts b/backend/convex/domains/narrative/queries/events.ts similarity index 100% rename from convex/domains/narrative/queries/events.ts rename to backend/convex/domains/narrative/queries/events.ts diff --git a/convex/domains/narrative/queries/hypotheses.ts b/backend/convex/domains/narrative/queries/hypotheses.ts similarity index 100% rename from convex/domains/narrative/queries/hypotheses.ts rename to backend/convex/domains/narrative/queries/hypotheses.ts diff --git a/convex/domains/narrative/queries/posts.ts b/backend/convex/domains/narrative/queries/posts.ts similarity index 100% rename from convex/domains/narrative/queries/posts.ts rename to backend/convex/domains/narrative/queries/posts.ts diff --git a/convex/domains/narrative/queries/searchLog.ts b/backend/convex/domains/narrative/queries/searchLog.ts similarity index 100% rename from convex/domains/narrative/queries/searchLog.ts rename to backend/convex/domains/narrative/queries/searchLog.ts diff --git a/convex/domains/narrative/queries/signalMetrics.ts b/backend/convex/domains/narrative/queries/signalMetrics.ts similarity index 100% rename from convex/domains/narrative/queries/signalMetrics.ts rename to backend/convex/domains/narrative/queries/signalMetrics.ts diff --git a/convex/domains/narrative/queries/threads.ts b/backend/convex/domains/narrative/queries/threads.ts similarity index 100% rename from convex/domains/narrative/queries/threads.ts rename to backend/convex/domains/narrative/queries/threads.ts diff --git a/convex/domains/narrative/safety/abuseResistance.ts b/backend/convex/domains/narrative/safety/abuseResistance.ts similarity index 100% rename from convex/domains/narrative/safety/abuseResistance.ts rename to backend/convex/domains/narrative/safety/abuseResistance.ts diff --git a/convex/domains/narrative/tests/__tests__/goldenSetIntegration.live.test.ts b/backend/convex/domains/narrative/tests/__tests__/goldenSetIntegration.live.test.ts similarity index 100% rename from convex/domains/narrative/tests/__tests__/goldenSetIntegration.live.test.ts rename to backend/convex/domains/narrative/tests/__tests__/goldenSetIntegration.live.test.ts diff --git a/convex/domains/narrative/tests/__tests__/workflowValidation.test.ts b/backend/convex/domains/narrative/tests/__tests__/workflowValidation.test.ts similarity index 100% rename from convex/domains/narrative/tests/__tests__/workflowValidation.test.ts rename to backend/convex/domains/narrative/tests/__tests__/workflowValidation.test.ts diff --git a/convex/domains/narrative/tests/goldenSets/CHANGELOG.md b/backend/convex/domains/narrative/tests/goldenSets/CHANGELOG.md similarity index 100% rename from convex/domains/narrative/tests/goldenSets/CHANGELOG.md rename to backend/convex/domains/narrative/tests/goldenSets/CHANGELOG.md diff --git a/convex/domains/narrative/tests/goldenSets/GOVERNANCE.md b/backend/convex/domains/narrative/tests/goldenSets/GOVERNANCE.md similarity index 100% rename from convex/domains/narrative/tests/goldenSets/GOVERNANCE.md rename to backend/convex/domains/narrative/tests/goldenSets/GOVERNANCE.md diff --git a/convex/domains/narrative/tests/goldenSets/README.md b/backend/convex/domains/narrative/tests/goldenSets/README.md similarity index 100% rename from convex/domains/narrative/tests/goldenSets/README.md rename to backend/convex/domains/narrative/tests/goldenSets/README.md diff --git a/convex/domains/narrative/tests/goldenSets/drane_golden_set.schema.json b/backend/convex/domains/narrative/tests/goldenSets/drane_golden_set.schema.json similarity index 100% rename from convex/domains/narrative/tests/goldenSets/drane_golden_set.schema.json rename to backend/convex/domains/narrative/tests/goldenSets/drane_golden_set.schema.json diff --git a/convex/domains/narrative/tests/goldenSets/generatedCases.ts b/backend/convex/domains/narrative/tests/goldenSets/generatedCases.ts similarity index 100% rename from convex/domains/narrative/tests/goldenSets/generatedCases.ts rename to backend/convex/domains/narrative/tests/goldenSets/generatedCases.ts diff --git a/convex/domains/narrative/tests/goldenSets/suite.example.json b/backend/convex/domains/narrative/tests/goldenSets/suite.example.json similarity index 100% rename from convex/domains/narrative/tests/goldenSets/suite.example.json rename to backend/convex/domains/narrative/tests/goldenSets/suite.example.json diff --git a/convex/domains/narrative/tests/goldenSets/suites/drane_audit_v1.json b/backend/convex/domains/narrative/tests/goldenSets/suites/drane_audit_v1.json similarity index 100% rename from convex/domains/narrative/tests/goldenSets/suites/drane_audit_v1.json rename to backend/convex/domains/narrative/tests/goldenSets/suites/drane_audit_v1.json diff --git a/convex/domains/narrative/tests/goldenSets/types.ts b/backend/convex/domains/narrative/tests/goldenSets/types.ts similarity index 100% rename from convex/domains/narrative/tests/goldenSets/types.ts rename to backend/convex/domains/narrative/tests/goldenSets/types.ts diff --git a/convex/domains/narrative/tests/qaFramework.ts b/backend/convex/domains/narrative/tests/qaFramework.ts similarity index 100% rename from convex/domains/narrative/tests/qaFramework.ts rename to backend/convex/domains/narrative/tests/qaFramework.ts diff --git a/convex/domains/narrative/tests/validatePipeline.ts b/backend/convex/domains/narrative/tests/validatePipeline.ts similarity index 100% rename from convex/domains/narrative/tests/validatePipeline.ts rename to backend/convex/domains/narrative/tests/validatePipeline.ts diff --git a/convex/domains/narrative/truth/truthStateManager.ts b/backend/convex/domains/narrative/truth/truthStateManager.ts similarity index 100% rename from convex/domains/narrative/truth/truthStateManager.ts rename to backend/convex/domains/narrative/truth/truthStateManager.ts diff --git a/convex/domains/narrative/validators.ts b/backend/convex/domains/narrative/validators.ts similarity index 100% rename from convex/domains/narrative/validators.ts rename to backend/convex/domains/narrative/validators.ts diff --git a/convex/domains/observability/dashboardData.ts b/backend/convex/domains/observability/dashboardData.ts similarity index 100% rename from convex/domains/observability/dashboardData.ts rename to backend/convex/domains/observability/dashboardData.ts diff --git a/convex/domains/observability/healthMonitor.ts b/backend/convex/domains/observability/healthMonitor.ts similarity index 100% rename from convex/domains/observability/healthMonitor.ts rename to backend/convex/domains/observability/healthMonitor.ts diff --git a/convex/domains/observability/index.ts b/backend/convex/domains/observability/index.ts similarity index 100% rename from convex/domains/observability/index.ts rename to backend/convex/domains/observability/index.ts diff --git a/convex/domains/observability/selfHealer.ts b/backend/convex/domains/observability/selfHealer.ts similarity index 100% rename from convex/domains/observability/selfHealer.ts rename to backend/convex/domains/observability/selfHealer.ts diff --git a/convex/domains/observability/telemetry.ts b/backend/convex/domains/observability/telemetry.ts similarity index 100% rename from convex/domains/observability/telemetry.ts rename to backend/convex/domains/observability/telemetry.ts diff --git a/convex/domains/observability/traces.ts b/backend/convex/domains/observability/traces.ts similarity index 100% rename from convex/domains/observability/traces.ts rename to backend/convex/domains/observability/traces.ts diff --git a/convex/domains/openclaw/executionEngine.ts b/backend/convex/domains/openclaw/executionEngine.ts similarity index 100% rename from convex/domains/openclaw/executionEngine.ts rename to backend/convex/domains/openclaw/executionEngine.ts diff --git a/convex/domains/openclaw/forecastHandoffPolicy.test.ts b/backend/convex/domains/openclaw/forecastHandoffPolicy.test.ts similarity index 100% rename from convex/domains/openclaw/forecastHandoffPolicy.test.ts rename to backend/convex/domains/openclaw/forecastHandoffPolicy.test.ts diff --git a/convex/domains/openclaw/forecastHandoffPolicy.ts b/backend/convex/domains/openclaw/forecastHandoffPolicy.ts similarity index 100% rename from convex/domains/openclaw/forecastHandoffPolicy.ts rename to backend/convex/domains/openclaw/forecastHandoffPolicy.ts diff --git a/convex/domains/openclaw/monitoring.ts b/backend/convex/domains/openclaw/monitoring.ts similarity index 100% rename from convex/domains/openclaw/monitoring.ts rename to backend/convex/domains/openclaw/monitoring.ts diff --git a/convex/domains/openclaw/schema.ts b/backend/convex/domains/openclaw/schema.ts similarity index 100% rename from convex/domains/openclaw/schema.ts rename to backend/convex/domains/openclaw/schema.ts diff --git a/convex/domains/openclaw/sessionManager.ts b/backend/convex/domains/openclaw/sessionManager.ts similarity index 100% rename from convex/domains/openclaw/sessionManager.ts rename to backend/convex/domains/openclaw/sessionManager.ts diff --git a/convex/domains/openclaw/tools/openclawAgentTools.ts b/backend/convex/domains/openclaw/tools/openclawAgentTools.ts similarity index 100% rename from convex/domains/openclaw/tools/openclawAgentTools.ts rename to backend/convex/domains/openclaw/tools/openclawAgentTools.ts diff --git a/convex/domains/openclaw/workflowManager.ts b/backend/convex/domains/openclaw/workflowManager.ts similarity index 100% rename from convex/domains/openclaw/workflowManager.ts rename to backend/convex/domains/openclaw/workflowManager.ts diff --git a/convex/domains/operations/__tests__/autonomousControlTower.auth.test.ts b/backend/convex/domains/operations/__tests__/autonomousControlTower.auth.test.ts similarity index 100% rename from convex/domains/operations/__tests__/autonomousControlTower.auth.test.ts rename to backend/convex/domains/operations/__tests__/autonomousControlTower.auth.test.ts diff --git a/convex/domains/operations/__tests__/autonomousControlTower.test.ts b/backend/convex/domains/operations/__tests__/autonomousControlTower.test.ts similarity index 100% rename from convex/domains/operations/__tests__/autonomousControlTower.test.ts rename to backend/convex/domains/operations/__tests__/autonomousControlTower.test.ts diff --git a/convex/domains/operations/__tests__/selfMaintenanceChecks.test.ts b/backend/convex/domains/operations/__tests__/selfMaintenanceChecks.test.ts similarity index 100% rename from convex/domains/operations/__tests__/selfMaintenanceChecks.test.ts rename to backend/convex/domains/operations/__tests__/selfMaintenanceChecks.test.ts diff --git a/convex/domains/operations/adminAuditLog.ts b/backend/convex/domains/operations/adminAuditLog.ts similarity index 100% rename from convex/domains/operations/adminAuditLog.ts rename to backend/convex/domains/operations/adminAuditLog.ts diff --git a/convex/domains/operations/autonomousControlTower.ts b/backend/convex/domains/operations/autonomousControlTower.ts similarity index 100% rename from convex/domains/operations/autonomousControlTower.ts rename to backend/convex/domains/operations/autonomousControlTower.ts diff --git a/convex/domains/operations/batchAutopilot/deltaCollector.ts b/backend/convex/domains/operations/batchAutopilot/deltaCollector.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/deltaCollector.ts rename to backend/convex/domains/operations/batchAutopilot/deltaCollector.ts diff --git a/convex/domains/operations/batchAutopilot/mutations.ts b/backend/convex/domains/operations/batchAutopilot/mutations.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/mutations.ts rename to backend/convex/domains/operations/batchAutopilot/mutations.ts diff --git a/convex/domains/operations/batchAutopilot/promptBuilder.ts b/backend/convex/domains/operations/batchAutopilot/promptBuilder.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/promptBuilder.ts rename to backend/convex/domains/operations/batchAutopilot/promptBuilder.ts diff --git a/convex/domains/operations/batchAutopilot/queries.ts b/backend/convex/domains/operations/batchAutopilot/queries.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/queries.ts rename to backend/convex/domains/operations/batchAutopilot/queries.ts diff --git a/convex/domains/operations/batchAutopilot/runner.ts b/backend/convex/domains/operations/batchAutopilot/runner.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/runner.ts rename to backend/convex/domains/operations/batchAutopilot/runner.ts diff --git a/convex/domains/operations/batchAutopilot/scheduler.ts b/backend/convex/domains/operations/batchAutopilot/scheduler.ts similarity index 100% rename from convex/domains/operations/batchAutopilot/scheduler.ts rename to backend/convex/domains/operations/batchAutopilot/scheduler.ts diff --git a/convex/domains/operations/bugLoop.ts b/backend/convex/domains/operations/bugLoop.ts similarity index 100% rename from convex/domains/operations/bugLoop.ts rename to backend/convex/domains/operations/bugLoop.ts diff --git a/convex/domains/operations/encounters/encounterCapture.ts b/backend/convex/domains/operations/encounters/encounterCapture.ts similarity index 100% rename from convex/domains/operations/encounters/encounterCapture.ts rename to backend/convex/domains/operations/encounters/encounterCapture.ts diff --git a/convex/domains/operations/encounters/encounterFastPass.ts b/backend/convex/domains/operations/encounters/encounterFastPass.ts similarity index 100% rename from convex/domains/operations/encounters/encounterFastPass.ts rename to backend/convex/domains/operations/encounters/encounterFastPass.ts diff --git a/convex/domains/operations/encounters/encounterMutations.ts b/backend/convex/domains/operations/encounters/encounterMutations.ts similarity index 100% rename from convex/domains/operations/encounters/encounterMutations.ts rename to backend/convex/domains/operations/encounters/encounterMutations.ts diff --git a/convex/domains/operations/encounters/encounterQueries.ts b/backend/convex/domains/operations/encounters/encounterQueries.ts similarity index 100% rename from convex/domains/operations/encounters/encounterQueries.ts rename to backend/convex/domains/operations/encounters/encounterQueries.ts diff --git a/convex/domains/operations/encounters/index.ts b/backend/convex/domains/operations/encounters/index.ts similarity index 100% rename from convex/domains/operations/encounters/index.ts rename to backend/convex/domains/operations/encounters/index.ts diff --git a/convex/domains/operations/encounters/types.ts b/backend/convex/domains/operations/encounters/types.ts similarity index 100% rename from convex/domains/operations/encounters/types.ts rename to backend/convex/domains/operations/encounters/types.ts diff --git a/convex/domains/operations/gameDayTracking.ts b/backend/convex/domains/operations/gameDayTracking.ts similarity index 100% rename from convex/domains/operations/gameDayTracking.ts rename to backend/convex/domains/operations/gameDayTracking.ts diff --git a/convex/domains/operations/governance/provenanceExplainer.ts b/backend/convex/domains/operations/governance/provenanceExplainer.ts similarity index 100% rename from convex/domains/operations/governance/provenanceExplainer.ts rename to backend/convex/domains/operations/governance/provenanceExplainer.ts diff --git a/convex/domains/operations/governance/quarantine.ts b/backend/convex/domains/operations/governance/quarantine.ts similarity index 100% rename from convex/domains/operations/governance/quarantine.ts rename to backend/convex/domains/operations/governance/quarantine.ts diff --git a/convex/domains/operations/governance/trustPolicy.ts b/backend/convex/domains/operations/governance/trustPolicy.ts similarity index 100% rename from convex/domains/operations/governance/trustPolicy.ts rename to backend/convex/domains/operations/governance/trustPolicy.ts diff --git a/convex/domains/operations/hitl/adjudicationWorkflow.ts b/backend/convex/domains/operations/hitl/adjudicationWorkflow.ts similarity index 100% rename from convex/domains/operations/hitl/adjudicationWorkflow.ts rename to backend/convex/domains/operations/hitl/adjudicationWorkflow.ts diff --git a/convex/domains/operations/hitl/decisions.ts b/backend/convex/domains/operations/hitl/decisions.ts similarity index 100% rename from convex/domains/operations/hitl/decisions.ts rename to backend/convex/domains/operations/hitl/decisions.ts diff --git a/convex/domains/operations/hitl/distributionDriftDetection.ts b/backend/convex/domains/operations/hitl/distributionDriftDetection.ts similarity index 100% rename from convex/domains/operations/hitl/distributionDriftDetection.ts rename to backend/convex/domains/operations/hitl/distributionDriftDetection.ts diff --git a/convex/domains/operations/hitl/labelerCalibration.ts b/backend/convex/domains/operations/hitl/labelerCalibration.ts similarity index 100% rename from convex/domains/operations/hitl/labelerCalibration.ts rename to backend/convex/domains/operations/hitl/labelerCalibration.ts diff --git a/convex/domains/operations/hitl/labelingQueue.ts b/backend/convex/domains/operations/hitl/labelingQueue.ts similarity index 100% rename from convex/domains/operations/hitl/labelingQueue.ts rename to backend/convex/domains/operations/hitl/labelingQueue.ts diff --git a/convex/domains/operations/hitl/validationWorkspaceEnforcement.ts b/backend/convex/domains/operations/hitl/validationWorkspaceEnforcement.ts similarity index 100% rename from convex/domains/operations/hitl/validationWorkspaceEnforcement.ts rename to backend/convex/domains/operations/hitl/validationWorkspaceEnforcement.ts diff --git a/convex/domains/operations/mcpRateLimiting.ts b/backend/convex/domains/operations/mcpRateLimiting.ts similarity index 100% rename from convex/domains/operations/mcpRateLimiting.ts rename to backend/convex/domains/operations/mcpRateLimiting.ts diff --git a/convex/domains/operations/mcpSecurity.ts b/backend/convex/domains/operations/mcpSecurity.ts similarity index 100% rename from convex/domains/operations/mcpSecurity.ts rename to backend/convex/domains/operations/mcpSecurity.ts diff --git a/convex/domains/operations/monitoring/industryUpdates.ts b/backend/convex/domains/operations/monitoring/industryUpdates.ts similarity index 100% rename from convex/domains/operations/monitoring/industryUpdates.ts rename to backend/convex/domains/operations/monitoring/industryUpdates.ts diff --git a/convex/domains/operations/monitoring/industryUpdatesEnhanced.ts b/backend/convex/domains/operations/monitoring/industryUpdatesEnhanced.ts similarity index 100% rename from convex/domains/operations/monitoring/industryUpdatesEnhanced.ts rename to backend/convex/domains/operations/monitoring/industryUpdatesEnhanced.ts diff --git a/convex/domains/operations/monitoring/integrationHelpers.ts b/backend/convex/domains/operations/monitoring/integrationHelpers.ts similarity index 100% rename from convex/domains/operations/monitoring/integrationHelpers.ts rename to backend/convex/domains/operations/monitoring/integrationHelpers.ts diff --git a/convex/domains/operations/observability/dashboardData.ts b/backend/convex/domains/operations/observability/dashboardData.ts similarity index 100% rename from convex/domains/operations/observability/dashboardData.ts rename to backend/convex/domains/operations/observability/dashboardData.ts diff --git a/convex/domains/operations/observability/healthMonitor.ts b/backend/convex/domains/operations/observability/healthMonitor.ts similarity index 100% rename from convex/domains/operations/observability/healthMonitor.ts rename to backend/convex/domains/operations/observability/healthMonitor.ts diff --git a/convex/domains/operations/observability/index.ts b/backend/convex/domains/operations/observability/index.ts similarity index 100% rename from convex/domains/operations/observability/index.ts rename to backend/convex/domains/operations/observability/index.ts diff --git a/convex/domains/operations/observability/selfHealer.ts b/backend/convex/domains/operations/observability/selfHealer.ts similarity index 100% rename from convex/domains/operations/observability/selfHealer.ts rename to backend/convex/domains/operations/observability/selfHealer.ts diff --git a/convex/domains/operations/observability/telemetry.ts b/backend/convex/domains/operations/observability/telemetry.ts similarity index 100% rename from convex/domains/operations/observability/telemetry.ts rename to backend/convex/domains/operations/observability/telemetry.ts diff --git a/convex/domains/operations/observability/traces.ts b/backend/convex/domains/operations/observability/traces.ts similarity index 100% rename from convex/domains/operations/observability/traces.ts rename to backend/convex/domains/operations/observability/traces.ts diff --git a/convex/domains/operations/personaChangeTracking.ts b/backend/convex/domains/operations/personaChangeTracking.ts similarity index 100% rename from convex/domains/operations/personaChangeTracking.ts rename to backend/convex/domains/operations/personaChangeTracking.ts diff --git a/convex/domains/operations/postExecutionHygiene.ts b/backend/convex/domains/operations/postExecutionHygiene.ts similarity index 100% rename from convex/domains/operations/postExecutionHygiene.ts rename to backend/convex/domains/operations/postExecutionHygiene.ts diff --git a/convex/domains/operations/privacyEnforcement.ts b/backend/convex/domains/operations/privacyEnforcement.ts similarity index 100% rename from convex/domains/operations/privacyEnforcement.ts rename to backend/convex/domains/operations/privacyEnforcement.ts diff --git a/convex/domains/operations/selfMaintenance.ts b/backend/convex/domains/operations/selfMaintenance.ts similarity index 100% rename from convex/domains/operations/selfMaintenance.ts rename to backend/convex/domains/operations/selfMaintenance.ts diff --git a/convex/domains/operations/selfMaintenanceChecks.ts b/backend/convex/domains/operations/selfMaintenanceChecks.ts similarity index 100% rename from convex/domains/operations/selfMaintenanceChecks.ts rename to backend/convex/domains/operations/selfMaintenanceChecks.ts diff --git a/convex/domains/operations/sloCalculation.ts b/backend/convex/domains/operations/sloCalculation.ts similarity index 100% rename from convex/domains/operations/sloCalculation.ts rename to backend/convex/domains/operations/sloCalculation.ts diff --git a/convex/domains/operations/sloCollector.ts b/backend/convex/domains/operations/sloCollector.ts similarity index 100% rename from convex/domains/operations/sloCollector.ts rename to backend/convex/domains/operations/sloCollector.ts diff --git a/convex/domains/operations/sloDashboardQueries.ts b/backend/convex/domains/operations/sloDashboardQueries.ts similarity index 100% rename from convex/domains/operations/sloDashboardQueries.ts rename to backend/convex/domains/operations/sloDashboardQueries.ts diff --git a/convex/domains/operations/sloFramework.ts b/backend/convex/domains/operations/sloFramework.ts similarity index 100% rename from convex/domains/operations/sloFramework.ts rename to backend/convex/domains/operations/sloFramework.ts diff --git a/convex/domains/operations/taskManager/cronWrapper.ts b/backend/convex/domains/operations/taskManager/cronWrapper.ts similarity index 100% rename from convex/domains/operations/taskManager/cronWrapper.ts rename to backend/convex/domains/operations/taskManager/cronWrapper.ts diff --git a/convex/domains/operations/taskManager/index.ts b/backend/convex/domains/operations/taskManager/index.ts similarity index 100% rename from convex/domains/operations/taskManager/index.ts rename to backend/convex/domains/operations/taskManager/index.ts diff --git a/convex/domains/operations/taskManager/mutations.ts b/backend/convex/domains/operations/taskManager/mutations.ts similarity index 100% rename from convex/domains/operations/taskManager/mutations.ts rename to backend/convex/domains/operations/taskManager/mutations.ts diff --git a/convex/domains/operations/taskManager/proofPack.ts b/backend/convex/domains/operations/taskManager/proofPack.ts similarity index 100% rename from convex/domains/operations/taskManager/proofPack.ts rename to backend/convex/domains/operations/taskManager/proofPack.ts diff --git a/convex/domains/operations/taskManager/queries.ts b/backend/convex/domains/operations/taskManager/queries.ts similarity index 100% rename from convex/domains/operations/taskManager/queries.ts rename to backend/convex/domains/operations/taskManager/queries.ts diff --git a/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts b/backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts similarity index 100% rename from convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts rename to backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts diff --git a/convex/domains/operations/tasks/dailyNotes.ts b/backend/convex/domains/operations/tasks/dailyNotes.ts similarity index 100% rename from convex/domains/operations/tasks/dailyNotes.ts rename to backend/convex/domains/operations/tasks/dailyNotes.ts diff --git a/convex/domains/operations/tasks/eventTaskDocuments.ts b/backend/convex/domains/operations/tasks/eventTaskDocuments.ts similarity index 100% rename from convex/domains/operations/tasks/eventTaskDocuments.ts rename to backend/convex/domains/operations/tasks/eventTaskDocuments.ts diff --git a/convex/domains/operations/tasks/index.ts b/backend/convex/domains/operations/tasks/index.ts similarity index 100% rename from convex/domains/operations/tasks/index.ts rename to backend/convex/domains/operations/tasks/index.ts diff --git a/convex/domains/operations/tasks/userEvents.ts b/backend/convex/domains/operations/tasks/userEvents.ts similarity index 100% rename from convex/domains/operations/tasks/userEvents.ts rename to backend/convex/domains/operations/tasks/userEvents.ts diff --git a/convex/domains/operations/tasks/work.ts b/backend/convex/domains/operations/tasks/work.ts similarity index 100% rename from convex/domains/operations/tasks/work.ts rename to backend/convex/domains/operations/tasks/work.ts diff --git a/convex/domains/operations/tasks/workflows/bankingMemoWorkflow.ts b/backend/convex/domains/operations/tasks/workflows/bankingMemoWorkflow.ts similarity index 100% rename from convex/domains/operations/tasks/workflows/bankingMemoWorkflow.ts rename to backend/convex/domains/operations/tasks/workflows/bankingMemoWorkflow.ts diff --git a/convex/domains/operations/tasks/workflows/coordinatorWorkflow.ts b/backend/convex/domains/operations/tasks/workflows/coordinatorWorkflow.ts similarity index 100% rename from convex/domains/operations/tasks/workflows/coordinatorWorkflow.ts rename to backend/convex/domains/operations/tasks/workflows/coordinatorWorkflow.ts diff --git a/convex/domains/operations/tasks/workflows/index.ts b/backend/convex/domains/operations/tasks/workflows/index.ts similarity index 100% rename from convex/domains/operations/tasks/workflows/index.ts rename to backend/convex/domains/operations/tasks/workflows/index.ts diff --git a/convex/domains/operations/telemetry/disclosureEvents.ts b/backend/convex/domains/operations/telemetry/disclosureEvents.ts similarity index 100% rename from convex/domains/operations/telemetry/disclosureEvents.ts rename to backend/convex/domains/operations/telemetry/disclosureEvents.ts diff --git a/convex/domains/operations/utilities/migrations.ts b/backend/convex/domains/operations/utilities/migrations.ts similarity index 100% rename from convex/domains/operations/utilities/migrations.ts rename to backend/convex/domains/operations/utilities/migrations.ts diff --git a/convex/domains/operations/utilities/seedGoldenDataset.ts b/backend/convex/domains/operations/utilities/seedGoldenDataset.ts similarity index 100% rename from convex/domains/operations/utilities/seedGoldenDataset.ts rename to backend/convex/domains/operations/utilities/seedGoldenDataset.ts diff --git a/convex/domains/operations/utilities/snapshotMigrations.ts b/backend/convex/domains/operations/utilities/snapshotMigrations.ts similarity index 100% rename from convex/domains/operations/utilities/snapshotMigrations.ts rename to backend/convex/domains/operations/utilities/snapshotMigrations.ts diff --git a/convex/domains/operations/validationWorkflow.ts b/backend/convex/domains/operations/validationWorkflow.ts similarity index 100% rename from convex/domains/operations/validationWorkflow.ts rename to backend/convex/domains/operations/validationWorkflow.ts diff --git a/convex/domains/operatorProfile/filesystemSync.ts b/backend/convex/domains/operatorProfile/filesystemSync.ts similarity index 100% rename from convex/domains/operatorProfile/filesystemSync.ts rename to backend/convex/domains/operatorProfile/filesystemSync.ts diff --git a/convex/domains/operatorProfile/manifest.test.ts b/backend/convex/domains/operatorProfile/manifest.test.ts similarity index 100% rename from convex/domains/operatorProfile/manifest.test.ts rename to backend/convex/domains/operatorProfile/manifest.test.ts diff --git a/convex/domains/operatorProfile/manifest.ts b/backend/convex/domains/operatorProfile/manifest.ts similarity index 100% rename from convex/domains/operatorProfile/manifest.ts rename to backend/convex/domains/operatorProfile/manifest.ts diff --git a/convex/domains/operatorProfile/mutations.ts b/backend/convex/domains/operatorProfile/mutations.ts similarity index 100% rename from convex/domains/operatorProfile/mutations.ts rename to backend/convex/domains/operatorProfile/mutations.ts diff --git a/convex/domains/operatorProfile/parser.ts b/backend/convex/domains/operatorProfile/parser.ts similarity index 100% rename from convex/domains/operatorProfile/parser.ts rename to backend/convex/domains/operatorProfile/parser.ts diff --git a/convex/domains/operatorProfile/queries.ts b/backend/convex/domains/operatorProfile/queries.ts similarity index 100% rename from convex/domains/operatorProfile/queries.ts rename to backend/convex/domains/operatorProfile/queries.ts diff --git a/convex/domains/operatorProfile/template.ts b/backend/convex/domains/operatorProfile/template.ts similarity index 100% rename from convex/domains/operatorProfile/template.ts rename to backend/convex/domains/operatorProfile/template.ts diff --git a/convex/domains/oracle/index.ts b/backend/convex/domains/oracle/index.ts similarity index 100% rename from convex/domains/oracle/index.ts rename to backend/convex/domains/oracle/index.ts diff --git a/convex/domains/oracle/mutations.ts b/backend/convex/domains/oracle/mutations.ts similarity index 100% rename from convex/domains/oracle/mutations.ts rename to backend/convex/domains/oracle/mutations.ts diff --git a/convex/domains/oracle/queries.ts b/backend/convex/domains/oracle/queries.ts similarity index 100% rename from convex/domains/oracle/queries.ts rename to backend/convex/domains/oracle/queries.ts diff --git a/convex/domains/oracle/schema.ts b/backend/convex/domains/oracle/schema.ts similarity index 100% rename from convex/domains/oracle/schema.ts rename to backend/convex/domains/oracle/schema.ts diff --git a/convex/domains/personas/index.ts b/backend/convex/domains/personas/index.ts similarity index 100% rename from convex/domains/personas/index.ts rename to backend/convex/domains/personas/index.ts diff --git a/convex/domains/personas/multiPersonaSynthesizer.ts b/backend/convex/domains/personas/multiPersonaSynthesizer.ts similarity index 100% rename from convex/domains/personas/multiPersonaSynthesizer.ts rename to backend/convex/domains/personas/multiPersonaSynthesizer.ts diff --git a/convex/domains/personas/personaAutonomousAgent.ts b/backend/convex/domains/personas/personaAutonomousAgent.ts similarity index 100% rename from convex/domains/personas/personaAutonomousAgent.ts rename to backend/convex/domains/personas/personaAutonomousAgent.ts diff --git a/convex/domains/pipelines/codeGenPipeline.ts b/backend/convex/domains/pipelines/codeGenPipeline.ts similarity index 100% rename from convex/domains/pipelines/codeGenPipeline.ts rename to backend/convex/domains/pipelines/codeGenPipeline.ts diff --git a/convex/domains/pipelines/composedPipeline.ts b/backend/convex/domains/pipelines/composedPipeline.ts similarity index 100% rename from convex/domains/pipelines/composedPipeline.ts rename to backend/convex/domains/pipelines/composedPipeline.ts diff --git a/convex/domains/pipelines/designGenPipeline.ts b/backend/convex/domains/pipelines/designGenPipeline.ts similarity index 100% rename from convex/domains/pipelines/designGenPipeline.ts rename to backend/convex/domains/pipelines/designGenPipeline.ts diff --git a/convex/domains/pipelines/linkupAdapter.ts b/backend/convex/domains/pipelines/linkupAdapter.ts similarity index 100% rename from convex/domains/pipelines/linkupAdapter.ts rename to backend/convex/domains/pipelines/linkupAdapter.ts diff --git a/convex/domains/pipelines/piRuntime.ts b/backend/convex/domains/pipelines/piRuntime.ts similarity index 100% rename from convex/domains/pipelines/piRuntime.ts rename to backend/convex/domains/pipelines/piRuntime.ts diff --git a/convex/domains/pipelines/pipelineAdmission.ts b/backend/convex/domains/pipelines/pipelineAdmission.ts similarity index 100% rename from convex/domains/pipelines/pipelineAdmission.ts rename to backend/convex/domains/pipelines/pipelineAdmission.ts diff --git a/convex/domains/pipelines/pipelineAttempt.ts b/backend/convex/domains/pipelines/pipelineAttempt.ts similarity index 100% rename from convex/domains/pipelines/pipelineAttempt.ts rename to backend/convex/domains/pipelines/pipelineAttempt.ts diff --git a/convex/domains/pipelines/pipelineDocumentHandoff.ts b/backend/convex/domains/pipelines/pipelineDocumentHandoff.ts similarity index 100% rename from convex/domains/pipelines/pipelineDocumentHandoff.ts rename to backend/convex/domains/pipelines/pipelineDocumentHandoff.ts diff --git a/convex/domains/pipelines/pipelineEvalQueries.ts b/backend/convex/domains/pipelines/pipelineEvalQueries.ts similarity index 100% rename from convex/domains/pipelines/pipelineEvalQueries.ts rename to backend/convex/domains/pipelines/pipelineEvalQueries.ts diff --git a/convex/domains/pipelines/pipelineMcpHttp.ts b/backend/convex/domains/pipelines/pipelineMcpHttp.ts similarity index 100% rename from convex/domains/pipelines/pipelineMcpHttp.ts rename to backend/convex/domains/pipelines/pipelineMcpHttp.ts diff --git a/convex/domains/pipelines/pipelineOwnership.auth.test.ts b/backend/convex/domains/pipelines/pipelineOwnership.auth.test.ts similarity index 100% rename from convex/domains/pipelines/pipelineOwnership.auth.test.ts rename to backend/convex/domains/pipelines/pipelineOwnership.auth.test.ts diff --git a/convex/domains/pipelines/pipelineOwnership.ts b/backend/convex/domains/pipelines/pipelineOwnership.ts similarity index 100% rename from convex/domains/pipelines/pipelineOwnership.ts rename to backend/convex/domains/pipelines/pipelineOwnership.ts diff --git a/convex/domains/pipelines/pipelineRunsMutations.ts b/backend/convex/domains/pipelines/pipelineRunsMutations.ts similarity index 100% rename from convex/domains/pipelines/pipelineRunsMutations.ts rename to backend/convex/domains/pipelines/pipelineRunsMutations.ts diff --git a/convex/domains/pipelines/pipelineRunsQueries.ts b/backend/convex/domains/pipelines/pipelineRunsQueries.ts similarity index 100% rename from convex/domains/pipelines/pipelineRunsQueries.ts rename to backend/convex/domains/pipelines/pipelineRunsQueries.ts diff --git a/convex/domains/pipelines/pipelineSchedule.ts b/backend/convex/domains/pipelines/pipelineSchedule.ts similarity index 100% rename from convex/domains/pipelines/pipelineSchedule.ts rename to backend/convex/domains/pipelines/pipelineSchedule.ts diff --git a/convex/domains/pipelines/pipelineStreamMutations.ts b/backend/convex/domains/pipelines/pipelineStreamMutations.ts similarity index 100% rename from convex/domains/pipelines/pipelineStreamMutations.ts rename to backend/convex/domains/pipelines/pipelineStreamMutations.ts diff --git a/convex/domains/pipelines/pipelineTrace.ts b/backend/convex/domains/pipelines/pipelineTrace.ts similarity index 100% rename from convex/domains/pipelines/pipelineTrace.ts rename to backend/convex/domains/pipelines/pipelineTrace.ts diff --git a/convex/domains/pipelines/pipelineTruthIsolation.test.ts b/backend/convex/domains/pipelines/pipelineTruthIsolation.test.ts similarity index 100% rename from convex/domains/pipelines/pipelineTruthIsolation.test.ts rename to backend/convex/domains/pipelines/pipelineTruthIsolation.test.ts diff --git a/convex/domains/pipelines/pipelineWorkflow.ts b/backend/convex/domains/pipelines/pipelineWorkflow.ts similarity index 100% rename from convex/domains/pipelines/pipelineWorkflow.ts rename to backend/convex/domains/pipelines/pipelineWorkflow.ts diff --git a/convex/domains/pipelines/researchPipeline.ts b/backend/convex/domains/pipelines/researchPipeline.ts similarity index 100% rename from convex/domains/pipelines/researchPipeline.ts rename to backend/convex/domains/pipelines/researchPipeline.ts diff --git a/convex/domains/pipelines/researchProvenance.ts b/backend/convex/domains/pipelines/researchProvenance.ts similarity index 100% rename from convex/domains/pipelines/researchProvenance.ts rename to backend/convex/domains/pipelines/researchProvenance.ts diff --git a/convex/domains/proactive/actions/emailDraftGenerator.ts b/backend/convex/domains/proactive/actions/emailDraftGenerator.ts similarity index 100% rename from convex/domains/proactive/actions/emailDraftGenerator.ts rename to backend/convex/domains/proactive/actions/emailDraftGenerator.ts diff --git a/convex/domains/proactive/actions/gmailDraftActions.ts b/backend/convex/domains/proactive/actions/gmailDraftActions.ts similarity index 100% rename from convex/domains/proactive/actions/gmailDraftActions.ts rename to backend/convex/domains/proactive/actions/gmailDraftActions.ts diff --git a/convex/domains/proactive/actions/testDraftGenerator.ts b/backend/convex/domains/proactive/actions/testDraftGenerator.ts similarity index 100% rename from convex/domains/proactive/actions/testDraftGenerator.ts rename to backend/convex/domains/proactive/actions/testDraftGenerator.ts diff --git a/convex/domains/proactive/actions/testOpenRouterProvider.ts b/backend/convex/domains/proactive/actions/testOpenRouterProvider.ts similarity index 100% rename from convex/domains/proactive/actions/testOpenRouterProvider.ts rename to backend/convex/domains/proactive/actions/testOpenRouterProvider.ts diff --git a/convex/domains/proactive/actions/testSimpleDraft.ts b/backend/convex/domains/proactive/actions/testSimpleDraft.ts similarity index 100% rename from convex/domains/proactive/actions/testSimpleDraft.ts rename to backend/convex/domains/proactive/actions/testSimpleDraft.ts diff --git a/convex/domains/proactive/adapters/calendarEventAdapter.ts b/backend/convex/domains/proactive/adapters/calendarEventAdapter.ts similarity index 100% rename from convex/domains/proactive/adapters/calendarEventAdapter.ts rename to backend/convex/domains/proactive/adapters/calendarEventAdapter.ts diff --git a/convex/domains/proactive/adapters/emailEventAdapter.ts b/backend/convex/domains/proactive/adapters/emailEventAdapter.ts similarity index 100% rename from convex/domains/proactive/adapters/emailEventAdapter.ts rename to backend/convex/domains/proactive/adapters/emailEventAdapter.ts diff --git a/convex/domains/proactive/adminQueries.ts b/backend/convex/domains/proactive/adminQueries.ts similarity index 100% rename from convex/domains/proactive/adminQueries.ts rename to backend/convex/domains/proactive/adminQueries.ts diff --git a/convex/domains/proactive/agentDispatch.ts b/backend/convex/domains/proactive/agentDispatch.ts similarity index 100% rename from convex/domains/proactive/agentDispatch.ts rename to backend/convex/domains/proactive/agentDispatch.ts diff --git a/convex/domains/proactive/consentMutations.ts b/backend/convex/domains/proactive/consentMutations.ts similarity index 100% rename from convex/domains/proactive/consentMutations.ts rename to backend/convex/domains/proactive/consentMutations.ts diff --git a/convex/domains/proactive/delivery/slackDelivery.ts b/backend/convex/domains/proactive/delivery/slackDelivery.ts similarity index 100% rename from convex/domains/proactive/delivery/slackDelivery.ts rename to backend/convex/domains/proactive/delivery/slackDelivery.ts diff --git a/convex/domains/proactive/deliveryOrchestrator.ts b/backend/convex/domains/proactive/deliveryOrchestrator.ts similarity index 100% rename from convex/domains/proactive/deliveryOrchestrator.ts rename to backend/convex/domains/proactive/deliveryOrchestrator.ts diff --git a/convex/domains/proactive/detectors/BaseDetector.ts b/backend/convex/domains/proactive/detectors/BaseDetector.ts similarity index 100% rename from convex/domains/proactive/detectors/BaseDetector.ts rename to backend/convex/domains/proactive/detectors/BaseDetector.ts diff --git a/convex/domains/proactive/detectors/dailyBriefDetector.ts b/backend/convex/domains/proactive/detectors/dailyBriefDetector.ts similarity index 100% rename from convex/domains/proactive/detectors/dailyBriefDetector.ts rename to backend/convex/domains/proactive/detectors/dailyBriefDetector.ts diff --git a/convex/domains/proactive/detectors/executor.ts b/backend/convex/domains/proactive/detectors/executor.ts similarity index 100% rename from convex/domains/proactive/detectors/executor.ts rename to backend/convex/domains/proactive/detectors/executor.ts diff --git a/convex/domains/proactive/detectors/followUpDetector.ts b/backend/convex/domains/proactive/detectors/followUpDetector.ts similarity index 100% rename from convex/domains/proactive/detectors/followUpDetector.ts rename to backend/convex/domains/proactive/detectors/followUpDetector.ts diff --git a/convex/domains/proactive/detectors/meetingPrepDetector.ts b/backend/convex/domains/proactive/detectors/meetingPrepDetector.ts similarity index 100% rename from convex/domains/proactive/detectors/meetingPrepDetector.ts rename to backend/convex/domains/proactive/detectors/meetingPrepDetector.ts diff --git a/convex/domains/proactive/detectors/registry.ts b/backend/convex/domains/proactive/detectors/registry.ts similarity index 100% rename from convex/domains/proactive/detectors/registry.ts rename to backend/convex/domains/proactive/detectors/registry.ts diff --git a/convex/domains/proactive/detectors/types.ts b/backend/convex/domains/proactive/detectors/types.ts similarity index 100% rename from convex/domains/proactive/detectors/types.ts rename to backend/convex/domains/proactive/detectors/types.ts diff --git a/convex/domains/proactive/mutations.ts b/backend/convex/domains/proactive/mutations.ts similarity index 100% rename from convex/domains/proactive/mutations.ts rename to backend/convex/domains/proactive/mutations.ts diff --git a/convex/domains/proactive/policyGateway.ts b/backend/convex/domains/proactive/policyGateway.ts similarity index 100% rename from convex/domains/proactive/policyGateway.ts rename to backend/convex/domains/proactive/policyGateway.ts diff --git a/convex/domains/proactive/queries.ts b/backend/convex/domains/proactive/queries.ts similarity index 100% rename from convex/domains/proactive/queries.ts rename to backend/convex/domains/proactive/queries.ts diff --git a/convex/domains/proactive/recomm/feedback.ts b/backend/convex/domains/proactive/recomm/feedback.ts similarity index 100% rename from convex/domains/proactive/recomm/feedback.ts rename to backend/convex/domains/proactive/recomm/feedback.ts diff --git a/convex/domains/proactive/recommendations/behaviorTracking.ts b/backend/convex/domains/proactive/recommendations/behaviorTracking.ts similarity index 100% rename from convex/domains/proactive/recommendations/behaviorTracking.ts rename to backend/convex/domains/proactive/recommendations/behaviorTracking.ts diff --git a/convex/domains/proactive/recommendations/index.ts b/backend/convex/domains/proactive/recommendations/index.ts similarity index 100% rename from convex/domains/proactive/recommendations/index.ts rename to backend/convex/domains/proactive/recommendations/index.ts diff --git a/convex/domains/proactive/recommendations/recommendationEngine.ts b/backend/convex/domains/proactive/recommendations/recommendationEngine.ts similarity index 100% rename from convex/domains/proactive/recommendations/recommendationEngine.ts rename to backend/convex/domains/proactive/recommendations/recommendationEngine.ts diff --git a/convex/domains/proactive/schema.ts b/backend/convex/domains/proactive/schema.ts similarity index 100% rename from convex/domains/proactive/schema.ts rename to backend/convex/domains/proactive/schema.ts diff --git a/convex/domains/proactive/seedAdmins.ts b/backend/convex/domains/proactive/seedAdmins.ts similarity index 100% rename from convex/domains/proactive/seedAdmins.ts rename to backend/convex/domains/proactive/seedAdmins.ts diff --git a/convex/domains/product/activity.ts b/backend/convex/domains/product/activity.ts similarity index 100% rename from convex/domains/product/activity.ts rename to backend/convex/domains/product/activity.ts diff --git a/convex/domains/product/blockOrdering.property.test.ts b/backend/convex/domains/product/blockOrdering.property.test.ts similarity index 100% rename from convex/domains/product/blockOrdering.property.test.ts rename to backend/convex/domains/product/blockOrdering.property.test.ts diff --git a/convex/domains/product/blockOrdering.ts b/backend/convex/domains/product/blockOrdering.ts similarity index 100% rename from convex/domains/product/blockOrdering.ts rename to backend/convex/domains/product/blockOrdering.ts diff --git a/convex/domains/product/blockProsemirror.test.ts b/backend/convex/domains/product/blockProsemirror.test.ts similarity index 100% rename from convex/domains/product/blockProsemirror.test.ts rename to backend/convex/domains/product/blockProsemirror.test.ts diff --git a/convex/domains/product/blockProsemirror.ts b/backend/convex/domains/product/blockProsemirror.ts similarity index 100% rename from convex/domains/product/blockProsemirror.ts rename to backend/convex/domains/product/blockProsemirror.ts diff --git a/convex/domains/product/blocks.test.ts b/backend/convex/domains/product/blocks.test.ts similarity index 100% rename from convex/domains/product/blocks.test.ts rename to backend/convex/domains/product/blocks.test.ts diff --git a/convex/domains/product/blocks.ts b/backend/convex/domains/product/blocks.ts similarity index 100% rename from convex/domains/product/blocks.ts rename to backend/convex/domains/product/blocks.ts diff --git a/convex/domains/product/bootstrap.ts b/backend/convex/domains/product/bootstrap.ts similarity index 100% rename from convex/domains/product/bootstrap.ts rename to backend/convex/domains/product/bootstrap.ts diff --git a/convex/domains/product/chat.ts b/backend/convex/domains/product/chat.ts similarity index 100% rename from convex/domains/product/chat.ts rename to backend/convex/domains/product/chat.ts diff --git a/convex/domains/product/delivery.ts b/backend/convex/domains/product/delivery.ts similarity index 100% rename from convex/domains/product/delivery.ts rename to backend/convex/domains/product/delivery.ts diff --git a/convex/domains/product/diligenceCheckpointStructuring.test.ts b/backend/convex/domains/product/diligenceCheckpointStructuring.test.ts similarity index 100% rename from convex/domains/product/diligenceCheckpointStructuring.test.ts rename to backend/convex/domains/product/diligenceCheckpointStructuring.test.ts diff --git a/convex/domains/product/diligenceCheckpointStructuring.ts b/backend/convex/domains/product/diligenceCheckpointStructuring.ts similarity index 100% rename from convex/domains/product/diligenceCheckpointStructuring.ts rename to backend/convex/domains/product/diligenceCheckpointStructuring.ts diff --git a/convex/domains/product/diligenceJudge.ts b/backend/convex/domains/product/diligenceJudge.ts similarity index 100% rename from convex/domains/product/diligenceJudge.ts rename to backend/convex/domains/product/diligenceJudge.ts diff --git a/convex/domains/product/diligenceLlmJudgeRuns.ts b/backend/convex/domains/product/diligenceLlmJudgeRuns.ts similarity index 100% rename from convex/domains/product/diligenceLlmJudgeRuns.ts rename to backend/convex/domains/product/diligenceLlmJudgeRuns.ts diff --git a/convex/domains/product/diligenceProjectionRuntime.test.ts b/backend/convex/domains/product/diligenceProjectionRuntime.test.ts similarity index 100% rename from convex/domains/product/diligenceProjectionRuntime.test.ts rename to backend/convex/domains/product/diligenceProjectionRuntime.test.ts diff --git a/convex/domains/product/diligenceProjectionRuntime.ts b/backend/convex/domains/product/diligenceProjectionRuntime.ts similarity index 100% rename from convex/domains/product/diligenceProjectionRuntime.ts rename to backend/convex/domains/product/diligenceProjectionRuntime.ts diff --git a/convex/domains/product/diligenceProjections.ts b/backend/convex/domains/product/diligenceProjections.ts similarity index 100% rename from convex/domains/product/diligenceProjections.ts rename to backend/convex/domains/product/diligenceProjections.ts diff --git a/convex/domains/product/diligenceRunTelemetry.ts b/backend/convex/domains/product/diligenceRunTelemetry.ts similarity index 100% rename from convex/domains/product/diligenceRunTelemetry.ts rename to backend/convex/domains/product/diligenceRunTelemetry.ts diff --git a/convex/domains/product/diligenceScratchpads.ts b/backend/convex/domains/product/diligenceScratchpads.ts similarity index 100% rename from convex/domains/product/diligenceScratchpads.ts rename to backend/convex/domains/product/diligenceScratchpads.ts diff --git a/convex/domains/product/diligenceTenantIsolation.test.ts b/backend/convex/domains/product/diligenceTenantIsolation.test.ts similarity index 100% rename from convex/domains/product/diligenceTenantIsolation.test.ts rename to backend/convex/domains/product/diligenceTenantIsolation.test.ts diff --git a/convex/domains/product/documents.ts b/backend/convex/domains/product/documents.ts similarity index 100% rename from convex/domains/product/documents.ts rename to backend/convex/domains/product/documents.ts diff --git a/convex/domains/product/entities.test.ts b/backend/convex/domains/product/entities.test.ts similarity index 100% rename from convex/domains/product/entities.test.ts rename to backend/convex/domains/product/entities.test.ts diff --git a/convex/domains/product/entities.ts b/backend/convex/domains/product/entities.ts similarity index 100% rename from convex/domains/product/entities.ts rename to backend/convex/domains/product/entities.ts diff --git a/convex/domains/product/entityMemory.ts b/backend/convex/domains/product/entityMemory.ts similarity index 100% rename from convex/domains/product/entityMemory.ts rename to backend/convex/domains/product/entityMemory.ts diff --git a/convex/domains/product/eventWorkspace.test.ts b/backend/convex/domains/product/eventWorkspace.test.ts similarity index 100% rename from convex/domains/product/eventWorkspace.test.ts rename to backend/convex/domains/product/eventWorkspace.test.ts diff --git a/convex/domains/product/eventWorkspace.ts b/backend/convex/domains/product/eventWorkspace.ts similarity index 100% rename from convex/domains/product/eventWorkspace.ts rename to backend/convex/domains/product/eventWorkspace.ts diff --git a/convex/domains/product/extendedThinking.ts b/backend/convex/domains/product/extendedThinking.ts similarity index 100% rename from convex/domains/product/extendedThinking.ts rename to backend/convex/domains/product/extendedThinking.ts diff --git a/convex/domains/product/helpers.ts b/backend/convex/domains/product/helpers.ts similarity index 100% rename from convex/domains/product/helpers.ts rename to backend/convex/domains/product/helpers.ts diff --git a/convex/domains/product/home.ts b/backend/convex/domains/product/home.ts similarity index 100% rename from convex/domains/product/home.ts rename to backend/convex/domains/product/home.ts diff --git a/convex/domains/product/me.ts b/backend/convex/domains/product/me.ts similarity index 100% rename from convex/domains/product/me.ts rename to backend/convex/domains/product/me.ts diff --git a/convex/domains/product/notebookPresence.ts b/backend/convex/domains/product/notebookPresence.ts similarity index 100% rename from convex/domains/product/notebookPresence.ts rename to backend/convex/domains/product/notebookPresence.ts diff --git a/convex/domains/product/notebookTracking.ts b/backend/convex/domains/product/notebookTracking.ts similarity index 100% rename from convex/domains/product/notebookTracking.ts rename to backend/convex/domains/product/notebookTracking.ts diff --git a/convex/domains/product/nudgeHelpers.ts b/backend/convex/domains/product/nudgeHelpers.ts similarity index 100% rename from convex/domains/product/nudgeHelpers.ts rename to backend/convex/domains/product/nudgeHelpers.ts diff --git a/convex/domains/product/nudges.ts b/backend/convex/domains/product/nudges.ts similarity index 100% rename from convex/domains/product/nudges.ts rename to backend/convex/domains/product/nudges.ts diff --git a/convex/domains/product/pipelineReliability.ts b/backend/convex/domains/product/pipelineReliability.ts similarity index 100% rename from convex/domains/product/pipelineReliability.ts rename to backend/convex/domains/product/pipelineReliability.ts diff --git a/convex/domains/product/pipelineRetryDispatcher.ts b/backend/convex/domains/product/pipelineRetryDispatcher.ts similarity index 100% rename from convex/domains/product/pipelineRetryDispatcher.ts rename to backend/convex/domains/product/pipelineRetryDispatcher.ts diff --git a/convex/domains/product/publicShares.ts b/backend/convex/domains/product/publicShares.ts similarity index 100% rename from convex/domains/product/publicShares.ts rename to backend/convex/domains/product/publicShares.ts diff --git a/convex/domains/product/pulseReports.ts b/backend/convex/domains/product/pulseReports.ts similarity index 100% rename from convex/domains/product/pulseReports.ts rename to backend/convex/domains/product/pulseReports.ts diff --git a/convex/domains/product/reports.test.ts b/backend/convex/domains/product/reports.test.ts similarity index 100% rename from convex/domains/product/reports.test.ts rename to backend/convex/domains/product/reports.test.ts diff --git a/convex/domains/product/reports.ts b/backend/convex/domains/product/reports.ts similarity index 100% rename from convex/domains/product/reports.ts rename to backend/convex/domains/product/reports.ts diff --git a/convex/domains/product/schema.ts b/backend/convex/domains/product/schema.ts similarity index 100% rename from convex/domains/product/schema.ts rename to backend/convex/domains/product/schema.ts diff --git a/convex/domains/product/scratchnodeImport.test.ts b/backend/convex/domains/product/scratchnodeImport.test.ts similarity index 100% rename from convex/domains/product/scratchnodeImport.test.ts rename to backend/convex/domains/product/scratchnodeImport.test.ts diff --git a/convex/domains/product/scratchnodeImport.ts b/backend/convex/domains/product/scratchnodeImport.ts similarity index 100% rename from convex/domains/product/scratchnodeImport.ts rename to backend/convex/domains/product/scratchnodeImport.ts diff --git a/convex/domains/product/sessionArtifacts.ts b/backend/convex/domains/product/sessionArtifacts.ts similarity index 100% rename from convex/domains/product/sessionArtifacts.ts rename to backend/convex/domains/product/sessionArtifacts.ts diff --git a/convex/domains/product/shares.ts b/backend/convex/domains/product/shares.ts similarity index 100% rename from convex/domains/product/shares.ts rename to backend/convex/domains/product/shares.ts diff --git a/convex/domains/product/shell.ts b/backend/convex/domains/product/shell.ts similarity index 100% rename from convex/domains/product/shell.ts rename to backend/convex/domains/product/shell.ts diff --git a/convex/domains/product/systemIntelligence.ts b/backend/convex/domains/product/systemIntelligence.ts similarity index 100% rename from convex/domains/product/systemIntelligence.ts rename to backend/convex/domains/product/systemIntelligence.ts diff --git a/convex/domains/product/userWikiMaintainer.scenarios.test.ts b/backend/convex/domains/product/userWikiMaintainer.scenarios.test.ts similarity index 100% rename from convex/domains/product/userWikiMaintainer.scenarios.test.ts rename to backend/convex/domains/product/userWikiMaintainer.scenarios.test.ts diff --git a/convex/domains/product/userWikiMaintainer.test.ts b/backend/convex/domains/product/userWikiMaintainer.test.ts similarity index 100% rename from convex/domains/product/userWikiMaintainer.test.ts rename to backend/convex/domains/product/userWikiMaintainer.test.ts diff --git a/convex/domains/product/userWikiMaintainer.ts b/backend/convex/domains/product/userWikiMaintainer.ts similarity index 100% rename from convex/domains/product/userWikiMaintainer.ts rename to backend/convex/domains/product/userWikiMaintainer.ts diff --git a/convex/domains/product/userWikiSchema.ts b/backend/convex/domains/product/userWikiSchema.ts similarity index 100% rename from convex/domains/product/userWikiSchema.ts rename to backend/convex/domains/product/userWikiSchema.ts diff --git a/convex/domains/product/visibilityBackfill.ts b/backend/convex/domains/product/visibilityBackfill.ts similarity index 100% rename from convex/domains/product/visibilityBackfill.ts rename to backend/convex/domains/product/visibilityBackfill.ts diff --git a/convex/domains/product/wikiDreamingEvalProduction.ts b/backend/convex/domains/product/wikiDreamingEvalProduction.ts similarity index 100% rename from convex/domains/product/wikiDreamingEvalProduction.ts rename to backend/convex/domains/product/wikiDreamingEvalProduction.ts diff --git a/convex/domains/product/wikiDreamingEvaluation.ts b/backend/convex/domains/product/wikiDreamingEvaluation.ts similarity index 100% rename from convex/domains/product/wikiDreamingEvaluation.ts rename to backend/convex/domains/product/wikiDreamingEvaluation.ts diff --git a/convex/domains/product/wikiDreamingEvaluationNatural.ts b/backend/convex/domains/product/wikiDreamingEvaluationNatural.ts similarity index 100% rename from convex/domains/product/wikiDreamingEvaluationNatural.ts rename to backend/convex/domains/product/wikiDreamingEvaluationNatural.ts diff --git a/convex/domains/product/wikiDreamingGraph.ts b/backend/convex/domains/product/wikiDreamingGraph.ts similarity index 100% rename from convex/domains/product/wikiDreamingGraph.ts rename to backend/convex/domains/product/wikiDreamingGraph.ts diff --git a/convex/domains/product/wikiDreamingQueries.ts b/backend/convex/domains/product/wikiDreamingQueries.ts similarity index 100% rename from convex/domains/product/wikiDreamingQueries.ts rename to backend/convex/domains/product/wikiDreamingQueries.ts diff --git a/convex/domains/product/wikiStagingMutations.ts b/backend/convex/domains/product/wikiStagingMutations.ts similarity index 100% rename from convex/domains/product/wikiStagingMutations.ts rename to backend/convex/domains/product/wikiStagingMutations.ts diff --git a/convex/domains/profiler/mutations.ts b/backend/convex/domains/profiler/mutations.ts similarity index 100% rename from convex/domains/profiler/mutations.ts rename to backend/convex/domains/profiler/mutations.ts diff --git a/convex/domains/profiler/queries.ts b/backend/convex/domains/profiler/queries.ts similarity index 100% rename from convex/domains/profiler/queries.ts rename to backend/convex/domains/profiler/queries.ts diff --git a/convex/domains/publicResearch/actions.ts b/backend/convex/domains/publicResearch/actions.ts similarity index 100% rename from convex/domains/publicResearch/actions.ts rename to backend/convex/domains/publicResearch/actions.ts diff --git a/convex/domains/publicResearch/core.ts b/backend/convex/domains/publicResearch/core.ts similarity index 100% rename from convex/domains/publicResearch/core.ts rename to backend/convex/domains/publicResearch/core.ts diff --git a/convex/domains/publishing/deliveryQueue.ts b/backend/convex/domains/publishing/deliveryQueue.ts similarity index 100% rename from convex/domains/publishing/deliveryQueue.ts rename to backend/convex/domains/publishing/deliveryQueue.ts diff --git a/convex/domains/publishing/index.ts b/backend/convex/domains/publishing/index.ts similarity index 100% rename from convex/domains/publishing/index.ts rename to backend/convex/domains/publishing/index.ts diff --git a/convex/domains/publishing/publishingOrchestrator.ts b/backend/convex/domains/publishing/publishingOrchestrator.ts similarity index 100% rename from convex/domains/publishing/publishingOrchestrator.ts rename to backend/convex/domains/publishing/publishingOrchestrator.ts diff --git a/convex/domains/quickCapture/index.ts b/backend/convex/domains/quickCapture/index.ts similarity index 100% rename from convex/domains/quickCapture/index.ts rename to backend/convex/domains/quickCapture/index.ts diff --git a/convex/domains/quickCapture/quickCapture.ts b/backend/convex/domains/quickCapture/quickCapture.ts similarity index 100% rename from convex/domains/quickCapture/quickCapture.ts rename to backend/convex/domains/quickCapture/quickCapture.ts diff --git a/convex/domains/quickCapture/voiceMemos.ts b/backend/convex/domains/quickCapture/voiceMemos.ts similarity index 100% rename from convex/domains/quickCapture/voiceMemos.ts rename to backend/convex/domains/quickCapture/voiceMemos.ts diff --git a/convex/domains/recomm/feedback.ts b/backend/convex/domains/recomm/feedback.ts similarity index 100% rename from convex/domains/recomm/feedback.ts rename to backend/convex/domains/recomm/feedback.ts diff --git a/convex/domains/recommendations/behaviorTracking.ts b/backend/convex/domains/recommendations/behaviorTracking.ts similarity index 100% rename from convex/domains/recommendations/behaviorTracking.ts rename to backend/convex/domains/recommendations/behaviorTracking.ts diff --git a/convex/domains/recommendations/index.ts b/backend/convex/domains/recommendations/index.ts similarity index 100% rename from convex/domains/recommendations/index.ts rename to backend/convex/domains/recommendations/index.ts diff --git a/convex/domains/recommendations/recommendationEngine.ts b/backend/convex/domains/recommendations/recommendationEngine.ts similarity index 100% rename from convex/domains/recommendations/recommendationEngine.ts rename to backend/convex/domains/recommendations/recommendationEngine.ts diff --git a/convex/domains/redesign/agentRunFeedback.ts b/backend/convex/domains/redesign/agentRunFeedback.ts similarity index 100% rename from convex/domains/redesign/agentRunFeedback.ts rename to backend/convex/domains/redesign/agentRunFeedback.ts diff --git a/convex/domains/redesign/chatRuns.contract.test.ts b/backend/convex/domains/redesign/chatRuns.contract.test.ts similarity index 100% rename from convex/domains/redesign/chatRuns.contract.test.ts rename to backend/convex/domains/redesign/chatRuns.contract.test.ts diff --git a/convex/domains/redesign/chatRuns.responseShape.test.ts b/backend/convex/domains/redesign/chatRuns.responseShape.test.ts similarity index 100% rename from convex/domains/redesign/chatRuns.responseShape.test.ts rename to backend/convex/domains/redesign/chatRuns.responseShape.test.ts diff --git a/convex/domains/redesign/chatRuns.ts b/backend/convex/domains/redesign/chatRuns.ts similarity index 100% rename from convex/domains/redesign/chatRuns.ts rename to backend/convex/domains/redesign/chatRuns.ts diff --git a/convex/domains/redesign/documentPatches.ts b/backend/convex/domains/redesign/documentPatches.ts similarity index 100% rename from convex/domains/redesign/documentPatches.ts rename to backend/convex/domains/redesign/documentPatches.ts diff --git a/convex/domains/redesign/inboxSnoozes.ts b/backend/convex/domains/redesign/inboxSnoozes.ts similarity index 100% rename from convex/domains/redesign/inboxSnoozes.ts rename to backend/convex/domains/redesign/inboxSnoozes.ts diff --git a/convex/domains/redesign/reportGraphNeighborhood.ts b/backend/convex/domains/redesign/reportGraphNeighborhood.ts similarity index 100% rename from convex/domains/redesign/reportGraphNeighborhood.ts rename to backend/convex/domains/redesign/reportGraphNeighborhood.ts diff --git a/convex/domains/redesign/reportTopology.ts b/backend/convex/domains/redesign/reportTopology.ts similarity index 100% rename from convex/domains/redesign/reportTopology.ts rename to backend/convex/domains/redesign/reportTopology.ts diff --git a/convex/domains/redesign/reportTopologyRuntime.test.ts b/backend/convex/domains/redesign/reportTopologyRuntime.test.ts similarity index 100% rename from convex/domains/redesign/reportTopologyRuntime.test.ts rename to backend/convex/domains/redesign/reportTopologyRuntime.test.ts diff --git a/convex/domains/redesign/reportTopologyRuntime.ts b/backend/convex/domains/redesign/reportTopologyRuntime.ts similarity index 100% rename from convex/domains/redesign/reportTopologyRuntime.ts rename to backend/convex/domains/redesign/reportTopologyRuntime.ts diff --git a/convex/domains/redesign/styleProfile.ts b/backend/convex/domains/redesign/styleProfile.ts similarity index 100% rename from convex/domains/redesign/styleProfile.ts rename to backend/convex/domains/redesign/styleProfile.ts diff --git a/convex/domains/redesign/universes.ts b/backend/convex/domains/redesign/universes.ts similarity index 100% rename from convex/domains/redesign/universes.ts rename to backend/convex/domains/redesign/universes.ts diff --git a/convex/domains/research/angleRegistry.ts b/backend/convex/domains/research/angleRegistry.ts similarity index 100% rename from convex/domains/research/angleRegistry.ts rename to backend/convex/domains/research/angleRegistry.ts diff --git a/convex/domains/research/autonomousResearcher.ts b/backend/convex/domains/research/autonomousResearcher.ts similarity index 100% rename from convex/domains/research/autonomousResearcher.ts rename to backend/convex/domains/research/autonomousResearcher.ts diff --git a/convex/domains/research/briefGenerator.ts b/backend/convex/domains/research/briefGenerator.ts similarity index 100% rename from convex/domains/research/briefGenerator.ts rename to backend/convex/domains/research/briefGenerator.ts diff --git a/convex/domains/research/dailyBriefInitializer.ts b/backend/convex/domains/research/dailyBriefInitializer.ts similarity index 100% rename from convex/domains/research/dailyBriefInitializer.ts rename to backend/convex/domains/research/dailyBriefInitializer.ts diff --git a/convex/domains/research/dailyBriefMemoryMutations.ts b/backend/convex/domains/research/dailyBriefMemoryMutations.ts similarity index 100% rename from convex/domains/research/dailyBriefMemoryMutations.ts rename to backend/convex/domains/research/dailyBriefMemoryMutations.ts diff --git a/convex/domains/research/dailyBriefMemoryQueries.ts b/backend/convex/domains/research/dailyBriefMemoryQueries.ts similarity index 100% rename from convex/domains/research/dailyBriefMemoryQueries.ts rename to backend/convex/domains/research/dailyBriefMemoryQueries.ts diff --git a/convex/domains/research/dailyBriefPersonalOverlay.ts b/backend/convex/domains/research/dailyBriefPersonalOverlay.ts similarity index 100% rename from convex/domains/research/dailyBriefPersonalOverlay.ts rename to backend/convex/domains/research/dailyBriefPersonalOverlay.ts diff --git a/convex/domains/research/dailyBriefPersonalOverlayMutations.ts b/backend/convex/domains/research/dailyBriefPersonalOverlayMutations.ts similarity index 100% rename from convex/domains/research/dailyBriefPersonalOverlayMutations.ts rename to backend/convex/domains/research/dailyBriefPersonalOverlayMutations.ts diff --git a/convex/domains/research/dailyBriefPersonalOverlayQueries.ts b/backend/convex/domains/research/dailyBriefPersonalOverlayQueries.ts similarity index 100% rename from convex/domains/research/dailyBriefPersonalOverlayQueries.ts rename to backend/convex/domains/research/dailyBriefPersonalOverlayQueries.ts diff --git a/convex/domains/research/dailyBriefSourceVerification.ts b/backend/convex/domains/research/dailyBriefSourceVerification.ts similarity index 100% rename from convex/domains/research/dailyBriefSourceVerification.ts rename to backend/convex/domains/research/dailyBriefSourceVerification.ts diff --git a/convex/domains/research/dailyBriefWorker.ts b/backend/convex/domains/research/dailyBriefWorker.ts similarity index 100% rename from convex/domains/research/dailyBriefWorker.ts rename to backend/convex/domains/research/dailyBriefWorker.ts diff --git a/convex/domains/research/dashboardMetrics.ts b/backend/convex/domains/research/dashboardMetrics.ts similarity index 100% rename from convex/domains/research/dashboardMetrics.ts rename to backend/convex/domains/research/dashboardMetrics.ts diff --git a/convex/domains/research/dashboardMutations.ts b/backend/convex/domains/research/dashboardMutations.ts similarity index 100% rename from convex/domains/research/dashboardMutations.ts rename to backend/convex/domains/research/dashboardMutations.ts diff --git a/convex/domains/research/dashboardQueries.ts b/backend/convex/domains/research/dashboardQueries.ts similarity index 100% rename from convex/domains/research/dashboardQueries.ts rename to backend/convex/domains/research/dashboardQueries.ts diff --git a/convex/domains/research/dealFlow.ts b/backend/convex/domains/research/dealFlow.ts similarity index 100% rename from convex/domains/research/dealFlow.ts rename to backend/convex/domains/research/dealFlow.ts diff --git a/convex/domains/research/dealFlowQueries.ts b/backend/convex/domains/research/dealFlowQueries.ts similarity index 100% rename from convex/domains/research/dealFlowQueries.ts rename to backend/convex/domains/research/dealFlowQueries.ts diff --git a/convex/domains/research/documentDiscovery.ts b/backend/convex/domains/research/documentDiscovery.ts similarity index 100% rename from convex/domains/research/documentDiscovery.ts rename to backend/convex/domains/research/documentDiscovery.ts diff --git a/convex/domains/research/editionQueries.test.ts b/backend/convex/domains/research/editionQueries.test.ts similarity index 100% rename from convex/domains/research/editionQueries.test.ts rename to backend/convex/domains/research/editionQueries.test.ts diff --git a/convex/domains/research/editionQueries.ts b/backend/convex/domains/research/editionQueries.ts similarity index 100% rename from convex/domains/research/editionQueries.ts rename to backend/convex/domains/research/editionQueries.ts diff --git a/convex/domains/research/editionScoreboardSeed.test.ts b/backend/convex/domains/research/editionScoreboardSeed.test.ts similarity index 100% rename from convex/domains/research/editionScoreboardSeed.test.ts rename to backend/convex/domains/research/editionScoreboardSeed.test.ts diff --git a/convex/domains/research/editionScoreboardSeed.ts b/backend/convex/domains/research/editionScoreboardSeed.ts similarity index 100% rename from convex/domains/research/editionScoreboardSeed.ts rename to backend/convex/domains/research/editionScoreboardSeed.ts diff --git a/convex/domains/research/entities/decayManager.ts b/backend/convex/domains/research/entities/decayManager.ts similarity index 100% rename from convex/domains/research/entities/decayManager.ts rename to backend/convex/domains/research/entities/decayManager.ts diff --git a/convex/domains/research/entities/entityLifecycle.ts b/backend/convex/domains/research/entities/entityLifecycle.ts similarity index 100% rename from convex/domains/research/entities/entityLifecycle.ts rename to backend/convex/domains/research/entities/entityLifecycle.ts diff --git a/convex/domains/research/entities/index.ts b/backend/convex/domains/research/entities/index.ts similarity index 100% rename from convex/domains/research/entities/index.ts rename to backend/convex/domains/research/entities/index.ts diff --git a/convex/domains/research/executiveBrief.ts b/backend/convex/domains/research/executiveBrief.ts similarity index 100% rename from convex/domains/research/executiveBrief.ts rename to backend/convex/domains/research/executiveBrief.ts diff --git a/convex/domains/research/expandResource.ts b/backend/convex/domains/research/expandResource.ts similarity index 100% rename from convex/domains/research/expandResource.ts rename to backend/convex/domains/research/expandResource.ts diff --git a/convex/domains/research/financial/balanceSheetFetcher.ts b/backend/convex/domains/research/financial/balanceSheetFetcher.ts similarity index 100% rename from convex/domains/research/financial/balanceSheetFetcher.ts rename to backend/convex/domains/research/financial/balanceSheetFetcher.ts diff --git a/convex/domains/research/financial/corporateActions.ts b/backend/convex/domains/research/financial/corporateActions.ts similarity index 100% rename from convex/domains/research/financial/corporateActions.ts rename to backend/convex/domains/research/financial/corporateActions.ts diff --git a/convex/domains/research/financial/corrections.ts b/backend/convex/domains/research/financial/corrections.ts similarity index 100% rename from convex/domains/research/financial/corrections.ts rename to backend/convex/domains/research/financial/corrections.ts diff --git a/convex/domains/research/financial/dcfBuilder.ts b/backend/convex/domains/research/financial/dcfBuilder.ts similarity index 100% rename from convex/domains/research/financial/dcfBuilder.ts rename to backend/convex/domains/research/financial/dcfBuilder.ts diff --git a/convex/domains/research/financial/dcfEvaluator.ts b/backend/convex/domains/research/financial/dcfEvaluator.ts similarity index 100% rename from convex/domains/research/financial/dcfEvaluator.ts rename to backend/convex/domains/research/financial/dcfEvaluator.ts diff --git a/convex/domains/research/financial/dcfOrchestrator.ts b/backend/convex/domains/research/financial/dcfOrchestrator.ts similarity index 100% rename from convex/domains/research/financial/dcfOrchestrator.ts rename to backend/convex/domains/research/financial/dcfOrchestrator.ts diff --git a/convex/domains/research/financial/dcfProgress.ts b/backend/convex/domains/research/financial/dcfProgress.ts similarity index 100% rename from convex/domains/research/financial/dcfProgress.ts rename to backend/convex/domains/research/financial/dcfProgress.ts diff --git a/convex/domains/research/financial/dcfSpreadsheetAdapter.ts b/backend/convex/domains/research/financial/dcfSpreadsheetAdapter.ts similarity index 100% rename from convex/domains/research/financial/dcfSpreadsheetAdapter.ts rename to backend/convex/domains/research/financial/dcfSpreadsheetAdapter.ts diff --git a/convex/domains/research/financial/dcfSpreadsheetMapping.ts b/backend/convex/domains/research/financial/dcfSpreadsheetMapping.ts similarity index 100% rename from convex/domains/research/financial/dcfSpreadsheetMapping.ts rename to backend/convex/domains/research/financial/dcfSpreadsheetMapping.ts diff --git a/convex/domains/research/financial/dcfTools.ts b/backend/convex/domains/research/financial/dcfTools.ts similarity index 100% rename from convex/domains/research/financial/dcfTools.ts rename to backend/convex/domains/research/financial/dcfTools.ts diff --git a/convex/domains/research/financial/financialAnalystAgent.ts b/backend/convex/domains/research/financial/financialAnalystAgent.ts similarity index 100% rename from convex/domains/research/financial/financialAnalystAgent.ts rename to backend/convex/domains/research/financial/financialAnalystAgent.ts diff --git a/convex/domains/research/financial/fundamentals.ts b/backend/convex/domains/research/financial/fundamentals.ts similarity index 100% rename from convex/domains/research/financial/fundamentals.ts rename to backend/convex/domains/research/financial/fundamentals.ts diff --git a/convex/domains/research/financial/groundTruthFetcher.ts b/backend/convex/domains/research/financial/groundTruthFetcher.ts similarity index 100% rename from convex/domains/research/financial/groundTruthFetcher.ts rename to backend/convex/domains/research/financial/groundTruthFetcher.ts diff --git a/convex/domains/research/financial/groundTruthManager.ts b/backend/convex/domains/research/financial/groundTruthManager.ts similarity index 100% rename from convex/domains/research/financial/groundTruthManager.ts rename to backend/convex/domains/research/financial/groundTruthManager.ts diff --git a/convex/domains/research/financial/inconclusiveOnFailure.ts b/backend/convex/domains/research/financial/inconclusiveOnFailure.ts similarity index 100% rename from convex/domains/research/financial/inconclusiveOnFailure.ts rename to backend/convex/domains/research/financial/inconclusiveOnFailure.ts diff --git a/convex/domains/research/financial/index.ts b/backend/convex/domains/research/financial/index.ts similarity index 100% rename from convex/domains/research/financial/index.ts rename to backend/convex/domains/research/financial/index.ts diff --git a/convex/domains/research/financial/interactiveDCFSession.ts b/backend/convex/domains/research/financial/interactiveDCFSession.ts similarity index 100% rename from convex/domains/research/financial/interactiveDCFSession.ts rename to backend/convex/domains/research/financial/interactiveDCFSession.ts diff --git a/convex/domains/research/financial/modelRiskGovernance.ts b/backend/convex/domains/research/financial/modelRiskGovernance.ts similarity index 100% rename from convex/domains/research/financial/modelRiskGovernance.ts rename to backend/convex/domains/research/financial/modelRiskGovernance.ts diff --git a/convex/domains/research/financial/reportGenerator.ts b/backend/convex/domains/research/financial/reportGenerator.ts similarity index 100% rename from convex/domains/research/financial/reportGenerator.ts rename to backend/convex/domains/research/financial/reportGenerator.ts diff --git a/convex/domains/research/financial/restatementPolicy.ts b/backend/convex/domains/research/financial/restatementPolicy.ts similarity index 100% rename from convex/domains/research/financial/restatementPolicy.ts rename to backend/convex/domains/research/financial/restatementPolicy.ts diff --git a/convex/domains/research/financial/secEdgarClient.ts b/backend/convex/domains/research/financial/secEdgarClient.ts similarity index 100% rename from convex/domains/research/financial/secEdgarClient.ts rename to backend/convex/domains/research/financial/secEdgarClient.ts diff --git a/convex/domains/research/financial/sensitivityAnalysis.ts b/backend/convex/domains/research/financial/sensitivityAnalysis.ts similarity index 100% rename from convex/domains/research/financial/sensitivityAnalysis.ts rename to backend/convex/domains/research/financial/sensitivityAnalysis.ts diff --git a/convex/domains/research/financial/taxonomyManagement.ts b/backend/convex/domains/research/financial/taxonomyManagement.ts similarity index 100% rename from convex/domains/research/financial/taxonomyManagement.ts rename to backend/convex/domains/research/financial/taxonomyManagement.ts diff --git a/convex/domains/research/financial/validation.ts b/backend/convex/domains/research/financial/validation.ts similarity index 100% rename from convex/domains/research/financial/validation.ts rename to backend/convex/domains/research/financial/validation.ts diff --git a/convex/domains/research/financial/xbrlParser.ts b/backend/convex/domains/research/financial/xbrlParser.ts similarity index 100% rename from convex/domains/research/financial/xbrlParser.ts rename to backend/convex/domains/research/financial/xbrlParser.ts diff --git a/convex/domains/research/forYouFeed.ts b/backend/convex/domains/research/forYouFeed.ts similarity index 100% rename from convex/domains/research/forYouFeed.ts rename to backend/convex/domains/research/forYouFeed.ts diff --git a/convex/domains/research/forecasting/actions/computeCalibration.ts b/backend/convex/domains/research/forecasting/actions/computeCalibration.ts similarity index 100% rename from convex/domains/research/forecasting/actions/computeCalibration.ts rename to backend/convex/domains/research/forecasting/actions/computeCalibration.ts diff --git a/convex/domains/research/forecasting/actions/createForecast.ts b/backend/convex/domains/research/forecasting/actions/createForecast.ts similarity index 100% rename from convex/domains/research/forecasting/actions/createForecast.ts rename to backend/convex/domains/research/forecasting/actions/createForecast.ts diff --git a/convex/domains/research/forecasting/actions/refreshForecast.ts b/backend/convex/domains/research/forecasting/actions/refreshForecast.ts similarity index 100% rename from convex/domains/research/forecasting/actions/refreshForecast.ts rename to backend/convex/domains/research/forecasting/actions/refreshForecast.ts diff --git a/convex/domains/research/forecasting/actions/resolveForecast.ts b/backend/convex/domains/research/forecasting/actions/resolveForecast.ts similarity index 100% rename from convex/domains/research/forecasting/actions/resolveForecast.ts rename to backend/convex/domains/research/forecasting/actions/resolveForecast.ts diff --git a/convex/domains/research/forecasting/cronHandlers/dailyForecastRefresh.ts b/backend/convex/domains/research/forecasting/cronHandlers/dailyForecastRefresh.ts similarity index 100% rename from convex/domains/research/forecasting/cronHandlers/dailyForecastRefresh.ts rename to backend/convex/domains/research/forecasting/cronHandlers/dailyForecastRefresh.ts diff --git a/convex/domains/research/forecasting/cronHandlers/resolutionCheck.ts b/backend/convex/domains/research/forecasting/cronHandlers/resolutionCheck.ts similarity index 100% rename from convex/domains/research/forecasting/cronHandlers/resolutionCheck.ts rename to backend/convex/domains/research/forecasting/cronHandlers/resolutionCheck.ts diff --git a/convex/domains/research/forecasting/cronHandlers/weeklyCalibration.ts b/backend/convex/domains/research/forecasting/cronHandlers/weeklyCalibration.ts similarity index 100% rename from convex/domains/research/forecasting/cronHandlers/weeklyCalibration.ts rename to backend/convex/domains/research/forecasting/cronHandlers/weeklyCalibration.ts diff --git a/convex/domains/research/forecasting/forecastManager.ts b/backend/convex/domains/research/forecasting/forecastManager.ts similarity index 100% rename from convex/domains/research/forecasting/forecastManager.ts rename to backend/convex/domains/research/forecasting/forecastManager.ts diff --git a/convex/domains/research/forecasting/schema.ts b/backend/convex/domains/research/forecasting/schema.ts similarity index 100% rename from convex/domains/research/forecasting/schema.ts rename to backend/convex/domains/research/forecasting/schema.ts diff --git a/convex/domains/research/forecasting/scoringEngine.ts b/backend/convex/domains/research/forecasting/scoringEngine.ts similarity index 100% rename from convex/domains/research/forecasting/scoringEngine.ts rename to backend/convex/domains/research/forecasting/scoringEngine.ts diff --git a/convex/domains/research/forecasting/seedEvergreenForecasts.ts b/backend/convex/domains/research/forecasting/seedEvergreenForecasts.ts similarity index 100% rename from convex/domains/research/forecasting/seedEvergreenForecasts.ts rename to backend/convex/domains/research/forecasting/seedEvergreenForecasts.ts diff --git a/convex/domains/research/forecasting/signalMatcher.ts b/backend/convex/domains/research/forecasting/signalMatcher.ts similarity index 100% rename from convex/domains/research/forecasting/signalMatcher.ts rename to backend/convex/domains/research/forecasting/signalMatcher.ts diff --git a/convex/domains/research/forecasting/traceWrapper.ts b/backend/convex/domains/research/forecasting/traceWrapper.ts similarity index 100% rename from convex/domains/research/forecasting/traceWrapper.ts rename to backend/convex/domains/research/forecasting/traceWrapper.ts diff --git a/convex/domains/research/forecasting/validators.ts b/backend/convex/domains/research/forecasting/validators.ts similarity index 100% rename from convex/domains/research/forecasting/validators.ts rename to backend/convex/domains/research/forecasting/validators.ts diff --git a/convex/domains/research/githubExplorer.ts b/backend/convex/domains/research/githubExplorer.ts similarity index 100% rename from convex/domains/research/githubExplorer.ts rename to backend/convex/domains/research/githubExplorer.ts diff --git a/convex/domains/research/hydrateEntities.ts b/backend/convex/domains/research/hydrateEntities.ts similarity index 100% rename from convex/domains/research/hydrateEntities.ts rename to backend/convex/domains/research/hydrateEntities.ts diff --git a/convex/domains/research/index.ts b/backend/convex/domains/research/index.ts similarity index 100% rename from convex/domains/research/index.ts rename to backend/convex/domains/research/index.ts diff --git a/convex/domains/research/jobResearchAction.ts b/backend/convex/domains/research/jobResearchAction.ts similarity index 100% rename from convex/domains/research/jobResearchAction.ts rename to backend/convex/domains/research/jobResearchAction.ts diff --git a/convex/domains/research/lensRegistry.ts b/backend/convex/domains/research/lensRegistry.ts similarity index 100% rename from convex/domains/research/lensRegistry.ts rename to backend/convex/domains/research/lensRegistry.ts diff --git a/convex/domains/research/mcpServerCountSeed.ts b/backend/convex/domains/research/mcpServerCountSeed.ts similarity index 100% rename from convex/domains/research/mcpServerCountSeed.ts rename to backend/convex/domains/research/mcpServerCountSeed.ts diff --git a/convex/domains/research/modelComparison.ts b/backend/convex/domains/research/modelComparison.ts similarity index 100% rename from convex/domains/research/modelComparison.ts rename to backend/convex/domains/research/modelComparison.ts diff --git a/convex/domains/research/modelComparisonQueries.ts b/backend/convex/domains/research/modelComparisonQueries.ts similarity index 100% rename from convex/domains/research/modelComparisonQueries.ts rename to backend/convex/domains/research/modelComparisonQueries.ts diff --git a/convex/domains/research/narrative/actions/competingExplanations.ts b/backend/convex/domains/research/narrative/actions/competingExplanations.ts similarity index 100% rename from convex/domains/research/narrative/actions/competingExplanations.ts rename to backend/convex/domains/research/narrative/actions/competingExplanations.ts diff --git a/convex/domains/research/narrative/actions/hypothesisLifecycle.ts b/backend/convex/domains/research/narrative/actions/hypothesisLifecycle.ts similarity index 100% rename from convex/domains/research/narrative/actions/hypothesisLifecycle.ts rename to backend/convex/domains/research/narrative/actions/hypothesisLifecycle.ts diff --git a/convex/domains/research/narrative/adapters/briefAdapter.ts b/backend/convex/domains/research/narrative/adapters/briefAdapter.ts similarity index 100% rename from convex/domains/research/narrative/adapters/briefAdapter.ts rename to backend/convex/domains/research/narrative/adapters/briefAdapter.ts diff --git a/convex/domains/research/narrative/adapters/feedAdapter.ts b/backend/convex/domains/research/narrative/adapters/feedAdapter.ts similarity index 100% rename from convex/domains/research/narrative/adapters/feedAdapter.ts rename to backend/convex/domains/research/narrative/adapters/feedAdapter.ts diff --git a/convex/domains/research/narrative/adapters/index.ts b/backend/convex/domains/research/narrative/adapters/index.ts similarity index 100% rename from convex/domains/research/narrative/adapters/index.ts rename to backend/convex/domains/research/narrative/adapters/index.ts diff --git a/convex/domains/research/narrative/adapters/linkedinAdapter.ts b/backend/convex/domains/research/narrative/adapters/linkedinAdapter.ts similarity index 100% rename from convex/domains/research/narrative/adapters/linkedinAdapter.ts rename to backend/convex/domains/research/narrative/adapters/linkedinAdapter.ts diff --git a/convex/domains/research/narrative/adapters/pipelineQueries.ts b/backend/convex/domains/research/narrative/adapters/pipelineQueries.ts similarity index 100% rename from convex/domains/research/narrative/adapters/pipelineQueries.ts rename to backend/convex/domains/research/narrative/adapters/pipelineQueries.ts diff --git a/convex/domains/research/narrative/adapters/types.ts b/backend/convex/domains/research/narrative/adapters/types.ts similarity index 100% rename from convex/domains/research/narrative/adapters/types.ts rename to backend/convex/domains/research/narrative/adapters/types.ts diff --git a/convex/domains/research/narrative/contracts/eventClassificationContract.ts b/backend/convex/domains/research/narrative/contracts/eventClassificationContract.ts similarity index 100% rename from convex/domains/research/narrative/contracts/eventClassificationContract.ts rename to backend/convex/domains/research/narrative/contracts/eventClassificationContract.ts diff --git a/convex/domains/research/narrative/cronHandlers.ts b/backend/convex/domains/research/narrative/cronHandlers.ts similarity index 100% rename from convex/domains/research/narrative/cronHandlers.ts rename to backend/convex/domains/research/narrative/cronHandlers.ts diff --git a/convex/domains/research/narrative/crons.ts b/backend/convex/domains/research/narrative/crons.ts similarity index 100% rename from convex/domains/research/narrative/crons.ts rename to backend/convex/domains/research/narrative/crons.ts diff --git a/convex/domains/research/narrative/didYouKnow.ts b/backend/convex/domains/research/narrative/didYouKnow.ts similarity index 100% rename from convex/domains/research/narrative/didYouKnow.ts rename to backend/convex/domains/research/narrative/didYouKnow.ts diff --git a/convex/domains/research/narrative/didYouKnowSources.ts b/backend/convex/domains/research/narrative/didYouKnowSources.ts similarity index 100% rename from convex/domains/research/narrative/didYouKnowSources.ts rename to backend/convex/domains/research/narrative/didYouKnowSources.ts diff --git a/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts b/backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts similarity index 100% rename from convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts rename to backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts diff --git a/convex/domains/research/narrative/guards/claimClassificationGate.ts b/backend/convex/domains/research/narrative/guards/claimClassificationGate.ts similarity index 100% rename from convex/domains/research/narrative/guards/claimClassificationGate.ts rename to backend/convex/domains/research/narrative/guards/claimClassificationGate.ts diff --git a/convex/domains/research/narrative/guards/claimClassificationGateQueries.ts b/backend/convex/domains/research/narrative/guards/claimClassificationGateQueries.ts similarity index 100% rename from convex/domains/research/narrative/guards/claimClassificationGateQueries.ts rename to backend/convex/domains/research/narrative/guards/claimClassificationGateQueries.ts diff --git a/convex/domains/research/narrative/guards/claimClassifier.ts b/backend/convex/domains/research/narrative/guards/claimClassifier.ts similarity index 100% rename from convex/domains/research/narrative/guards/claimClassifier.ts rename to backend/convex/domains/research/narrative/guards/claimClassifier.ts diff --git a/convex/domains/research/narrative/guards/contentRights.ts b/backend/convex/domains/research/narrative/guards/contentRights.ts similarity index 100% rename from convex/domains/research/narrative/guards/contentRights.ts rename to backend/convex/domains/research/narrative/guards/contentRights.ts diff --git a/convex/domains/research/narrative/guards/index.ts b/backend/convex/domains/research/narrative/guards/index.ts similarity index 100% rename from convex/domains/research/narrative/guards/index.ts rename to backend/convex/domains/research/narrative/guards/index.ts diff --git a/convex/domains/research/narrative/guards/injectionContainment.ts b/backend/convex/domains/research/narrative/guards/injectionContainment.ts similarity index 100% rename from convex/domains/research/narrative/guards/injectionContainment.ts rename to backend/convex/domains/research/narrative/guards/injectionContainment.ts diff --git a/convex/domains/research/narrative/guards/quarantine.ts b/backend/convex/domains/research/narrative/guards/quarantine.ts similarity index 100% rename from convex/domains/research/narrative/guards/quarantine.ts rename to backend/convex/domains/research/narrative/guards/quarantine.ts diff --git a/convex/domains/research/narrative/guards/selfCitationGuard.ts b/backend/convex/domains/research/narrative/guards/selfCitationGuard.ts similarity index 100% rename from convex/domains/research/narrative/guards/selfCitationGuard.ts rename to backend/convex/domains/research/narrative/guards/selfCitationGuard.ts diff --git a/convex/domains/research/narrative/guards/trustScoring.ts b/backend/convex/domains/research/narrative/guards/trustScoring.ts similarity index 100% rename from convex/domains/research/narrative/guards/trustScoring.ts rename to backend/convex/domains/research/narrative/guards/trustScoring.ts diff --git a/convex/domains/research/narrative/guards/truthMaintenance.ts b/backend/convex/domains/research/narrative/guards/truthMaintenance.ts similarity index 100% rename from convex/domains/research/narrative/guards/truthMaintenance.ts rename to backend/convex/domains/research/narrative/guards/truthMaintenance.ts diff --git a/convex/domains/research/narrative/index.ts b/backend/convex/domains/research/narrative/index.ts similarity index 100% rename from convex/domains/research/narrative/index.ts rename to backend/convex/domains/research/narrative/index.ts diff --git a/convex/domains/research/narrative/integrations/hooks.ts b/backend/convex/domains/research/narrative/integrations/hooks.ts similarity index 100% rename from convex/domains/research/narrative/integrations/hooks.ts rename to backend/convex/domains/research/narrative/integrations/hooks.ts diff --git a/convex/domains/research/narrative/mutations/correlations.ts b/backend/convex/domains/research/narrative/mutations/correlations.ts similarity index 100% rename from convex/domains/research/narrative/mutations/correlations.ts rename to backend/convex/domains/research/narrative/mutations/correlations.ts diff --git a/convex/domains/research/narrative/mutations/dedup.ts b/backend/convex/domains/research/narrative/mutations/dedup.ts similarity index 100% rename from convex/domains/research/narrative/mutations/dedup.ts rename to backend/convex/domains/research/narrative/mutations/dedup.ts diff --git a/convex/domains/research/narrative/mutations/disputes.ts b/backend/convex/domains/research/narrative/mutations/disputes.ts similarity index 100% rename from convex/domains/research/narrative/mutations/disputes.ts rename to backend/convex/domains/research/narrative/mutations/disputes.ts diff --git a/convex/domains/research/narrative/mutations/events.ts b/backend/convex/domains/research/narrative/mutations/events.ts similarity index 100% rename from convex/domains/research/narrative/mutations/events.ts rename to backend/convex/domains/research/narrative/mutations/events.ts diff --git a/convex/domains/research/narrative/mutations/evidence.ts b/backend/convex/domains/research/narrative/mutations/evidence.ts similarity index 100% rename from convex/domains/research/narrative/mutations/evidence.ts rename to backend/convex/domains/research/narrative/mutations/evidence.ts diff --git a/convex/domains/research/narrative/mutations/hypotheses.ts b/backend/convex/domains/research/narrative/mutations/hypotheses.ts similarity index 100% rename from convex/domains/research/narrative/mutations/hypotheses.ts rename to backend/convex/domains/research/narrative/mutations/hypotheses.ts diff --git a/convex/domains/research/narrative/mutations/policyEnforcedOps.ts b/backend/convex/domains/research/narrative/mutations/policyEnforcedOps.ts similarity index 100% rename from convex/domains/research/narrative/mutations/policyEnforcedOps.ts rename to backend/convex/domains/research/narrative/mutations/policyEnforcedOps.ts diff --git a/convex/domains/research/narrative/mutations/posts.ts b/backend/convex/domains/research/narrative/mutations/posts.ts similarity index 100% rename from convex/domains/research/narrative/mutations/posts.ts rename to backend/convex/domains/research/narrative/mutations/posts.ts diff --git a/convex/domains/research/narrative/mutations/replies.ts b/backend/convex/domains/research/narrative/mutations/replies.ts similarity index 100% rename from convex/domains/research/narrative/mutations/replies.ts rename to backend/convex/domains/research/narrative/mutations/replies.ts diff --git a/convex/domains/research/narrative/mutations/searchLog.ts b/backend/convex/domains/research/narrative/mutations/searchLog.ts similarity index 100% rename from convex/domains/research/narrative/mutations/searchLog.ts rename to backend/convex/domains/research/narrative/mutations/searchLog.ts diff --git a/convex/domains/research/narrative/mutations/signalMetrics.ts b/backend/convex/domains/research/narrative/mutations/signalMetrics.ts similarity index 100% rename from convex/domains/research/narrative/mutations/signalMetrics.ts rename to backend/convex/domains/research/narrative/mutations/signalMetrics.ts diff --git a/convex/domains/research/narrative/mutations/temporalFacts.ts b/backend/convex/domains/research/narrative/mutations/temporalFacts.ts similarity index 100% rename from convex/domains/research/narrative/mutations/temporalFacts.ts rename to backend/convex/domains/research/narrative/mutations/temporalFacts.ts diff --git a/convex/domains/research/narrative/mutations/threads.ts b/backend/convex/domains/research/narrative/mutations/threads.ts similarity index 100% rename from convex/domains/research/narrative/mutations/threads.ts rename to backend/convex/domains/research/narrative/mutations/threads.ts diff --git a/convex/domains/research/narrative/mutations/toolReplay.ts b/backend/convex/domains/research/narrative/mutations/toolReplay.ts similarity index 100% rename from convex/domains/research/narrative/mutations/toolReplay.ts rename to backend/convex/domains/research/narrative/mutations/toolReplay.ts diff --git a/convex/domains/research/narrative/mutations/workflowTrace.ts b/backend/convex/domains/research/narrative/mutations/workflowTrace.ts similarity index 100% rename from convex/domains/research/narrative/mutations/workflowTrace.ts rename to backend/convex/domains/research/narrative/mutations/workflowTrace.ts diff --git a/convex/domains/research/narrative/newsroom/agents/analystAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/analystAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts diff --git a/convex/domains/research/narrative/newsroom/agents/commentHarvester.ts b/backend/convex/domains/research/narrative/newsroom/agents/commentHarvester.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/commentHarvester.ts rename to backend/convex/domains/research/narrative/newsroom/agents/commentHarvester.ts diff --git a/convex/domains/research/narrative/newsroom/agents/curatorAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/curatorAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/curatorAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/curatorAgent.ts diff --git a/convex/domains/research/narrative/newsroom/agents/historianAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/historianAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/historianAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/historianAgent.ts diff --git a/convex/domains/research/narrative/newsroom/agents/index.ts b/backend/convex/domains/research/narrative/newsroom/agents/index.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/index.ts rename to backend/convex/domains/research/narrative/newsroom/agents/index.ts diff --git a/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/publisherAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts diff --git a/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/scoutAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts diff --git a/convex/domains/research/narrative/newsroom/agents/signalCollectorAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/signalCollectorAgent.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/agents/signalCollectorAgent.ts rename to backend/convex/domains/research/narrative/newsroom/agents/signalCollectorAgent.ts diff --git a/convex/domains/research/narrative/newsroom/recordReplayLane.ts b/backend/convex/domains/research/narrative/newsroom/recordReplayLane.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/recordReplayLane.ts rename to backend/convex/domains/research/narrative/newsroom/recordReplayLane.ts diff --git a/convex/domains/research/narrative/newsroom/state.ts b/backend/convex/domains/research/narrative/newsroom/state.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/state.ts rename to backend/convex/domains/research/narrative/newsroom/state.ts diff --git a/convex/domains/research/narrative/newsroom/workflow.ts b/backend/convex/domains/research/narrative/newsroom/workflow.ts similarity index 100% rename from convex/domains/research/narrative/newsroom/workflow.ts rename to backend/convex/domains/research/narrative/newsroom/workflow.ts diff --git a/convex/domains/research/narrative/policies/contentRights.ts b/backend/convex/domains/research/narrative/policies/contentRights.ts similarity index 100% rename from convex/domains/research/narrative/policies/contentRights.ts rename to backend/convex/domains/research/narrative/policies/contentRights.ts diff --git a/convex/domains/research/narrative/queries/correlations.ts b/backend/convex/domains/research/narrative/queries/correlations.ts similarity index 100% rename from convex/domains/research/narrative/queries/correlations.ts rename to backend/convex/domains/research/narrative/queries/correlations.ts diff --git a/convex/domains/research/narrative/queries/disputes.ts b/backend/convex/domains/research/narrative/queries/disputes.ts similarity index 100% rename from convex/domains/research/narrative/queries/disputes.ts rename to backend/convex/domains/research/narrative/queries/disputes.ts diff --git a/convex/domains/research/narrative/queries/events.ts b/backend/convex/domains/research/narrative/queries/events.ts similarity index 100% rename from convex/domains/research/narrative/queries/events.ts rename to backend/convex/domains/research/narrative/queries/events.ts diff --git a/convex/domains/research/narrative/queries/hypotheses.ts b/backend/convex/domains/research/narrative/queries/hypotheses.ts similarity index 100% rename from convex/domains/research/narrative/queries/hypotheses.ts rename to backend/convex/domains/research/narrative/queries/hypotheses.ts diff --git a/convex/domains/research/narrative/queries/posts.ts b/backend/convex/domains/research/narrative/queries/posts.ts similarity index 100% rename from convex/domains/research/narrative/queries/posts.ts rename to backend/convex/domains/research/narrative/queries/posts.ts diff --git a/convex/domains/research/narrative/queries/searchLog.ts b/backend/convex/domains/research/narrative/queries/searchLog.ts similarity index 100% rename from convex/domains/research/narrative/queries/searchLog.ts rename to backend/convex/domains/research/narrative/queries/searchLog.ts diff --git a/convex/domains/research/narrative/queries/signalMetrics.ts b/backend/convex/domains/research/narrative/queries/signalMetrics.ts similarity index 100% rename from convex/domains/research/narrative/queries/signalMetrics.ts rename to backend/convex/domains/research/narrative/queries/signalMetrics.ts diff --git a/convex/domains/research/narrative/queries/threads.ts b/backend/convex/domains/research/narrative/queries/threads.ts similarity index 100% rename from convex/domains/research/narrative/queries/threads.ts rename to backend/convex/domains/research/narrative/queries/threads.ts diff --git a/convex/domains/research/narrative/safety/abuseResistance.ts b/backend/convex/domains/research/narrative/safety/abuseResistance.ts similarity index 100% rename from convex/domains/research/narrative/safety/abuseResistance.ts rename to backend/convex/domains/research/narrative/safety/abuseResistance.ts diff --git a/convex/domains/research/narrative/tests/__tests__/goldenSetIntegration.live.test.ts b/backend/convex/domains/research/narrative/tests/__tests__/goldenSetIntegration.live.test.ts similarity index 100% rename from convex/domains/research/narrative/tests/__tests__/goldenSetIntegration.live.test.ts rename to backend/convex/domains/research/narrative/tests/__tests__/goldenSetIntegration.live.test.ts diff --git a/convex/domains/research/narrative/tests/__tests__/workflowValidation.test.ts b/backend/convex/domains/research/narrative/tests/__tests__/workflowValidation.test.ts similarity index 100% rename from convex/domains/research/narrative/tests/__tests__/workflowValidation.test.ts rename to backend/convex/domains/research/narrative/tests/__tests__/workflowValidation.test.ts diff --git a/convex/domains/research/narrative/tests/goldenSets/CHANGELOG.md b/backend/convex/domains/research/narrative/tests/goldenSets/CHANGELOG.md similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/CHANGELOG.md rename to backend/convex/domains/research/narrative/tests/goldenSets/CHANGELOG.md diff --git a/convex/domains/research/narrative/tests/goldenSets/GOVERNANCE.md b/backend/convex/domains/research/narrative/tests/goldenSets/GOVERNANCE.md similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/GOVERNANCE.md rename to backend/convex/domains/research/narrative/tests/goldenSets/GOVERNANCE.md diff --git a/convex/domains/research/narrative/tests/goldenSets/README.md b/backend/convex/domains/research/narrative/tests/goldenSets/README.md similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/README.md rename to backend/convex/domains/research/narrative/tests/goldenSets/README.md diff --git a/convex/domains/research/narrative/tests/goldenSets/drane_golden_set.schema.json b/backend/convex/domains/research/narrative/tests/goldenSets/drane_golden_set.schema.json similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/drane_golden_set.schema.json rename to backend/convex/domains/research/narrative/tests/goldenSets/drane_golden_set.schema.json diff --git a/convex/domains/research/narrative/tests/goldenSets/generatedCases.ts b/backend/convex/domains/research/narrative/tests/goldenSets/generatedCases.ts similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/generatedCases.ts rename to backend/convex/domains/research/narrative/tests/goldenSets/generatedCases.ts diff --git a/convex/domains/research/narrative/tests/goldenSets/suite.example.json b/backend/convex/domains/research/narrative/tests/goldenSets/suite.example.json similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/suite.example.json rename to backend/convex/domains/research/narrative/tests/goldenSets/suite.example.json diff --git a/convex/domains/research/narrative/tests/goldenSets/suites/drane_audit_v1.json b/backend/convex/domains/research/narrative/tests/goldenSets/suites/drane_audit_v1.json similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/suites/drane_audit_v1.json rename to backend/convex/domains/research/narrative/tests/goldenSets/suites/drane_audit_v1.json diff --git a/convex/domains/research/narrative/tests/goldenSets/types.ts b/backend/convex/domains/research/narrative/tests/goldenSets/types.ts similarity index 100% rename from convex/domains/research/narrative/tests/goldenSets/types.ts rename to backend/convex/domains/research/narrative/tests/goldenSets/types.ts diff --git a/convex/domains/research/narrative/tests/qaFramework.ts b/backend/convex/domains/research/narrative/tests/qaFramework.ts similarity index 100% rename from convex/domains/research/narrative/tests/qaFramework.ts rename to backend/convex/domains/research/narrative/tests/qaFramework.ts diff --git a/convex/domains/research/narrative/tests/validatePipeline.ts b/backend/convex/domains/research/narrative/tests/validatePipeline.ts similarity index 100% rename from convex/domains/research/narrative/tests/validatePipeline.ts rename to backend/convex/domains/research/narrative/tests/validatePipeline.ts diff --git a/convex/domains/research/narrative/truth/truthStateManager.ts b/backend/convex/domains/research/narrative/truth/truthStateManager.ts similarity index 100% rename from convex/domains/research/narrative/truth/truthStateManager.ts rename to backend/convex/domains/research/narrative/truth/truthStateManager.ts diff --git a/convex/domains/research/narrative/validators.ts b/backend/convex/domains/research/narrative/validators.ts similarity index 100% rename from convex/domains/research/narrative/validators.ts rename to backend/convex/domains/research/narrative/validators.ts diff --git a/convex/domains/research/paperDetails.ts b/backend/convex/domains/research/paperDetails.ts similarity index 100% rename from convex/domains/research/paperDetails.ts rename to backend/convex/domains/research/paperDetails.ts diff --git a/convex/domains/research/paperDetailsQueries.ts b/backend/convex/domains/research/paperDetailsQueries.ts similarity index 100% rename from convex/domains/research/paperDetailsQueries.ts rename to backend/convex/domains/research/paperDetailsQueries.ts diff --git a/convex/domains/research/publicDossier.ts b/backend/convex/domains/research/publicDossier.ts similarity index 100% rename from convex/domains/research/publicDossier.ts rename to backend/convex/domains/research/publicDossier.ts diff --git a/convex/domains/research/publicDossierQueries.ts b/backend/convex/domains/research/publicDossierQueries.ts similarity index 100% rename from convex/domains/research/publicDossierQueries.ts rename to backend/convex/domains/research/publicDossierQueries.ts diff --git a/convex/domains/research/readerContent.ts b/backend/convex/domains/research/readerContent.ts similarity index 100% rename from convex/domains/research/readerContent.ts rename to backend/convex/domains/research/readerContent.ts diff --git a/convex/domains/research/repoScout.ts b/backend/convex/domains/research/repoScout.ts similarity index 100% rename from convex/domains/research/repoScout.ts rename to backend/convex/domains/research/repoScout.ts diff --git a/convex/domains/research/repoScoutQueries.ts b/backend/convex/domains/research/repoScoutQueries.ts similarity index 100% rename from convex/domains/research/repoScoutQueries.ts rename to backend/convex/domains/research/repoScoutQueries.ts diff --git a/convex/domains/research/repoStats.ts b/backend/convex/domains/research/repoStats.ts similarity index 100% rename from convex/domains/research/repoStats.ts rename to backend/convex/domains/research/repoStats.ts diff --git a/convex/domains/research/repoStatsQueries.ts b/backend/convex/domains/research/repoStatsQueries.ts similarity index 100% rename from convex/domains/research/repoStatsQueries.ts rename to backend/convex/domains/research/repoStatsQueries.ts diff --git a/convex/domains/research/researchQueue.ts b/backend/convex/domains/research/researchQueue.ts similarity index 100% rename from convex/domains/research/researchQueue.ts rename to backend/convex/domains/research/researchQueue.ts diff --git a/convex/domains/research/researchRunAction.ts b/backend/convex/domains/research/researchRunAction.ts similarity index 100% rename from convex/domains/research/researchRunAction.ts rename to backend/convex/domains/research/researchRunAction.ts diff --git a/convex/domains/research/researchSessionBenchmark.ts b/backend/convex/domains/research/researchSessionBenchmark.ts similarity index 100% rename from convex/domains/research/researchSessionBenchmark.ts rename to backend/convex/domains/research/researchSessionBenchmark.ts diff --git a/convex/domains/research/researchSessionJit.ts b/backend/convex/domains/research/researchSessionJit.ts similarity index 100% rename from convex/domains/research/researchSessionJit.ts rename to backend/convex/domains/research/researchSessionJit.ts diff --git a/convex/domains/research/researchSessionLifecycle.ts b/backend/convex/domains/research/researchSessionLifecycle.ts similarity index 100% rename from convex/domains/research/researchSessionLifecycle.ts rename to backend/convex/domains/research/researchSessionLifecycle.ts diff --git a/convex/domains/research/researchSessionOrchestrator.ts b/backend/convex/domains/research/researchSessionOrchestrator.ts similarity index 100% rename from convex/domains/research/researchSessionOrchestrator.ts rename to backend/convex/domains/research/researchSessionOrchestrator.ts diff --git a/convex/domains/research/researchSessionSmoke.ts b/backend/convex/domains/research/researchSessionSmoke.ts similarity index 100% rename from convex/domains/research/researchSessionSmoke.ts rename to backend/convex/domains/research/researchSessionSmoke.ts diff --git a/convex/domains/research/seedEditorialHypotheses.ts b/backend/convex/domains/research/seedEditorialHypotheses.ts similarity index 100% rename from convex/domains/research/seedEditorialHypotheses.ts rename to backend/convex/domains/research/seedEditorialHypotheses.ts diff --git a/convex/domains/research/semanticDeduplicator.ts b/backend/convex/domains/research/semanticDeduplicator.ts similarity index 100% rename from convex/domains/research/semanticDeduplicator.ts rename to backend/convex/domains/research/semanticDeduplicator.ts diff --git a/convex/domains/research/semanticDeduplicatorQueries.ts b/backend/convex/domains/research/semanticDeduplicatorQueries.ts similarity index 100% rename from convex/domains/research/semanticDeduplicatorQueries.ts rename to backend/convex/domains/research/semanticDeduplicatorQueries.ts diff --git a/convex/domains/research/signalTimeseries.ts b/backend/convex/domains/research/signalTimeseries.ts similarity index 100% rename from convex/domains/research/signalTimeseries.ts rename to backend/convex/domains/research/signalTimeseries.ts diff --git a/convex/domains/research/stackImpact.ts b/backend/convex/domains/research/stackImpact.ts similarity index 100% rename from convex/domains/research/stackImpact.ts rename to backend/convex/domains/research/stackImpact.ts diff --git a/convex/domains/research/stackImpactQueries.ts b/backend/convex/domains/research/stackImpactQueries.ts similarity index 100% rename from convex/domains/research/stackImpactQueries.ts rename to backend/convex/domains/research/stackImpactQueries.ts diff --git a/convex/domains/research/strategyMetrics.ts b/backend/convex/domains/research/strategyMetrics.ts similarity index 100% rename from convex/domains/research/strategyMetrics.ts rename to backend/convex/domains/research/strategyMetrics.ts diff --git a/convex/domains/research/strategyMetricsQueries.ts b/backend/convex/domains/research/strategyMetricsQueries.ts similarity index 100% rename from convex/domains/research/strategyMetricsQueries.ts rename to backend/convex/domains/research/strategyMetricsQueries.ts diff --git a/convex/domains/search/__tests__/embedHashBackfill.test.ts b/backend/convex/domains/search/__tests__/embedHashBackfill.test.ts similarity index 100% rename from convex/domains/search/__tests__/embedHashBackfill.test.ts rename to backend/convex/domains/search/__tests__/embedHashBackfill.test.ts diff --git a/convex/domains/search/__tests__/embedRowOnUpdate.test.ts b/backend/convex/domains/search/__tests__/embedRowOnUpdate.test.ts similarity index 100% rename from convex/domains/search/__tests__/embedRowOnUpdate.test.ts rename to backend/convex/domains/search/__tests__/embedRowOnUpdate.test.ts diff --git a/convex/domains/search/analytics/__tests__/intentSignals.test.ts b/backend/convex/domains/search/analytics/__tests__/intentSignals.test.ts similarity index 100% rename from convex/domains/search/analytics/__tests__/intentSignals.test.ts rename to backend/convex/domains/search/analytics/__tests__/intentSignals.test.ts diff --git a/convex/domains/search/analytics/analytics.ts b/backend/convex/domains/search/analytics/analytics.ts similarity index 100% rename from convex/domains/search/analytics/analytics.ts rename to backend/convex/domains/search/analytics/analytics.ts diff --git a/convex/domains/search/analytics/componentMetrics.ts b/backend/convex/domains/search/analytics/componentMetrics.ts similarity index 100% rename from convex/domains/search/analytics/componentMetrics.ts rename to backend/convex/domains/search/analytics/componentMetrics.ts diff --git a/convex/domains/search/analytics/intentSignals.ts b/backend/convex/domains/search/analytics/intentSignals.ts similarity index 100% rename from convex/domains/search/analytics/intentSignals.ts rename to backend/convex/domains/search/analytics/intentSignals.ts diff --git a/convex/domains/search/analytics/ossStats.ts b/backend/convex/domains/search/analytics/ossStats.ts similarity index 100% rename from convex/domains/search/analytics/ossStats.ts rename to backend/convex/domains/search/analytics/ossStats.ts diff --git a/convex/domains/search/deepDiligence.ts b/backend/convex/domains/search/deepDiligence.ts similarity index 100% rename from convex/domains/search/deepDiligence.ts rename to backend/convex/domains/search/deepDiligence.ts diff --git a/convex/domains/search/embedHashBackfill.ts b/backend/convex/domains/search/embedHashBackfill.ts similarity index 100% rename from convex/domains/search/embedHashBackfill.ts rename to backend/convex/domains/search/embedHashBackfill.ts diff --git a/convex/domains/search/embedRowOnUpdate.ts b/backend/convex/domains/search/embedRowOnUpdate.ts similarity index 100% rename from convex/domains/search/embedRowOnUpdate.ts rename to backend/convex/domains/search/embedRowOnUpdate.ts diff --git a/convex/domains/search/embedSearchableText.ts b/backend/convex/domains/search/embedSearchableText.ts similarity index 100% rename from convex/domains/search/embedSearchableText.ts rename to backend/convex/domains/search/embedSearchableText.ts diff --git a/convex/domains/search/federatedHelpers.ts b/backend/convex/domains/search/federatedHelpers.ts similarity index 100% rename from convex/domains/search/federatedHelpers.ts rename to backend/convex/domains/search/federatedHelpers.ts diff --git a/convex/domains/search/federatedSearch.test.ts b/backend/convex/domains/search/federatedSearch.test.ts similarity index 100% rename from convex/domains/search/federatedSearch.test.ts rename to backend/convex/domains/search/federatedSearch.test.ts diff --git a/convex/domains/search/federatedSearch.ts b/backend/convex/domains/search/federatedSearch.ts similarity index 100% rename from convex/domains/search/federatedSearch.ts rename to backend/convex/domains/search/federatedSearch.ts diff --git a/convex/domains/search/federatedSearchCache.test.ts b/backend/convex/domains/search/federatedSearchCache.test.ts similarity index 100% rename from convex/domains/search/federatedSearchCache.test.ts rename to backend/convex/domains/search/federatedSearchCache.test.ts diff --git a/convex/domains/search/federatedSearchCache.ts b/backend/convex/domains/search/federatedSearchCache.ts similarity index 100% rename from convex/domains/search/federatedSearchCache.ts rename to backend/convex/domains/search/federatedSearchCache.ts diff --git a/convex/domains/search/fusion/README.md b/backend/convex/domains/search/fusion/README.md similarity index 100% rename from convex/domains/search/fusion/README.md rename to backend/convex/domains/search/fusion/README.md diff --git a/convex/domains/search/fusion/actions.ts b/backend/convex/domains/search/fusion/actions.ts similarity index 100% rename from convex/domains/search/fusion/actions.ts rename to backend/convex/domains/search/fusion/actions.ts diff --git a/convex/domains/search/fusion/adapters/arxivAdapter.ts b/backend/convex/domains/search/fusion/adapters/arxivAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/arxivAdapter.ts rename to backend/convex/domains/search/fusion/adapters/arxivAdapter.ts diff --git a/convex/domains/search/fusion/adapters/braveAdapter.ts b/backend/convex/domains/search/fusion/adapters/braveAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/braveAdapter.ts rename to backend/convex/domains/search/fusion/adapters/braveAdapter.ts diff --git a/convex/domains/search/fusion/adapters/documentAdapter.ts b/backend/convex/domains/search/fusion/adapters/documentAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/documentAdapter.ts rename to backend/convex/domains/search/fusion/adapters/documentAdapter.ts diff --git a/convex/domains/search/fusion/adapters/fdaAdapter.ts b/backend/convex/domains/search/fusion/adapters/fdaAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/fdaAdapter.ts rename to backend/convex/domains/search/fusion/adapters/fdaAdapter.ts diff --git a/convex/domains/search/fusion/adapters/finraAdapter.ts b/backend/convex/domains/search/fusion/adapters/finraAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/finraAdapter.ts rename to backend/convex/domains/search/fusion/adapters/finraAdapter.ts diff --git a/convex/domains/search/fusion/adapters/index.ts b/backend/convex/domains/search/fusion/adapters/index.ts similarity index 100% rename from convex/domains/search/fusion/adapters/index.ts rename to backend/convex/domains/search/fusion/adapters/index.ts diff --git a/convex/domains/search/fusion/adapters/linkupAdapter.ts b/backend/convex/domains/search/fusion/adapters/linkupAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/linkupAdapter.ts rename to backend/convex/domains/search/fusion/adapters/linkupAdapter.ts diff --git a/convex/domains/search/fusion/adapters/newsAdapter.ts b/backend/convex/domains/search/fusion/adapters/newsAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/newsAdapter.ts rename to backend/convex/domains/search/fusion/adapters/newsAdapter.ts diff --git a/convex/domains/search/fusion/adapters/ragAdapter.ts b/backend/convex/domains/search/fusion/adapters/ragAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/ragAdapter.ts rename to backend/convex/domains/search/fusion/adapters/ragAdapter.ts diff --git a/convex/domains/search/fusion/adapters/secAdapter.ts b/backend/convex/domains/search/fusion/adapters/secAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/secAdapter.ts rename to backend/convex/domains/search/fusion/adapters/secAdapter.ts diff --git a/convex/domains/search/fusion/adapters/serperAdapter.ts b/backend/convex/domains/search/fusion/adapters/serperAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/serperAdapter.ts rename to backend/convex/domains/search/fusion/adapters/serperAdapter.ts diff --git a/convex/domains/search/fusion/adapters/stateRegistryAdapter.ts b/backend/convex/domains/search/fusion/adapters/stateRegistryAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/stateRegistryAdapter.ts rename to backend/convex/domains/search/fusion/adapters/stateRegistryAdapter.ts diff --git a/convex/domains/search/fusion/adapters/tavilyAdapter.ts b/backend/convex/domains/search/fusion/adapters/tavilyAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/tavilyAdapter.ts rename to backend/convex/domains/search/fusion/adapters/tavilyAdapter.ts diff --git a/convex/domains/search/fusion/adapters/usptoAdapter.ts b/backend/convex/domains/search/fusion/adapters/usptoAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/usptoAdapter.ts rename to backend/convex/domains/search/fusion/adapters/usptoAdapter.ts diff --git a/convex/domains/search/fusion/adapters/youtubeAdapter.ts b/backend/convex/domains/search/fusion/adapters/youtubeAdapter.ts similarity index 100% rename from convex/domains/search/fusion/adapters/youtubeAdapter.ts rename to backend/convex/domains/search/fusion/adapters/youtubeAdapter.ts diff --git a/convex/domains/search/fusion/advanced.ts b/backend/convex/domains/search/fusion/advanced.ts similarity index 100% rename from convex/domains/search/fusion/advanced.ts rename to backend/convex/domains/search/fusion/advanced.ts diff --git a/convex/domains/search/fusion/benchmark.ts b/backend/convex/domains/search/fusion/benchmark.ts similarity index 100% rename from convex/domains/search/fusion/benchmark.ts rename to backend/convex/domains/search/fusion/benchmark.ts diff --git a/convex/domains/search/fusion/cache.ts b/backend/convex/domains/search/fusion/cache.ts similarity index 100% rename from convex/domains/search/fusion/cache.ts rename to backend/convex/domains/search/fusion/cache.ts diff --git a/convex/domains/search/fusion/crossProviderEval.ts b/backend/convex/domains/search/fusion/crossProviderEval.ts similarity index 100% rename from convex/domains/search/fusion/crossProviderEval.ts rename to backend/convex/domains/search/fusion/crossProviderEval.ts diff --git a/convex/domains/search/fusion/debugAdapters.ts b/backend/convex/domains/search/fusion/debugAdapters.ts similarity index 100% rename from convex/domains/search/fusion/debugAdapters.ts rename to backend/convex/domains/search/fusion/debugAdapters.ts diff --git a/convex/domains/search/fusion/debugOrchestrator.ts b/backend/convex/domains/search/fusion/debugOrchestrator.ts similarity index 100% rename from convex/domains/search/fusion/debugOrchestrator.ts rename to backend/convex/domains/search/fusion/debugOrchestrator.ts diff --git a/convex/domains/search/fusion/index.ts b/backend/convex/domains/search/fusion/index.ts similarity index 100% rename from convex/domains/search/fusion/index.ts rename to backend/convex/domains/search/fusion/index.ts diff --git a/convex/domains/search/fusion/observability.ts b/backend/convex/domains/search/fusion/observability.ts similarity index 100% rename from convex/domains/search/fusion/observability.ts rename to backend/convex/domains/search/fusion/observability.ts diff --git a/convex/domains/search/fusion/orchestrator.ts b/backend/convex/domains/search/fusion/orchestrator.ts similarity index 100% rename from convex/domains/search/fusion/orchestrator.ts rename to backend/convex/domains/search/fusion/orchestrator.ts diff --git a/convex/domains/search/fusion/rateLimiter.ts b/backend/convex/domains/search/fusion/rateLimiter.ts similarity index 100% rename from convex/domains/search/fusion/rateLimiter.ts rename to backend/convex/domains/search/fusion/rateLimiter.ts diff --git a/convex/domains/search/fusion/reranker.ts b/backend/convex/domains/search/fusion/reranker.ts similarity index 100% rename from convex/domains/search/fusion/reranker.ts rename to backend/convex/domains/search/fusion/reranker.ts diff --git a/convex/domains/search/fusion/types.ts b/backend/convex/domains/search/fusion/types.ts similarity index 100% rename from convex/domains/search/fusion/types.ts rename to backend/convex/domains/search/fusion/types.ts diff --git a/convex/domains/search/hashtagDossiers.ts b/backend/convex/domains/search/hashtagDossiers.ts similarity index 100% rename from convex/domains/search/hashtagDossiers.ts rename to backend/convex/domains/search/hashtagDossiers.ts diff --git a/convex/domains/search/index.ts b/backend/convex/domains/search/index.ts similarity index 100% rename from convex/domains/search/index.ts rename to backend/convex/domains/search/index.ts diff --git a/convex/domains/search/linkupClient.ts b/backend/convex/domains/search/linkupClient.ts similarity index 100% rename from convex/domains/search/linkupClient.ts rename to backend/convex/domains/search/linkupClient.ts diff --git a/convex/domains/search/quotaManager.ts b/backend/convex/domains/search/quotaManager.ts similarity index 100% rename from convex/domains/search/quotaManager.ts rename to backend/convex/domains/search/quotaManager.ts diff --git a/convex/domains/search/rag.ts b/backend/convex/domains/search/rag.ts similarity index 100% rename from convex/domains/search/rag.ts rename to backend/convex/domains/search/rag.ts diff --git a/convex/domains/search/ragEnhanced.ts b/backend/convex/domains/search/ragEnhanced.ts similarity index 100% rename from convex/domains/search/ragEnhanced.ts rename to backend/convex/domains/search/ragEnhanced.ts diff --git a/convex/domains/search/ragEnhancedBatchIndex.ts b/backend/convex/domains/search/ragEnhancedBatchIndex.ts similarity index 100% rename from convex/domains/search/ragEnhancedBatchIndex.ts rename to backend/convex/domains/search/ragEnhancedBatchIndex.ts diff --git a/convex/domains/search/ragQueries.ts b/backend/convex/domains/search/ragQueries.ts similarity index 100% rename from convex/domains/search/ragQueries.ts rename to backend/convex/domains/search/ragQueries.ts diff --git a/convex/domains/search/searchCache.ts b/backend/convex/domains/search/searchCache.ts similarity index 100% rename from convex/domains/search/searchCache.ts rename to backend/convex/domains/search/searchCache.ts diff --git a/convex/domains/search/searchForecastGate.test.ts b/backend/convex/domains/search/searchForecastGate.test.ts similarity index 100% rename from convex/domains/search/searchForecastGate.test.ts rename to backend/convex/domains/search/searchForecastGate.test.ts diff --git a/convex/domains/search/searchForecastGate.ts b/backend/convex/domains/search/searchForecastGate.ts similarity index 100% rename from convex/domains/search/searchForecastGate.ts rename to backend/convex/domains/search/searchForecastGate.ts diff --git a/convex/domains/search/searchPipeline.ts b/backend/convex/domains/search/searchPipeline.ts similarity index 100% rename from convex/domains/search/searchPipeline.ts rename to backend/convex/domains/search/searchPipeline.ts diff --git a/convex/domains/search/searchPipelineNode.ts b/backend/convex/domains/search/searchPipelineNode.ts similarity index 100% rename from convex/domains/search/searchPipelineNode.ts rename to backend/convex/domains/search/searchPipelineNode.ts diff --git a/convex/domains/search/searchableTextBackfill.ts b/backend/convex/domains/search/searchableTextBackfill.ts similarity index 100% rename from convex/domains/search/searchableTextBackfill.ts rename to backend/convex/domains/search/searchableTextBackfill.ts diff --git a/convex/domains/search/searchableTextRecompute.test.ts b/backend/convex/domains/search/searchableTextRecompute.test.ts similarity index 100% rename from convex/domains/search/searchableTextRecompute.test.ts rename to backend/convex/domains/search/searchableTextRecompute.test.ts diff --git a/convex/domains/search/searchableTextRecompute.ts b/backend/convex/domains/search/searchableTextRecompute.ts similarity index 100% rename from convex/domains/search/searchableTextRecompute.ts rename to backend/convex/domains/search/searchableTextRecompute.ts diff --git a/convex/domains/search/sharedCache.test.ts b/backend/convex/domains/search/sharedCache.test.ts similarity index 100% rename from convex/domains/search/sharedCache.test.ts rename to backend/convex/domains/search/sharedCache.test.ts diff --git a/convex/domains/search/sharedCache.ts b/backend/convex/domains/search/sharedCache.ts similarity index 100% rename from convex/domains/search/sharedCache.ts rename to backend/convex/domains/search/sharedCache.ts diff --git a/convex/domains/search/signalTaxonomy.ts b/backend/convex/domains/search/signalTaxonomy.ts similarity index 100% rename from convex/domains/search/signalTaxonomy.ts rename to backend/convex/domains/search/signalTaxonomy.ts diff --git a/convex/domains/signals/index.ts b/backend/convex/domains/signals/index.ts similarity index 100% rename from convex/domains/signals/index.ts rename to backend/convex/domains/signals/index.ts diff --git a/convex/domains/signals/signalIngester.ts b/backend/convex/domains/signals/signalIngester.ts similarity index 100% rename from convex/domains/signals/signalIngester.ts rename to backend/convex/domains/signals/signalIngester.ts diff --git a/convex/domains/signals/signalProcessor.ts b/backend/convex/domains/signals/signalProcessor.ts similarity index 100% rename from convex/domains/signals/signalProcessor.ts rename to backend/convex/domains/signals/signalProcessor.ts diff --git a/convex/domains/social/instagramIngestion.ts b/backend/convex/domains/social/instagramIngestion.ts similarity index 100% rename from convex/domains/social/instagramIngestion.ts rename to backend/convex/domains/social/instagramIngestion.ts diff --git a/convex/domains/social/linkedinAccounts.ts b/backend/convex/domains/social/linkedinAccounts.ts similarity index 100% rename from convex/domains/social/linkedinAccounts.ts rename to backend/convex/domains/social/linkedinAccounts.ts diff --git a/convex/domains/social/linkedinArchiveAudit.ts b/backend/convex/domains/social/linkedinArchiveAudit.ts similarity index 100% rename from convex/domains/social/linkedinArchiveAudit.ts rename to backend/convex/domains/social/linkedinArchiveAudit.ts diff --git a/convex/domains/social/linkedinArchiveCleanup.ts b/backend/convex/domains/social/linkedinArchiveCleanup.ts similarity index 100% rename from convex/domains/social/linkedinArchiveCleanup.ts rename to backend/convex/domains/social/linkedinArchiveCleanup.ts diff --git a/convex/domains/social/linkedinArchiveCleanupMutations.ts b/backend/convex/domains/social/linkedinArchiveCleanupMutations.ts similarity index 100% rename from convex/domains/social/linkedinArchiveCleanupMutations.ts rename to backend/convex/domains/social/linkedinArchiveCleanupMutations.ts diff --git a/convex/domains/social/linkedinArchiveEdits.ts b/backend/convex/domains/social/linkedinArchiveEdits.ts similarity index 100% rename from convex/domains/social/linkedinArchiveEdits.ts rename to backend/convex/domains/social/linkedinArchiveEdits.ts diff --git a/convex/domains/social/linkedinArchiveEditsMutations.ts b/backend/convex/domains/social/linkedinArchiveEditsMutations.ts similarity index 100% rename from convex/domains/social/linkedinArchiveEditsMutations.ts rename to backend/convex/domains/social/linkedinArchiveEditsMutations.ts diff --git a/convex/domains/social/linkedinArchiveEntityLinks.ts b/backend/convex/domains/social/linkedinArchiveEntityLinks.ts similarity index 100% rename from convex/domains/social/linkedinArchiveEntityLinks.ts rename to backend/convex/domains/social/linkedinArchiveEntityLinks.ts diff --git a/convex/domains/social/linkedinArchiveMaintenance.ts b/backend/convex/domains/social/linkedinArchiveMaintenance.ts similarity index 100% rename from convex/domains/social/linkedinArchiveMaintenance.ts rename to backend/convex/domains/social/linkedinArchiveMaintenance.ts diff --git a/convex/domains/social/linkedinArchiveMaintenanceQueries.ts b/backend/convex/domains/social/linkedinArchiveMaintenanceQueries.ts similarity index 100% rename from convex/domains/social/linkedinArchiveMaintenanceQueries.ts rename to backend/convex/domains/social/linkedinArchiveMaintenanceQueries.ts diff --git a/convex/domains/social/linkedinArchivePurge.ts b/backend/convex/domains/social/linkedinArchivePurge.ts similarity index 100% rename from convex/domains/social/linkedinArchivePurge.ts rename to backend/convex/domains/social/linkedinArchivePurge.ts diff --git a/convex/domains/social/linkedinArchivePurgeMutations.ts b/backend/convex/domains/social/linkedinArchivePurgeMutations.ts similarity index 100% rename from convex/domains/social/linkedinArchivePurgeMutations.ts rename to backend/convex/domains/social/linkedinArchivePurgeMutations.ts diff --git a/convex/domains/social/linkedinArchiveQueries.ts b/backend/convex/domains/social/linkedinArchiveQueries.ts similarity index 100% rename from convex/domains/social/linkedinArchiveQueries.ts rename to backend/convex/domains/social/linkedinArchiveQueries.ts diff --git a/convex/domains/social/linkedinContentQueue.ts b/backend/convex/domains/social/linkedinContentQueue.ts similarity index 100% rename from convex/domains/social/linkedinContentQueue.ts rename to backend/convex/domains/social/linkedinContentQueue.ts diff --git a/convex/domains/social/linkedinFundingPosts.ts b/backend/convex/domains/social/linkedinFundingPosts.ts similarity index 100% rename from convex/domains/social/linkedinFundingPosts.ts rename to backend/convex/domains/social/linkedinFundingPosts.ts diff --git a/convex/domains/social/linkedinLegacyLookupQueries.ts b/backend/convex/domains/social/linkedinLegacyLookupQueries.ts similarity index 100% rename from convex/domains/social/linkedinLegacyLookupQueries.ts rename to backend/convex/domains/social/linkedinLegacyLookupQueries.ts diff --git a/convex/domains/social/linkedinOAuth.ts b/backend/convex/domains/social/linkedinOAuth.ts similarity index 100% rename from convex/domains/social/linkedinOAuth.ts rename to backend/convex/domains/social/linkedinOAuth.ts diff --git a/convex/domains/social/linkedinPosting.ts b/backend/convex/domains/social/linkedinPosting.ts similarity index 100% rename from convex/domains/social/linkedinPosting.ts rename to backend/convex/domains/social/linkedinPosting.ts diff --git a/convex/domains/social/linkedinPrePostVerification.ts b/backend/convex/domains/social/linkedinPrePostVerification.ts similarity index 100% rename from convex/domains/social/linkedinPrePostVerification.ts rename to backend/convex/domains/social/linkedinPrePostVerification.ts diff --git a/convex/domains/social/linkedinQualityJudge.ts b/backend/convex/domains/social/linkedinQualityJudge.ts similarity index 100% rename from convex/domains/social/linkedinQualityJudge.ts rename to backend/convex/domains/social/linkedinQualityJudge.ts diff --git a/convex/domains/social/linkedinScheduleGrid.ts b/backend/convex/domains/social/linkedinScheduleGrid.ts similarity index 100% rename from convex/domains/social/linkedinScheduleGrid.ts rename to backend/convex/domains/social/linkedinScheduleGrid.ts diff --git a/convex/domains/social/linkedinUnknownCompanyFixes.ts b/backend/convex/domains/social/linkedinUnknownCompanyFixes.ts similarity index 100% rename from convex/domains/social/linkedinUnknownCompanyFixes.ts rename to backend/convex/domains/social/linkedinUnknownCompanyFixes.ts diff --git a/convex/domains/social/postDedup.ts b/backend/convex/domains/social/postDedup.ts similarity index 100% rename from convex/domains/social/postDedup.ts rename to backend/convex/domains/social/postDedup.ts diff --git a/convex/domains/social/postDedupAction.ts b/backend/convex/domains/social/postDedupAction.ts similarity index 100% rename from convex/domains/social/postDedupAction.ts rename to backend/convex/domains/social/postDedupAction.ts diff --git a/convex/domains/social/publishing/deliveryQueue.ts b/backend/convex/domains/social/publishing/deliveryQueue.ts similarity index 100% rename from convex/domains/social/publishing/deliveryQueue.ts rename to backend/convex/domains/social/publishing/deliveryQueue.ts diff --git a/convex/domains/social/publishing/index.ts b/backend/convex/domains/social/publishing/index.ts similarity index 100% rename from convex/domains/social/publishing/index.ts rename to backend/convex/domains/social/publishing/index.ts diff --git a/convex/domains/social/publishing/publishingOrchestrator.ts b/backend/convex/domains/social/publishing/publishingOrchestrator.ts similarity index 100% rename from convex/domains/social/publishing/publishingOrchestrator.ts rename to backend/convex/domains/social/publishing/publishingOrchestrator.ts diff --git a/convex/domains/social/specializedPostQueries.ts b/backend/convex/domains/social/specializedPostQueries.ts similarity index 100% rename from convex/domains/social/specializedPostQueries.ts rename to backend/convex/domains/social/specializedPostQueries.ts diff --git a/convex/domains/successLoops/index.ts b/backend/convex/domains/successLoops/index.ts similarity index 100% rename from convex/domains/successLoops/index.ts rename to backend/convex/domains/successLoops/index.ts diff --git a/convex/domains/successLoops/lib.ts b/backend/convex/domains/successLoops/lib.ts similarity index 100% rename from convex/domains/successLoops/lib.ts rename to backend/convex/domains/successLoops/lib.ts diff --git a/convex/domains/successLoops/mutations.ts b/backend/convex/domains/successLoops/mutations.ts similarity index 100% rename from convex/domains/successLoops/mutations.ts rename to backend/convex/domains/successLoops/mutations.ts diff --git a/convex/domains/successLoops/projection.ts b/backend/convex/domains/successLoops/projection.ts similarity index 100% rename from convex/domains/successLoops/projection.ts rename to backend/convex/domains/successLoops/projection.ts diff --git a/convex/domains/successLoops/queries.ts b/backend/convex/domains/successLoops/queries.ts similarity index 100% rename from convex/domains/successLoops/queries.ts rename to backend/convex/domains/successLoops/queries.ts diff --git a/convex/domains/successLoops/schema.ts b/backend/convex/domains/successLoops/schema.ts similarity index 100% rename from convex/domains/successLoops/schema.ts rename to backend/convex/domains/successLoops/schema.ts diff --git a/convex/domains/taskManager/cronWrapper.ts b/backend/convex/domains/taskManager/cronWrapper.ts similarity index 100% rename from convex/domains/taskManager/cronWrapper.ts rename to backend/convex/domains/taskManager/cronWrapper.ts diff --git a/convex/domains/taskManager/index.ts b/backend/convex/domains/taskManager/index.ts similarity index 100% rename from convex/domains/taskManager/index.ts rename to backend/convex/domains/taskManager/index.ts diff --git a/convex/domains/taskManager/mutations.ts b/backend/convex/domains/taskManager/mutations.ts similarity index 100% rename from convex/domains/taskManager/mutations.ts rename to backend/convex/domains/taskManager/mutations.ts diff --git a/convex/domains/taskManager/queries.ts b/backend/convex/domains/taskManager/queries.ts similarity index 100% rename from convex/domains/taskManager/queries.ts rename to backend/convex/domains/taskManager/queries.ts diff --git a/convex/domains/tasks/dailyNotes.ts b/backend/convex/domains/tasks/dailyNotes.ts similarity index 100% rename from convex/domains/tasks/dailyNotes.ts rename to backend/convex/domains/tasks/dailyNotes.ts diff --git a/convex/domains/tasks/eventTaskDocuments.ts b/backend/convex/domains/tasks/eventTaskDocuments.ts similarity index 100% rename from convex/domains/tasks/eventTaskDocuments.ts rename to backend/convex/domains/tasks/eventTaskDocuments.ts diff --git a/convex/domains/tasks/index.ts b/backend/convex/domains/tasks/index.ts similarity index 100% rename from convex/domains/tasks/index.ts rename to backend/convex/domains/tasks/index.ts diff --git a/convex/domains/tasks/userEvents.ts b/backend/convex/domains/tasks/userEvents.ts similarity index 100% rename from convex/domains/tasks/userEvents.ts rename to backend/convex/domains/tasks/userEvents.ts diff --git a/convex/domains/tasks/work.ts b/backend/convex/domains/tasks/work.ts similarity index 100% rename from convex/domains/tasks/work.ts rename to backend/convex/domains/tasks/work.ts diff --git a/convex/domains/tasks/workflows/bankingMemoWorkflow.ts b/backend/convex/domains/tasks/workflows/bankingMemoWorkflow.ts similarity index 100% rename from convex/domains/tasks/workflows/bankingMemoWorkflow.ts rename to backend/convex/domains/tasks/workflows/bankingMemoWorkflow.ts diff --git a/convex/domains/tasks/workflows/coordinatorWorkflow.ts b/backend/convex/domains/tasks/workflows/coordinatorWorkflow.ts similarity index 100% rename from convex/domains/tasks/workflows/coordinatorWorkflow.ts rename to backend/convex/domains/tasks/workflows/coordinatorWorkflow.ts diff --git a/convex/domains/tasks/workflows/index.ts b/backend/convex/domains/tasks/workflows/index.ts similarity index 100% rename from convex/domains/tasks/workflows/index.ts rename to backend/convex/domains/tasks/workflows/index.ts diff --git a/convex/domains/teachability/index.ts b/backend/convex/domains/teachability/index.ts similarity index 100% rename from convex/domains/teachability/index.ts rename to backend/convex/domains/teachability/index.ts diff --git a/convex/domains/telemetry/disclosureEvents.ts b/backend/convex/domains/telemetry/disclosureEvents.ts similarity index 100% rename from convex/domains/telemetry/disclosureEvents.ts rename to backend/convex/domains/telemetry/disclosureEvents.ts diff --git a/convex/domains/temporal/feynmanEditor.ts b/backend/convex/domains/temporal/feynmanEditor.ts similarity index 100% rename from convex/domains/temporal/feynmanEditor.ts rename to backend/convex/domains/temporal/feynmanEditor.ts diff --git a/convex/domains/temporal/forecastGatePolicy.test.ts b/backend/convex/domains/temporal/forecastGatePolicy.test.ts similarity index 100% rename from convex/domains/temporal/forecastGatePolicy.test.ts rename to backend/convex/domains/temporal/forecastGatePolicy.test.ts diff --git a/convex/domains/temporal/forecastGatePolicy.ts b/backend/convex/domains/temporal/forecastGatePolicy.ts similarity index 100% rename from convex/domains/temporal/forecastGatePolicy.ts rename to backend/convex/domains/temporal/forecastGatePolicy.ts diff --git a/convex/domains/temporal/index.ts b/backend/convex/domains/temporal/index.ts similarity index 100% rename from convex/domains/temporal/index.ts rename to backend/convex/domains/temporal/index.ts diff --git a/convex/domains/temporal/ingestion.ts b/backend/convex/domains/temporal/ingestion.ts similarity index 100% rename from convex/domains/temporal/ingestion.ts rename to backend/convex/domains/temporal/ingestion.ts diff --git a/convex/domains/temporal/ingestionUtils.test.ts b/backend/convex/domains/temporal/ingestionUtils.test.ts similarity index 100% rename from convex/domains/temporal/ingestionUtils.test.ts rename to backend/convex/domains/temporal/ingestionUtils.test.ts diff --git a/convex/domains/temporal/ingestionUtils.ts b/backend/convex/domains/temporal/ingestionUtils.ts similarity index 100% rename from convex/domains/temporal/ingestionUtils.ts rename to backend/convex/domains/temporal/ingestionUtils.ts diff --git a/convex/domains/temporal/langExtract.ts b/backend/convex/domains/temporal/langExtract.ts similarity index 100% rename from convex/domains/temporal/langExtract.ts rename to backend/convex/domains/temporal/langExtract.ts diff --git a/convex/domains/temporal/mutations.ts b/backend/convex/domains/temporal/mutations.ts similarity index 100% rename from convex/domains/temporal/mutations.ts rename to backend/convex/domains/temporal/mutations.ts diff --git a/convex/domains/temporal/queries.ts b/backend/convex/domains/temporal/queries.ts similarity index 100% rename from convex/domains/temporal/queries.ts rename to backend/convex/domains/temporal/queries.ts diff --git a/convex/domains/temporal/schema.ts b/backend/convex/domains/temporal/schema.ts similarity index 100% rename from convex/domains/temporal/schema.ts rename to backend/convex/domains/temporal/schema.ts diff --git a/convex/domains/temporal/specDoc.ts b/backend/convex/domains/temporal/specDoc.ts similarity index 100% rename from convex/domains/temporal/specDoc.ts rename to backend/convex/domains/temporal/specDoc.ts diff --git a/convex/domains/testing/testingFramework.ts b/backend/convex/domains/testing/testingFramework.ts similarity index 100% rename from convex/domains/testing/testingFramework.ts rename to backend/convex/domains/testing/testingFramework.ts diff --git a/convex/domains/trajectory/index.ts b/backend/convex/domains/trajectory/index.ts similarity index 100% rename from convex/domains/trajectory/index.ts rename to backend/convex/domains/trajectory/index.ts diff --git a/convex/domains/trajectory/lib.ts b/backend/convex/domains/trajectory/lib.ts similarity index 100% rename from convex/domains/trajectory/lib.ts rename to backend/convex/domains/trajectory/lib.ts diff --git a/convex/domains/trajectory/mutations.ts b/backend/convex/domains/trajectory/mutations.ts similarity index 100% rename from convex/domains/trajectory/mutations.ts rename to backend/convex/domains/trajectory/mutations.ts diff --git a/convex/domains/trajectory/projection.ts b/backend/convex/domains/trajectory/projection.ts similarity index 100% rename from convex/domains/trajectory/projection.ts rename to backend/convex/domains/trajectory/projection.ts diff --git a/convex/domains/trajectory/queries.ts b/backend/convex/domains/trajectory/queries.ts similarity index 100% rename from convex/domains/trajectory/queries.ts rename to backend/convex/domains/trajectory/queries.ts diff --git a/convex/domains/trajectory/schema.ts b/backend/convex/domains/trajectory/schema.ts similarity index 100% rename from convex/domains/trajectory/schema.ts rename to backend/convex/domains/trajectory/schema.ts diff --git a/convex/domains/utilities/migrations.ts b/backend/convex/domains/utilities/migrations.ts similarity index 100% rename from convex/domains/utilities/migrations.ts rename to backend/convex/domains/utilities/migrations.ts diff --git a/convex/domains/utilities/seedGoldenDataset.ts b/backend/convex/domains/utilities/seedGoldenDataset.ts similarity index 100% rename from convex/domains/utilities/seedGoldenDataset.ts rename to backend/convex/domains/utilities/seedGoldenDataset.ts diff --git a/convex/domains/utilities/snapshotMigrations.ts b/backend/convex/domains/utilities/snapshotMigrations.ts similarity index 100% rename from convex/domains/utilities/snapshotMigrations.ts rename to backend/convex/domains/utilities/snapshotMigrations.ts diff --git a/convex/domains/validation/contradictionDetector.ts b/backend/convex/domains/validation/contradictionDetector.ts similarity index 100% rename from convex/domains/validation/contradictionDetector.ts rename to backend/convex/domains/validation/contradictionDetector.ts diff --git a/convex/domains/validation/index.ts b/backend/convex/domains/validation/index.ts similarity index 100% rename from convex/domains/validation/index.ts rename to backend/convex/domains/validation/index.ts diff --git a/convex/domains/validation/personaValidators.ts b/backend/convex/domains/validation/personaValidators.ts similarity index 100% rename from convex/domains/validation/personaValidators.ts rename to backend/convex/domains/validation/personaValidators.ts diff --git a/convex/domains/validation/selfQuestionAgent.ts b/backend/convex/domains/validation/selfQuestionAgent.ts similarity index 100% rename from convex/domains/validation/selfQuestionAgent.ts rename to backend/convex/domains/validation/selfQuestionAgent.ts diff --git a/convex/domains/verification/calibration.ts b/backend/convex/domains/verification/calibration.ts similarity index 100% rename from convex/domains/verification/calibration.ts rename to backend/convex/domains/verification/calibration.ts diff --git a/convex/domains/verification/claimVerificationAction.ts b/backend/convex/domains/verification/claimVerificationAction.ts similarity index 100% rename from convex/domains/verification/claimVerificationAction.ts rename to backend/convex/domains/verification/claimVerificationAction.ts diff --git a/convex/domains/verification/claimVerificationQueries.ts b/backend/convex/domains/verification/claimVerificationQueries.ts similarity index 100% rename from convex/domains/verification/claimVerificationQueries.ts rename to backend/convex/domains/verification/claimVerificationQueries.ts diff --git a/convex/domains/verification/claimVerifications.ts b/backend/convex/domains/verification/claimVerifications.ts similarity index 100% rename from convex/domains/verification/claimVerifications.ts rename to backend/convex/domains/verification/claimVerifications.ts diff --git a/convex/domains/verification/contradictionDetector.ts b/backend/convex/domains/verification/contradictionDetector.ts similarity index 100% rename from convex/domains/verification/contradictionDetector.ts rename to backend/convex/domains/verification/contradictionDetector.ts diff --git a/convex/domains/verification/contradictionDetectorQueries.ts b/backend/convex/domains/verification/contradictionDetectorQueries.ts similarity index 100% rename from convex/domains/verification/contradictionDetectorQueries.ts rename to backend/convex/domains/verification/contradictionDetectorQueries.ts diff --git a/convex/domains/verification/entailmentChecker.ts b/backend/convex/domains/verification/entailmentChecker.ts similarity index 100% rename from convex/domains/verification/entailmentChecker.ts rename to backend/convex/domains/verification/entailmentChecker.ts diff --git a/convex/domains/verification/facts.ts b/backend/convex/domains/verification/facts.ts similarity index 100% rename from convex/domains/verification/facts.ts rename to backend/convex/domains/verification/facts.ts diff --git a/convex/domains/verification/fastVerification.ts b/backend/convex/domains/verification/fastVerification.ts similarity index 100% rename from convex/domains/verification/fastVerification.ts rename to backend/convex/domains/verification/fastVerification.ts diff --git a/convex/domains/verification/groundTruthRegistry.ts b/backend/convex/domains/verification/groundTruthRegistry.ts similarity index 100% rename from convex/domains/verification/groundTruthRegistry.ts rename to backend/convex/domains/verification/groundTruthRegistry.ts diff --git a/convex/domains/verification/index.ts b/backend/convex/domains/verification/index.ts similarity index 100% rename from convex/domains/verification/index.ts rename to backend/convex/domains/verification/index.ts diff --git a/convex/domains/verification/instagramClaimVerification.ts b/backend/convex/domains/verification/instagramClaimVerification.ts similarity index 100% rename from convex/domains/verification/instagramClaimVerification.ts rename to backend/convex/domains/verification/instagramClaimVerification.ts diff --git a/convex/domains/verification/instagramClaimVerificationMutations.ts b/backend/convex/domains/verification/instagramClaimVerificationMutations.ts similarity index 100% rename from convex/domains/verification/instagramClaimVerificationMutations.ts rename to backend/convex/domains/verification/instagramClaimVerificationMutations.ts diff --git a/convex/domains/verification/integrations/agentVerificationAdapter.ts b/backend/convex/domains/verification/integrations/agentVerificationAdapter.ts similarity index 100% rename from convex/domains/verification/integrations/agentVerificationAdapter.ts rename to backend/convex/domains/verification/integrations/agentVerificationAdapter.ts diff --git a/convex/domains/verification/integrations/artifactVerification.ts b/backend/convex/domains/verification/integrations/artifactVerification.ts similarity index 100% rename from convex/domains/verification/integrations/artifactVerification.ts rename to backend/convex/domains/verification/integrations/artifactVerification.ts diff --git a/convex/domains/verification/integrations/feedVerification.ts b/backend/convex/domains/verification/integrations/feedVerification.ts similarity index 100% rename from convex/domains/verification/integrations/feedVerification.ts rename to backend/convex/domains/verification/integrations/feedVerification.ts diff --git a/convex/domains/verification/integrations/index.ts b/backend/convex/domains/verification/integrations/index.ts similarity index 100% rename from convex/domains/verification/integrations/index.ts rename to backend/convex/domains/verification/integrations/index.ts diff --git a/convex/domains/verification/integrations/linkedinVerification.ts b/backend/convex/domains/verification/integrations/linkedinVerification.ts similarity index 100% rename from convex/domains/verification/integrations/linkedinVerification.ts rename to backend/convex/domains/verification/integrations/linkedinVerification.ts diff --git a/convex/domains/verification/integrations/narrativeVerification.ts b/backend/convex/domains/verification/integrations/narrativeVerification.ts similarity index 100% rename from convex/domains/verification/integrations/narrativeVerification.ts rename to backend/convex/domains/verification/integrations/narrativeVerification.ts diff --git a/convex/domains/verification/multiSourceValidation.ts b/backend/convex/domains/verification/multiSourceValidation.ts similarity index 100% rename from convex/domains/verification/multiSourceValidation.ts rename to backend/convex/domains/verification/multiSourceValidation.ts diff --git a/convex/domains/verification/publicSourceRegistry.ts b/backend/convex/domains/verification/publicSourceRegistry.ts similarity index 100% rename from convex/domains/verification/publicSourceRegistry.ts rename to backend/convex/domains/verification/publicSourceRegistry.ts diff --git a/convex/domains/verification/validation/contradictionDetector.ts b/backend/convex/domains/verification/validation/contradictionDetector.ts similarity index 100% rename from convex/domains/verification/validation/contradictionDetector.ts rename to backend/convex/domains/verification/validation/contradictionDetector.ts diff --git a/convex/domains/verification/validation/index.ts b/backend/convex/domains/verification/validation/index.ts similarity index 100% rename from convex/domains/verification/validation/index.ts rename to backend/convex/domains/verification/validation/index.ts diff --git a/convex/domains/verification/validation/personaValidators.ts b/backend/convex/domains/verification/validation/personaValidators.ts similarity index 100% rename from convex/domains/verification/validation/personaValidators.ts rename to backend/convex/domains/verification/validation/personaValidators.ts diff --git a/convex/domains/verification/validation/selfQuestionAgent.ts b/backend/convex/domains/verification/validation/selfQuestionAgent.ts similarity index 100% rename from convex/domains/verification/validation/selfQuestionAgent.ts rename to backend/convex/domains/verification/validation/selfQuestionAgent.ts diff --git a/convex/domains/verification/verificationAuditTrail.ts b/backend/convex/domains/verification/verificationAuditTrail.ts similarity index 100% rename from convex/domains/verification/verificationAuditTrail.ts rename to backend/convex/domains/verification/verificationAuditTrail.ts diff --git a/convex/domains/verification/verificationWorkflow.ts b/backend/convex/domains/verification/verificationWorkflow.ts similarity index 100% rename from convex/domains/verification/verificationWorkflow.ts rename to backend/convex/domains/verification/verificationWorkflow.ts diff --git a/convex/domains/world/operations.ts b/backend/convex/domains/world/operations.ts similarity index 100% rename from convex/domains/world/operations.ts rename to backend/convex/domains/world/operations.ts diff --git a/convex/domains/world/schema.ts b/backend/convex/domains/world/schema.ts similarity index 100% rename from convex/domains/world/schema.ts rename to backend/convex/domains/world/schema.ts diff --git a/convex/email.ts b/backend/convex/email.ts similarity index 100% rename from convex/email.ts rename to backend/convex/email.ts diff --git a/convex/eventHandoff.ts b/backend/convex/eventHandoff.ts similarity index 100% rename from convex/eventHandoff.ts rename to backend/convex/eventHandoff.ts diff --git a/convex/events.runtime-boundary.test.ts b/backend/convex/events.runtime-boundary.test.ts similarity index 100% rename from convex/events.runtime-boundary.test.ts rename to backend/convex/events.runtime-boundary.test.ts diff --git a/convex/events.ts b/backend/convex/events.ts similarity index 100% rename from convex/events.ts rename to backend/convex/events.ts diff --git a/convex/feed.ts b/backend/convex/feed.ts similarity index 100% rename from convex/feed.ts rename to backend/convex/feed.ts diff --git a/convex/globalResearch/artifacts.ts b/backend/convex/globalResearch/artifacts.ts similarity index 100% rename from convex/globalResearch/artifacts.ts rename to backend/convex/globalResearch/artifacts.ts diff --git a/convex/globalResearch/cacheSimple.ts b/backend/convex/globalResearch/cacheSimple.ts similarity index 100% rename from convex/globalResearch/cacheSimple.ts rename to backend/convex/globalResearch/cacheSimple.ts diff --git a/convex/globalResearch/compaction.ts b/backend/convex/globalResearch/compaction.ts similarity index 100% rename from convex/globalResearch/compaction.ts rename to backend/convex/globalResearch/compaction.ts diff --git a/convex/globalResearch/index.ts b/backend/convex/globalResearch/index.ts similarity index 100% rename from convex/globalResearch/index.ts rename to backend/convex/globalResearch/index.ts diff --git a/convex/globalResearch/locks.ts b/backend/convex/globalResearch/locks.ts similarity index 100% rename from convex/globalResearch/locks.ts rename to backend/convex/globalResearch/locks.ts diff --git a/convex/globalResearch/mentions.ts b/backend/convex/globalResearch/mentions.ts similarity index 100% rename from convex/globalResearch/mentions.ts rename to backend/convex/globalResearch/mentions.ts diff --git a/convex/globalResearch/queries.ts b/backend/convex/globalResearch/queries.ts similarity index 100% rename from convex/globalResearch/queries.ts rename to backend/convex/globalResearch/queries.ts diff --git a/convex/globalResearch/runs.ts b/backend/convex/globalResearch/runs.ts similarity index 100% rename from convex/globalResearch/runs.ts rename to backend/convex/globalResearch/runs.ts diff --git a/convex/http.ts b/backend/convex/http.ts similarity index 100% rename from convex/http.ts rename to backend/convex/http.ts diff --git a/convex/http/mcpMemory.ts b/backend/convex/http/mcpMemory.ts similarity index 100% rename from convex/http/mcpMemory.ts rename to backend/convex/http/mcpMemory.ts diff --git a/convex/http/mcpPlans.ts b/backend/convex/http/mcpPlans.ts similarity index 100% rename from convex/http/mcpPlans.ts rename to backend/convex/http/mcpPlans.ts diff --git a/convex/lib/actionItemsGenerator.ts b/backend/convex/lib/actionItemsGenerator.ts similarity index 100% rename from convex/lib/actionItemsGenerator.ts rename to backend/convex/lib/actionItemsGenerator.ts diff --git a/convex/lib/agentCache.ts b/backend/convex/lib/agentCache.ts similarity index 100% rename from convex/lib/agentCache.ts rename to backend/convex/lib/agentCache.ts diff --git a/convex/lib/artifactModels.ts b/backend/convex/lib/artifactModels.ts similarity index 100% rename from convex/lib/artifactModels.ts rename to backend/convex/lib/artifactModels.ts diff --git a/convex/lib/artifactPersistence.ts b/backend/convex/lib/artifactPersistence.ts similarity index 100% rename from convex/lib/artifactPersistence.ts rename to backend/convex/lib/artifactPersistence.ts diff --git a/convex/lib/artifactQueries.ts b/backend/convex/lib/artifactQueries.ts similarity index 100% rename from convex/lib/artifactQueries.ts rename to backend/convex/lib/artifactQueries.ts diff --git a/convex/lib/artifactValidators.ts b/backend/convex/lib/artifactValidators.ts similarity index 100% rename from convex/lib/artifactValidators.ts rename to backend/convex/lib/artifactValidators.ts diff --git a/convex/lib/crypto.ts b/backend/convex/lib/crypto.ts similarity index 100% rename from convex/lib/crypto.ts rename to backend/convex/lib/crypto.ts diff --git a/convex/lib/dossierGenerator.ts b/backend/convex/lib/dossierGenerator.ts similarity index 100% rename from convex/lib/dossierGenerator.ts rename to backend/convex/lib/dossierGenerator.ts diff --git a/convex/lib/dossierHelpers.ts b/backend/convex/lib/dossierHelpers.ts similarity index 100% rename from convex/lib/dossierHelpers.ts rename to backend/convex/lib/dossierHelpers.ts diff --git a/convex/lib/entityResolution.ts b/backend/convex/lib/entityResolution.ts similarity index 100% rename from convex/lib/entityResolution.ts rename to backend/convex/lib/entityResolution.ts diff --git a/convex/lib/factValidation.ts b/backend/convex/lib/factValidation.ts similarity index 100% rename from convex/lib/factValidation.ts rename to backend/convex/lib/factValidation.ts diff --git a/convex/lib/featureFlags.ts b/backend/convex/lib/featureFlags.ts similarity index 100% rename from convex/lib/featureFlags.ts rename to backend/convex/lib/featureFlags.ts diff --git a/convex/lib/hash.ts b/backend/convex/lib/hash.ts similarity index 100% rename from convex/lib/hash.ts rename to backend/convex/lib/hash.ts diff --git a/convex/lib/index.ts b/backend/convex/lib/index.ts similarity index 100% rename from convex/lib/index.ts rename to backend/convex/lib/index.ts diff --git a/convex/lib/markdown.ts b/backend/convex/lib/markdown.ts similarity index 100% rename from convex/lib/markdown.ts rename to backend/convex/lib/markdown.ts diff --git a/convex/lib/markdownToTipTap.ts b/backend/convex/lib/markdownToTipTap.ts similarity index 100% rename from convex/lib/markdownToTipTap.ts rename to backend/convex/lib/markdownToTipTap.ts diff --git a/convex/lib/mcpTransport.ts b/backend/convex/lib/mcpTransport.ts similarity index 100% rename from convex/lib/mcpTransport.ts rename to backend/convex/lib/mcpTransport.ts diff --git a/convex/lib/memoryLimits.ts b/backend/convex/lib/memoryLimits.ts similarity index 100% rename from convex/lib/memoryLimits.ts rename to backend/convex/lib/memoryLimits.ts diff --git a/convex/lib/memoryQuality.ts b/backend/convex/lib/memoryQuality.ts similarity index 100% rename from convex/lib/memoryQuality.ts rename to backend/convex/lib/memoryQuality.ts diff --git a/convex/lib/parallelDelegation.ts b/backend/convex/lib/parallelDelegation.ts similarity index 100% rename from convex/lib/parallelDelegation.ts rename to backend/convex/lib/parallelDelegation.ts diff --git a/convex/lib/predictivePrefetch.ts b/backend/convex/lib/predictivePrefetch.ts similarity index 100% rename from convex/lib/predictivePrefetch.ts rename to backend/convex/lib/predictivePrefetch.ts diff --git a/convex/lib/streamingDelegation.ts b/backend/convex/lib/streamingDelegation.ts similarity index 100% rename from convex/lib/streamingDelegation.ts rename to backend/convex/lib/streamingDelegation.ts diff --git a/convex/lib/withArtifactPersistence.ts b/backend/convex/lib/withArtifactPersistence.ts similarity index 100% rename from convex/lib/withArtifactPersistence.ts rename to backend/convex/lib/withArtifactPersistence.ts diff --git a/convex/lib/withResourceLinkWrapping.ts b/backend/convex/lib/withResourceLinkWrapping.ts similarity index 100% rename from convex/lib/withResourceLinkWrapping.ts rename to backend/convex/lib/withResourceLinkWrapping.ts diff --git a/convex/lib/xaiClient.ts b/backend/convex/lib/xaiClient.ts similarity index 100% rename from convex/lib/xaiClient.ts rename to backend/convex/lib/xaiClient.ts diff --git a/convex/notes.ts b/backend/convex/notes.ts similarity index 100% rename from convex/notes.ts rename to backend/convex/notes.ts diff --git a/convex/presence.ts b/backend/convex/presence.ts similarity index 100% rename from convex/presence.ts rename to backend/convex/presence.ts diff --git a/convex/prosemirror.ts b/backend/convex/prosemirror.ts similarity index 100% rename from convex/prosemirror.ts rename to backend/convex/prosemirror.ts diff --git a/convex/router.ts b/backend/convex/router.ts similarity index 100% rename from convex/router.ts rename to backend/convex/router.ts diff --git a/convex/schema.ts b/backend/convex/schema.ts similarity index 100% rename from convex/schema.ts rename to backend/convex/schema.ts diff --git a/convex/schema/apiUsage.ts b/backend/convex/schema/apiUsage.ts similarity index 100% rename from convex/schema/apiUsage.ts rename to backend/convex/schema/apiUsage.ts diff --git a/convex/schema/emailSchema.ts b/backend/convex/schema/emailSchema.ts similarity index 100% rename from convex/schema/emailSchema.ts rename to backend/convex/schema/emailSchema.ts diff --git a/convex/schema/eventsSchema.ts b/backend/convex/schema/eventsSchema.ts similarity index 100% rename from convex/schema/eventsSchema.ts rename to backend/convex/schema/eventsSchema.ts diff --git a/convex/schema/searchQuota.ts b/backend/convex/schema/searchQuota.ts similarity index 100% rename from convex/schema/searchQuota.ts rename to backend/convex/schema/searchQuota.ts diff --git a/convex/schema/toolSearchSchema.ts b/backend/convex/schema/toolSearchSchema.ts similarity index 100% rename from convex/schema/toolSearchSchema.ts rename to backend/convex/schema/toolSearchSchema.ts diff --git a/convex/schema/usersSchema.ts b/backend/convex/schema/usersSchema.ts similarity index 100% rename from convex/schema/usersSchema.ts rename to backend/convex/schema/usersSchema.ts diff --git a/convex/scratchnodeHandoff.ts b/backend/convex/scratchnodeHandoff.ts similarity index 100% rename from convex/scratchnodeHandoff.ts rename to backend/convex/scratchnodeHandoff.ts diff --git a/convex/scratchnodeLiveCues.ts b/backend/convex/scratchnodeLiveCues.ts similarity index 100% rename from convex/scratchnodeLiveCues.ts rename to backend/convex/scratchnodeLiveCues.ts diff --git a/convex/scratchnodeRateLimit.ts b/backend/convex/scratchnodeRateLimit.ts similarity index 100% rename from convex/scratchnodeRateLimit.ts rename to backend/convex/scratchnodeRateLimit.ts diff --git a/convex/shared/actionSpan.ts b/backend/convex/shared/actionSpan.ts similarity index 100% rename from convex/shared/actionSpan.ts rename to backend/convex/shared/actionSpan.ts diff --git a/convex/shared/actionSpanReplay.ts b/backend/convex/shared/actionSpanReplay.ts similarity index 100% rename from convex/shared/actionSpanReplay.ts rename to backend/convex/shared/actionSpanReplay.ts diff --git a/convex/shared/actionSpanReplayQueries.ts b/backend/convex/shared/actionSpanReplayQueries.ts similarity index 100% rename from convex/shared/actionSpanReplayQueries.ts rename to backend/convex/shared/actionSpanReplayQueries.ts diff --git a/convex/tags.ts b/backend/convex/tags.ts similarity index 100% rename from convex/tags.ts rename to backend/convex/tags.ts diff --git a/convex/tags_actions.ts b/backend/convex/tags_actions.ts similarity index 100% rename from convex/tags_actions.ts rename to backend/convex/tags_actions.ts diff --git a/convex/tests/fastAgentPanelStreamingTests.ts b/backend/convex/tests/fastAgentPanelStreamingTests.ts similarity index 100% rename from convex/tests/fastAgentPanelStreamingTests.ts rename to backend/convex/tests/fastAgentPanelStreamingTests.ts diff --git a/convex/tests/fusionSearchContractTests.ts b/backend/convex/tests/fusionSearchContractTests.ts similarity index 100% rename from convex/tests/fusionSearchContractTests.ts rename to backend/convex/tests/fusionSearchContractTests.ts diff --git a/convex/tools/__tests__/documentEditingLiveAPI.test.ts b/backend/convex/tools/__tests__/documentEditingLiveAPI.test.ts similarity index 100% rename from convex/tools/__tests__/documentEditingLiveAPI.test.ts rename to backend/convex/tools/__tests__/documentEditingLiveAPI.test.ts diff --git a/convex/tools/__tests__/multiDocumentAnalysis.test.ts b/backend/convex/tools/__tests__/multiDocumentAnalysis.test.ts similarity index 100% rename from convex/tools/__tests__/multiDocumentAnalysis.test.ts rename to backend/convex/tools/__tests__/multiDocumentAnalysis.test.ts diff --git a/convex/tools/__tests__/secFilingTools.test.ts b/backend/convex/tools/__tests__/secFilingTools.test.ts similarity index 100% rename from convex/tools/__tests__/secFilingTools.test.ts rename to backend/convex/tools/__tests__/secFilingTools.test.ts diff --git a/convex/tools/__tests__/spreadsheetOperationSync.test.ts b/backend/convex/tools/__tests__/spreadsheetOperationSync.test.ts similarity index 100% rename from convex/tools/__tests__/spreadsheetOperationSync.test.ts rename to backend/convex/tools/__tests__/spreadsheetOperationSync.test.ts diff --git a/convex/tools/__tests__/youtubeSearch.test.ts b/backend/convex/tools/__tests__/youtubeSearch.test.ts similarity index 100% rename from convex/tools/__tests__/youtubeSearch.test.ts rename to backend/convex/tools/__tests__/youtubeSearch.test.ts diff --git a/convex/tools/arbitrage/analyzeWithArbitrage.ts b/backend/convex/tools/arbitrage/analyzeWithArbitrage.ts similarity index 100% rename from convex/tools/arbitrage/analyzeWithArbitrage.ts rename to backend/convex/tools/arbitrage/analyzeWithArbitrage.ts diff --git a/convex/tools/arbitrage/index.ts b/backend/convex/tools/arbitrage/index.ts similarity index 100% rename from convex/tools/arbitrage/index.ts rename to backend/convex/tools/arbitrage/index.ts diff --git a/convex/tools/calendar/calendarCrudTools.ts b/backend/convex/tools/calendar/calendarCrudTools.ts similarity index 100% rename from convex/tools/calendar/calendarCrudTools.ts rename to backend/convex/tools/calendar/calendarCrudTools.ts diff --git a/convex/tools/calendar/confirmEventSelection.ts b/backend/convex/tools/calendar/confirmEventSelection.ts similarity index 100% rename from convex/tools/calendar/confirmEventSelection.ts rename to backend/convex/tools/calendar/confirmEventSelection.ts diff --git a/convex/tools/calendar/emailEventExtractor.ts b/backend/convex/tools/calendar/emailEventExtractor.ts similarity index 100% rename from convex/tools/calendar/emailEventExtractor.ts rename to backend/convex/tools/calendar/emailEventExtractor.ts diff --git a/convex/tools/calendar/recentEventSearch.ts b/backend/convex/tools/calendar/recentEventSearch.ts similarity index 100% rename from convex/tools/calendar/recentEventSearch.ts rename to backend/convex/tools/calendar/recentEventSearch.ts diff --git a/convex/tools/calendarIcs.ts b/backend/convex/tools/calendarIcs.ts similarity index 100% rename from convex/tools/calendarIcs.ts rename to backend/convex/tools/calendarIcs.ts diff --git a/convex/tools/calendarIcsMutations.ts b/backend/convex/tools/calendarIcsMutations.ts similarity index 100% rename from convex/tools/calendarIcsMutations.ts rename to backend/convex/tools/calendarIcsMutations.ts diff --git a/convex/tools/context/nodebenchContextTools.ts b/backend/convex/tools/context/nodebenchContextTools.ts similarity index 100% rename from convex/tools/context/nodebenchContextTools.ts rename to backend/convex/tools/context/nodebenchContextTools.ts diff --git a/convex/tools/context/resourceLinks.ts b/backend/convex/tools/context/resourceLinks.ts similarity index 100% rename from convex/tools/context/resourceLinks.ts rename to backend/convex/tools/context/resourceLinks.ts diff --git a/convex/tools/context/retrieveArtifact.ts b/backend/convex/tools/context/retrieveArtifact.ts similarity index 100% rename from convex/tools/context/retrieveArtifact.ts rename to backend/convex/tools/context/retrieveArtifact.ts diff --git a/convex/tools/document/contextTools.ts b/backend/convex/tools/document/contextTools.ts similarity index 100% rename from convex/tools/document/contextTools.ts rename to backend/convex/tools/document/contextTools.ts diff --git a/convex/tools/document/deepAgentEditTools.ts b/backend/convex/tools/document/deepAgentEditTools.ts similarity index 100% rename from convex/tools/document/deepAgentEditTools.ts rename to backend/convex/tools/document/deepAgentEditTools.ts diff --git a/convex/tools/document/documentEditingLiveTest.ts b/backend/convex/tools/document/documentEditingLiveTest.ts similarity index 100% rename from convex/tools/document/documentEditingLiveTest.ts rename to backend/convex/tools/document/documentEditingLiveTest.ts diff --git a/convex/tools/document/documentTools.ts b/backend/convex/tools/document/documentTools.ts similarity index 100% rename from convex/tools/document/documentTools.ts rename to backend/convex/tools/document/documentTools.ts diff --git a/convex/tools/document/geminiFileSearch.ts b/backend/convex/tools/document/geminiFileSearch.ts similarity index 100% rename from convex/tools/document/geminiFileSearch.ts rename to backend/convex/tools/document/geminiFileSearch.ts diff --git a/convex/tools/document/hashtagSearchTools.ts b/backend/convex/tools/document/hashtagSearchTools.ts similarity index 100% rename from convex/tools/document/hashtagSearchTools.ts rename to backend/convex/tools/document/hashtagSearchTools.ts diff --git a/convex/tools/dossier/dossierCrudTools.ts b/backend/convex/tools/dossier/dossierCrudTools.ts similarity index 100% rename from convex/tools/dossier/dossierCrudTools.ts rename to backend/convex/tools/dossier/dossierCrudTools.ts diff --git a/convex/tools/editDocument.ts b/backend/convex/tools/editDocument.ts similarity index 100% rename from convex/tools/editDocument.ts rename to backend/convex/tools/editDocument.ts diff --git a/convex/tools/editDocumentMutations.ts b/backend/convex/tools/editDocumentMutations.ts similarity index 100% rename from convex/tools/editDocumentMutations.ts rename to backend/convex/tools/editDocumentMutations.ts diff --git a/convex/tools/editSpreadsheet.ts b/backend/convex/tools/editSpreadsheet.ts similarity index 100% rename from convex/tools/editSpreadsheet.ts rename to backend/convex/tools/editSpreadsheet.ts diff --git a/convex/tools/editSpreadsheetMutations.ts b/backend/convex/tools/editSpreadsheetMutations.ts similarity index 100% rename from convex/tools/editSpreadsheetMutations.ts rename to backend/convex/tools/editSpreadsheetMutations.ts diff --git a/convex/tools/email/emailIntelligenceParser.ts b/backend/convex/tools/email/emailIntelligenceParser.ts similarity index 100% rename from convex/tools/email/emailIntelligenceParser.ts rename to backend/convex/tools/email/emailIntelligenceParser.ts diff --git a/convex/tools/evaluation/comprehensiveTest.ts b/backend/convex/tools/evaluation/comprehensiveTest.ts similarity index 100% rename from convex/tools/evaluation/comprehensiveTest.ts rename to backend/convex/tools/evaluation/comprehensiveTest.ts diff --git a/convex/tools/evaluation/evaluator.ts b/backend/convex/tools/evaluation/evaluator.ts similarity index 100% rename from convex/tools/evaluation/evaluator.ts rename to backend/convex/tools/evaluation/evaluator.ts diff --git a/convex/tools/evaluation/groundTruthLookup.ts b/backend/convex/tools/evaluation/groundTruthLookup.ts similarity index 100% rename from convex/tools/evaluation/groundTruthLookup.ts rename to backend/convex/tools/evaluation/groundTruthLookup.ts diff --git a/convex/tools/evaluation/groundTruthLookupTool.ts b/backend/convex/tools/evaluation/groundTruthLookupTool.ts similarity index 100% rename from convex/tools/evaluation/groundTruthLookupTool.ts rename to backend/convex/tools/evaluation/groundTruthLookupTool.ts diff --git a/convex/tools/evaluation/helpers.ts b/backend/convex/tools/evaluation/helpers.ts similarity index 100% rename from convex/tools/evaluation/helpers.ts rename to backend/convex/tools/evaluation/helpers.ts diff --git a/convex/tools/evaluation/multiSdkLiveValidation.ts b/backend/convex/tools/evaluation/multiSdkLiveValidation.ts similarity index 100% rename from convex/tools/evaluation/multiSdkLiveValidation.ts rename to backend/convex/tools/evaluation/multiSdkLiveValidation.ts diff --git a/convex/tools/evaluation/openDatasetEval.ts b/backend/convex/tools/evaluation/openDatasetEval.ts similarity index 100% rename from convex/tools/evaluation/openDatasetEval.ts rename to backend/convex/tools/evaluation/openDatasetEval.ts diff --git a/convex/tools/evaluation/quickTest.ts b/backend/convex/tools/evaluation/quickTest.ts similarity index 100% rename from convex/tools/evaluation/quickTest.ts rename to backend/convex/tools/evaluation/quickTest.ts diff --git a/convex/tools/evaluation/testCases.ts b/backend/convex/tools/evaluation/testCases.ts similarity index 100% rename from convex/tools/evaluation/testCases.ts rename to backend/convex/tools/evaluation/testCases.ts diff --git a/convex/tools/evaluation/testOptimizations.ts b/backend/convex/tools/evaluation/testOptimizations.ts similarity index 100% rename from convex/tools/evaluation/testOptimizations.ts rename to backend/convex/tools/evaluation/testOptimizations.ts diff --git a/convex/tools/evaluation/testPersonas.ts b/backend/convex/tools/evaluation/testPersonas.ts similarity index 100% rename from convex/tools/evaluation/testPersonas.ts rename to backend/convex/tools/evaluation/testPersonas.ts diff --git a/convex/tools/financial/README.md b/backend/convex/tools/financial/README.md similarity index 100% rename from convex/tools/financial/README.md rename to backend/convex/tools/financial/README.md diff --git a/convex/tools/financial/enhancedFundingTools.ts b/backend/convex/tools/financial/enhancedFundingTools.ts similarity index 100% rename from convex/tools/financial/enhancedFundingTools.ts rename to backend/convex/tools/financial/enhancedFundingTools.ts diff --git a/convex/tools/financial/fundingDetectionTools.ts b/backend/convex/tools/financial/fundingDetectionTools.ts similarity index 100% rename from convex/tools/financial/fundingDetectionTools.ts rename to backend/convex/tools/financial/fundingDetectionTools.ts diff --git a/convex/tools/financial/fundingResearchTools.ts b/backend/convex/tools/financial/fundingResearchTools.ts similarity index 100% rename from convex/tools/financial/fundingResearchTools.ts rename to backend/convex/tools/financial/fundingResearchTools.ts diff --git a/convex/tools/integration/channelContextTools.ts b/backend/convex/tools/integration/channelContextTools.ts similarity index 100% rename from convex/tools/integration/channelContextTools.ts rename to backend/convex/tools/integration/channelContextTools.ts diff --git a/convex/tools/integration/confirmCompanySelection.ts b/backend/convex/tools/integration/confirmCompanySelection.ts similarity index 100% rename from convex/tools/integration/confirmCompanySelection.ts rename to backend/convex/tools/integration/confirmCompanySelection.ts diff --git a/convex/tools/integration/confirmNewsSelection.ts b/backend/convex/tools/integration/confirmNewsSelection.ts similarity index 100% rename from convex/tools/integration/confirmNewsSelection.ts rename to backend/convex/tools/integration/confirmNewsSelection.ts diff --git a/convex/tools/integration/confirmPersonSelection.ts b/backend/convex/tools/integration/confirmPersonSelection.ts similarity index 100% rename from convex/tools/integration/confirmPersonSelection.ts rename to backend/convex/tools/integration/confirmPersonSelection.ts diff --git a/convex/tools/integration/dataAccessTools.ts b/backend/convex/tools/integration/dataAccessTools.ts similarity index 100% rename from convex/tools/integration/dataAccessTools.ts rename to backend/convex/tools/integration/dataAccessTools.ts diff --git a/convex/tools/integration/digestTools.ts b/backend/convex/tools/integration/digestTools.ts similarity index 100% rename from convex/tools/integration/digestTools.ts rename to backend/convex/tools/integration/digestTools.ts diff --git a/convex/tools/integration/humanInputTools.ts b/backend/convex/tools/integration/humanInputTools.ts similarity index 100% rename from convex/tools/integration/humanInputTools.ts rename to backend/convex/tools/integration/humanInputTools.ts diff --git a/convex/tools/integration/newsletterTools.ts b/backend/convex/tools/integration/newsletterTools.ts similarity index 100% rename from convex/tools/integration/newsletterTools.ts rename to backend/convex/tools/integration/newsletterTools.ts diff --git a/convex/tools/integration/notificationTools.ts b/backend/convex/tools/integration/notificationTools.ts similarity index 100% rename from convex/tools/integration/notificationTools.ts rename to backend/convex/tools/integration/notificationTools.ts diff --git a/convex/tools/integration/orchestrationTools.ts b/backend/convex/tools/integration/orchestrationTools.ts similarity index 100% rename from convex/tools/integration/orchestrationTools.ts rename to backend/convex/tools/integration/orchestrationTools.ts diff --git a/convex/tools/integration/peopleProfileSearch.ts b/backend/convex/tools/integration/peopleProfileSearch.ts similarity index 100% rename from convex/tools/integration/peopleProfileSearch.ts rename to backend/convex/tools/integration/peopleProfileSearch.ts diff --git a/convex/tools/knowledge/clusteringTools.ts b/backend/convex/tools/knowledge/clusteringTools.ts similarity index 100% rename from convex/tools/knowledge/clusteringTools.ts rename to backend/convex/tools/knowledge/clusteringTools.ts diff --git a/convex/tools/knowledge/distiller.ts b/backend/convex/tools/knowledge/distiller.ts similarity index 100% rename from convex/tools/knowledge/distiller.ts rename to backend/convex/tools/knowledge/distiller.ts diff --git a/convex/tools/knowledge/distillerPrompts.ts b/backend/convex/tools/knowledge/distillerPrompts.ts similarity index 100% rename from convex/tools/knowledge/distillerPrompts.ts rename to backend/convex/tools/knowledge/distillerPrompts.ts diff --git a/convex/tools/knowledge/entityInsightTools.ts b/backend/convex/tools/knowledge/entityInsightTools.ts similarity index 100% rename from convex/tools/knowledge/entityInsightTools.ts rename to backend/convex/tools/knowledge/entityInsightTools.ts diff --git a/convex/tools/knowledge/evidenceTools.ts b/backend/convex/tools/knowledge/evidenceTools.ts similarity index 100% rename from convex/tools/knowledge/evidenceTools.ts rename to backend/convex/tools/knowledge/evidenceTools.ts diff --git a/convex/tools/knowledge/knowledgeGraphTools.ts b/backend/convex/tools/knowledge/knowledgeGraphTools.ts similarity index 100% rename from convex/tools/knowledge/knowledgeGraphTools.ts rename to backend/convex/tools/knowledge/knowledgeGraphTools.ts diff --git a/convex/tools/knowledge/unifiedMemoryTools.ts b/backend/convex/tools/knowledge/unifiedMemoryTools.ts similarity index 100% rename from convex/tools/knowledge/unifiedMemoryTools.ts rename to backend/convex/tools/knowledge/unifiedMemoryTools.ts diff --git a/convex/tools/media/adversarialValidation.ts b/backend/convex/tools/media/adversarialValidation.ts similarity index 100% rename from convex/tools/media/adversarialValidation.ts rename to backend/convex/tools/media/adversarialValidation.ts diff --git a/convex/tools/media/diagnosticTest.ts b/backend/convex/tools/media/diagnosticTest.ts similarity index 100% rename from convex/tools/media/diagnosticTest.ts rename to backend/convex/tools/media/diagnosticTest.ts diff --git a/convex/tools/media/entityExtractionTools.ts b/backend/convex/tools/media/entityExtractionTools.ts similarity index 100% rename from convex/tools/media/entityExtractionTools.ts rename to backend/convex/tools/media/entityExtractionTools.ts diff --git a/convex/tools/media/linkupFetch.ts b/backend/convex/tools/media/linkupFetch.ts similarity index 100% rename from convex/tools/media/linkupFetch.ts rename to backend/convex/tools/media/linkupFetch.ts diff --git a/convex/tools/media/linkupSearch.ts b/backend/convex/tools/media/linkupSearch.ts similarity index 100% rename from convex/tools/media/linkupSearch.ts rename to backend/convex/tools/media/linkupSearch.ts diff --git a/convex/tools/media/linkupStructuredSearch.ts b/backend/convex/tools/media/linkupStructuredSearch.ts similarity index 100% rename from convex/tools/media/linkupStructuredSearch.ts rename to backend/convex/tools/media/linkupStructuredSearch.ts diff --git a/convex/tools/media/llmEntityLinker.ts b/backend/convex/tools/media/llmEntityLinker.ts similarity index 100% rename from convex/tools/media/llmEntityLinker.ts rename to backend/convex/tools/media/llmEntityLinker.ts diff --git a/convex/tools/media/mediaTools.ts b/backend/convex/tools/media/mediaTools.ts similarity index 100% rename from convex/tools/media/mediaTools.ts rename to backend/convex/tools/media/mediaTools.ts diff --git a/convex/tools/media/recentNewsSearch.ts b/backend/convex/tools/media/recentNewsSearch.ts similarity index 100% rename from convex/tools/media/recentNewsSearch.ts rename to backend/convex/tools/media/recentNewsSearch.ts diff --git a/convex/tools/media/testImageTools.ts b/backend/convex/tools/media/testImageTools.ts similarity index 100% rename from convex/tools/media/testImageTools.ts rename to backend/convex/tools/media/testImageTools.ts diff --git a/convex/tools/media/validationTest.ts b/backend/convex/tools/media/validationTest.ts similarity index 100% rename from convex/tools/media/validationTest.ts rename to backend/convex/tools/media/validationTest.ts diff --git a/convex/tools/media/youtubeSearch.ts b/backend/convex/tools/media/youtubeSearch.ts similarity index 100% rename from convex/tools/media/youtubeSearch.ts rename to backend/convex/tools/media/youtubeSearch.ts diff --git a/convex/tools/meta/actionDraftMutations.ts b/backend/convex/tools/meta/actionDraftMutations.ts similarity index 100% rename from convex/tools/meta/actionDraftMutations.ts rename to backend/convex/tools/meta/actionDraftMutations.ts diff --git a/convex/tools/meta/contextEnhancement.ts b/backend/convex/tools/meta/contextEnhancement.ts similarity index 100% rename from convex/tools/meta/contextEnhancement.ts rename to backend/convex/tools/meta/contextEnhancement.ts diff --git a/convex/tools/meta/contextEnhancementActions.ts b/backend/convex/tools/meta/contextEnhancementActions.ts similarity index 100% rename from convex/tools/meta/contextEnhancementActions.ts rename to backend/convex/tools/meta/contextEnhancementActions.ts diff --git a/convex/tools/meta/dynamicPromptEnhancer.ts b/backend/convex/tools/meta/dynamicPromptEnhancer.ts similarity index 100% rename from convex/tools/meta/dynamicPromptEnhancer.ts rename to backend/convex/tools/meta/dynamicPromptEnhancer.ts diff --git a/convex/tools/meta/hybridSearch.ts b/backend/convex/tools/meta/hybridSearch.ts similarity index 100% rename from convex/tools/meta/hybridSearch.ts rename to backend/convex/tools/meta/hybridSearch.ts diff --git a/convex/tools/meta/hybridSearchQueries.ts b/backend/convex/tools/meta/hybridSearchQueries.ts similarity index 100% rename from convex/tools/meta/hybridSearchQueries.ts rename to backend/convex/tools/meta/hybridSearchQueries.ts diff --git a/convex/tools/meta/hybridSearchTest.ts b/backend/convex/tools/meta/hybridSearchTest.ts similarity index 100% rename from convex/tools/meta/hybridSearchTest.ts rename to backend/convex/tools/meta/hybridSearchTest.ts diff --git a/convex/tools/meta/index.ts b/backend/convex/tools/meta/index.ts similarity index 100% rename from convex/tools/meta/index.ts rename to backend/convex/tools/meta/index.ts diff --git a/convex/tools/meta/promptEnhancementFeedback.ts b/backend/convex/tools/meta/promptEnhancementFeedback.ts similarity index 100% rename from convex/tools/meta/promptEnhancementFeedback.ts rename to backend/convex/tools/meta/promptEnhancementFeedback.ts diff --git a/convex/tools/meta/seedSkillRegistry.ts b/backend/convex/tools/meta/seedSkillRegistry.ts similarity index 100% rename from convex/tools/meta/seedSkillRegistry.ts rename to backend/convex/tools/meta/seedSkillRegistry.ts diff --git a/convex/tools/meta/seedSkillRegistryQueries.ts b/backend/convex/tools/meta/seedSkillRegistryQueries.ts similarity index 100% rename from convex/tools/meta/seedSkillRegistryQueries.ts rename to backend/convex/tools/meta/seedSkillRegistryQueries.ts diff --git a/convex/tools/meta/seedToolRegistry.ts b/backend/convex/tools/meta/seedToolRegistry.ts similarity index 100% rename from convex/tools/meta/seedToolRegistry.ts rename to backend/convex/tools/meta/seedToolRegistry.ts diff --git a/convex/tools/meta/seedToolRegistryQueries.ts b/backend/convex/tools/meta/seedToolRegistryQueries.ts similarity index 100% rename from convex/tools/meta/seedToolRegistryQueries.ts rename to backend/convex/tools/meta/seedToolRegistryQueries.ts diff --git a/convex/tools/meta/skillDiscovery.ts b/backend/convex/tools/meta/skillDiscovery.ts similarity index 100% rename from convex/tools/meta/skillDiscovery.ts rename to backend/convex/tools/meta/skillDiscovery.ts diff --git a/convex/tools/meta/skillDiscoveryQueries.ts b/backend/convex/tools/meta/skillDiscoveryQueries.ts similarity index 100% rename from convex/tools/meta/skillDiscoveryQueries.ts rename to backend/convex/tools/meta/skillDiscoveryQueries.ts diff --git a/convex/tools/meta/toolDiscovery.ts b/backend/convex/tools/meta/toolDiscovery.ts similarity index 100% rename from convex/tools/meta/toolDiscovery.ts rename to backend/convex/tools/meta/toolDiscovery.ts diff --git a/convex/tools/meta/toolDiscoveryV2.ts b/backend/convex/tools/meta/toolDiscoveryV2.ts similarity index 100% rename from convex/tools/meta/toolDiscoveryV2.ts rename to backend/convex/tools/meta/toolDiscoveryV2.ts diff --git a/convex/tools/meta/toolGateway.ts b/backend/convex/tools/meta/toolGateway.ts similarity index 100% rename from convex/tools/meta/toolGateway.ts rename to backend/convex/tools/meta/toolGateway.ts diff --git a/convex/tools/meta/toolRegistry.ts b/backend/convex/tools/meta/toolRegistry.ts similarity index 100% rename from convex/tools/meta/toolRegistry.ts rename to backend/convex/tools/meta/toolRegistry.ts diff --git a/convex/tools/reports/pdfGenerationTools.ts b/backend/convex/tools/reports/pdfGenerationTools.ts similarity index 100% rename from convex/tools/reports/pdfGenerationTools.ts rename to backend/convex/tools/reports/pdfGenerationTools.ts diff --git a/convex/tools/research/researchTools.ts b/backend/convex/tools/research/researchTools.ts similarity index 100% rename from convex/tools/research/researchTools.ts rename to backend/convex/tools/research/researchTools.ts diff --git a/convex/tools/search/fusionSearchTool.ts b/backend/convex/tools/search/fusionSearchTool.ts similarity index 100% rename from convex/tools/search/fusionSearchTool.ts rename to backend/convex/tools/search/fusionSearchTool.ts diff --git a/convex/tools/search/index.ts b/backend/convex/tools/search/index.ts similarity index 100% rename from convex/tools/search/index.ts rename to backend/convex/tools/search/index.ts diff --git a/convex/tools/sec/secCompanySearch.ts b/backend/convex/tools/sec/secCompanySearch.ts similarity index 100% rename from convex/tools/sec/secCompanySearch.ts rename to backend/convex/tools/sec/secCompanySearch.ts diff --git a/convex/tools/sec/secFilingTools.ts b/backend/convex/tools/sec/secFilingTools.ts similarity index 100% rename from convex/tools/sec/secFilingTools.ts rename to backend/convex/tools/sec/secFilingTools.ts diff --git a/convex/tools/security/promptInjectionProtection.ts b/backend/convex/tools/security/promptInjectionProtection.ts similarity index 100% rename from convex/tools/security/promptInjectionProtection.ts rename to backend/convex/tools/security/promptInjectionProtection.ts diff --git a/convex/tools/sendEmail.ts b/backend/convex/tools/sendEmail.ts similarity index 100% rename from convex/tools/sendEmail.ts rename to backend/convex/tools/sendEmail.ts diff --git a/convex/tools/sendEmailMutations.ts b/backend/convex/tools/sendEmailMutations.ts similarity index 100% rename from convex/tools/sendEmailMutations.ts rename to backend/convex/tools/sendEmailMutations.ts diff --git a/convex/tools/sendNotification.ts b/backend/convex/tools/sendNotification.ts similarity index 100% rename from convex/tools/sendNotification.ts rename to backend/convex/tools/sendNotification.ts diff --git a/convex/tools/sendSms.ts b/backend/convex/tools/sendSms.ts similarity index 100% rename from convex/tools/sendSms.ts rename to backend/convex/tools/sendSms.ts diff --git a/convex/tools/shared/structuredOutput.ts b/backend/convex/tools/shared/structuredOutput.ts similarity index 100% rename from convex/tools/shared/structuredOutput.ts rename to backend/convex/tools/shared/structuredOutput.ts diff --git a/convex/tools/social/instagramTools.ts b/backend/convex/tools/social/instagramTools.ts similarity index 100% rename from convex/tools/social/instagramTools.ts rename to backend/convex/tools/social/instagramTools.ts diff --git a/convex/tools/social/linkedinTools.ts b/backend/convex/tools/social/linkedinTools.ts similarity index 100% rename from convex/tools/social/linkedinTools.ts rename to backend/convex/tools/social/linkedinTools.ts diff --git a/convex/tools/spreadsheet/FAST_AGENT_SCENARIOS.md b/backend/convex/tools/spreadsheet/FAST_AGENT_SCENARIOS.md similarity index 100% rename from convex/tools/spreadsheet/FAST_AGENT_SCENARIOS.md rename to backend/convex/tools/spreadsheet/FAST_AGENT_SCENARIOS.md diff --git a/convex/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md b/backend/convex/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md similarity index 100% rename from convex/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md rename to backend/convex/tools/spreadsheet/LLM_JUDGE_PROTOCOL.md diff --git a/convex/tools/spreadsheet/README.md b/backend/convex/tools/spreadsheet/README.md similarity index 100% rename from convex/tools/spreadsheet/README.md rename to backend/convex/tools/spreadsheet/README.md diff --git a/convex/tools/spreadsheet/TEST_SCENARIOS.md b/backend/convex/tools/spreadsheet/TEST_SCENARIOS.md similarity index 100% rename from convex/tools/spreadsheet/TEST_SCENARIOS.md rename to backend/convex/tools/spreadsheet/TEST_SCENARIOS.md diff --git a/convex/tools/spreadsheet/spreadsheetCrudTools.ts b/backend/convex/tools/spreadsheet/spreadsheetCrudTools.ts similarity index 100% rename from convex/tools/spreadsheet/spreadsheetCrudTools.ts rename to backend/convex/tools/spreadsheet/spreadsheetCrudTools.ts diff --git a/convex/tools/spreadsheetOperationTypes.ts b/backend/convex/tools/spreadsheetOperationTypes.ts similarity index 100% rename from convex/tools/spreadsheetOperationTypes.ts rename to backend/convex/tools/spreadsheetOperationTypes.ts diff --git a/convex/tools/teachability/index.ts b/backend/convex/tools/teachability/index.ts similarity index 100% rename from convex/tools/teachability/index.ts rename to backend/convex/tools/teachability/index.ts diff --git a/convex/tools/teachability/learnUserSkill.ts b/backend/convex/tools/teachability/learnUserSkill.ts similarity index 100% rename from convex/tools/teachability/learnUserSkill.ts rename to backend/convex/tools/teachability/learnUserSkill.ts diff --git a/convex/tools/teachability/teachingAnalyzer.ts b/backend/convex/tools/teachability/teachingAnalyzer.ts similarity index 100% rename from convex/tools/teachability/teachingAnalyzer.ts rename to backend/convex/tools/teachability/teachingAnalyzer.ts diff --git a/convex/tools/teachability/userMemoryQueries.ts b/backend/convex/tools/teachability/userMemoryQueries.ts similarity index 100% rename from convex/tools/teachability/userMemoryQueries.ts rename to backend/convex/tools/teachability/userMemoryQueries.ts diff --git a/convex/tools/teachability/userMemoryTools.ts b/backend/convex/tools/teachability/userMemoryTools.ts similarity index 100% rename from convex/tools/teachability/userMemoryTools.ts rename to backend/convex/tools/teachability/userMemoryTools.ts diff --git a/convex/tools/wrappers/README.md b/backend/convex/tools/wrappers/README.md similarity index 100% rename from convex/tools/wrappers/README.md rename to backend/convex/tools/wrappers/README.md diff --git a/convex/tools/wrappers/coreAgentTools.ts b/backend/convex/tools/wrappers/coreAgentTools.ts similarity index 100% rename from convex/tools/wrappers/coreAgentTools.ts rename to backend/convex/tools/wrappers/coreAgentTools.ts diff --git a/convex/tools/wrappers/evidenceTools.ts b/backend/convex/tools/wrappers/evidenceTools.ts similarity index 100% rename from convex/tools/wrappers/evidenceTools.ts rename to backend/convex/tools/wrappers/evidenceTools.ts diff --git a/convex/tools/wrappers/resourceLinkTools.ts b/backend/convex/tools/wrappers/resourceLinkTools.ts similarity index 100% rename from convex/tools/wrappers/resourceLinkTools.ts rename to backend/convex/tools/wrappers/resourceLinkTools.ts diff --git a/convex/tsconfig.json b/backend/convex/tsconfig.json similarity index 100% rename from convex/tsconfig.json rename to backend/convex/tsconfig.json diff --git a/convex/users.ts b/backend/convex/users.ts similarity index 100% rename from convex/users.ts rename to backend/convex/users.ts diff --git a/convex/wall.ts b/backend/convex/wall.ts similarity index 100% rename from convex/wall.ts rename to backend/convex/wall.ts diff --git a/convex/workflows/agentProjectIdeaPost.ts b/backend/convex/workflows/agentProjectIdeaPost.ts similarity index 100% rename from convex/workflows/agentProjectIdeaPost.ts rename to backend/convex/workflows/agentProjectIdeaPost.ts diff --git a/convex/workflows/ainewsBriefFormat.test.ts b/backend/convex/workflows/ainewsBriefFormat.test.ts similarity index 100% rename from convex/workflows/ainewsBriefFormat.test.ts rename to backend/convex/workflows/ainewsBriefFormat.test.ts diff --git a/convex/workflows/ainewsBriefFormat.ts b/backend/convex/workflows/ainewsBriefFormat.ts similarity index 100% rename from convex/workflows/ainewsBriefFormat.ts rename to backend/convex/workflows/ainewsBriefFormat.ts diff --git a/convex/workflows/dailyLinkedInPost.ts b/backend/convex/workflows/dailyLinkedInPost.ts similarity index 100% rename from convex/workflows/dailyLinkedInPost.ts rename to backend/convex/workflows/dailyLinkedInPost.ts diff --git a/convex/workflows/dailyLinkedInPostMutations.ts b/backend/convex/workflows/dailyLinkedInPostMutations.ts similarity index 100% rename from convex/workflows/dailyLinkedInPostMutations.ts rename to backend/convex/workflows/dailyLinkedInPostMutations.ts diff --git a/convex/workflows/dailyMorningBrief.ts b/backend/convex/workflows/dailyMorningBrief.ts similarity index 100% rename from convex/workflows/dailyMorningBrief.ts rename to backend/convex/workflows/dailyMorningBrief.ts diff --git a/convex/workflows/deepTrace.ts b/backend/convex/workflows/deepTrace.ts similarity index 100% rename from convex/workflows/deepTrace.ts rename to backend/convex/workflows/deepTrace.ts diff --git a/convex/workflows/emailResearchOrchestrator.ts b/backend/convex/workflows/emailResearchOrchestrator.ts similarity index 100% rename from convex/workflows/emailResearchOrchestrator.ts rename to backend/convex/workflows/emailResearchOrchestrator.ts diff --git a/convex/workflows/endToEndQa.ts b/backend/convex/workflows/endToEndQa.ts similarity index 100% rename from convex/workflows/endToEndQa.ts rename to backend/convex/workflows/endToEndQa.ts diff --git a/convex/workflows/enhancedMorningBrief.ts b/backend/convex/workflows/enhancedMorningBrief.ts similarity index 100% rename from convex/workflows/enhancedMorningBrief.ts rename to backend/convex/workflows/enhancedMorningBrief.ts diff --git a/convex/workflows/enhancedWeeklySummary.ts b/backend/convex/workflows/enhancedWeeklySummary.ts similarity index 100% rename from convex/workflows/enhancedWeeklySummary.ts rename to backend/convex/workflows/enhancedWeeklySummary.ts diff --git a/convex/workflows/founderPostGenerator.ts b/backend/convex/workflows/founderPostGenerator.ts similarity index 100% rename from convex/workflows/founderPostGenerator.ts rename to backend/convex/workflows/founderPostGenerator.ts diff --git a/convex/workflows/index.ts b/backend/convex/workflows/index.ts similarity index 100% rename from convex/workflows/index.ts rename to backend/convex/workflows/index.ts diff --git a/convex/workflows/linkedinTrigger.ts b/backend/convex/workflows/linkedinTrigger.ts similarity index 100% rename from convex/workflows/linkedinTrigger.ts rename to backend/convex/workflows/linkedinTrigger.ts diff --git a/convex/workflows/prdComposerWorkflow.ts b/backend/convex/workflows/prdComposerWorkflow.ts similarity index 100% rename from convex/workflows/prdComposerWorkflow.ts rename to backend/convex/workflows/prdComposerWorkflow.ts diff --git a/convex/workflows/scheduledPDFReports.ts b/backend/convex/workflows/scheduledPDFReports.ts similarity index 100% rename from convex/workflows/scheduledPDFReports.ts rename to backend/convex/workflows/scheduledPDFReports.ts diff --git a/convex/workflows/scheduledPDFReportsMutations.ts b/backend/convex/workflows/scheduledPDFReportsMutations.ts similarity index 100% rename from convex/workflows/scheduledPDFReportsMutations.ts rename to backend/convex/workflows/scheduledPDFReportsMutations.ts diff --git a/convex/workflows/sendMockBankerDigest.ts b/backend/convex/workflows/sendMockBankerDigest.ts similarity index 100% rename from convex/workflows/sendMockBankerDigest.ts rename to backend/convex/workflows/sendMockBankerDigest.ts diff --git a/convex/workflows/specializedLinkedInPosts.ts b/backend/convex/workflows/specializedLinkedInPosts.ts similarity index 100% rename from convex/workflows/specializedLinkedInPosts.ts rename to backend/convex/workflows/specializedLinkedInPosts.ts diff --git a/convex/workflows/testDailyBrief.ts b/backend/convex/workflows/testDailyBrief.ts similarity index 100% rename from convex/workflows/testDailyBrief.ts rename to backend/convex/workflows/testDailyBrief.ts diff --git a/convex/workflows/weeklySourceSummary.ts b/backend/convex/workflows/weeklySourceSummary.ts similarity index 100% rename from convex/workflows/weeklySourceSummary.ts rename to backend/convex/workflows/weeklySourceSummary.ts diff --git a/tests/L1-simple-lookup.spec.ts b/evals/L1-simple-lookup.spec.ts similarity index 100% rename from tests/L1-simple-lookup.spec.ts rename to evals/L1-simple-lookup.spec.ts diff --git a/tests/L2-multi-source.spec.ts b/evals/L2-multi-source.spec.ts similarity index 100% rename from tests/L2-multi-source.spec.ts rename to evals/L2-multi-source.spec.ts diff --git a/tests/L3-deep-research.spec.ts b/evals/L3-deep-research.spec.ts similarity index 100% rename from tests/L3-deep-research.spec.ts rename to evals/L3-deep-research.spec.ts diff --git a/tests/L4-content-quality.spec.ts b/evals/L4-content-quality.spec.ts similarity index 100% rename from tests/L4-content-quality.spec.ts rename to evals/L4-content-quality.spec.ts diff --git a/tests/README.md b/evals/README.md similarity index 100% rename from tests/README.md rename to evals/README.md diff --git a/tests/agent-chat.spec.ts b/evals/agent-chat.spec.ts similarity index 100% rename from tests/agent-chat.spec.ts rename to evals/agent-chat.spec.ts diff --git a/tests/agent-eval-suite.spec.ts b/evals/agent-eval-suite.spec.ts similarity index 100% rename from tests/agent-eval-suite.spec.ts rename to evals/agent-eval-suite.spec.ts diff --git a/tests/dossier-newsletter-overflow.spec.ts b/evals/dossier-newsletter-overflow.spec.ts similarity index 100% rename from tests/dossier-newsletter-overflow.spec.ts rename to evals/dossier-newsletter-overflow.spec.ts diff --git a/tests/e2e/_debug-page.mjs b/evals/e2e/_debug-page.mjs similarity index 100% rename from tests/e2e/_debug-page.mjs rename to evals/e2e/_debug-page.mjs diff --git a/tests/e2e/analytics-dashboards.spec.ts b/evals/e2e/analytics-dashboards.spec.ts similarity index 100% rename from tests/e2e/analytics-dashboards.spec.ts rename to evals/e2e/analytics-dashboards.spec.ts diff --git a/tests/e2e/anonymous-chat-leak.spec.ts b/evals/e2e/anonymous-chat-leak.spec.ts similarity index 100% rename from tests/e2e/anonymous-chat-leak.spec.ts rename to evals/e2e/anonymous-chat-leak.spec.ts diff --git a/tests/e2e/autonomous-operations.spec.ts b/evals/e2e/autonomous-operations.spec.ts similarity index 100% rename from tests/e2e/autonomous-operations.spec.ts rename to evals/e2e/autonomous-operations.spec.ts diff --git a/tests/e2e/channel-preferences.spec.ts b/evals/e2e/channel-preferences.spec.ts similarity index 100% rename from tests/e2e/channel-preferences.spec.ts rename to evals/e2e/channel-preferences.spec.ts diff --git a/tests/e2e/cmdk-palette.spec.ts b/evals/e2e/cmdk-palette.spec.ts similarity index 100% rename from tests/e2e/cmdk-palette.spec.ts rename to evals/e2e/cmdk-palette.spec.ts diff --git a/tests/e2e/coordination-live.spec.ts b/evals/e2e/coordination-live.spec.ts similarity index 100% rename from tests/e2e/coordination-live.spec.ts rename to evals/e2e/coordination-live.spec.ts diff --git a/tests/e2e/dark-mode-audit.spec.ts b/evals/e2e/dark-mode-audit.spec.ts similarity index 100% rename from tests/e2e/dark-mode-audit.spec.ts rename to evals/e2e/dark-mode-audit.spec.ts diff --git a/tests/e2e/dcf-spreadsheet.spec.ts b/evals/e2e/dcf-spreadsheet.spec.ts similarity index 100% rename from tests/e2e/dcf-spreadsheet.spec.ts rename to evals/e2e/dcf-spreadsheet.spec.ts diff --git a/tests/e2e/demo-jarvis-session.spec.ts b/evals/e2e/demo-jarvis-session.spec.ts similarity index 100% rename from tests/e2e/demo-jarvis-session.spec.ts rename to evals/e2e/demo-jarvis-session.spec.ts diff --git a/tests/e2e/demo-walkthrough.spec.ts b/evals/e2e/demo-walkthrough.spec.ts similarity index 100% rename from tests/e2e/demo-walkthrough.spec.ts rename to evals/e2e/demo-walkthrough.spec.ts diff --git a/tests/e2e/edition-home-mobile.spec.ts b/evals/e2e/edition-home-mobile.spec.ts similarity index 100% rename from tests/e2e/edition-home-mobile.spec.ts rename to evals/e2e/edition-home-mobile.spec.ts diff --git a/tests/e2e/edition-home.spec.ts b/evals/e2e/edition-home.spec.ts similarity index 100% rename from tests/e2e/edition-home.spec.ts rename to evals/e2e/edition-home.spec.ts diff --git a/tests/e2e/entity-member-invite.spec.ts b/evals/e2e/entity-member-invite.spec.ts similarity index 100% rename from tests/e2e/entity-member-invite.spec.ts rename to evals/e2e/entity-member-invite.spec.ts diff --git a/tests/e2e/entity-notebook-regression.spec.ts b/evals/e2e/entity-notebook-regression.spec.ts similarity index 100% rename from tests/e2e/entity-notebook-regression.spec.ts rename to evals/e2e/entity-notebook-regression.spec.ts diff --git a/tests/e2e/entity-share-permissions.spec.ts b/evals/e2e/entity-share-permissions.spec.ts similarity index 100% rename from tests/e2e/entity-share-permissions.spec.ts rename to evals/e2e/entity-share-permissions.spec.ts diff --git a/tests/e2e/exact-kit-parity-prod.spec.ts b/evals/e2e/exact-kit-parity-prod.spec.ts similarity index 100% rename from tests/e2e/exact-kit-parity-prod.spec.ts rename to evals/e2e/exact-kit-parity-prod.spec.ts diff --git a/tests/e2e/fast-agent-panel.spec.ts b/evals/e2e/fast-agent-panel.spec.ts similarity index 100% rename from tests/e2e/fast-agent-panel.spec.ts rename to evals/e2e/fast-agent-panel.spec.ts diff --git a/tests/e2e/fixtures/server-fixture.ts b/evals/e2e/fixtures/server-fixture.ts similarity index 100% rename from tests/e2e/fixtures/server-fixture.ts rename to evals/e2e/fixtures/server-fixture.ts diff --git a/tests/e2e/founder-strategy.spec.ts b/evals/e2e/founder-strategy.spec.ts similarity index 100% rename from tests/e2e/founder-strategy.spec.ts rename to evals/e2e/founder-strategy.spec.ts diff --git a/tests/e2e/full-ui-dogfood.spec.ts b/evals/e2e/full-ui-dogfood.spec.ts similarity index 100% rename from tests/e2e/full-ui-dogfood.spec.ts rename to evals/e2e/full-ui-dogfood.spec.ts diff --git a/tests/e2e/helpers/avatarPulse.ts b/evals/e2e/helpers/avatarPulse.ts similarity index 100% rename from tests/e2e/helpers/avatarPulse.ts rename to evals/e2e/helpers/avatarPulse.ts diff --git a/tests/e2e/helpers/entityNotebook.ts b/evals/e2e/helpers/entityNotebook.ts similarity index 100% rename from tests/e2e/helpers/entityNotebook.ts rename to evals/e2e/helpers/entityNotebook.ts diff --git a/tests/e2e/helpers/vercelPreview.ts b/evals/e2e/helpers/vercelPreview.ts similarity index 100% rename from tests/e2e/helpers/vercelPreview.ts rename to evals/e2e/helpers/vercelPreview.ts diff --git a/tests/e2e/home-v2-parity.spec.ts b/evals/e2e/home-v2-parity.spec.ts similarity index 100% rename from tests/e2e/home-v2-parity.spec.ts rename to evals/e2e/home-v2-parity.spec.ts diff --git a/tests/e2e/home-v5-output-contract.spec.ts b/evals/e2e/home-v5-output-contract.spec.ts similarity index 100% rename from tests/e2e/home-v5-output-contract.spec.ts rename to evals/e2e/home-v5-output-contract.spec.ts diff --git a/tests/e2e/live-smoke-mobile.spec.ts b/evals/e2e/live-smoke-mobile.spec.ts similarity index 100% rename from tests/e2e/live-smoke-mobile.spec.ts rename to evals/e2e/live-smoke-mobile.spec.ts diff --git a/tests/e2e/live-smoke.spec.ts b/evals/e2e/live-smoke.spec.ts similarity index 100% rename from tests/e2e/live-smoke.spec.ts rename to evals/e2e/live-smoke.spec.ts diff --git a/tests/e2e/one-flow-regression.spec.ts b/evals/e2e/one-flow-regression.spec.ts similarity index 100% rename from tests/e2e/one-flow-regression.spec.ts rename to evals/e2e/one-flow-regression.spec.ts diff --git a/tests/e2e/persona-ship-demo-day-agent-browser.spec.ts b/evals/e2e/persona-ship-demo-day-agent-browser.spec.ts similarity index 100% rename from tests/e2e/persona-ship-demo-day-agent-browser.spec.ts rename to evals/e2e/persona-ship-demo-day-agent-browser.spec.ts diff --git a/tests/e2e/persona-ship-demo-day.spec.ts b/evals/e2e/persona-ship-demo-day.spec.ts similarity index 100% rename from tests/e2e/persona-ship-demo-day.spec.ts rename to evals/e2e/persona-ship-demo-day.spec.ts diff --git a/tests/e2e/pr77-me-anchor-nav.spec.ts b/evals/e2e/pr77-me-anchor-nav.spec.ts similarity index 100% rename from tests/e2e/pr77-me-anchor-nav.spec.ts rename to evals/e2e/pr77-me-anchor-nav.spec.ts diff --git a/tests/e2e/pr79-memory-pulse-honest.spec.ts b/evals/e2e/pr79-memory-pulse-honest.spec.ts similarity index 100% rename from tests/e2e/pr79-memory-pulse-honest.spec.ts rename to evals/e2e/pr79-memory-pulse-honest.spec.ts diff --git a/tests/e2e/product-shell-smoke.spec.ts b/evals/e2e/product-shell-smoke.spec.ts similarity index 100% rename from tests/e2e/product-shell-smoke.spec.ts rename to evals/e2e/product-shell-smoke.spec.ts diff --git a/tests/e2e/proto-live-backend-dogfood.spec.ts b/evals/e2e/proto-live-backend-dogfood.spec.ts similarity index 100% rename from tests/e2e/proto-live-backend-dogfood.spec.ts rename to evals/e2e/proto-live-backend-dogfood.spec.ts diff --git a/tests/e2e/redesign-graph-readability.spec.ts b/evals/e2e/redesign-graph-readability.spec.ts similarity index 100% rename from tests/e2e/redesign-graph-readability.spec.ts rename to evals/e2e/redesign-graph-readability.spec.ts diff --git a/tests/e2e/redesign-runtime-route-ownership.spec.ts b/evals/e2e/redesign-runtime-route-ownership.spec.ts similarity index 100% rename from tests/e2e/redesign-runtime-route-ownership.spec.ts rename to evals/e2e/redesign-runtime-route-ownership.spec.ts diff --git a/tests/e2e/report-notebook-actions.spec.ts b/evals/e2e/report-notebook-actions.spec.ts similarity index 100% rename from tests/e2e/report-notebook-actions.spec.ts rename to evals/e2e/report-notebook-actions.spec.ts diff --git a/tests/e2e/scenario-regression.spec.ts b/evals/e2e/scenario-regression.spec.ts similarity index 100% rename from tests/e2e/scenario-regression.spec.ts rename to evals/e2e/scenario-regression.spec.ts diff --git a/tests/e2e/scenario-visual-ingestion.spec.ts b/evals/e2e/scenario-visual-ingestion.spec.ts similarity index 100% rename from tests/e2e/scenario-visual-ingestion.spec.ts rename to evals/e2e/scenario-visual-ingestion.spec.ts diff --git a/tests/e2e/scratchnode-demo-route-gate.spec.ts b/evals/e2e/scratchnode-demo-route-gate.spec.ts similarity index 100% rename from tests/e2e/scratchnode-demo-route-gate.spec.ts rename to evals/e2e/scratchnode-demo-route-gate.spec.ts diff --git a/tests/e2e/scratchnode-live-route-honesty.spec.ts b/evals/e2e/scratchnode-live-route-honesty.spec.ts similarity index 100% rename from tests/e2e/scratchnode-live-route-honesty.spec.ts rename to evals/e2e/scratchnode-live-route-honesty.spec.ts diff --git a/tests/e2e/scratchnode-public-wiki.spec.ts b/evals/e2e/scratchnode-public-wiki.spec.ts similarity index 100% rename from tests/e2e/scratchnode-public-wiki.spec.ts rename to evals/e2e/scratchnode-public-wiki.spec.ts diff --git a/tests/e2e/swr-cache-notice.spec.ts b/evals/e2e/swr-cache-notice.spec.ts similarity index 100% rename from tests/e2e/swr-cache-notice.spec.ts rename to evals/e2e/swr-cache-notice.spec.ts diff --git a/tests/e2e/test-duplicate-fix.spec.ts b/evals/e2e/test-duplicate-fix.spec.ts similarity index 100% rename from tests/e2e/test-duplicate-fix.spec.ts rename to evals/e2e/test-duplicate-fix.spec.ts diff --git a/tests/e2e/trust-infrastructure-routes.spec.ts b/evals/e2e/trust-infrastructure-routes.spec.ts similarity index 100% rename from tests/e2e/trust-infrastructure-routes.spec.ts rename to evals/e2e/trust-infrastructure-routes.spec.ts diff --git a/tests/e2e/ui-contract-runner.spec.ts b/evals/e2e/ui-contract-runner.spec.ts similarity index 100% rename from tests/e2e/ui-contract-runner.spec.ts rename to evals/e2e/ui-contract-runner.spec.ts diff --git a/tests/e2e/ui-dive-regression.spec.ts b/evals/e2e/ui-dive-regression.spec.ts similarity index 100% rename from tests/e2e/ui-dive-regression.spec.ts rename to evals/e2e/ui-dive-regression.spec.ts diff --git a/tests/e2e/vercel-preview-security.spec.ts b/evals/e2e/vercel-preview-security.spec.ts similarity index 100% rename from tests/e2e/vercel-preview-security.spec.ts rename to evals/e2e/vercel-preview-security.spec.ts diff --git a/tests/e2e/visual-stability-audit.spec.ts b/evals/e2e/visual-stability-audit.spec.ts similarity index 100% rename from tests/e2e/visual-stability-audit.spec.ts rename to evals/e2e/visual-stability-audit.spec.ts diff --git a/tests/e2e/voice-dogfood-scenarios.spec.ts b/evals/e2e/voice-dogfood-scenarios.spec.ts similarity index 100% rename from tests/e2e/voice-dogfood-scenarios.spec.ts rename to evals/e2e/voice-dogfood-scenarios.spec.ts diff --git a/tests/e2e/voice-input.spec.ts b/evals/e2e/voice-input.spec.ts similarity index 100% rename from tests/e2e/voice-input.spec.ts rename to evals/e2e/voice-input.spec.ts diff --git a/tests/entity-adaptive-profile.spec.ts b/evals/entity-adaptive-profile.spec.ts similarity index 100% rename from tests/entity-adaptive-profile.spec.ts rename to evals/entity-adaptive-profile.spec.ts diff --git a/tests/entity-hover-preview.spec.ts b/evals/entity-hover-preview.spec.ts similarity index 100% rename from tests/entity-hover-preview.spec.ts rename to evals/entity-hover-preview.spec.ts diff --git a/tests/evaluation/optimizations.test.ts b/evals/evaluation/optimizations.test.ts similarity index 100% rename from tests/evaluation/optimizations.test.ts rename to evals/evaluation/optimizations.test.ts diff --git a/tests/fast-agent-integration.spec.ts b/evals/fast-agent-integration.spec.ts similarity index 100% rename from tests/fast-agent-integration.spec.ts rename to evals/fast-agent-integration.spec.ts diff --git a/tests/fixtures/Report_2025-12-25.pdf b/evals/fixtures/Report_2025-12-25.pdf similarity index 100% rename from tests/fixtures/Report_2025-12-25.pdf rename to evals/fixtures/Report_2025-12-25.pdf diff --git a/tests/fixtures/docx_fixture.docx b/evals/fixtures/docx_fixture.docx similarity index 100% rename from tests/fixtures/docx_fixture.docx rename to evals/fixtures/docx_fixture.docx diff --git a/tests/fixtures/financials.csv b/evals/fixtures/financials.csv similarity index 100% rename from tests/fixtures/financials.csv rename to evals/fixtures/financials.csv diff --git a/tests/fixtures/gemini-qa-results/QA_SYNTHESIS_REPORT.md b/evals/fixtures/gemini-qa-results/QA_SYNTHESIS_REPORT.md similarity index 100% rename from tests/fixtures/gemini-qa-results/QA_SYNTHESIS_REPORT.md rename to evals/fixtures/gemini-qa-results/QA_SYNTHESIS_REPORT.md diff --git a/tests/fixtures/gemini-qa-results/agentic-reliability-audit.json b/evals/fixtures/gemini-qa-results/agentic-reliability-audit.json similarity index 100% rename from tests/fixtures/gemini-qa-results/agentic-reliability-audit.json rename to evals/fixtures/gemini-qa-results/agentic-reliability-audit.json diff --git a/tests/fixtures/gemini-qa-results/claude-judge-results.json b/evals/fixtures/gemini-qa-results/claude-judge-results.json similarity index 100% rename from tests/fixtures/gemini-qa-results/claude-judge-results.json rename to evals/fixtures/gemini-qa-results/claude-judge-results.json diff --git a/tests/fixtures/gemini-qa-results/claude-judge-summary.json b/evals/fixtures/gemini-qa-results/claude-judge-summary.json similarity index 100% rename from tests/fixtures/gemini-qa-results/claude-judge-summary.json rename to evals/fixtures/gemini-qa-results/claude-judge-summary.json diff --git a/tests/fixtures/gemini-qa-results/gemini-3.1-flash-lite-scores.json b/evals/fixtures/gemini-qa-results/gemini-3.1-flash-lite-scores.json similarity index 100% rename from tests/fixtures/gemini-qa-results/gemini-3.1-flash-lite-scores.json rename to evals/fixtures/gemini-qa-results/gemini-3.1-flash-lite-scores.json diff --git a/tests/fixtures/gemini-qa-results/gemini-3.1-flash-lite-summary.json b/evals/fixtures/gemini-qa-results/gemini-3.1-flash-lite-summary.json similarity index 100% rename from tests/fixtures/gemini-qa-results/gemini-3.1-flash-lite-summary.json rename to evals/fixtures/gemini-qa-results/gemini-3.1-flash-lite-summary.json diff --git a/tests/fixtures/gemini-qa-results/gemini-qa-scores.json b/evals/fixtures/gemini-qa-results/gemini-qa-scores.json similarity index 100% rename from tests/fixtures/gemini-qa-results/gemini-qa-scores.json rename to evals/fixtures/gemini-qa-results/gemini-qa-scores.json diff --git a/tests/fixtures/gemini-qa-results/gemini-qa-summary.json b/evals/fixtures/gemini-qa-results/gemini-qa-summary.json similarity index 100% rename from tests/fixtures/gemini-qa-results/gemini-qa-summary.json rename to evals/fixtures/gemini-qa-results/gemini-qa-summary.json diff --git a/tests/fixtures/gemini-qa-results/learnings.json b/evals/fixtures/gemini-qa-results/learnings.json similarity index 100% rename from tests/fixtures/gemini-qa-results/learnings.json rename to evals/fixtures/gemini-qa-results/learnings.json diff --git a/tests/fixtures/pptx_fixture.pptx b/evals/fixtures/pptx_fixture.pptx similarity index 100% rename from tests/fixtures/pptx_fixture.pptx rename to evals/fixtures/pptx_fixture.pptx diff --git a/tests/fixtures/premium-audit/01-home.png b/evals/fixtures/premium-audit/01-home.png similarity index 100% rename from tests/fixtures/premium-audit/01-home.png rename to evals/fixtures/premium-audit/01-home.png diff --git a/tests/fixtures/premium-audit/02-chat.png b/evals/fixtures/premium-audit/02-chat.png similarity index 100% rename from tests/fixtures/premium-audit/02-chat.png rename to evals/fixtures/premium-audit/02-chat.png diff --git a/tests/fixtures/premium-audit/03-pricing.png b/evals/fixtures/premium-audit/03-pricing.png similarity index 100% rename from tests/fixtures/premium-audit/03-pricing.png rename to evals/fixtures/premium-audit/03-pricing.png diff --git a/tests/fixtures/premium-audit/04-inbox.png b/evals/fixtures/premium-audit/04-inbox.png similarity index 100% rename from tests/fixtures/premium-audit/04-inbox.png rename to evals/fixtures/premium-audit/04-inbox.png diff --git a/tests/fixtures/premium-audit/05-me.png b/evals/fixtures/premium-audit/05-me.png similarity index 100% rename from tests/fixtures/premium-audit/05-me.png rename to evals/fixtures/premium-audit/05-me.png diff --git a/tests/fixtures/zip_fixture.zip b/evals/fixtures/zip_fixture.zip similarity index 100% rename from tests/fixtures/zip_fixture.zip rename to evals/fixtures/zip_fixture.zip diff --git a/tests/funding-detection-agent.spec.ts b/evals/funding-detection-agent.spec.ts similarity index 100% rename from tests/funding-detection-agent.spec.ts rename to evals/funding-detection-agent.spec.ts diff --git a/tests/linkupSmoke.js b/evals/linkupSmoke.js similarity index 100% rename from tests/linkupSmoke.js rename to evals/linkupSmoke.js diff --git a/tests/linkupSmoke.mjs b/evals/linkupSmoke.mjs similarity index 100% rename from tests/linkupSmoke.mjs rename to evals/linkupSmoke.mjs diff --git a/tests/performance-lighthouse.spec.ts b/evals/performance-lighthouse.spec.ts similarity index 100% rename from tests/performance-lighthouse.spec.ts rename to evals/performance-lighthouse.spec.ts diff --git a/tests/prompts/jarvis-voice-e2e-agent.md b/evals/prompts/jarvis-voice-e2e-agent.md similarity index 100% rename from tests/prompts/jarvis-voice-e2e-agent.md rename to evals/prompts/jarvis-voice-e2e-agent.md diff --git a/tests/prompts/sentinel-self-test.md b/evals/prompts/sentinel-self-test.md similarity index 100% rename from tests/prompts/sentinel-self-test.md rename to evals/prompts/sentinel-self-test.md diff --git a/docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-desktop-scrolled.png b/proof/ui-contract/20260717-answer-arrival/after-answer-dark-desktop-scrolled.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-desktop-scrolled.png rename to proof/ui-contract/20260717-answer-arrival/after-answer-dark-desktop-scrolled.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-desktop.png b/proof/ui-contract/20260717-answer-arrival/after-answer-dark-desktop.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-desktop.png rename to proof/ui-contract/20260717-answer-arrival/after-answer-dark-desktop.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-mobile.png b/proof/ui-contract/20260717-answer-arrival/after-answer-dark-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/after-answer-dark-mobile.png rename to proof/ui-contract/20260717-answer-arrival/after-answer-dark-mobile.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/after-answer-light-desktop.png b/proof/ui-contract/20260717-answer-arrival/after-answer-light-desktop.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/after-answer-light-desktop.png rename to proof/ui-contract/20260717-answer-arrival/after-answer-light-desktop.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/manifest.json b/proof/ui-contract/20260717-answer-arrival/manifest.json similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/manifest.json rename to proof/ui-contract/20260717-answer-arrival/manifest.json diff --git a/docs/design/ui-contract/20260717-answer-arrival/motion-frame-280ms.png b/proof/ui-contract/20260717-answer-arrival/motion-frame-280ms.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/motion-frame-280ms.png rename to proof/ui-contract/20260717-answer-arrival/motion-frame-280ms.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/motion-frame-40ms.png b/proof/ui-contract/20260717-answer-arrival/motion-frame-40ms.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/motion-frame-40ms.png rename to proof/ui-contract/20260717-answer-arrival/motion-frame-40ms.png diff --git a/docs/design/ui-contract/20260717-answer-arrival/motion-frame-980ms.png b/proof/ui-contract/20260717-answer-arrival/motion-frame-980ms.png similarity index 100% rename from docs/design/ui-contract/20260717-answer-arrival/motion-frame-980ms.png rename to proof/ui-contract/20260717-answer-arrival/motion-frame-980ms.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-light.png b/proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-light.png rename to proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile.png b/proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile.png rename to proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace.png b/proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/after-decision-workspace.png rename to proof/ui-contract/20260717-chip-label-reduction/after-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-light.png b/proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-light.png rename to proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile.png b/proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile.png rename to proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace.png b/proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/before-decision-workspace.png rename to proof/ui-contract/20260717-chip-label-reduction/before-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-chip-label-reduction/manifest.json b/proof/ui-contract/20260717-chip-label-reduction/manifest.json similarity index 100% rename from docs/design/ui-contract/20260717-chip-label-reduction/manifest.json rename to proof/ui-contract/20260717-chip-label-reduction/manifest.json diff --git a/docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-light.png b/proof/ui-contract/20260717-design-nitpick/after-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-light.png rename to proof/ui-contract/20260717-design-nitpick/after-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile.png b/proof/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile.png rename to proof/ui-contract/20260717-design-nitpick/after-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace.png b/proof/ui-contract/20260717-design-nitpick/after-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/after-decision-workspace.png rename to proof/ui-contract/20260717-design-nitpick/after-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/after-interaction-report-context.png b/proof/ui-contract/20260717-design-nitpick/after-interaction-report-context.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/after-interaction-report-context.png rename to proof/ui-contract/20260717-design-nitpick/after-interaction-report-context.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-light.png b/proof/ui-contract/20260717-design-nitpick/before-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-light.png rename to proof/ui-contract/20260717-design-nitpick/before-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile.png b/proof/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile.png rename to proof/ui-contract/20260717-design-nitpick/before-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace.png b/proof/ui-contract/20260717-design-nitpick/before-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/before-decision-workspace.png rename to proof/ui-contract/20260717-design-nitpick/before-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/before-interaction-report-context.png b/proof/ui-contract/20260717-design-nitpick/before-interaction-report-context.png similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/before-interaction-report-context.png rename to proof/ui-contract/20260717-design-nitpick/before-interaction-report-context.png diff --git a/docs/design/ui-contract/20260717-design-nitpick/manifest.json b/proof/ui-contract/20260717-design-nitpick/manifest.json similarity index 100% rename from docs/design/ui-contract/20260717-design-nitpick/manifest.json rename to proof/ui-contract/20260717-design-nitpick/manifest.json diff --git a/docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-light.png b/proof/ui-contract/20260717-ember-landing/after-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-light.png rename to proof/ui-contract/20260717-ember-landing/after-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-ember-landing/after-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-ember-landing/after-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-mobile.png b/proof/ui-contract/20260717-ember-landing/after-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/after-decision-workspace-mobile.png rename to proof/ui-contract/20260717-ember-landing/after-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-ember-landing/after-decision-workspace.png b/proof/ui-contract/20260717-ember-landing/after-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/after-decision-workspace.png rename to proof/ui-contract/20260717-ember-landing/after-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-light.png b/proof/ui-contract/20260717-ember-landing/before-decision-workspace-light.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-light.png rename to proof/ui-contract/20260717-ember-landing/before-decision-workspace-light.png diff --git a/docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-mobile-light.png b/proof/ui-contract/20260717-ember-landing/before-decision-workspace-mobile-light.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-mobile-light.png rename to proof/ui-contract/20260717-ember-landing/before-decision-workspace-mobile-light.png diff --git a/docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-mobile.png b/proof/ui-contract/20260717-ember-landing/before-decision-workspace-mobile.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/before-decision-workspace-mobile.png rename to proof/ui-contract/20260717-ember-landing/before-decision-workspace-mobile.png diff --git a/docs/design/ui-contract/20260717-ember-landing/before-decision-workspace.png b/proof/ui-contract/20260717-ember-landing/before-decision-workspace.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/before-decision-workspace.png rename to proof/ui-contract/20260717-ember-landing/before-decision-workspace.png diff --git a/docs/design/ui-contract/20260717-ember-landing/manifest.json b/proof/ui-contract/20260717-ember-landing/manifest.json similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/manifest.json rename to proof/ui-contract/20260717-ember-landing/manifest.json diff --git a/docs/design/ui-contract/20260717-ember-landing/motion-frame-0ms.png b/proof/ui-contract/20260717-ember-landing/motion-frame-0ms.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/motion-frame-0ms.png rename to proof/ui-contract/20260717-ember-landing/motion-frame-0ms.png diff --git a/docs/design/ui-contract/20260717-ember-landing/motion-frame-1280ms.png b/proof/ui-contract/20260717-ember-landing/motion-frame-1280ms.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/motion-frame-1280ms.png rename to proof/ui-contract/20260717-ember-landing/motion-frame-1280ms.png diff --git a/docs/design/ui-contract/20260717-ember-landing/motion-frame-380ms.png b/proof/ui-contract/20260717-ember-landing/motion-frame-380ms.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/motion-frame-380ms.png rename to proof/ui-contract/20260717-ember-landing/motion-frame-380ms.png diff --git a/docs/design/ui-contract/20260717-ember-landing/motion-reduced-motion-static.png b/proof/ui-contract/20260717-ember-landing/motion-reduced-motion-static.png similarity index 100% rename from docs/design/ui-contract/20260717-ember-landing/motion-reduced-motion-static.png rename to proof/ui-contract/20260717-ember-landing/motion-reduced-motion-static.png diff --git a/docs/design/ui-contract/20260717-run-theater-friction/after-landing-example-link.png b/proof/ui-contract/20260717-run-theater-friction/after-landing-example-link.png similarity index 100% rename from docs/design/ui-contract/20260717-run-theater-friction/after-landing-example-link.png rename to proof/ui-contract/20260717-run-theater-friction/after-landing-example-link.png diff --git a/docs/design/ui-contract/20260717-run-theater-friction/after-one-click-journey-destination.png b/proof/ui-contract/20260717-run-theater-friction/after-one-click-journey-destination.png similarity index 100% rename from docs/design/ui-contract/20260717-run-theater-friction/after-one-click-journey-destination.png rename to proof/ui-contract/20260717-run-theater-friction/after-one-click-journey-destination.png diff --git a/docs/design/ui-contract/20260717-run-theater-friction/after-run-thread-complete.png b/proof/ui-contract/20260717-run-theater-friction/after-run-thread-complete.png similarity index 100% rename from docs/design/ui-contract/20260717-run-theater-friction/after-run-thread-complete.png rename to proof/ui-contract/20260717-run-theater-friction/after-run-thread-complete.png diff --git a/docs/design/ui-contract/20260717-run-theater-friction/manifest.json b/proof/ui-contract/20260717-run-theater-friction/manifest.json similarity index 100% rename from docs/design/ui-contract/20260717-run-theater-friction/manifest.json rename to proof/ui-contract/20260717-run-theater-friction/manifest.json diff --git a/docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark-expanded.png b/proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark-expanded.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark-expanded.png rename to proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark-expanded.png diff --git a/docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark.png b/proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark.png rename to proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-dark.png diff --git a/docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-light.png b/proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-light.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/after-chat-desktop-light.png rename to proof/ui-contract/20260718-one-chat-interface/after-chat-desktop-light.png diff --git a/docs/design/ui-contract/20260718-one-chat-interface/after-chat-mobile-dark.png b/proof/ui-contract/20260718-one-chat-interface/after-chat-mobile-dark.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/after-chat-mobile-dark.png rename to proof/ui-contract/20260718-one-chat-interface/after-chat-mobile-dark.png diff --git a/docs/design/ui-contract/20260718-one-chat-interface/before-memo-desktop-dark.png b/proof/ui-contract/20260718-one-chat-interface/before-memo-desktop-dark.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/before-memo-desktop-dark.png rename to proof/ui-contract/20260718-one-chat-interface/before-memo-desktop-dark.png diff --git a/docs/design/ui-contract/20260718-one-chat-interface/manifest.json b/proof/ui-contract/20260718-one-chat-interface/manifest.json similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-interface/manifest.json rename to proof/ui-contract/20260718-one-chat-interface/manifest.json diff --git a/docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-dark-expanded.png b/proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-dark-expanded.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-dark-expanded.png rename to proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-dark-expanded.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-collapsed.png b/proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-collapsed.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-collapsed.png rename to proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-collapsed.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-expanded.png b/proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-expanded.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-expanded.png rename to proof/ui-contract/20260718-one-chat-phase-b/after-panel-canonical-light-expanded.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-b/manifest.json b/proof/ui-contract/20260718-one-chat-phase-b/manifest.json similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-b/manifest.json rename to proof/ui-contract/20260718-one-chat-phase-b/manifest.json diff --git a/docs/design/ui-contract/20260718-one-chat-phase-c/after-both-turns-collapsed.png b/proof/ui-contract/20260718-one-chat-phase-c/after-both-turns-collapsed.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-c/after-both-turns-collapsed.png rename to proof/ui-contract/20260718-one-chat-phase-c/after-both-turns-collapsed.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted-expanded.png b/proof/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted-expanded.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted-expanded.png rename to proof/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted-expanded.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted.png b/proof/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted.png rename to proof/ui-contract/20260718-one-chat-phase-c/after-markdown-adopted.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-c/after-plain-adopted.png b/proof/ui-contract/20260718-one-chat-phase-c/after-plain-adopted.png similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-c/after-plain-adopted.png rename to proof/ui-contract/20260718-one-chat-phase-c/after-plain-adopted.png diff --git a/docs/design/ui-contract/20260718-one-chat-phase-c/manifest.json b/proof/ui-contract/20260718-one-chat-phase-c/manifest.json similarity index 100% rename from docs/design/ui-contract/20260718-one-chat-phase-c/manifest.json rename to proof/ui-contract/20260718-one-chat-phase-c/manifest.json diff --git a/docs/design/ui-contract/20260718-polish-chat-answer/manifest.json b/proof/ui-contract/20260718-polish-chat-answer/manifest.json similarity index 100% rename from docs/design/ui-contract/20260718-polish-chat-answer/manifest.json rename to proof/ui-contract/20260718-polish-chat-answer/manifest.json diff --git a/docs/design/ui-contract/20260718-polish-chat-answer/polish-after-dark.png b/proof/ui-contract/20260718-polish-chat-answer/polish-after-dark.png similarity index 100% rename from docs/design/ui-contract/20260718-polish-chat-answer/polish-after-dark.png rename to proof/ui-contract/20260718-polish-chat-answer/polish-after-dark.png diff --git a/docs/design/ui-contract/20260718-polish-chat-answer/polish-after-light.png b/proof/ui-contract/20260718-polish-chat-answer/polish-after-light.png similarity index 100% rename from docs/design/ui-contract/20260718-polish-chat-answer/polish-after-light.png rename to proof/ui-contract/20260718-polish-chat-answer/polish-after-light.png diff --git a/docs/design/ui-contract/20260718-polish-chat-answer/polish-before-dark.png b/proof/ui-contract/20260718-polish-chat-answer/polish-before-dark.png similarity index 100% rename from docs/design/ui-contract/20260718-polish-chat-answer/polish-before-dark.png rename to proof/ui-contract/20260718-polish-chat-answer/polish-before-dark.png diff --git a/docs/design/ui-contract/20260718-polish-chat-answer/polish-before-light.png b/proof/ui-contract/20260718-polish-chat-answer/polish-before-light.png similarity index 100% rename from docs/design/ui-contract/20260718-polish-chat-answer/polish-before-light.png rename to proof/ui-contract/20260718-polish-chat-answer/polish-before-light.png diff --git a/docs/design/ui-contract/20260718-showcase-receipt/after-click-through-verified.png b/proof/ui-contract/20260718-showcase-receipt/after-click-through-verified.png similarity index 100% rename from docs/design/ui-contract/20260718-showcase-receipt/after-click-through-verified.png rename to proof/ui-contract/20260718-showcase-receipt/after-click-through-verified.png diff --git a/docs/design/ui-contract/20260718-showcase-receipt/after-example-destination-showcase.png b/proof/ui-contract/20260718-showcase-receipt/after-example-destination-showcase.png similarity index 100% rename from docs/design/ui-contract/20260718-showcase-receipt/after-example-destination-showcase.png rename to proof/ui-contract/20260718-showcase-receipt/after-example-destination-showcase.png diff --git a/docs/design/ui-contract/20260718-showcase-receipt/before-example-destination-qa-receipt.png b/proof/ui-contract/20260718-showcase-receipt/before-example-destination-qa-receipt.png similarity index 100% rename from docs/design/ui-contract/20260718-showcase-receipt/before-example-destination-qa-receipt.png rename to proof/ui-contract/20260718-showcase-receipt/before-example-destination-qa-receipt.png diff --git a/docs/design/ui-contract/20260718-showcase-receipt/manifest.json b/proof/ui-contract/20260718-showcase-receipt/manifest.json similarity index 100% rename from docs/design/ui-contract/20260718-showcase-receipt/manifest.json rename to proof/ui-contract/20260718-showcase-receipt/manifest.json diff --git a/docs/design/ui-contract/README.md b/proof/ui-contract/README.md similarity index 100% rename from docs/design/ui-contract/README.md rename to proof/ui-contract/README.md diff --git a/docs/design/ui-contract/SPEC.md b/proof/ui-contract/SPEC.md similarity index 100% rename from docs/design/ui-contract/SPEC.md rename to proof/ui-contract/SPEC.md diff --git a/docs/design/ui-contract/manifest.schema.json b/proof/ui-contract/manifest.schema.json similarity index 100% rename from docs/design/ui-contract/manifest.schema.json rename to proof/ui-contract/manifest.schema.json diff --git a/docs/design/ui-contract/surfaces/decision-workspace.contract.json b/proof/ui-contract/surfaces/decision-workspace.contract.json similarity index 100% rename from docs/design/ui-contract/surfaces/decision-workspace.contract.json rename to proof/ui-contract/surfaces/decision-workspace.contract.json diff --git a/server/Dockerfile b/workers/node/Dockerfile similarity index 100% rename from server/Dockerfile rename to workers/node/Dockerfile diff --git a/server/agentHarness.test.ts b/workers/node/agentHarness.test.ts similarity index 100% rename from server/agentHarness.test.ts rename to workers/node/agentHarness.test.ts diff --git a/server/agentHarness.ts b/workers/node/agentHarness.ts similarity index 100% rename from server/agentHarness.ts rename to workers/node/agentHarness.ts diff --git a/server/agentHarnessStructuredOutput.test.ts b/workers/node/agentHarnessStructuredOutput.test.ts similarity index 100% rename from server/agentHarnessStructuredOutput.test.ts rename to workers/node/agentHarnessStructuredOutput.test.ts diff --git a/server/agents/realtimeVoicePolicy.test.ts b/workers/node/agents/realtimeVoicePolicy.test.ts similarity index 100% rename from server/agents/realtimeVoicePolicy.test.ts rename to workers/node/agents/realtimeVoicePolicy.test.ts diff --git a/server/agents/realtimeVoicePolicy.ts b/workers/node/agents/realtimeVoicePolicy.ts similarity index 100% rename from server/agents/realtimeVoicePolicy.ts rename to workers/node/agents/realtimeVoicePolicy.ts diff --git a/server/agents/voiceAgent.ts b/workers/node/agents/voiceAgent.ts similarity index 100% rename from server/agents/voiceAgent.ts rename to workers/node/agents/voiceAgent.ts diff --git a/server/claudeCodeBridge.ts b/workers/node/claudeCodeBridge.ts similarity index 100% rename from server/claudeCodeBridge.ts rename to workers/node/claudeCodeBridge.ts diff --git a/server/cloudbuild.yaml b/workers/node/cloudbuild.yaml similarity index 100% rename from server/cloudbuild.yaml rename to workers/node/cloudbuild.yaml diff --git a/server/commandBridge.test.ts b/workers/node/commandBridge.test.ts similarity index 100% rename from server/commandBridge.test.ts rename to workers/node/commandBridge.test.ts diff --git a/server/commandBridge.ts b/workers/node/commandBridge.ts similarity index 100% rename from server/commandBridge.ts rename to workers/node/commandBridge.ts diff --git a/server/harnessRuntime.test.ts b/workers/node/harnessRuntime.test.ts similarity index 100% rename from server/harnessRuntime.test.ts rename to workers/node/harnessRuntime.test.ts diff --git a/server/harnessRuntime.ts b/workers/node/harnessRuntime.ts similarity index 100% rename from server/harnessRuntime.ts rename to workers/node/harnessRuntime.ts diff --git a/server/hyperloopRoute.test.ts b/workers/node/hyperloopRoute.test.ts similarity index 100% rename from server/hyperloopRoute.test.ts rename to workers/node/hyperloopRoute.test.ts diff --git a/server/index.ts b/workers/node/index.ts similarity index 100% rename from server/index.ts rename to workers/node/index.ts diff --git a/server/lib/canonicalModels.ts b/workers/node/lib/canonicalModels.ts similarity index 100% rename from server/lib/canonicalModels.ts rename to workers/node/lib/canonicalModels.ts diff --git a/server/lib/dcfModel.ts b/workers/node/lib/dcfModel.ts similarity index 100% rename from server/lib/dcfModel.ts rename to workers/node/lib/dcfModel.ts diff --git a/server/lib/dcfSpreadsheetBridge.ts b/workers/node/lib/dcfSpreadsheetBridge.ts similarity index 100% rename from server/lib/dcfSpreadsheetBridge.ts rename to workers/node/lib/dcfSpreadsheetBridge.ts diff --git a/server/lib/entityMemoryRecall.ts b/workers/node/lib/entityMemoryRecall.ts similarity index 100% rename from server/lib/entityMemoryRecall.ts rename to workers/node/lib/entityMemoryRecall.ts diff --git a/server/lib/evidenceSpan.ts b/workers/node/lib/evidenceSpan.ts similarity index 100% rename from server/lib/evidenceSpan.ts rename to workers/node/lib/evidenceSpan.ts diff --git a/server/lib/idGen.ts b/workers/node/lib/idGen.ts similarity index 100% rename from server/lib/idGen.ts rename to workers/node/lib/idGen.ts diff --git a/server/lib/jsonObjectParser.test.ts b/workers/node/lib/jsonObjectParser.test.ts similarity index 100% rename from server/lib/jsonObjectParser.test.ts rename to workers/node/lib/jsonObjectParser.test.ts diff --git a/server/lib/jsonObjectParser.ts b/workers/node/lib/jsonObjectParser.ts similarity index 100% rename from server/lib/jsonObjectParser.ts rename to workers/node/lib/jsonObjectParser.ts diff --git a/server/lib/langgraphClient.ts b/workers/node/lib/langgraphClient.ts similarity index 100% rename from server/lib/langgraphClient.ts rename to workers/node/lib/langgraphClient.ts diff --git a/server/lib/multiSearch.ts b/workers/node/lib/multiSearch.ts similarity index 100% rename from server/lib/multiSearch.ts rename to workers/node/lib/multiSearch.ts diff --git a/server/lib/painMapping.ts b/workers/node/lib/painMapping.ts similarity index 100% rename from server/lib/painMapping.ts rename to workers/node/lib/painMapping.ts diff --git a/server/lib/replayDetector.ts b/workers/node/lib/replayDetector.ts similarity index 100% rename from server/lib/replayDetector.ts rename to workers/node/lib/replayDetector.ts diff --git a/server/lib/routingHints.ts b/workers/node/lib/routingHints.ts similarity index 100% rename from server/lib/routingHints.ts rename to workers/node/lib/routingHints.ts diff --git a/server/lib/searchContext.ts b/workers/node/lib/searchContext.ts similarity index 100% rename from server/lib/searchContext.ts rename to workers/node/lib/searchContext.ts diff --git a/server/lib/secEdgar.ts b/workers/node/lib/secEdgar.ts similarity index 100% rename from server/lib/secEdgar.ts rename to workers/node/lib/secEdgar.ts diff --git a/server/lib/signalTaxonomy.ts b/workers/node/lib/signalTaxonomy.ts similarity index 100% rename from server/lib/signalTaxonomy.ts rename to workers/node/lib/signalTaxonomy.ts diff --git a/server/lib/skillExtractor.ts b/workers/node/lib/skillExtractor.ts similarity index 100% rename from server/lib/skillExtractor.ts rename to workers/node/lib/skillExtractor.ts diff --git a/server/lib/traceDistillation.ts b/workers/node/lib/traceDistillation.ts similarity index 100% rename from server/lib/traceDistillation.ts rename to workers/node/lib/traceDistillation.ts diff --git a/server/lib/trajectoryStore.ts b/workers/node/lib/trajectoryStore.ts similarity index 100% rename from server/lib/trajectoryStore.ts rename to workers/node/lib/trajectoryStore.ts diff --git a/server/lib/workflowEnvelope.ts b/workers/node/lib/workflowEnvelope.ts similarity index 100% rename from server/lib/workflowEnvelope.ts rename to workers/node/lib/workflowEnvelope.ts diff --git a/server/lib/wrapRoute.ts b/workers/node/lib/wrapRoute.ts similarity index 100% rename from server/lib/wrapRoute.ts rename to workers/node/lib/wrapRoute.ts diff --git a/server/mcpAuth.d.ts b/workers/node/mcpAuth.d.ts similarity index 100% rename from server/mcpAuth.d.ts rename to workers/node/mcpAuth.d.ts diff --git a/server/mcpAuth.js b/workers/node/mcpAuth.js similarity index 100% rename from server/mcpAuth.js rename to workers/node/mcpAuth.js diff --git a/server/mcpAuth.js.map b/workers/node/mcpAuth.js.map similarity index 100% rename from server/mcpAuth.js.map rename to workers/node/mcpAuth.js.map diff --git a/server/mcpAuth.ts b/workers/node/mcpAuth.ts similarity index 100% rename from server/mcpAuth.ts rename to workers/node/mcpAuth.ts diff --git a/server/mcpGateway.ts b/workers/node/mcpGateway.ts similarity index 100% rename from server/mcpGateway.ts rename to workers/node/mcpGateway.ts diff --git a/server/mcpSession.ts b/workers/node/mcpSession.ts similarity index 100% rename from server/mcpSession.ts rename to workers/node/mcpSession.ts diff --git a/server/nemoclaw/agentRunner.ts b/workers/node/nemoclaw/agentRunner.ts similarity index 100% rename from server/nemoclaw/agentRunner.ts rename to workers/node/nemoclaw/agentRunner.ts diff --git a/server/nemoclaw/auditLog.ts b/workers/node/nemoclaw/auditLog.ts similarity index 100% rename from server/nemoclaw/auditLog.ts rename to workers/node/nemoclaw/auditLog.ts diff --git a/server/nemoclaw/chatGateway.ts b/workers/node/nemoclaw/chatGateway.ts similarity index 100% rename from server/nemoclaw/chatGateway.ts rename to workers/node/nemoclaw/chatGateway.ts diff --git a/server/nemoclaw/codebaseContext.ts b/workers/node/nemoclaw/codebaseContext.ts similarity index 100% rename from server/nemoclaw/codebaseContext.ts rename to workers/node/nemoclaw/codebaseContext.ts diff --git a/server/nemoclaw/desktopControl.ts b/workers/node/nemoclaw/desktopControl.ts similarity index 100% rename from server/nemoclaw/desktopControl.ts rename to workers/node/nemoclaw/desktopControl.ts diff --git a/server/nemoclaw/index.ts b/workers/node/nemoclaw/index.ts similarity index 100% rename from server/nemoclaw/index.ts rename to workers/node/nemoclaw/index.ts diff --git a/server/nemoclaw/judge.ts b/workers/node/nemoclaw/judge.ts similarity index 100% rename from server/nemoclaw/judge.ts rename to workers/node/nemoclaw/judge.ts diff --git a/server/nemoclaw/processControl.ts b/workers/node/nemoclaw/processControl.ts similarity index 100% rename from server/nemoclaw/processControl.ts rename to workers/node/nemoclaw/processControl.ts diff --git a/server/nemoclaw/telegramBot.ts b/workers/node/nemoclaw/telegramBot.ts similarity index 100% rename from server/nemoclaw/telegramBot.ts rename to workers/node/nemoclaw/telegramBot.ts diff --git a/server/nemoclaw/test-judge.ts b/workers/node/nemoclaw/test-judge.ts similarity index 100% rename from server/nemoclaw/test-judge.ts rename to workers/node/nemoclaw/test-judge.ts diff --git a/server/nemoclaw/test-live.ts b/workers/node/nemoclaw/test-live.ts similarity index 100% rename from server/nemoclaw/test-live.ts rename to workers/node/nemoclaw/test-live.ts diff --git a/server/nemoclaw/test-screenshot.ts b/workers/node/nemoclaw/test-screenshot.ts similarity index 100% rename from server/nemoclaw/test-screenshot.ts rename to workers/node/nemoclaw/test-screenshot.ts diff --git a/server/nemoclaw/test.ts b/workers/node/nemoclaw/test.ts similarity index 100% rename from server/nemoclaw/test.ts rename to workers/node/nemoclaw/test.ts diff --git a/server/nemoclaw/videoCapture.ts b/workers/node/nemoclaw/videoCapture.ts similarity index 100% rename from server/nemoclaw/videoCapture.ts rename to workers/node/nemoclaw/videoCapture.ts diff --git a/server/pipeline/authority/defaultTiers.test.ts b/workers/node/pipeline/authority/defaultTiers.test.ts similarity index 100% rename from server/pipeline/authority/defaultTiers.test.ts rename to workers/node/pipeline/authority/defaultTiers.test.ts diff --git a/server/pipeline/authority/defaultTiers.ts b/workers/node/pipeline/authority/defaultTiers.ts similarity index 100% rename from server/pipeline/authority/defaultTiers.ts rename to workers/node/pipeline/authority/defaultTiers.ts diff --git a/server/pipeline/blocks/founder.test.ts b/workers/node/pipeline/blocks/founder.test.ts similarity index 100% rename from server/pipeline/blocks/founder.test.ts rename to workers/node/pipeline/blocks/founder.test.ts diff --git a/server/pipeline/blocks/founder.ts b/workers/node/pipeline/blocks/founder.ts similarity index 100% rename from server/pipeline/blocks/founder.ts rename to workers/node/pipeline/blocks/founder.ts diff --git a/server/pipeline/blocks/types.ts b/workers/node/pipeline/blocks/types.ts similarity index 100% rename from server/pipeline/blocks/types.ts rename to workers/node/pipeline/blocks/types.ts diff --git a/server/pipeline/changeDetector.test.ts b/workers/node/pipeline/changeDetector.test.ts similarity index 100% rename from server/pipeline/changeDetector.test.ts rename to workers/node/pipeline/changeDetector.test.ts diff --git a/server/pipeline/changeDetector.ts b/workers/node/pipeline/changeDetector.ts similarity index 100% rename from server/pipeline/changeDetector.ts rename to workers/node/pipeline/changeDetector.ts diff --git a/server/pipeline/diligenceJudge.test.ts b/workers/node/pipeline/diligenceJudge.test.ts similarity index 100% rename from server/pipeline/diligenceJudge.test.ts rename to workers/node/pipeline/diligenceJudge.test.ts diff --git a/server/pipeline/diligenceJudge.ts b/workers/node/pipeline/diligenceJudge.ts similarity index 100% rename from server/pipeline/diligenceJudge.ts rename to workers/node/pipeline/diligenceJudge.ts diff --git a/server/pipeline/diligenceLlmJudge.test.ts b/workers/node/pipeline/diligenceLlmJudge.test.ts similarity index 100% rename from server/pipeline/diligenceLlmJudge.test.ts rename to workers/node/pipeline/diligenceLlmJudge.test.ts diff --git a/server/pipeline/diligenceLlmJudge.ts b/workers/node/pipeline/diligenceLlmJudge.ts similarity index 100% rename from server/pipeline/diligenceLlmJudge.ts rename to workers/node/pipeline/diligenceLlmJudge.ts diff --git a/server/pipeline/diligenceProjectionWriter.test.ts b/workers/node/pipeline/diligenceProjectionWriter.test.ts similarity index 100% rename from server/pipeline/diligenceProjectionWriter.test.ts rename to workers/node/pipeline/diligenceProjectionWriter.test.ts diff --git a/server/pipeline/diligenceProjectionWriter.ts b/workers/node/pipeline/diligenceProjectionWriter.ts similarity index 100% rename from server/pipeline/diligenceProjectionWriter.ts rename to workers/node/pipeline/diligenceProjectionWriter.ts diff --git a/server/pipeline/extendedThinkingRunner.test.ts b/workers/node/pipeline/extendedThinkingRunner.test.ts similarity index 100% rename from server/pipeline/extendedThinkingRunner.test.ts rename to workers/node/pipeline/extendedThinkingRunner.test.ts diff --git a/server/pipeline/extendedThinkingRunner.ts b/workers/node/pipeline/extendedThinkingRunner.ts similarity index 100% rename from server/pipeline/extendedThinkingRunner.ts rename to workers/node/pipeline/extendedThinkingRunner.ts diff --git a/server/pipeline/grounding/index.test.ts b/workers/node/pipeline/grounding/index.test.ts similarity index 100% rename from server/pipeline/grounding/index.test.ts rename to workers/node/pipeline/grounding/index.test.ts diff --git a/server/pipeline/grounding/index.ts b/workers/node/pipeline/grounding/index.ts similarity index 100% rename from server/pipeline/grounding/index.ts rename to workers/node/pipeline/grounding/index.ts diff --git a/server/pipeline/hooks.ts b/workers/node/pipeline/hooks.ts similarity index 100% rename from server/pipeline/hooks.ts rename to workers/node/pipeline/hooks.ts diff --git a/server/pipeline/retryPolicy.test.ts b/workers/node/pipeline/retryPolicy.test.ts similarity index 100% rename from server/pipeline/retryPolicy.test.ts rename to workers/node/pipeline/retryPolicy.test.ts diff --git a/server/pipeline/retryPolicy.ts b/workers/node/pipeline/retryPolicy.ts similarity index 100% rename from server/pipeline/retryPolicy.ts rename to workers/node/pipeline/retryPolicy.ts diff --git a/server/pipeline/searchPipeline.test.ts b/workers/node/pipeline/searchPipeline.test.ts similarity index 100% rename from server/pipeline/searchPipeline.test.ts rename to workers/node/pipeline/searchPipeline.test.ts diff --git a/server/pipeline/searchPipeline.ts b/workers/node/pipeline/searchPipeline.ts similarity index 100% rename from server/pipeline/searchPipeline.ts rename to workers/node/pipeline/searchPipeline.ts diff --git a/server/pipeline/topicCompaction.test.ts b/workers/node/pipeline/topicCompaction.test.ts similarity index 100% rename from server/pipeline/topicCompaction.test.ts rename to workers/node/pipeline/topicCompaction.test.ts diff --git a/server/pipeline/topicCompaction.ts b/workers/node/pipeline/topicCompaction.ts similarity index 100% rename from server/pipeline/topicCompaction.ts rename to workers/node/pipeline/topicCompaction.ts diff --git a/server/pricingScraper.ts b/workers/node/pricingScraper.ts similarity index 100% rename from server/pricingScraper.ts rename to workers/node/pricingScraper.ts diff --git a/server/providerBus.d.ts b/workers/node/providerBus.d.ts similarity index 100% rename from server/providerBus.d.ts rename to workers/node/providerBus.d.ts diff --git a/server/providerBus.js b/workers/node/providerBus.js similarity index 100% rename from server/providerBus.js rename to workers/node/providerBus.js diff --git a/server/providerBus.js.map b/workers/node/providerBus.js.map similarity index 100% rename from server/providerBus.js.map rename to workers/node/providerBus.js.map diff --git a/server/providerBus.ts b/workers/node/providerBus.ts similarity index 100% rename from server/providerBus.ts rename to workers/node/providerBus.ts diff --git a/server/routes/execute.ts b/workers/node/routes/execute.ts similarity index 100% rename from server/routes/execute.ts rename to workers/node/routes/execute.ts diff --git a/server/routes/founderEpisodeConvex.ts b/workers/node/routes/founderEpisodeConvex.ts similarity index 100% rename from server/routes/founderEpisodeConvex.ts rename to workers/node/routes/founderEpisodeConvex.ts diff --git a/server/routes/harness.ts b/workers/node/routes/harness.ts similarity index 100% rename from server/routes/harness.ts rename to workers/node/routes/harness.ts diff --git a/server/routes/hyperloop.ts b/workers/node/routes/hyperloop.ts similarity index 100% rename from server/routes/hyperloop.ts rename to workers/node/routes/hyperloop.ts diff --git a/server/routes/improvementRoute.ts b/workers/node/routes/improvementRoute.ts similarity index 100% rename from server/routes/improvementRoute.ts rename to workers/node/routes/improvementRoute.ts diff --git a/server/routes/pipelineRoute.ts b/workers/node/routes/pipelineRoute.ts similarity index 100% rename from server/routes/pipelineRoute.ts rename to workers/node/routes/pipelineRoute.ts diff --git a/server/routes/productRoutes.ts b/workers/node/routes/productRoutes.ts similarity index 100% rename from server/routes/productRoutes.ts rename to workers/node/routes/productRoutes.ts diff --git a/server/routes/retentionBridge.ts b/workers/node/routes/retentionBridge.ts similarity index 100% rename from server/routes/retentionBridge.ts rename to workers/node/routes/retentionBridge.ts diff --git a/server/routes/search.ts b/workers/node/routes/search.ts similarity index 100% rename from server/routes/search.ts rename to workers/node/routes/search.ts diff --git a/server/routes/session.ts b/workers/node/routes/session.ts similarity index 100% rename from server/routes/session.ts rename to workers/node/routes/session.ts diff --git a/server/routes/share.ts b/workers/node/routes/share.ts similarity index 100% rename from server/routes/share.ts rename to workers/node/routes/share.ts diff --git a/server/routes/sharedContext.ts b/workers/node/routes/sharedContext.ts similarity index 100% rename from server/routes/sharedContext.ts rename to workers/node/routes/sharedContext.ts diff --git a/server/routes/sharedContextConvex.ts b/workers/node/routes/sharedContextConvex.ts similarity index 100% rename from server/routes/sharedContextConvex.ts rename to workers/node/routes/sharedContextConvex.ts diff --git a/server/routes/streamingSearch.ts b/workers/node/routes/streamingSearch.ts similarity index 100% rename from server/routes/streamingSearch.ts rename to workers/node/routes/streamingSearch.ts diff --git a/server/routes/subconscious.ts b/workers/node/routes/subconscious.ts similarity index 100% rename from server/routes/subconscious.ts rename to workers/node/routes/subconscious.ts diff --git a/server/routes/toolGraph.ts b/workers/node/routes/toolGraph.ts similarity index 100% rename from server/routes/toolGraph.ts rename to workers/node/routes/toolGraph.ts diff --git a/server/routes/tts.ts b/workers/node/routes/tts.ts similarity index 100% rename from server/routes/tts.ts rename to workers/node/routes/tts.ts diff --git a/server/routes/voiceCapture.ts b/workers/node/routes/voiceCapture.ts similarity index 100% rename from server/routes/voiceCapture.ts rename to workers/node/routes/voiceCapture.ts diff --git a/server/routes/watchlist.ts b/workers/node/routes/watchlist.ts similarity index 100% rename from server/routes/watchlist.ts rename to workers/node/routes/watchlist.ts diff --git a/server/routes/workspaceSync.ts b/workers/node/routes/workspaceSync.ts similarity index 100% rename from server/routes/workspaceSync.ts rename to workers/node/routes/workspaceSync.ts diff --git a/server/searchPipelineStateToResultPacket.test.ts b/workers/node/searchPipelineStateToResultPacket.test.ts similarity index 100% rename from server/searchPipelineStateToResultPacket.test.ts rename to workers/node/searchPipelineStateToResultPacket.test.ts diff --git a/server/searchRoute.test.ts b/workers/node/searchRoute.test.ts similarity index 100% rename from server/searchRoute.test.ts rename to workers/node/searchRoute.test.ts diff --git a/server/services/agentRouter.ts b/workers/node/services/agentRouter.ts similarity index 100% rename from server/services/agentRouter.ts rename to workers/node/services/agentRouter.ts diff --git a/server/services/sessionManager.ts b/workers/node/services/sessionManager.ts similarity index 100% rename from server/services/sessionManager.ts rename to workers/node/services/sessionManager.ts diff --git a/server/sharedContextRoute.test.ts b/workers/node/sharedContextRoute.test.ts similarity index 100% rename from server/sharedContextRoute.test.ts rename to workers/node/sharedContextRoute.test.ts diff --git a/server/streamingSearchRoute.test.ts b/workers/node/streamingSearchRoute.test.ts similarity index 100% rename from server/streamingSearchRoute.test.ts rename to workers/node/streamingSearchRoute.test.ts diff --git a/server/stressTest.ts b/workers/node/stressTest.ts similarity index 100% rename from server/stressTest.ts rename to workers/node/stressTest.ts diff --git a/server/syncBridge.test.ts b/workers/node/syncBridge.test.ts similarity index 100% rename from server/syncBridge.test.ts rename to workers/node/syncBridge.test.ts diff --git a/server/syncBridge.ts b/workers/node/syncBridge.ts similarity index 100% rename from server/syncBridge.ts rename to workers/node/syncBridge.ts diff --git a/server/tsconfig.json b/workers/node/tsconfig.json similarity index 100% rename from server/tsconfig.json rename to workers/node/tsconfig.json diff --git a/server/vercel/searchApp.ts b/workers/node/vercel/searchApp.ts similarity index 100% rename from server/vercel/searchApp.ts rename to workers/node/vercel/searchApp.ts From 39cc157aa724a93bbcbedfd92d7818091900d64f Mon Sep 17 00:00:00 2001 From: hshum Date: Sun, 19 Jul 2026 18:24:15 -0700 Subject: [PATCH 3/5] =?UTF-8?q?wip(migration):=20import=20rewiring=20?= =?UTF-8?q?=E2=80=94=20@convex=20alias,=20HEAD-resolver=20repair,=20config?= =?UTF-8?q?s=20(checkpoint=202)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- .github/workflows/ci.yml | 56 +++++++++---------- .github/workflows/convex-deploy.yml | 2 +- .github/workflows/daily-tool-gen.yml | 4 +- .github/workflows/delta-dogfood-gate.yml | 8 +-- .github/workflows/dogfood-qa-gate.yml | 12 ++-- .github/workflows/nightly-design-loop.yml | 4 +- .github/workflows/tier-b-preview.yml | 6 +- api/scratchnode-wiki.js | 2 +- apps/web/src/adapters/unifiedAdapters.ts | 2 +- apps/web/src/components/Editor/Editor.tsx | 2 +- apps/web/src/components/kanban/TaskCard.tsx | 2 +- .../timelineRoadmap/TimelineRoadmapView.tsx | 2 +- apps/web/src/design-governance/index.ts | 2 +- .../src/features/admin/FundingDataReview.tsx | 4 +- .../admin/components/ApiUsageDisplay.tsx | 2 +- .../admin/components/CostDashboard.tsx | 2 +- .../admin/components/UsageDashboard.tsx | 2 +- .../dashboards/ComponentMetricsDashboard.tsx | 2 +- .../dashboards/HITLAnalyticsDashboard.tsx | 2 +- .../RecommendationAnalyticsDashboard.tsx | 2 +- .../authority/NotebookAuthorityControl.tsx | 2 +- .../agents/components/AgentMarketplace.tsx | 2 +- .../agents/components/AgentSidebar.tsx | 2 +- .../components/AutonomousOperationsPanel.tsx | 2 +- .../agents/components/ConvexJarvisHUD.tsx | 4 +- .../FastAgentPanel.AgentTasksTab.tsx | 2 +- .../FastAgentPanel.BriefTab.tsx | 2 +- .../FastAgentPanel.EditsTab.tsx | 2 +- .../FastAgentPanel.FileUpload.tsx | 4 +- .../FastAgentPanel.InputBar.tsx | 2 +- .../FastAgentPanel/FastAgentPanel.Memory.tsx | 2 +- .../FastAgentPanel.MemoryPreview.tsx | 2 +- .../FastAgentPanel.PromptEnhancer.tsx | 2 +- .../FastAgentPanel.Scratchpad.tsx | 2 +- .../FastAgentPanel.SkillsPanel.tsx | 2 +- .../FastAgentPanel.TraceAuditPanel.tsx | 2 +- .../FastAgentPanel.UIMessageBubble.tsx | 2 +- .../FastAgentPanel/FastAgentPanel.tsx | 6 +- .../FastAgentPanel/HumanRequestCard.tsx | 4 +- .../FastAgentPanel/ResourceLinkCard.tsx | 2 +- ...FastAgentUIMessageBubble.contract.test.tsx | 2 +- .../__tests__/InputBar.parity.test.tsx | 2 +- .../FastAgentPanel/types/message.ts | 2 +- .../components/FastAgentPanel/types/thread.ts | 2 +- .../components/FreeModelRankingsPanel.tsx | 2 +- .../agents/components/HumanApprovalQueue.tsx | 4 +- .../components/NotificationActivityPanel.tsx | 2 +- .../components/OracleControlTowerPanel.tsx | 2 +- .../TaskManager/TaskManagerView.tsx | 4 +- .../TaskManager/TaskSessionDetail.tsx | 4 +- .../agents/components/TaskManager/types.ts | 2 +- .../agents/components/TopicCanvasPanel.tsx | 2 +- .../agents/components/WorkspaceGrid.tsx | 2 +- .../agents/context/SelectionContext.tsx | 2 +- .../agents/hooks/useAgentNavigation.ts | 2 +- .../agents/hooks/useAnonymousSession.ts | 2 +- .../src/features/agents/views/AgentsHub.tsx | 2 +- .../benchmarks/views/WorkbenchView.tsx | 2 +- .../calendar/components/CalendarHomeHub.tsx | 2 +- .../calendar/components/EventEditorPanel.tsx | 4 +- .../calendar/components/MiniMonthCalendar.tsx | 4 +- .../calendar/components/TaskEditorPanel.tsx | 4 +- .../components/agenda/AgendaEditorPopover.tsx | 2 +- .../components/agenda/AgendaMiniRow.tsx | 2 +- .../components/agenda/InlineEventEditor.tsx | 4 +- .../components/agenda/InlineTaskEditor.tsx | 4 +- .../agenda/MiniAgendaEditorPanel.tsx | 2 +- .../calendar/hooks/useCalendarAgenda.ts | 4 +- .../features/calendar/views/CalendarView.tsx | 4 +- .../components/EntityDisambiguationCard.tsx | 2 +- .../chat/hooks/useRollbackInterceptor.ts | 2 +- .../components/ReceiptApprovalQueue.tsx | 2 +- .../components/SyncProvenanceBadge.tsx | 2 +- .../controlPlane/views/ActionReceiptFeed.tsx | 2 +- .../controlPlane/views/DelegationShowcase.tsx | 2 +- .../src/features/designKit/exact/ExactKit.tsx | 2 +- .../components/DocumentBreadcrumbs.tsx | 4 +- .../documents/components/DocumentGrid.tsx | 2 +- .../documents/components/DocumentHeader.tsx | 4 +- .../components/DocumentRecommendations.tsx | 2 +- .../components/DocumentSidebarPanel.tsx | 2 +- .../documents/components/DocumentsHomeHub.tsx | 4 +- .../components/DocumentsPlannerOverlays.tsx | 2 +- .../components/DocumentsPlannerSurface.tsx | 2 +- .../components/DocumentsTabContent.tsx | 4 +- .../components/DocumentsWorkspaceSurface.tsx | 2 +- .../documentsHub/DocumentsSidebar.tsx | 2 +- .../documentsHub/cards/DocumentCard.tsx | 4 +- .../context/DocumentsHubContext.tsx | 2 +- .../kanban/KanbanSortableItem.tsx | 2 +- .../documentsHub/pills/RefsPills.tsx | 4 +- .../components/documentsHub/planner/types.ts | 2 +- .../documentsHub/rows/DocumentRow.tsx | 4 +- .../components/documentsHub/rows/TaskRow.tsx | 4 +- .../components/documentsHub/types.ts | 2 +- .../documentsHub/utils/documentHelpers.ts | 2 +- .../documentsHub/views/AgendaListSection.tsx | 2 +- .../viewModes/DocumentsCardsView.tsx | 2 +- .../viewModes/DocumentsListView.tsx | 2 +- .../viewModes/DocumentsSegmentedView.tsx | 2 +- .../context/DocumentsPlannerProvider.tsx | 2 +- .../src/features/documents/context/types.ts | 2 +- .../documents/editors/DocumentMiniEditor.tsx | 4 +- .../documents/editors/DossierMiniEditor.tsx | 4 +- .../documents/editors/DualCreateMiniPanel.tsx | 4 +- .../documents/editors/DualEditMiniPanel.tsx | 4 +- .../documents/editors/PopoverMiniEditor.tsx | 2 +- .../editors/SpreadsheetMiniEditor.tsx | 4 +- .../documents/hooks/useDocumentOrdering.ts | 2 +- .../documents/hooks/useDocumentOverlays.ts | 4 +- .../documents/hooks/useDocumentSelection.ts | 4 +- .../documents/hooks/useDocumentUpload.ts | 4 +- .../hooks/useDocumentWorkspaceState.ts | 2 +- .../documents/hooks/usePlannerAgendaData.ts | 2 +- .../documents/hooks/usePlannerController.ts | 2 +- .../documents/hooks/usePlannerEditor.ts | 2 +- .../documents/hooks/usePlannerMutations.ts | 2 +- .../spreadsheets/SpreadsheetSheetView.tsx | 4 +- .../surfaces/spreadsheets/SpreadsheetsHub.tsx | 4 +- .../features/documents/views/DocumentView.tsx | 4 +- .../features/documents/views/FileViewer.tsx | 4 +- .../documents/views/PublicDocuments.tsx | 4 +- .../documents/views/SpreadsheetView.tsx | 4 +- .../dogfood/components/TasteBenchPanel.tsx | 2 +- .../dogfood/views/DogfoodReviewView.tsx | 2 +- .../editor/components/UnifiedEditor.tsx | 4 +- .../UnifiedEditor/DeepAgentProgress.tsx | 2 +- .../components/UnifiedEditor/PmBridge.tsx | 2 +- .../components/UnifiedEditor/ShadowTiptap.tsx | 2 +- .../UnifiedEditor/useInlineFastAgent.ts | 4 +- .../features/editor/hooks/useEditorSeeding.ts | 2 +- .../features/editor/hooks/useFileUpload.ts | 2 +- .../features/editor/hooks/useHashtagMenu.ts | 4 +- .../features/editor/hooks/useMentionMenu.ts | 2 +- .../features/editor/hooks/usePendingEdits.ts | 4 +- .../editor/hooks/useProposalSystem.ts | 4 +- apps/web/src/features/editor/types.ts | 2 +- .../components/notebook/BlockProvenance.tsx | 2 +- .../notebook/DiligenceDriftBanner.tsx | 2 +- .../notebook/EntityNotebookLive.tsx | 4 +- .../components/notebook/ExtendedRunPanel.tsx | 4 +- .../components/notebook/MentionPicker.tsx | 2 +- .../notebook/NotebookBlockEditor.tsx | 2 +- .../entityNotebookAuthorityHelpers.test.ts | 2 +- .../entityNotebookAuthorityHelpers.ts | 2 +- .../notebook/entityNotebookLiveHelpers.ts | 2 +- .../features/entities/views/EntityPage.tsx | 2 +- .../views/EvolutionDashboardView.tsx | 2 +- .../events/views/ScratchnodePrivateBridge.tsx | 2 +- .../events/views/ScratchnodeWikiBridge.tsx | 2 +- .../components/ApprovalCard.tsx | 4 +- .../components/FinancialOperatorOverlay.tsx | 2 +- .../components/FinancialOperatorTimeline.tsx | 4 +- .../financialOperator/components/StepCard.tsx | 2 +- .../components/WorkspaceComposer.tsx | 4 +- .../components/WorkspaceModePane.tsx | 4 +- .../src/features/financialOperator/types.ts | 2 +- .../views/FinancialOperatorDemo.tsx | 4 +- .../src/features/home/views/HomeLanding.tsx | 2 +- .../mcp/components/SyncBridgeAccountPanel.tsx | 2 +- .../src/features/mcp/views/McpLedgerPage.tsx | 2 +- .../missions/views/MissionControlView.tsx | 2 +- .../monitoring/components/PRSuggestions.tsx | 2 +- .../components/PipelineRollupPanel.tsx | 2 +- .../HypothesisScorecard.tsx | 2 +- .../SignalMetricsDashboard.tsx | 2 +- .../components/social/EntityFindingsPanel.tsx | 4 +- .../social/LinkedInPostArchiveView.tsx | 2 +- .../narrative/hooks/useCorrelations.ts | 4 +- .../features/narrative/hooks/useHypotheses.ts | 4 +- .../narrative/hooks/useNarrativeEvents.ts | 4 +- .../narrative/hooks/useNarrativeThreads.ts | 2 +- .../narrative/hooks/useSignalMetrics.ts | 4 +- apps/web/src/features/narrative/types.ts | 2 +- .../notebook/hooks/useEntityExpansion.ts | 2 +- .../observability/views/ObservabilityView.tsx | 2 +- .../onboarding/views/TutorialPage.tsx | 4 +- .../pipelines/views/PipelineEvalScorecard.tsx | 2 +- .../pipelines/views/PipelineLauncher.tsx | 2 +- .../pipelines/views/PipelineRunsPanel.tsx | 2 +- .../views/PipelineSchedulesPanel.tsx | 4 +- .../components/ChatAssistantMessage.tsx | 2 +- .../components/UniversalComposer.test.tsx | 2 +- .../edition/EvidenceChecklistStrip.tsx | 2 +- .../components/edition/FormatStrip.tsx | 2 +- .../components/edition/VideoLiteEmbed.tsx | 2 +- .../redesign/hooks/useActiveHypotheses.ts | 4 +- .../redesign/hooks/useCapabilitiesDelta.ts | 2 +- .../redesign/hooks/useEditionFootnotes.ts | 2 +- .../features/redesign/hooks/useInboxLive.ts | 2 +- .../hooks/useLatestDailyBriefSnapshot.ts | 2 +- .../redesign/hooks/useLiveArtifacts.ts | 2 +- .../redesign/hooks/useRedesignChatRun.ts | 2 +- .../redesign/hooks/useTemporalEdition.ts | 2 +- .../features/redesign/hooks/useTodayPulse.ts | 2 +- .../redesign/hooks/useTopForecasts.ts | 2 +- .../pages/ScratchnodeNoteDetailPage.tsx | 2 +- .../redesign/surfaces/ChatSurface.tsx | 2 +- .../surfaces/EditorialHomeSurface.tsx | 2 +- .../surfaces/ScratchnodeEventsSurface.tsx | 2 +- .../research/components/CardInspector.tsx | 2 +- .../components/ChartAnnotationLayer.tsx | 2 +- .../components/EnhancedPersonalPulse.tsx | 2 +- .../components/EntityContextDrawer.tsx | 2 +- .../research/components/ForYouFeed.tsx | 2 +- .../research/components/ForecastCockpit.tsx | 4 +- .../research/components/GitHubExplorer.tsx | 2 +- .../components/IndustryUpdatesPanel.tsx | 2 +- .../research/components/InstantSearchBar.tsx | 2 +- .../research/components/LiveDashboard.tsx | 2 +- .../research/components/LiveRadarWidget.tsx | 2 +- .../components/ModelComparisonTable.tsx | 2 +- .../research/components/MorningDigest.tsx | 2 +- .../research/components/PaperDetailsCard.tsx | 2 +- .../research/components/PersonalAnalytics.tsx | 2 +- .../research/components/PersonalDashboard.tsx | 2 +- .../components/RecommendationCard.tsx | 2 +- .../research/components/RelatedFeedsGrid.tsx | 2 +- .../research/components/RepoSignalPanel.tsx | 2 +- .../research/components/RepoStatsPanel.tsx | 2 +- .../components/ScrollytellingLayout.tsx | 2 +- .../components/SignalMomentumMini.tsx | 2 +- .../components/SignalTimeseriesPanel.tsx | 2 +- .../research/components/StackImpactPanel.tsx | 2 +- .../components/StrategyMetricsPanel.tsx | 2 +- .../research/components/WhatChangedPanel.tsx | 2 +- .../dossier/DossierMediaGallery.tsx | 2 +- .../components/newsletter/NewsletterView.tsx | 2 +- .../research/contexts/FocusSyncContext.tsx | 2 +- .../features/research/hooks/useBriefData.ts | 2 +- .../research/hooks/useEntityHoverData.ts | 2 +- .../features/research/hooks/useFeedData.ts | 2 +- .../research/hooks/useFocusSyncDebounced.ts | 2 +- .../research/hooks/usePersonalBrief.ts | 2 +- .../research/hooks/useReaderContent.ts | 2 +- .../research/sections/DashboardSection.tsx | 2 +- .../research/sections/DealListSection.tsx | 2 +- apps/web/src/features/research/types/index.ts | 2 +- .../research/utils/newsletterParser.ts | 6 +- .../features/research/views/CinematicHome.tsx | 2 +- .../features/research/views/DossierViewer.tsx | 4 +- .../research/views/EntityProfilePage.tsx | 2 +- .../research/views/FundingBriefView.tsx | 2 +- .../research/views/LiveDossierDocument.tsx | 4 +- .../research/views/PublicSignalsLog.tsx | 2 +- .../research/views/ReportDetailPage.tsx | 2 +- .../research/views/ReportDetailWorkspace.tsx | 2 +- .../features/research/views/ResearchHub.tsx | 2 +- .../research/views/WatchlistsView.tsx | 2 +- .../research/views/WorldMonitorView.tsx | 2 +- .../share/components/ShareEntityButton.tsx | 2 +- .../share/views/PublicEntityShareView.tsx | 2 +- .../strategy/views/ExecutionTraceView.tsx | 4 +- .../voice/components/VoiceAuditFeed.tsx | 2 +- .../voice/components/VoiceCostBadge.tsx | 2 +- .../workspace/lib/useEventCaptureRecorder.ts | 2 +- .../lib/useEventWorkspacePersistence.ts | 2 +- apps/web/src/hooks/contextPills.tsx | 2 +- apps/web/src/hooks/useAgentLanes.ts | 2 +- .../src/hooks/useArtifactStreamConsumer.ts | 4 +- apps/web/src/hooks/useCockpitRouting.ts | 2 +- apps/web/src/hooks/useConvexSearch.ts | 2 +- apps/web/src/hooks/useCurrentUser.ts | 4 +- apps/web/src/hooks/useEngagementTracking.ts | 2 +- apps/web/src/hooks/useGlobalEventListeners.ts | 2 +- apps/web/src/hooks/useInlineCitations.ts | 2 +- apps/web/src/hooks/useIntentTelemetry.ts | 2 +- apps/web/src/hooks/useMcp.ts | 4 +- apps/web/src/hooks/useOracleSession.ts | 4 +- apps/web/src/hooks/usePlannerState.ts | 4 +- .../web/src/hooks/useRealtimeTranscription.ts | 2 +- apps/web/src/hooks/useRecommendations.ts | 4 +- .../src/hooks/useStreamingTranscription.ts | 2 +- apps/web/src/hooks/useSwarm.ts | 4 +- apps/web/src/hooks/useUnifiedItems.ts | 2 +- apps/web/src/hooks/useViewWebMcpTools.ts | 2 +- apps/web/src/hooks/useVoiceInput.ts | 2 +- apps/web/src/hooks/useWebMcpProvider.ts | 2 +- apps/web/src/layouts/ActiveSurfaceHost.tsx | 2 +- apps/web/src/layouts/CockpitLayout.tsx | 2 +- .../chrome/HashtagQuickNotePopover.tsx | 2 +- .../commandPalette/useFederatedSearch.ts | 2 +- apps/web/src/lib/convexApi.ts | 6 +- apps/web/src/lib/pdf/usePDFGenerator.ts | 2 +- apps/web/src/lib/shapes/events.ts | 2 +- apps/web/src/lib/shapes/ids.ts | 2 +- apps/web/src/lib/time/calendarHelpers.ts | 2 +- apps/web/src/main.tsx | 2 +- apps/web/src/shared/artifacts.ts | 2 +- .../shared/components/MiniEditorPopover.tsx | 4 +- .../shared/components/PresenceIndicator.tsx | 4 +- apps/web/src/shared/ui/EmptyState.tsx | 2 +- apps/web/src/shared/ui/SidebarUpcoming.tsx | 2 +- .../src/test/agentResponseFlywheel.test.ts | 2 +- .../src/test/dcfSpreadsheetMapping.test.ts | 2 +- ...scratchnodeLaunchGoalLoopSelection.test.ts | 2 +- apps/web/src/test/successLoopsLib.test.ts | 2 +- .../web/src/test/taskSessionProofPack.test.ts | 2 +- apps/web/src/test/trajectoryScore.test.ts | 2 +- backend/convex/_generated/api.d.ts | 44 ++++++++++++++- .../convex/actions/externalOrchestrator.ts | 2 +- .../google/googleInteractionsAdapter.ts | 2 +- .../domains/agents/core/coordinatorAgent.ts | 2 +- .../agents/core/delegation/delegationTools.ts | 2 +- .../domains/agents/core/multiAgentWorkflow.ts | 2 +- .../documentAgentWithMetaTools.ts | 2 +- .../convex/domains/agents/fastAgentChat.ts | 2 +- .../fastAgentCitationProvenance.guard.test.ts | 2 +- .../agents/fastAgentDocumentCreation.ts | 2 +- ...gentPanelStreaming.anonymousAccess.test.ts | 2 +- .../domains/agents/fastAgentPanelStreaming.ts | 8 +-- .../agents/orchestrator/geminiVideoWrapper.ts | 2 +- .../convex/domains/agents/responseFlywheel.ts | 2 +- .../domains/agents/runtimeRouting.test.ts | 2 +- .../convex/domains/agents/runtimeRouting.ts | 2 +- backend/convex/domains/ai/ai.ts | 2 +- backend/convex/domains/ai/genai.ts | 2 +- backend/convex/domains/ai/metadataAnalyzer.ts | 2 +- backend/convex/domains/ai/morningDigest.ts | 2 +- .../convex/domains/documents/fileAnalysis.ts | 2 +- .../convex/domains/documents/fileSearch.ts | 2 +- .../evaluation/dogfood/screenshotQa.ts | 2 +- .../domains/evaluation/dogfood/videoQa.ts | 2 +- .../domains/evaluation/eval/runBatch.ts | 2 +- .../domains/evaluation/personaEpisodeEval.ts | 2 +- .../scenarios/researchUltraLongChatEval.ts | 2 +- .../scenarios/ultraLongChatRealPathEval.ts | 2 +- .../evaluation/ultraLongChat/batchRunner.ts | 2 +- .../integrations/billing/rateLimiting.ts | 2 +- backend/convex/domains/integrations/gmail.ts | 2 +- backend/convex/domains/integrations/resend.ts | 2 +- .../integrations/voice/voiceActions.ts | 2 +- .../domains/knowledge/entityInsights.ts | 4 +- backend/convex/domains/mcp/mcpToolLedger.ts | 2 +- .../domains/product/blockProsemirror.test.ts | 4 +- .../domains/product/blockProsemirror.ts | 4 +- backend/convex/domains/product/blocks.ts | 2 +- backend/convex/domains/product/chat.ts | 8 +-- .../product/diligenceCheckpointStructuring.ts | 2 +- .../domains/product/diligenceLlmJudgeRuns.ts | 2 +- .../product/diligenceProjectionRuntime.ts | 2 +- .../domains/product/diligenceProjections.ts | 6 +- backend/convex/domains/product/entities.ts | 2 +- .../convex/domains/product/entityMemory.ts | 4 +- .../domains/product/extendedThinking.ts | 2 +- .../convex/domains/product/nudgeHelpers.ts | 2 +- backend/convex/domains/product/nudges.ts | 4 +- backend/convex/domains/product/reports.ts | 2 +- .../domains/product/systemIntelligence.ts | 2 +- backend/convex/domains/publicResearch/core.ts | 2 +- backend/convex/domains/redesign/chatRuns.ts | 8 +-- .../convex/domains/research/angleRegistry.ts | 4 +- .../convex/domains/research/briefGenerator.ts | 6 +- .../research/dailyBriefPersonalOverlay.ts | 2 +- .../domains/research/dailyBriefWorker.ts | 2 +- .../domains/research/dashboardMetrics.ts | 2 +- .../domains/research/dashboardQueries.ts | 2 +- backend/convex/domains/research/dealFlow.ts | 2 +- .../convex/domains/research/executiveBrief.ts | 8 +-- .../convex/domains/research/lensRegistry.ts | 4 +- .../domains/research/modelComparison.ts | 2 +- .../domains/research/narrative/didYouKnow.ts | 2 +- .../research/narrative/didYouKnowSources.ts | 2 +- .../freshNewsDidYouKnowExperiment.ts | 2 +- .../research/narrative/mutations/dedup.ts | 2 +- .../narrative/newsroom/agents/analystAgent.ts | 2 +- .../newsroom/agents/publisherAgent.ts | 2 +- .../narrative/newsroom/agents/scoutAgent.ts | 2 +- .../convex/domains/research/paperDetails.ts | 2 +- .../convex/domains/research/publicDossier.ts | 2 +- backend/convex/domains/research/repoScout.ts | 2 +- .../domains/research/researchRunAction.ts | 4 +- .../convex/domains/research/stackImpact.ts | 2 +- .../domains/research/strategyMetrics.ts | 2 +- .../domains/search/searchPipelineNode.ts | 16 +++--- .../convex/domains/social/postDedupAction.ts | 2 +- .../verification/claimVerificationAction.ts | 2 +- .../verification/multiSourceValidation.ts | 2 +- backend/convex/events.ts | 4 +- backend/convex/globalResearch/artifacts.ts | 2 +- backend/convex/globalResearch/cacheSimple.ts | 2 +- backend/convex/globalResearch/mentions.ts | 2 +- backend/convex/globalResearch/queries.ts | 2 +- backend/convex/globalResearch/runs.ts | 2 +- backend/convex/lib/artifactModels.ts | 2 +- backend/convex/lib/artifactPersistence.ts | 2 +- backend/convex/lib/withArtifactPersistence.ts | 4 +- backend/convex/tags_actions.ts | 2 +- .../tools/calendar/emailEventExtractor.ts | 2 +- backend/convex/tools/document/contextTools.ts | 2 +- backend/convex/tools/evaluation/evaluator.ts | 2 +- .../tools/integration/orchestrationTools.ts | 2 +- .../tools/integration/peopleProfileSearch.ts | 2 +- .../tools/media/entityExtractionTools.ts | 2 +- .../convex/tools/media/recentNewsSearch.ts | 2 +- components.json | 2 +- convex.json | 3 + package.json | 28 +++++----- .../src/__tests__/forecastingScoring.test.ts | 2 +- .../src/benchmarks/testProviderBus.ts | 4 +- packages/mcp-local/src/security/index.ts | 2 +- playwright.config.ts | 2 +- scripts/attrition/dcf-validation.ts | 4 +- scripts/debug-anonymous-raw.ts | 2 +- scripts/debug-anonymous-thread.ts | 2 +- scripts/debug-messages.ts | 2 +- scripts/debug-raw-messages.ts | 2 +- scripts/debug-thread.ts | 2 +- .../deeptrace/canary-benchmark.ts | 2 +- scripts/export-dailybrief-ntfy-results.ts | 2 +- scripts/fixIvoAIFunding.ts | 2 +- scripts/generate-live-digest.ts | 2 +- scripts/manualEnrichLocations.ts | 4 +- scripts/migrate-evaluation-scenarios.ts | 2 +- scripts/nodebench-cli.ts | 2 +- scripts/qa/liveMultipleMeBackendQa.ts | 10 ++-- scripts/run-agent-eval.ts | 2 +- scripts/run-baseline-eval.ts | 2 +- scripts/run-bench.mjs | 2 +- scripts/run-benchmark-suite.ts | 2 +- scripts/run-comprehensive-eval.ts | 2 +- scripts/run-expanded-eval.ts | 2 +- scripts/run-feature-eval.ts | 2 +- scripts/run-fully-parallel-eval.ts | 2 +- scripts/run-jpm-analysis.ts | 2 +- scripts/run-live-api-smoke.ts | 2 +- scripts/run-live-eval.ts | 2 +- scripts/run-load-test.ts | 2 +- scripts/run-parallel-eval.ts | 2 +- scripts/run-persona-episode-eval.ts | 4 +- scripts/run-postable-benchmarks.ts | 2 +- scripts/run-regression-suite.ts | 2 +- scripts/run-scenario-catalog-runtime-eval.ts | 4 +- scripts/run-smoke-test.mjs | 2 +- scripts/run-system-e2e.ts | 2 +- scripts/run-ultra-long-chat-bench.mjs | 2 +- scripts/seed-entity-contexts.ts | 2 +- scripts/seed-q4-2025-funding.ts | 2 +- scripts/test-adaptive-enrichment.ts | 2 +- scripts/test-agent-digest.ts | 6 +- scripts/test-agent.ts | 2 +- scripts/test-anonymous-flow.ts | 2 +- scripts/test-autonomous-research.ts | 2 +- scripts/test-claim-classifier.ts | 4 +- scripts/test-dd-pipeline.ts | 2 +- scripts/test-deep-research-e2e.ts | 2 +- scripts/test-deep-research-offline-eval.ts | 4 +- scripts/test-digest-entity-e2e.ts | 12 ++-- scripts/test-email-system.ts | 2 +- scripts/test-entity-query.ts | 2 +- scripts/test-instagram-ingestion.ts | 2 +- scripts/test-linkedin-posting.ts | 2 +- scripts/test-multi-sdk-adapters.ts | 16 +++--- scripts/test-single-provider.ts | 2 +- scripts/test-single-scenario.ts | 2 +- scripts/test-streamasync-direct.ts | 2 +- scripts/test-verification-e2e.js | 2 +- scripts/trigger-pdf-extraction.ts | 2 +- scripts/ui/runUiTraversalAudit.ts | 2 +- scripts/verify-rocketride-evidence-bundle.ts | 4 +- tailwind.config.js | 2 +- tsconfig.app.json | 14 +++-- tsconfig.json | 9 +-- vite.config.ts | 20 +++++-- vitest.config.ts | 10 ++-- workers/node/agentHarness.ts | 2 +- workers/node/agents/voiceAgent.ts | 2 +- workers/node/harnessRuntime.test.ts | 2 +- workers/node/harnessRuntime.ts | 4 +- workers/node/hyperloopRoute.test.ts | 4 +- workers/node/index.ts | 4 +- workers/node/lib/canonicalModels.ts | 2 +- workers/node/lib/skillExtractor.ts | 2 +- workers/node/lib/traceDistillation.ts | 2 +- workers/node/lib/trajectoryStore.ts | 2 +- workers/node/mcpGateway.ts | 2 +- workers/node/routes/founderEpisodeConvex.ts | 2 +- workers/node/routes/harness.ts | 2 +- workers/node/routes/hyperloop.ts | 4 +- workers/node/routes/improvementRoute.ts | 4 +- workers/node/routes/pipelineRoute.ts | 4 +- workers/node/routes/search.ts | 22 ++++---- workers/node/routes/session.ts | 2 +- workers/node/routes/sharedContext.ts | 4 +- workers/node/routes/sharedContextConvex.ts | 2 +- workers/node/routes/subconscious.ts | 8 +-- workers/node/routes/toolGraph.ts | 2 +- workers/node/routes/voiceCapture.ts | 2 +- workers/node/searchRoute.test.ts | 2 +- workers/node/syncBridge.test.ts | 2 +- workers/node/syncBridge.ts | 4 +- workers/node/tsconfig.json | 6 +- workers/node/vercel/searchApp.ts | 16 +++--- 493 files changed, 782 insertions(+), 724 deletions(-) create mode 100644 convex.json diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a675d14e..75bac6b0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,7 +59,7 @@ jobs: run: npx tsc --noEmit --pretty false - name: Convex typecheck - run: npx tsc -p convex --noEmit --pretty false + run: npx tsc -p backend/convex --noEmit --pretty false runtime-smoke: name: Runtime smoke @@ -79,31 +79,31 @@ jobs: - name: Runtime smoke tests run: > npx vitest run - server/lib/jsonObjectParser.test.ts - server/agentHarnessStructuredOutput.test.ts - src/features/product/lib/captureRouter.test.ts - src/features/workspace/lib/eventWorkspacePersistence.test.ts - src/features/workspace/data/eventWorkspaceMemory.test.ts - convex/__tests__/scratchnode.events.test.ts - server/searchRoute.test.ts - convex/workflows/ainewsBriefFormat.test.ts - convex/__tests__/agentRuntimeTierFallback.test.ts - src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx - convex/domains/agents/autonomy/autonomy.integration.test.ts - convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts - convex/domains/evaluation/tasteBench.integration.test.ts - convex/domains/evaluation/tasteBenchPolicy.test.ts - convex/domains/product/diligenceTenantIsolation.test.ts - src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts - src/features/agents/authority/AuthorityControl.test.tsx - src/features/agents/authority/DelegatedReceiptRow.test.tsx - src/features/dogfood/components/TasteBenchPanel.test.tsx - src/features/evaluation/data/tasteBenchScenario.test.ts + workers/node/lib/jsonObjectParser.test.ts + workers/node/agentHarnessStructuredOutput.test.ts + apps/web/src/features/product/lib/captureRouter.test.ts + apps/web/src/features/workspace/lib/eventWorkspacePersistence.test.ts + apps/web/src/features/workspace/data/eventWorkspaceMemory.test.ts + backend/convex/__tests__/scratchnode.events.test.ts + workers/node/searchRoute.test.ts + backend/convex/workflows/ainewsBriefFormat.test.ts + backend/convex/__tests__/agentRuntimeTierFallback.test.ts + apps/web/src/features/agents/components/FastAgentPanel/__tests__/RunState.test.tsx + backend/convex/domains/agents/autonomy/autonomy.integration.test.ts + backend/convex/domains/agents/autonomy/autonomyTasteBench.integration.test.ts + backend/convex/domains/evaluation/tasteBench.integration.test.ts + backend/convex/domains/evaluation/tasteBenchPolicy.test.ts + backend/convex/domains/product/diligenceTenantIsolation.test.ts + apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts + apps/web/src/features/agents/authority/AuthorityControl.test.tsx + apps/web/src/features/agents/authority/DelegatedReceiptRow.test.tsx + apps/web/src/features/dogfood/components/TasteBenchPanel.test.tsx + apps/web/src/features/evaluation/data/tasteBenchScenario.test.ts scripts/__tests__/releaseWorkflowContracts.test.ts - convex/domains/redesign/chatRuns.responseShape.test.ts - convex/domains/redesign/chatRuns.contract.test.ts - src/features/redesign/components/UniversalComposer.test.tsx - src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx + backend/convex/domains/redesign/chatRuns.responseShape.test.ts + backend/convex/domains/redesign/chatRuns.contract.test.ts + apps/web/src/features/redesign/components/UniversalComposer.test.tsx + apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.test.tsx scratchnode-launch-gates: name: ScratchNode launch gates @@ -126,9 +126,9 @@ jobs: - name: Verify demo route gate and live route honesty run: > npx playwright test - tests/e2e/vercel-preview-security.spec.ts - tests/e2e/scratchnode-demo-route-gate.spec.ts - tests/e2e/scratchnode-live-route-honesty.spec.ts + evals/e2e/vercel-preview-security.spec.ts + evals/e2e/scratchnode-demo-route-gate.spec.ts + evals/e2e/scratchnode-live-route-honesty.spec.ts --project=chromium --workers=1 --reporter=list diff --git a/.github/workflows/convex-deploy.yml b/.github/workflows/convex-deploy.yml index 4671bbd0..b1149997 100644 --- a/.github/workflows/convex-deploy.yml +++ b/.github/workflows/convex-deploy.yml @@ -24,7 +24,7 @@ on: branches: - main paths: - - "convex/**" + - "backend/convex/**" - "shared/**" - "package.json" - "package-lock.json" diff --git a/.github/workflows/daily-tool-gen.yml b/.github/workflows/daily-tool-gen.yml index 77ba1278..88426c1b 100644 --- a/.github/workflows/daily-tool-gen.yml +++ b/.github/workflows/daily-tool-gen.yml @@ -80,7 +80,7 @@ jobs: if: steps.typecheck.outcome == 'success' working-directory: packages/mcp-local run: | - npx vitest run src/__tests__/tools.test.ts 2>&1 | tee /tmp/vitest-output.txt + npx vitest run apps/web/src/__tests__/tools.test.ts 2>&1 | tee /tmp/vitest-output.txt exit ${PIPESTATUS[0]} - name: Create pull request @@ -129,7 +129,7 @@ jobs: ### Test Plan - Review the generated tool schema and handler logic - Verify the tool follows existing patterns - - Run `npx vitest run src/__tests__/tools.test.ts` locally + - Run `npx vitest run apps/web/src/__tests__/tools.test.ts` locally - Test via stdio: `echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"${TOOL_NAME}","arguments":{}}}' | node dist/index.js` --- diff --git a/.github/workflows/delta-dogfood-gate.yml b/.github/workflows/delta-dogfood-gate.yml index 3fd12674..1f94e4f9 100644 --- a/.github/workflows/delta-dogfood-gate.yml +++ b/.github/workflows/delta-dogfood-gate.yml @@ -4,8 +4,8 @@ on: pull_request: paths: - "packages/mcp-local/**" - - "server/routes/search.ts" - - "server/searchRoute.test.ts" + - "workers/node/routes/search.ts" + - "workers/node/searchRoute.test.ts" - ".github/workflows/delta-dogfood-gate.yml" workflow_dispatch: @@ -31,8 +31,8 @@ jobs: - name: Typecheck Delta tool slice working-directory: packages/mcp-local - run: npx tsc --noEmit --module Node16 --moduleResolution Node16 --target ES2022 --lib ES2022 --strict --esModuleInterop --skipLibCheck --types node,vitest src/tools/deltaTools.ts src/__tests__/deltaDogfoodGate.test.ts src/__tests__/deltaTools.test.ts src/__tests__/founderDirectionAssessment.test.ts + run: npx tsc --noEmit --module Node16 --moduleResolution Node16 --target ES2022 --lib ES2022 --strict --esModuleInterop --skipLibCheck --types node,vitest apps/web/src/tools/deltaTools.ts apps/web/src/__tests__/deltaDogfoodGate.test.ts apps/web/src/__tests__/deltaTools.test.ts apps/web/src/__tests__/founderDirectionAssessment.test.ts - name: Run Delta self-dogfood gate working-directory: packages/mcp-local - run: npx vitest run src/__tests__/deltaDogfoodGate.test.ts src/__tests__/deltaTools.test.ts src/__tests__/founderDirectionAssessment.test.ts + run: npx vitest run apps/web/src/__tests__/deltaDogfoodGate.test.ts apps/web/src/__tests__/deltaTools.test.ts apps/web/src/__tests__/founderDirectionAssessment.test.ts diff --git a/.github/workflows/dogfood-qa-gate.yml b/.github/workflows/dogfood-qa-gate.yml index 5322cfa5..b033b5f8 100644 --- a/.github/workflows/dogfood-qa-gate.yml +++ b/.github/workflows/dogfood-qa-gate.yml @@ -6,11 +6,11 @@ on: - ".github/workflows/dogfood-qa-gate.yml" - "scripts/overstory/**" - "scripts/ui/**" - - "tests/e2e/**" - - "src/**/*.tsx" - - "src/**/*.ts" - - "src/**/*.css" - - "src/features/**" + - "evals/e2e/**" + - "apps/web/src/**/*.tsx" + - "apps/web/src/**/*.ts" + - "apps/web/src/**/*.css" + - "apps/web/src/features/**" - "public/dogfood/**" schedule: - cron: "0 6 * * *" @@ -61,7 +61,7 @@ jobs: - name: Capture screenshots + publish gallery run: | - npm run test:e2e -- tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 + npm run test:e2e -- evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 npm run dogfood:publish - name: Capture Scribe how-to diff --git a/.github/workflows/nightly-design-loop.yml b/.github/workflows/nightly-design-loop.yml index b4c914a7..e3a718fb 100644 --- a/.github/workflows/nightly-design-loop.yml +++ b/.github/workflows/nightly-design-loop.yml @@ -46,13 +46,13 @@ jobs: - name: Execute surface contracts (fails on drift) env: BASE_URL: http://127.0.0.1:4173 - run: npx playwright test tests/e2e/ui-contract-runner.spec.ts --project=chromium --workers=1 --reporter=line + run: npx playwright test evals/e2e/ui-contract-runner.spec.ts --project=chromium --workers=1 --reporter=line - name: Capture 4-variant screenshot set env: BASE_URL: http://127.0.0.1:4173 DOGFOOD_SCREENSHOT_DIR: nightly-captures - run: npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 --reporter=line + run: npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 --reporter=line - name: Upload screenshots if: always() diff --git a/.github/workflows/tier-b-preview.yml b/.github/workflows/tier-b-preview.yml index 2e689db2..726522e6 100644 --- a/.github/workflows/tier-b-preview.yml +++ b/.github/workflows/tier-b-preview.yml @@ -1,7 +1,7 @@ name: Tier B regression (preview) # The single highest-leverage check in this repo. Runs the full -# Tier B Playwright suite (tests/e2e/exact-kit-parity-prod.spec.ts) +# Tier B Playwright suite (evals/e2e/exact-kit-parity-prod.spec.ts) # against the Vercel PR preview URL BEFORE merge. # # Why this matters: A9 took 4 separate PRs to land on prod earlier @@ -98,7 +98,7 @@ jobs: # tests, __tests__/__mocks__ fixtures, and *.stories never reach the Vercel # bundle, so a PR that ONLY touches them cannot change the preview — and # must NOT burn the ~10-min preview-resolve poll. Without this, a - # convex/__tests__/*.test.ts PR matches the broad `convex` path and waits + # backend/convex/__tests__/*.test.ts PR matches the broad `convex` path and waits # the full 10 min to skip-green (the "why is Tier B taking forever" case). SHIPPING=$(echo "$CHANGED" | grep -vE '(\.test\.[cm]?tsx?$|\.spec\.[cm]?tsx?$|(^|/)__tests__/|(^|/)__mocks__/|\.stories\.[cm]?tsx?$)' || true) if [ -z "$SHIPPING" ]; then @@ -305,7 +305,7 @@ jobs: # one-flow-regression: full surface tour + A9 fallback + interactive chip behavior # ui-contract-runner: executes docs/design/ui-contract/surfaces/*.contract.json # (anchors, computed geometry, theme wiring, state copy) against the preview - npx playwright test tests/e2e/vercel-preview-security.spec.ts tests/e2e/exact-kit-parity-prod.spec.ts tests/e2e/one-flow-regression.spec.ts tests/e2e/ui-contract-runner.spec.ts --project=chromium --reporter=line + npx playwright test evals/e2e/vercel-preview-security.spec.ts evals/e2e/exact-kit-parity-prod.spec.ts evals/e2e/one-flow-regression.spec.ts evals/e2e/ui-contract-runner.spec.ts --project=chromium --reporter=line - name: Upload Playwright artifacts on failure if: failure() diff --git a/api/scratchnode-wiki.js b/api/scratchnode-wiki.js index 39407c7e..33ffffb1 100644 --- a/api/scratchnode-wiki.js +++ b/api/scratchnode-wiki.js @@ -1,5 +1,5 @@ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api.js"; +import { api } from "../backend/convex/_generated/api.js"; let convexClient = null; diff --git a/apps/web/src/adapters/unifiedAdapters.ts b/apps/web/src/adapters/unifiedAdapters.ts index 19b3c837..54bb0174 100644 --- a/apps/web/src/adapters/unifiedAdapters.ts +++ b/apps/web/src/adapters/unifiedAdapters.ts @@ -1,5 +1,5 @@ import type { UnifiedItem } from "@/types/unified"; -import type { Id } from "../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; export const docToUnified = (doc: any) => ({ id: String(doc._id), diff --git a/apps/web/src/components/Editor/Editor.tsx b/apps/web/src/components/Editor/Editor.tsx index 360db0ca..59e86488 100644 --- a/apps/web/src/components/Editor/Editor.tsx +++ b/apps/web/src/components/Editor/Editor.tsx @@ -1,5 +1,5 @@ import React, { Suspense } from "react"; -import { Id } from "../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import type { EditorMode } from "@features/editor/components/UnifiedEditor"; import { ErrorBoundary } from "@shared/components/ErrorBoundary"; import "./editor-blocks.css"; diff --git a/apps/web/src/components/kanban/TaskCard.tsx b/apps/web/src/components/kanban/TaskCard.tsx index 4aa44113..78576d80 100644 --- a/apps/web/src/components/kanban/TaskCard.tsx +++ b/apps/web/src/components/kanban/TaskCard.tsx @@ -2,7 +2,7 @@ import { useMemo } from "react"; import MetaPills from "@/shared/components/MetaPills"; import { taskToPills } from "../../lib/metaPillMappers"; import { shapeTaskForPills, reorderTaskPillsForTightRows } from "../../lib/tasks"; -import type { Doc } from "../../../convex/_generated/dataModel"; +import type { Doc } from "@convex/_generated/dataModel"; export default function TaskCard({ task }: { task: Doc }) { const shaped = shapeTaskForPills(task); diff --git a/apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx b/apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx index a09b3950..cba85133 100644 --- a/apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx +++ b/apps/web/src/components/timelineRoadmap/TimelineRoadmapView.tsx @@ -22,7 +22,7 @@ import { Wrench, } from "lucide-react"; import { useQuery } from "convex/react"; -import { api } from "../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { TopDividerBar } from "@shared/ui/TopDividerBar"; import { UnifiedHubPills } from "@shared/ui/UnifiedHubPills"; import { PageHeroHeader } from "@shared/ui/PageHeroHeader"; diff --git a/apps/web/src/design-governance/index.ts b/apps/web/src/design-governance/index.ts index 279260a3..66fae9e5 100644 --- a/apps/web/src/design-governance/index.ts +++ b/apps/web/src/design-governance/index.ts @@ -2,7 +2,7 @@ * Design Governance — public API. * * Usage: - * import { spec, isApprovedColor, getViolationsForSource } from '../design-governance'; + * import { spec, isApprovedColor, getViolationsForSource } from './'; */ export type { diff --git a/apps/web/src/features/admin/FundingDataReview.tsx b/apps/web/src/features/admin/FundingDataReview.tsx index 7db832da..b5e0db4a 100644 --- a/apps/web/src/features/admin/FundingDataReview.tsx +++ b/apps/web/src/features/admin/FundingDataReview.tsx @@ -11,8 +11,8 @@ import React, { useState, useEffect } from "react"; import { useQuery, useMutation, useAction } from "convex/react"; -import { api, internal } from "../../../convex/_generated/api"; -import { Id } from "../../../convex/_generated/dataModel"; +import { api, internal } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; interface FundingIssue { id: Id<"fundingEvents">; diff --git a/apps/web/src/features/admin/components/ApiUsageDisplay.tsx b/apps/web/src/features/admin/components/ApiUsageDisplay.tsx index 19534534..18c58448 100644 --- a/apps/web/src/features/admin/components/ApiUsageDisplay.tsx +++ b/apps/web/src/features/admin/components/ApiUsageDisplay.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Activity, TrendingUp, DollarSign, AlertCircle } from 'lucide-react'; export function ApiUsageDisplay() { diff --git a/apps/web/src/features/admin/components/CostDashboard.tsx b/apps/web/src/features/admin/components/CostDashboard.tsx index 00880611..34daccd2 100644 --- a/apps/web/src/features/admin/components/CostDashboard.tsx +++ b/apps/web/src/features/admin/components/CostDashboard.tsx @@ -7,7 +7,7 @@ import React, { useState, useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { DollarSign, TrendingDown, Zap, Clock, Database, Users } from "lucide-react"; import { ViewSkeleton } from "../../../components/skeletons"; import { PageHeroHeader } from "../../../shared/ui/PageHeroHeader"; diff --git a/apps/web/src/features/admin/components/UsageDashboard.tsx b/apps/web/src/features/admin/components/UsageDashboard.tsx index 2c81edb2..3bad1f36 100644 --- a/apps/web/src/features/admin/components/UsageDashboard.tsx +++ b/apps/web/src/features/admin/components/UsageDashboard.tsx @@ -5,7 +5,7 @@ import React, { useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Zap, DollarSign, MessageSquare, Clock, TrendingUp, AlertTriangle } from "lucide-react"; interface UsageData { diff --git a/apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx b/apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx index 30092e7d..d99f4af4 100644 --- a/apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx +++ b/apps/web/src/features/admin/dashboards/ComponentMetricsDashboard.tsx @@ -2,7 +2,7 @@ import React, { useState, useMemo } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { BarChart3, FileText, diff --git a/apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx b/apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx index 46560878..fe4ef57a 100644 --- a/apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx +++ b/apps/web/src/features/admin/dashboards/HITLAnalyticsDashboard.tsx @@ -2,7 +2,7 @@ import React, { useState, useMemo } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { CheckCircle2, XCircle, diff --git a/apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx b/apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx index 735d292a..b570f952 100644 --- a/apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx +++ b/apps/web/src/features/admin/dashboards/RecommendationAnalyticsDashboard.tsx @@ -2,7 +2,7 @@ import React, { useState, useMemo } from 'react'; import { useMutation, useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { ThumbsUp, ThumbsDown, diff --git a/apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx b/apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx index 46ae7ff1..aff7a28e 100644 --- a/apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx +++ b/apps/web/src/features/agents/authority/NotebookAuthorityControl.tsx @@ -1,7 +1,7 @@ import { useMemo, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useConvexApi } from "@/lib/convexApi"; import { AuthorityControl } from "./AuthorityControl"; diff --git a/apps/web/src/features/agents/components/AgentMarketplace.tsx b/apps/web/src/features/agents/components/AgentMarketplace.tsx index b482ca3e..f0b0973a 100644 --- a/apps/web/src/features/agents/components/AgentMarketplace.tsx +++ b/apps/web/src/features/agents/components/AgentMarketplace.tsx @@ -5,7 +5,7 @@ import React, { useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Zap, TrendingUp, CheckCircle, Clock, Play } from "lucide-react"; export function AgentMarketplace() { diff --git a/apps/web/src/features/agents/components/AgentSidebar.tsx b/apps/web/src/features/agents/components/AgentSidebar.tsx index 107e398a..b92b8dd0 100644 --- a/apps/web/src/features/agents/components/AgentSidebar.tsx +++ b/apps/web/src/features/agents/components/AgentSidebar.tsx @@ -23,7 +23,7 @@ import { PlayCircle, } from "lucide-react"; import { cn } from "@/lib/utils"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { SwarmStatus } from "@/hooks/useSwarm"; // ============================================================================ diff --git a/apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx b/apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx index 9c694f04..11690bee 100644 --- a/apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx +++ b/apps/web/src/features/agents/components/AutonomousOperationsPanel.tsx @@ -20,7 +20,7 @@ import { Loader2, } from "lucide-react"; import { cn } from "@/lib/utils"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; // ============================================================================ // Types diff --git a/apps/web/src/features/agents/components/ConvexJarvisHUD.tsx b/apps/web/src/features/agents/components/ConvexJarvisHUD.tsx index 968f7cc1..f3cdceb0 100644 --- a/apps/web/src/features/agents/components/ConvexJarvisHUD.tsx +++ b/apps/web/src/features/agents/components/ConvexJarvisHUD.tsx @@ -31,8 +31,8 @@ import React, { useState, useRef, useCallback, useEffect } from 'react'; import { useConvex, useAction, useMutation, useConvexAuth } from 'convex/react'; import { useUIMessages } from '@convex-dev/agent/react'; -import { api } from '../../../../convex/_generated/api'; -import type { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import type { Id } from '@convex/_generated/dataModel'; import { JarvisHUDLayout } from '../../../components/hud/JarvisHUDLayout'; import type { VoiceMode } from '../../../hooks/useVoiceInput'; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx index ec9de473..8d630449 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.AgentTasksTab.tsx @@ -15,7 +15,7 @@ import { Loader2, Zap, } from 'lucide-react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { TokenUsageBadge } from './TokenUsageBadge'; import { cn } from '@/lib/utils'; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx index b49b7c43..18017833 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.BriefTab.tsx @@ -6,7 +6,7 @@ import { useConvexAuth, useQuery, } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { CheckCircle2, Circle, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx index 77ca3500..f57660e3 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.EditsTab.tsx @@ -3,7 +3,7 @@ import React, { useState } from 'react'; import { useQuery, useMutation } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { FileEdit, Check, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx index b2223efb..7fd3dc1e 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.FileUpload.tsx @@ -3,10 +3,10 @@ import React, { useCallback, useState } from 'react'; import { useAction, useMutation } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Upload, X, FileText, Image as ImageIcon, Loader2 } from 'lucide-react'; import { toast } from 'sonner'; -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; interface FileUploadProps { threadId: Id<"chatThreadsStream">; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx index ad3760a4..51edc8a2 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx @@ -8,7 +8,7 @@ import { toast } from 'sonner'; import { useSelection } from '@/features/agents/context/SelectionContext'; import { InlineEnhancer } from './FastAgentPanel.PromptEnhancer'; import { useAction } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { PromptInput, PromptInputBody, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx index 3b0d6c9e..24f2f7c1 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Memory.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Archive, ChevronDown, ChevronRight } from 'lucide-react'; interface MemoryProps { diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx index a443f096..d2660bb4 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.MemoryPreview.tsx @@ -3,7 +3,7 @@ import React, { useState } from "react"; import { useQuery, useAction } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Database, Clock, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx index 45bb985b..410b7bf6 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PromptEnhancer.tsx @@ -3,7 +3,7 @@ import React, { useState, useEffect, useCallback } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Sparkles, Check, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx index 813dfa6a..7bce8480 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.Scratchpad.tsx @@ -3,7 +3,7 @@ import React, { useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Brain, Target, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx index 1dddabfe..96072d07 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.SkillsPanel.tsx @@ -3,7 +3,7 @@ import React, { useState, useCallback } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Search, Loader2, Sparkles, Zap } from 'lucide-react'; interface SkillsPanelProps { diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx index 22ec9ba7..1a447fe8 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx @@ -6,7 +6,7 @@ import React, { useState } from "react"; import { useConvexAuth, useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Shield, Brain, diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx index 97e00beb..a4b10854 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx @@ -119,7 +119,7 @@ import { type EntityLibrary } from '@/features/research/types/index'; import type { EntityType } from '@/features/research/types/entitySchema'; -import { makeWebSourceCitationId } from '../../../../../shared/citations/webSourceCitations'; +import { makeWebSourceCitationId } from '../../../../../../../shared/citations/webSourceCitations'; import { formatBriefDateTime } from '@/lib/briefDate'; import { useMessageHandlers } from './MessageHandlersContext'; import { diff --git a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx index de8dbc74..8172b8f1 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx @@ -4,8 +4,8 @@ import React, { memo, useState, useEffect, useRef, useCallback, useMemo } from 'react'; import { useNavigate } from 'react-router-dom'; import { useConvex, usePaginatedQuery, useQuery, useMutation, useAction, useConvexAuth } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; -import { Id } from '../../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import { X, Loader2, ChevronDown, ArrowDown, MessageSquare, Activity, Search } from 'lucide-react'; import { toast } from 'sonner'; import { useUIMessages, type UIMessage } from '@convex-dev/agent/react'; @@ -53,7 +53,7 @@ import { DEFAULT_MODEL, type ApprovedModel } from '@shared/llm/approvedModels'; import { ANONYMOUS_FAST_AGENT_MODEL_ID, FAST_AGENT_SIGN_IN_BENEFIT_COPY, -} from '../../../../../shared/llm/fastAgentRuntimeContract'; +} from '../../../../../../../shared/llm/fastAgentRuntimeContract'; import { cn } from '@/lib/utils'; import { buildCockpitPath } from '@/lib/registry/viewRegistry'; import { useAnonymousSession } from '../../hooks/useAnonymousSession'; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx index 47cf4796..aa51d00d 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/HumanRequestCard.tsx @@ -5,9 +5,9 @@ import React, { useState, useRef, useEffect } from 'react'; import { MessageCircleQuestion, Send, X, CheckCircle2, Clock } from 'lucide-react'; import { cn } from '@/lib/utils'; import { useMutation } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { toast } from 'sonner'; -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; interface HumanRequest { _id: Id<'humanRequests'>; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx b/apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx index ac49133d..a1d5dd1f 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/ResourceLinkCard.tsx @@ -7,7 +7,7 @@ import React, { useMemo, useState } from 'react'; import { useAction } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { cn } from '@/lib/utils'; import { ExternalLink, FileText, Loader2, Search, Copy, Check } from 'lucide-react'; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx index 94a86e11..59546c1b 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentUIMessageBubble.contract.test.tsx @@ -7,7 +7,7 @@ import { parseFusionSearchOutput, } from "../FastAgentPanel.UIMessageBubble"; import { FusedSearchResults } from "../FusedSearchResults"; -import { makeWebSourceCitationId } from "../../../../../../shared/citations/webSourceCitations"; +import { makeWebSourceCitationId } from "../../../../../../../../shared/citations/webSourceCitations"; const { smoothTextMock, speakMock, stopMock } = vi.hoisted(() => ({ smoothTextMock: vi.fn((text: string | undefined) => [text ?? ""]), diff --git a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx index ed9251fc..67561c0e 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/InputBar.parity.test.tsx @@ -8,7 +8,7 @@ import { useSelection, } from '@/features/agents/context/SelectionContext'; import { FastAgentInputBar } from '../FastAgentPanel.InputBar'; -import { ANONYMOUS_FAST_AGENT_MODEL_ID } from '../../../../../../shared/llm/fastAgentRuntimeContract'; +import { ANONYMOUS_FAST_AGENT_MODEL_ID } from '../../../../../../../../shared/llm/fastAgentRuntimeContract'; const enhancePrompt = vi.fn(); diff --git a/apps/web/src/features/agents/components/FastAgentPanel/types/message.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/message.ts index 389f566f..4669be4a 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/types/message.ts +++ b/apps/web/src/features/agents/components/FastAgentPanel/types/message.ts @@ -1,5 +1,5 @@ // Message types for FastAgentPanel -import { Id } from "../../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; export type MessageRole = 'user' | 'assistant' | 'system'; export type MessageStatus = 'sending' | 'streaming' | 'complete' | 'error'; diff --git a/apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts b/apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts index b99fb900..b8370e91 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts +++ b/apps/web/src/features/agents/components/FastAgentPanel/types/thread.ts @@ -1,6 +1,6 @@ // Thread/Conversation types for FastAgentPanel // Now using Agent component - threadId is a string, not Id<"chatThreads"> -import { Id } from "../../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; export interface Thread { _id: string; // Agent component uses string threadIds diff --git a/apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx b/apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx index 4267ed58..afe5572c 100644 --- a/apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx +++ b/apps/web/src/features/agents/components/FreeModelRankingsPanel.tsx @@ -20,7 +20,7 @@ import { Sparkles, } from "lucide-react"; import { cn } from "@/lib/utils"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; // ============================================================================ // Types diff --git a/apps/web/src/features/agents/components/HumanApprovalQueue.tsx b/apps/web/src/features/agents/components/HumanApprovalQueue.tsx index 58424782..987ecf55 100644 --- a/apps/web/src/features/agents/components/HumanApprovalQueue.tsx +++ b/apps/web/src/features/agents/components/HumanApprovalQueue.tsx @@ -19,8 +19,8 @@ import { Loader2, } from "lucide-react"; import { cn } from "@/lib/utils"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; // ============================================================================ // Types diff --git a/apps/web/src/features/agents/components/NotificationActivityPanel.tsx b/apps/web/src/features/agents/components/NotificationActivityPanel.tsx index 98685bd3..b6c4edda 100644 --- a/apps/web/src/features/agents/components/NotificationActivityPanel.tsx +++ b/apps/web/src/features/agents/components/NotificationActivityPanel.tsx @@ -1,6 +1,6 @@ import React, { useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type NotificationActivityPanelProps = { mode?: "user" | "topic"; diff --git a/apps/web/src/features/agents/components/OracleControlTowerPanel.tsx b/apps/web/src/features/agents/components/OracleControlTowerPanel.tsx index 9c354ddc..67524b11 100644 --- a/apps/web/src/features/agents/components/OracleControlTowerPanel.tsx +++ b/apps/web/src/features/agents/components/OracleControlTowerPanel.tsx @@ -19,7 +19,7 @@ import { Wrench, Zap, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { cn } from "@/lib/utils"; import { AgentResponseFlywheelPanel } from "./AgentResponseFlywheelPanel"; import { diff --git a/apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx b/apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx index 3ff65f4f..48c03150 100644 --- a/apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx +++ b/apps/web/src/features/agents/components/TaskManager/TaskManagerView.tsx @@ -12,7 +12,7 @@ import React, { useState, useMemo } from 'react'; import { useQuery } from 'convex/react'; import { useConvexAuth } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Calendar, Filter, @@ -32,7 +32,7 @@ import { cn } from '@/lib/utils'; import { TaskSessionCard } from './TaskSessionCard'; import { TaskSessionDetail } from './TaskSessionDetail'; import type { TaskSession, TaskSessionStatus, TaskSessionType, TaskFilters } from './types'; -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; // ═══════════════════════════════════════════════════════════════════════════ // FILTER OPTIONS diff --git a/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx b/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx index 3264c97d..f0f2341e 100644 --- a/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx +++ b/apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx @@ -10,7 +10,7 @@ import React, { useState } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { ChevronLeft, Clock, @@ -31,7 +31,7 @@ import { import { cn } from '@/lib/utils'; import { TelemetrySpanTree } from './TelemetrySpanTree'; import type { TaskSession, TaskTrace, TaskSpan } from './types'; -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; import { formatDurationCompact, formatGoalReference, diff --git a/apps/web/src/features/agents/components/TaskManager/types.ts b/apps/web/src/features/agents/components/TaskManager/types.ts index e2c61c71..0fa22d78 100644 --- a/apps/web/src/features/agents/components/TaskManager/types.ts +++ b/apps/web/src/features/agents/components/TaskManager/types.ts @@ -5,7 +5,7 @@ * Aligned with the Convex schema definitions. */ -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; // ═══════════════════════════════════════════════════════════════════════════ // SESSION TYPES diff --git a/apps/web/src/features/agents/components/TopicCanvasPanel.tsx b/apps/web/src/features/agents/components/TopicCanvasPanel.tsx index 1fcae734..b06ff8d8 100644 --- a/apps/web/src/features/agents/components/TopicCanvasPanel.tsx +++ b/apps/web/src/features/agents/components/TopicCanvasPanel.tsx @@ -8,7 +8,7 @@ import { XCircle, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { TaskSession, TaskSessionStatus } from "./TaskManager/types"; import { cn } from "@/lib/utils"; diff --git a/apps/web/src/features/agents/components/WorkspaceGrid.tsx b/apps/web/src/features/agents/components/WorkspaceGrid.tsx index 002643ad..2a280594 100644 --- a/apps/web/src/features/agents/components/WorkspaceGrid.tsx +++ b/apps/web/src/features/agents/components/WorkspaceGrid.tsx @@ -11,7 +11,7 @@ import { FolderOpen, } from 'lucide-react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { sanitizeDocumentTitle } from '@/lib/displayText'; interface WorkspaceGridProps { diff --git a/apps/web/src/features/agents/context/SelectionContext.tsx b/apps/web/src/features/agents/context/SelectionContext.tsx index 82ca646a..18e4c398 100644 --- a/apps/web/src/features/agents/context/SelectionContext.tsx +++ b/apps/web/src/features/agents/context/SelectionContext.tsx @@ -6,7 +6,7 @@ */ import React, { createContext, useContext, useState, useCallback, useMemo, ReactNode } from 'react'; -import type { Id } from '../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; export type SelectionSourceType = | 'spreadsheet' diff --git a/apps/web/src/features/agents/hooks/useAgentNavigation.ts b/apps/web/src/features/agents/hooks/useAgentNavigation.ts index b04d4706..536f25fb 100644 --- a/apps/web/src/features/agents/hooks/useAgentNavigation.ts +++ b/apps/web/src/features/agents/hooks/useAgentNavigation.ts @@ -8,7 +8,7 @@ import { useQuery, useMutation } from "convex/react"; import { useCallback, useEffect, useRef } from "react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; interface UseAgentNavigationOptions { threadId: string | null; diff --git a/apps/web/src/features/agents/hooks/useAnonymousSession.ts b/apps/web/src/features/agents/hooks/useAnonymousSession.ts index 6e5a7d90..f3ce2b20 100644 --- a/apps/web/src/features/agents/hooks/useAnonymousSession.ts +++ b/apps/web/src/features/agents/hooks/useAnonymousSession.ts @@ -10,7 +10,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useQuery } from 'convex/react'; import { useConvexAuth } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; const STORAGE_KEY = 'nodebench:anonymous:sessionId'; diff --git a/apps/web/src/features/agents/views/AgentsHub.tsx b/apps/web/src/features/agents/views/AgentsHub.tsx index 6f994f17..86c50040 100644 --- a/apps/web/src/features/agents/views/AgentsHub.tsx +++ b/apps/web/src/features/agents/views/AgentsHub.tsx @@ -22,7 +22,7 @@ import { ClipboardList, ExternalLink, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { loadAgentsViewMode, saveAgentsViewMode } from "@/features/controlPlane/lib/onboardingState"; // Shared UI components diff --git a/apps/web/src/features/benchmarks/views/WorkbenchView.tsx b/apps/web/src/features/benchmarks/views/WorkbenchView.tsx index 0e33c86c..65fb0d1a 100644 --- a/apps/web/src/features/benchmarks/views/WorkbenchView.tsx +++ b/apps/web/src/features/benchmarks/views/WorkbenchView.tsx @@ -25,7 +25,7 @@ import React, { useEffect, useState, lazy, Suspense } from "react"; import { useQuery } from "convex/react"; import { ChevronDown, ChevronUp, Settings, Play, CheckCircle2, AlertTriangle, Activity } from "lucide-react"; import { SignatureOrb } from "@/shared/ui/SignatureOrb"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { TrajectorySummaryData, TrajectoryTimelineItem } from "@/features/trajectory/types"; // Lazy-load sub-panels — these are below the fold or behind expandable sections diff --git a/apps/web/src/features/calendar/components/CalendarHomeHub.tsx b/apps/web/src/features/calendar/components/CalendarHomeHub.tsx index 3e5f695e..4ebdcc5e 100644 --- a/apps/web/src/features/calendar/components/CalendarHomeHub.tsx +++ b/apps/web/src/features/calendar/components/CalendarHomeHub.tsx @@ -1,6 +1,6 @@ import { useEffect, useState, useRef } from "react"; import { ChevronLeft, ChevronRight, Calendar } from "lucide-react"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { CalendarView } from "@/features/calendar/views/CalendarView"; import { usePlannerState } from "@/hooks/usePlannerState"; diff --git a/apps/web/src/features/calendar/components/EventEditorPanel.tsx b/apps/web/src/features/calendar/components/EventEditorPanel.tsx index c58717a2..fc0727a6 100644 --- a/apps/web/src/features/calendar/components/EventEditorPanel.tsx +++ b/apps/web/src/features/calendar/components/EventEditorPanel.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { X, Trash2, Save, CalendarDays, MapPin, Palette, Tag } from "lucide-react"; import { toast } from "sonner"; diff --git a/apps/web/src/features/calendar/components/MiniMonthCalendar.tsx b/apps/web/src/features/calendar/components/MiniMonthCalendar.tsx index cd1efa88..e84ab860 100644 --- a/apps/web/src/features/calendar/components/MiniMonthCalendar.tsx +++ b/apps/web/src/features/calendar/components/MiniMonthCalendar.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useMemo, useRef, useState } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { CalendarDays, ChevronLeft, ChevronRight } from "lucide-react"; import CalendarDatePopover from "./CalendarDatePopover"; import DualCreateMiniPanel from "@/features/documents/editors/DualCreateMiniPanel"; diff --git a/apps/web/src/features/calendar/components/TaskEditorPanel.tsx b/apps/web/src/features/calendar/components/TaskEditorPanel.tsx index 50f86612..21447277 100644 --- a/apps/web/src/features/calendar/components/TaskEditorPanel.tsx +++ b/apps/web/src/features/calendar/components/TaskEditorPanel.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { X, Trash2, Save, Tag as TagIcon, User as UserIcon, Link as LinkIcon } from "lucide-react"; import { toast } from "sonner"; diff --git a/apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx b/apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx index 9977b911..da655a79 100644 --- a/apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx +++ b/apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx @@ -1,5 +1,5 @@ import { useMemo } from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import DualCreateMiniPanel from "@/features/documents/editors/DualCreateMiniPanel"; import DualEditMiniPanel from "@/features/documents/editors/DualEditMiniPanel"; import PopoverMiniEditor from "@/features/documents/editors/PopoverMiniEditor"; diff --git a/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx b/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx index 1960df87..6188044f 100644 --- a/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx +++ b/apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx @@ -1,5 +1,5 @@ import React from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { Mail, CalendarDays } from "lucide-react"; import { Checkbox } from "@/components/ai-ui/checkbox"; import { HoverCard, HoverCardContent, HoverCardTrigger } from "@/components/ai-ui/hover-card"; diff --git a/apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx b/apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx index d073ca87..4d43569f 100644 --- a/apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx +++ b/apps/web/src/features/calendar/components/agenda/InlineEventEditor.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { X, Trash2, Calendar as CalendarIcon, MapPin, Palette, Tag } from "lucide-react"; import { toast } from "sonner"; diff --git a/apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx b/apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx index 44ffcac5..fa92ace1 100644 --- a/apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx +++ b/apps/web/src/features/calendar/components/agenda/InlineTaskEditor.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useLayoutEffect, useRef, useState } from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { X, Trash2, Calendar, Flag, ChevronDown, Tag, User, Link as LinkIcon } from "lucide-react"; import { toast } from "sonner"; diff --git a/apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx b/apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx index fd6c71f5..5110cf36 100644 --- a/apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx +++ b/apps/web/src/features/calendar/components/agenda/MiniAgendaEditorPanel.tsx @@ -1,5 +1,5 @@ import React from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import PopoverMiniEditor from "@/features/documents/editors/PopoverMiniEditor"; export type MiniAgendaEditorPanelProps = diff --git a/apps/web/src/features/calendar/hooks/useCalendarAgenda.ts b/apps/web/src/features/calendar/hooks/useCalendarAgenda.ts index 4482a47a..9b62ba6c 100644 --- a/apps/web/src/features/calendar/hooks/useCalendarAgenda.ts +++ b/apps/web/src/features/calendar/hooks/useCalendarAgenda.ts @@ -1,7 +1,7 @@ import { useQuery } from "convex/react"; import { useMemo } from "react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; export interface CalendarEvent { _id: Id<"events"> | string; diff --git a/apps/web/src/features/calendar/views/CalendarView.tsx b/apps/web/src/features/calendar/views/CalendarView.tsx index eb0c02d6..3804527c 100644 --- a/apps/web/src/features/calendar/views/CalendarView.tsx +++ b/apps/web/src/features/calendar/views/CalendarView.tsx @@ -2,8 +2,8 @@ import { useQuery, useMutation, useConvexAuth } from "convex/react"; import { useEffect, useState, useRef, useMemo, useCallback, lazy, Suspense } from "react"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import { CalendarIcon, diff --git a/apps/web/src/features/chat/components/EntityDisambiguationCard.tsx b/apps/web/src/features/chat/components/EntityDisambiguationCard.tsx index a9fcab23..f0f70138 100644 --- a/apps/web/src/features/chat/components/EntityDisambiguationCard.tsx +++ b/apps/web/src/features/chat/components/EntityDisambiguationCard.tsx @@ -4,7 +4,7 @@ import React, { useState } from 'react'; import { HelpCircle, Check, Building2, User, Calendar, MapPin, Package } from 'lucide-react'; -import type { ProductResolutionCandidate } from '../../../../shared/productAnswerControl'; +import type { ProductResolutionCandidate } from '../../../../../../shared/productAnswerControl'; // ============================================================================ // Types diff --git a/apps/web/src/features/chat/hooks/useRollbackInterceptor.ts b/apps/web/src/features/chat/hooks/useRollbackInterceptor.ts index e46058d1..ee3147f8 100644 --- a/apps/web/src/features/chat/hooks/useRollbackInterceptor.ts +++ b/apps/web/src/features/chat/hooks/useRollbackInterceptor.ts @@ -23,7 +23,7 @@ import { useCallback, useState } from "react"; import { useAction } from "convex/react"; import { toast } from "sonner"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { detectRollbackIntent, type RollbackIntent, diff --git a/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx b/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx index 94f88f2a..c66a559e 100644 --- a/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx +++ b/apps/web/src/features/controlPlane/components/ReceiptApprovalQueue.tsx @@ -1,7 +1,7 @@ import { memo, useMemo } from "react"; import { useQuery } from "convex/react"; import { CheckCircle2, Clock3, ShieldAlert } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { cn } from "@/lib/utils"; import { formatApprovalQueueTime, toActionReceipt } from "../lib/receiptPresentation"; diff --git a/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx b/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx index a87a1103..cda4d452 100644 --- a/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx +++ b/apps/web/src/features/controlPlane/components/SyncProvenanceBadge.tsx @@ -2,7 +2,7 @@ import { useEffect, useMemo, useState } from "react"; import { useConvexAuth, useQuery } from "convex/react"; import { Cloud, CloudOff, Loader2 } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getSyncBridgeAccountUrl, getSyncBridgeHealthUrl } from "@/lib/syncBridgeApi"; import { PUBLIC_SEARCH_SYNC_STATUS_API_ENDPOINT } from "@/lib/searchApi"; diff --git a/apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx b/apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx index b067ff40..3713476f 100644 --- a/apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx +++ b/apps/web/src/features/controlPlane/views/ActionReceiptFeed.tsx @@ -6,7 +6,7 @@ import { memo, useMemo, useState } from "react"; import { Filter, Shield, ShieldAlert } from "lucide-react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { cn } from "@/lib/utils"; import { ReceiptApprovalQueue } from "../components/ReceiptApprovalQueue"; import { ReceiptCard } from "../components/ReceiptCard"; diff --git a/apps/web/src/features/controlPlane/views/DelegationShowcase.tsx b/apps/web/src/features/controlPlane/views/DelegationShowcase.tsx index fbaf357d..5aeed292 100644 --- a/apps/web/src/features/controlPlane/views/DelegationShowcase.tsx +++ b/apps/web/src/features/controlPlane/views/DelegationShowcase.tsx @@ -6,7 +6,7 @@ import { memo, useMemo, useState } from "react"; import { useQuery } from "convex/react"; import { ArrowRight, Database, KeyRound, Lock, ShieldAlert, ShieldCheck, ShieldX } from "lucide-react"; import { cn } from "@/lib/utils"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { ReceiptApprovalQueue } from "../components/ReceiptApprovalQueue"; import { ReceiptCard } from "../components/ReceiptCard"; import { DEMO_PASSPORT, DEMO_RECEIPTS } from "../data/receiptFixtures"; diff --git a/apps/web/src/features/designKit/exact/ExactKit.tsx b/apps/web/src/features/designKit/exact/ExactKit.tsx index f963f88b..64ed6656 100644 --- a/apps/web/src/features/designKit/exact/ExactKit.tsx +++ b/apps/web/src/features/designKit/exact/ExactKit.tsx @@ -2,7 +2,7 @@ import { useEffect, useMemo, useRef, useState, type CSSProperties, type MouseEve import { useNavigate, useSearchParams } from "react-router-dom"; import { useConvex, useConvexAuth, useMutation, useQuery } from "convex/react"; import { useAuthActions } from "@convex-dev/auth/react"; -import { api as generatedApi } from "../../../../convex/_generated/api"; +import { api as generatedApi } from "@convex/_generated/api"; import { useConvexApi } from "@/lib/convexApi"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; import { useFastAgent } from "@/features/agents/context/FastAgentContext"; diff --git a/apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx b/apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx index dd29ce42..6976d087 100644 --- a/apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx +++ b/apps/web/src/features/documents/components/DocumentBreadcrumbs.tsx @@ -5,8 +5,8 @@ */ import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import { Home, ChevronRight, Folder } from 'lucide-react'; interface DocumentBreadcrumbsProps { diff --git a/apps/web/src/features/documents/components/DocumentGrid.tsx b/apps/web/src/features/documents/components/DocumentGrid.tsx index 3e7d82b8..11418b63 100644 --- a/apps/web/src/features/documents/components/DocumentGrid.tsx +++ b/apps/web/src/features/documents/components/DocumentGrid.tsx @@ -1,5 +1,5 @@ import { useState, useCallback, useRef, useEffect, useMemo, useLayoutEffect } from "react"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { DocumentView } from "@/features/documents/views/DocumentView"; import { X, ZoomIn, ZoomOut, Maximize2, Calendar } from "lucide-react"; import GridLayout, { Layout } from "react-grid-layout"; diff --git a/apps/web/src/features/documents/components/DocumentHeader.tsx b/apps/web/src/features/documents/components/DocumentHeader.tsx index d2a9bbde..9b427fb0 100644 --- a/apps/web/src/features/documents/components/DocumentHeader.tsx +++ b/apps/web/src/features/documents/components/DocumentHeader.tsx @@ -1,7 +1,7 @@ import { useState, useEffect, useCallback } from "react"; import { useMutation, useQuery, useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import { Doc } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Doc } from "@convex/_generated/dataModel"; import { PresenceIndicator } from "@/shared/components/PresenceIndicator"; import { DocumentBreadcrumbs } from "./DocumentBreadcrumbs"; import { diff --git a/apps/web/src/features/documents/components/DocumentRecommendations.tsx b/apps/web/src/features/documents/components/DocumentRecommendations.tsx index 7e594cbf..027b4cdd 100644 --- a/apps/web/src/features/documents/components/DocumentRecommendations.tsx +++ b/apps/web/src/features/documents/components/DocumentRecommendations.tsx @@ -5,7 +5,7 @@ import React from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Lightbulb, FileText, Sparkles, ThumbsUp } from "lucide-react"; export function DocumentRecommendations() { diff --git a/apps/web/src/features/documents/components/DocumentSidebarPanel.tsx b/apps/web/src/features/documents/components/DocumentSidebarPanel.tsx index b25f5d60..454acc2b 100644 --- a/apps/web/src/features/documents/components/DocumentSidebarPanel.tsx +++ b/apps/web/src/features/documents/components/DocumentSidebarPanel.tsx @@ -2,7 +2,7 @@ import React, { memo, useCallback, useState, useEffect } from "react"; import { ChevronLeft, ChevronRight } from "lucide-react"; import { SidebarMiniCalendar } from "@shared/ui/SidebarMiniCalendar"; import { SidebarUpcoming } from "@shared/ui/SidebarUpcoming"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // --------------------------------------------------------------------------- // Props diff --git a/apps/web/src/features/documents/components/DocumentsHomeHub.tsx b/apps/web/src/features/documents/components/DocumentsHomeHub.tsx index 78646b72..6439204a 100644 --- a/apps/web/src/features/documents/components/DocumentsHomeHub.tsx +++ b/apps/web/src/features/documents/components/DocumentsHomeHub.tsx @@ -37,8 +37,8 @@ import { DocumentsCoreProvider } from "../context/DocumentsCoreProvider"; */ -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { toast } from "sonner"; diff --git a/apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx b/apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx index b8e7b97e..c21a8612 100644 --- a/apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx +++ b/apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx @@ -11,7 +11,7 @@ */ import { lazy, Suspense, useMemo } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { X } from "lucide-react"; import { Dialog, diff --git a/apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx b/apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx index e2b82032..9304b193 100644 --- a/apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx +++ b/apps/web/src/features/documents/components/DocumentsPlannerSurface.tsx @@ -10,7 +10,7 @@ */ import { lazy, Suspense, useMemo } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { usePlannerState } from "@/hooks/usePlannerState"; import { usePlannerController } from "../hooks/usePlannerController"; import { DocumentsPlannerProvider } from "../context/DocumentsPlannerProvider"; diff --git a/apps/web/src/features/documents/components/DocumentsTabContent.tsx b/apps/web/src/features/documents/components/DocumentsTabContent.tsx index 735f6237..3902141d 100644 --- a/apps/web/src/features/documents/components/DocumentsTabContent.tsx +++ b/apps/web/src/features/documents/components/DocumentsTabContent.tsx @@ -8,8 +8,8 @@ import React, { lazy, memo, Suspense, useCallback, useMemo } from "react"; import { useQuery } from "convex/react"; import { FileText, Calendar, File, Loader2 } from "lucide-react"; -import { Id } from "../../../../convex/_generated/dataModel"; -import { api } from "../../../../convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; import { type DocumentCardData, diff --git a/apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx b/apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx index e374fbed..d8fb26a2 100644 --- a/apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx +++ b/apps/web/src/features/documents/components/DocumentsWorkspaceSurface.tsx @@ -10,7 +10,7 @@ */ import type React from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { FileText, FileSpreadsheet } from "lucide-react"; import { TopDividerBar } from "@shared/ui/TopDividerBar"; import { UnifiedHubPills } from "@shared/ui/UnifiedHubPills"; diff --git a/apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx b/apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx index 7018ddf4..71c38319 100644 --- a/apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx +++ b/apps/web/src/features/documents/components/documentsHub/DocumentsSidebar.tsx @@ -1,5 +1,5 @@ import { Plus, Sparkles, FileText, Grid3X3, Edit3 } from "lucide-react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { sanitizeDocumentTitle } from "@/lib/displayText"; import { TaskRowGlobal } from "./rows"; diff --git a/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx b/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx index 5a9cc760..6d40bad3 100644 --- a/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx +++ b/apps/web/src/features/documents/components/documentsHub/cards/DocumentCard.tsx @@ -8,7 +8,7 @@ */ import { useCallback, useEffect, useRef, memo, useMemo, useState, lazy, Suspense } from "react"; -import type { Id } from "../../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { Edit3, Star, Trash2, Link2, Sparkles, GripVertical, Clock, Play, Eye, } from "lucide-react"; @@ -17,7 +17,7 @@ import type { FileType } from "@/lib/fileTypes"; import { getThemeForFileType } from "@/lib/documentThemes"; import { getAIStatus, type DocumentCardData } from "../utils/documentHelpers"; import { useQuery } from "convex/react"; -import { api } from "../../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { formatDistanceToNow } from "date-fns"; import { sanitizeDocumentTitle } from "@/lib/displayText"; import { diff --git a/apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx b/apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx index cc5f89dc..c3761c17 100644 --- a/apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx +++ b/apps/web/src/features/documents/components/documentsHub/context/DocumentsHubContext.tsx @@ -7,7 +7,7 @@ */ import { createContext, useContext, type ReactNode } from "react"; -import { Id, Doc } from "../../../../../../convex/_generated/dataModel"; +import { Id, Doc } from "@convex/_generated/dataModel"; import type { TaskStatus, AgendaMode, DocViewMode, AgendaEntry } from "../types"; // Re-export types for convenience (consumers can also import from types directly) diff --git a/apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx b/apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx index 9191f80c..b97ce43e 100644 --- a/apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx +++ b/apps/web/src/features/documents/components/documentsHub/kanban/KanbanSortableItem.tsx @@ -11,7 +11,7 @@ import { type ReactNode, type CSSProperties } from "react"; import { useSortable } from "@dnd-kit/sortable"; import { CSS } from "@dnd-kit/utilities"; -import type { Id } from "../../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; export interface KanbanSortableItemProps { id: Id<"userEvents"> | Id<"events"> | string; // supports both task and event ids diff --git a/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx b/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx index 15c0d3b0..20d576ce 100644 --- a/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx +++ b/apps/web/src/features/documents/components/documentsHub/pills/RefsPills.tsx @@ -10,8 +10,8 @@ import { useMemo } from "react"; import { useQuery } from "convex/react"; -import type { Id } from "../../../../../../convex/_generated/dataModel"; -import { api } from "../../../../../../convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; export interface RefsPillsProps { refs?: Array<{ kind: "document" | "task" | "event"; id: string }> | null; diff --git a/apps/web/src/features/documents/components/documentsHub/planner/types.ts b/apps/web/src/features/documents/components/documentsHub/planner/types.ts index 4a5ffe5b..3269b80d 100644 --- a/apps/web/src/features/documents/components/documentsHub/planner/types.ts +++ b/apps/web/src/features/documents/components/documentsHub/planner/types.ts @@ -1,4 +1,4 @@ -import type { Id } from "../../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; export type AgendaPopoverState = | { diff --git a/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx b/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx index 4cd6dad5..b02a7461 100644 --- a/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx +++ b/apps/web/src/features/documents/components/documentsHub/rows/DocumentRow.tsx @@ -11,8 +11,8 @@ import { memo, useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../../../convex/_generated/api"; -import type { Id } from "../../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { Calendar, Star, Trash2, MessageCircle, Loader2, Sparkles, Edit3, Share2 } from "lucide-react"; import { FileTypeIcon } from "@/shared/components/FileTypeIcon"; import { sanitizeDocumentTitle } from "@/lib/displayText"; diff --git a/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx b/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx index afd086d3..f28f269e 100644 --- a/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx +++ b/apps/web/src/features/documents/components/documentsHub/rows/TaskRow.tsx @@ -11,9 +11,9 @@ import { memo } from "react"; import { useQuery, useMutation } from "convex/react"; -import type { Id } from "../../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { CalendarDays, ListTodo, Star, Trash2, Edit3, ArrowRightLeft } from "lucide-react"; -import { api } from "../../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { toast } from "sonner"; import { statusChipClasses, statusLabel, priorityClasses, type TaskStatus } from "../utils/statusHelpers"; import { isAllDayEvent, renderEventTime } from "../utils/eventHelpers"; diff --git a/apps/web/src/features/documents/components/documentsHub/types.ts b/apps/web/src/features/documents/components/documentsHub/types.ts index 8de67848..7dd93b95 100644 --- a/apps/web/src/features/documents/components/documentsHub/types.ts +++ b/apps/web/src/features/documents/components/documentsHub/types.ts @@ -7,7 +7,7 @@ * to maintain backward compatibility. This file defines additional types. */ -import { Id } from "../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; // Re-export core types from utils for convenience export type { TaskStatus } from "./utils/statusHelpers"; diff --git a/apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts b/apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts index 26cc063a..882b09bc 100644 --- a/apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts +++ b/apps/web/src/features/documents/components/documentsHub/utils/documentHelpers.ts @@ -4,7 +4,7 @@ * Utility functions for handling documents */ -import { Id } from "../../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { FileType, inferFileType } from "@/lib/fileTypes"; import { FileText, Calendar, File } from "lucide-react"; diff --git a/apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx b/apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx index 02389452..2ed6036a 100644 --- a/apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx +++ b/apps/web/src/features/documents/components/documentsHub/views/AgendaListSection.tsx @@ -6,7 +6,7 @@ */ import { type ReactNode, lazy, Suspense } from "react"; -import { Id } from "../../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { SortableList } from "@/shared/components/SortableList"; import { TaskRowGlobal, HolidayRowGlobal } from "../rows"; import AgendaMiniRow from "@features/calendar/components/agenda/AgendaMiniRow"; diff --git a/apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx index 840a882a..6039c207 100644 --- a/apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx +++ b/apps/web/src/features/documents/components/viewModes/DocumentsCardsView.tsx @@ -3,7 +3,7 @@ */ import React, { memo } from "react"; -import { Id } from "../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { DocumentCardMemo, type DocumentCardData, diff --git a/apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx index a7b6f7eb..f7dc1a40 100644 --- a/apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx +++ b/apps/web/src/features/documents/components/viewModes/DocumentsListView.tsx @@ -3,7 +3,7 @@ */ import React, { memo } from "react"; -import { Id } from "../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { DocumentRow, IntelligenceTable, diff --git a/apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx b/apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx index 54e6e778..9c9f4d9c 100644 --- a/apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx +++ b/apps/web/src/features/documents/components/viewModes/DocumentsSegmentedView.tsx @@ -7,7 +7,7 @@ import React, { memo, useCallback } from "react"; import { Calendar, File, FileText, Star } from "lucide-react"; -import { Id } from "../../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { DocumentCardMemo, type DocumentCardData, diff --git a/apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx b/apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx index e8e8e1c7..e2fe56f8 100644 --- a/apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx +++ b/apps/web/src/features/documents/context/DocumentsPlannerProvider.tsx @@ -9,7 +9,7 @@ */ import { useMemo, type ReactNode } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { usePlannerState } from "@/hooks/usePlannerState"; import { usePlannerController } from "../hooks/usePlannerController"; import { diff --git a/apps/web/src/features/documents/context/types.ts b/apps/web/src/features/documents/context/types.ts index a49b4f6a..3e165e88 100644 --- a/apps/web/src/features/documents/context/types.ts +++ b/apps/web/src/features/documents/context/types.ts @@ -7,7 +7,7 @@ */ import type React from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // ─── Document Data Slice ───────────────────────────────────────────────────── /** Read-only document data: queries, filtering, grouping, counts. */ diff --git a/apps/web/src/features/documents/editors/DocumentMiniEditor.tsx b/apps/web/src/features/documents/editors/DocumentMiniEditor.tsx index b2cd3dea..45de8661 100644 --- a/apps/web/src/features/documents/editors/DocumentMiniEditor.tsx +++ b/apps/web/src/features/documents/editors/DocumentMiniEditor.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { Save, X } from "lucide-react"; import { toast } from "sonner"; import PopoverMiniDocEditor from "@shared/editors/PopoverMiniDocEditor"; diff --git a/apps/web/src/features/documents/editors/DossierMiniEditor.tsx b/apps/web/src/features/documents/editors/DossierMiniEditor.tsx index 010e2ccd..2519805c 100644 --- a/apps/web/src/features/documents/editors/DossierMiniEditor.tsx +++ b/apps/web/src/features/documents/editors/DossierMiniEditor.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { FileStack, ExternalLink, Copy, X } from "lucide-react"; import { toast } from "sonner"; import { FileTypeIcon } from "@/shared/components/FileTypeIcon"; diff --git a/apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx b/apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx index c0b5541b..278641b8 100644 --- a/apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx +++ b/apps/web/src/features/documents/editors/DualCreateMiniPanel.tsx @@ -1,7 +1,7 @@ import React from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { toast } from "sonner"; import PopoverMiniEditor from "./PopoverMiniEditor"; diff --git a/apps/web/src/features/documents/editors/DualEditMiniPanel.tsx b/apps/web/src/features/documents/editors/DualEditMiniPanel.tsx index 654dfdff..61f3f24b 100644 --- a/apps/web/src/features/documents/editors/DualEditMiniPanel.tsx +++ b/apps/web/src/features/documents/editors/DualEditMiniPanel.tsx @@ -1,7 +1,7 @@ import React from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { toast } from "sonner"; import PopoverMiniEditor from "./PopoverMiniEditor"; diff --git a/apps/web/src/features/documents/editors/PopoverMiniEditor.tsx b/apps/web/src/features/documents/editors/PopoverMiniEditor.tsx index d3c87e56..4c4f7025 100644 --- a/apps/web/src/features/documents/editors/PopoverMiniEditor.tsx +++ b/apps/web/src/features/documents/editors/PopoverMiniEditor.tsx @@ -1,5 +1,5 @@ import React, { Suspense } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import InlineTaskEditor from "@features/calendar/components/agenda/InlineTaskEditor"; import InlineEventEditor from "@features/calendar/components/agenda/InlineEventEditor"; import DocumentMiniEditor from "./DocumentMiniEditor"; diff --git a/apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx b/apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx index 13746c8d..98b1fa02 100644 --- a/apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx +++ b/apps/web/src/features/documents/editors/SpreadsheetMiniEditor.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useEffect, useRef, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { Save, X, Maximize2, Minimize2, Download, Sparkles, Loader2, MessageSquare } from "lucide-react"; import { toast } from "sonner"; import Papa from "papaparse"; diff --git a/apps/web/src/features/documents/hooks/useDocumentOrdering.ts b/apps/web/src/features/documents/hooks/useDocumentOrdering.ts index 4aaa16e7..27449b4c 100644 --- a/apps/web/src/features/documents/hooks/useDocumentOrdering.ts +++ b/apps/web/src/features/documents/hooks/useDocumentOrdering.ts @@ -8,7 +8,7 @@ import { useState, useEffect, useCallback } from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { DocumentCardData } from "@features/documents/components/documentsHub/utils/documentHelpers"; // --------------------------------------------------------------------------- diff --git a/apps/web/src/features/documents/hooks/useDocumentOverlays.ts b/apps/web/src/features/documents/hooks/useDocumentOverlays.ts index 0891d691..876204ce 100644 --- a/apps/web/src/features/documents/hooks/useDocumentOverlays.ts +++ b/apps/web/src/features/documents/hooks/useDocumentOverlays.ts @@ -8,8 +8,8 @@ import { useState, useEffect, useCallback } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import type { DocumentCardData } from "@features/documents/components/documentsHub/utils/documentHelpers"; // --------------------------------------------------------------------------- diff --git a/apps/web/src/features/documents/hooks/useDocumentSelection.ts b/apps/web/src/features/documents/hooks/useDocumentSelection.ts index 3b603e3a..70c53478 100644 --- a/apps/web/src/features/documents/hooks/useDocumentSelection.ts +++ b/apps/web/src/features/documents/hooks/useDocumentSelection.ts @@ -8,8 +8,8 @@ import { useState, useCallback } from "react"; import { useMutation } from "convex/react"; import { toast } from "sonner"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import type { DocumentCardData } from "@features/documents/components/documentsHub/utils/documentHelpers"; // --------------------------------------------------------------------------- diff --git a/apps/web/src/features/documents/hooks/useDocumentUpload.ts b/apps/web/src/features/documents/hooks/useDocumentUpload.ts index f5de6cc5..dfdc0395 100644 --- a/apps/web/src/features/documents/hooks/useDocumentUpload.ts +++ b/apps/web/src/features/documents/hooks/useDocumentUpload.ts @@ -9,8 +9,8 @@ import { useMutation, useAction } from "convex/react"; import { useDropzone } from "react-dropzone"; import { toast } from "sonner"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; // --------------------------------------------------------------------------- // Helpers (MIME type from file extension) diff --git a/apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts b/apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts index 8b04880b..0e1437b4 100644 --- a/apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts +++ b/apps/web/src/features/documents/hooks/useDocumentWorkspaceState.ts @@ -16,7 +16,7 @@ import { useMemo } from "react"; import { useDropzone } from "react-dropzone"; import { useMutation } from "convex/react"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import type { DocumentCardData } from "@features/documents/components/documentsHub/utils/documentHelpers"; import { useDocumentData } from "./useDocumentData"; diff --git a/apps/web/src/features/documents/hooks/usePlannerAgendaData.ts b/apps/web/src/features/documents/hooks/usePlannerAgendaData.ts index 00d882cd..71a645e6 100644 --- a/apps/web/src/features/documents/hooks/usePlannerAgendaData.ts +++ b/apps/web/src/features/documents/hooks/usePlannerAgendaData.ts @@ -7,7 +7,7 @@ import { useState, useMemo, useCallback, useRef, useEffect } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { PlannerDateNavSlice } from "./usePlannerDateNav"; // --------------------------------------------------------------------------- diff --git a/apps/web/src/features/documents/hooks/usePlannerController.ts b/apps/web/src/features/documents/hooks/usePlannerController.ts index 7af8f212..636c43c1 100644 --- a/apps/web/src/features/documents/hooks/usePlannerController.ts +++ b/apps/web/src/features/documents/hooks/usePlannerController.ts @@ -14,7 +14,7 @@ */ import { useEffect, useMemo } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { PlannerMode, AgendaPopoverState } from "@features/documents/components/documentsHub"; import { usePlannerState } from "@/hooks/usePlannerState"; import { usePlannerMutations } from "./usePlannerMutations"; diff --git a/apps/web/src/features/documents/hooks/usePlannerEditor.ts b/apps/web/src/features/documents/hooks/usePlannerEditor.ts index 0907baba..feb050f1 100644 --- a/apps/web/src/features/documents/hooks/usePlannerEditor.ts +++ b/apps/web/src/features/documents/hooks/usePlannerEditor.ts @@ -6,7 +6,7 @@ */ import { useState, useEffect, useRef, useCallback } from "react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { AgendaPopoverState } from "@features/documents/components/documentsHub"; import type { PlannerMode } from "@features/documents/components/documentsHub"; diff --git a/apps/web/src/features/documents/hooks/usePlannerMutations.ts b/apps/web/src/features/documents/hooks/usePlannerMutations.ts index bb76f9b2..0d381687 100644 --- a/apps/web/src/features/documents/hooks/usePlannerMutations.ts +++ b/apps/web/src/features/documents/hooks/usePlannerMutations.ts @@ -5,7 +5,7 @@ */ import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; // --------------------------------------------------------------------------- // Types diff --git a/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx index e7b74fff..5d1573a8 100644 --- a/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx +++ b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetSheetView.tsx @@ -2,8 +2,8 @@ import React, { useEffect, useMemo, useRef, useState } from "react"; import { useAction, useMutation, useQuery } from "convex/react"; import { toast } from "sonner"; import Spreadsheet from "react-spreadsheet"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { ArrowLeft, RefreshCw } from "lucide-react"; import { useFastAgent } from "@/features/agents/context/FastAgentContext"; diff --git a/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx index c39a18bc..e3a07df2 100644 --- a/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx +++ b/apps/web/src/features/documents/surfaces/spreadsheets/SpreadsheetsHub.tsx @@ -1,7 +1,7 @@ import React from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { FileSpreadsheet } from "lucide-react"; export function SpreadsheetsHub({ diff --git a/apps/web/src/features/documents/views/DocumentView.tsx b/apps/web/src/features/documents/views/DocumentView.tsx index e656c343..e64e6a8c 100644 --- a/apps/web/src/features/documents/views/DocumentView.tsx +++ b/apps/web/src/features/documents/views/DocumentView.tsx @@ -1,7 +1,7 @@ import { useQuery } from "convex/react"; import { useEffect, useRef, useState, useCallback, lazy, Suspense } from "react"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import { DocumentHeader } from "@/features/documents/components/DocumentHeader"; // Editor wrapper with UnifiedEditor (BlockNote/ProseMirror) import { Editor } from "@/components/Editor/Editor"; diff --git a/apps/web/src/features/documents/views/FileViewer.tsx b/apps/web/src/features/documents/views/FileViewer.tsx index d0feaecd..3b538084 100644 --- a/apps/web/src/features/documents/views/FileViewer.tsx +++ b/apps/web/src/features/documents/views/FileViewer.tsx @@ -1,7 +1,7 @@ import React, { Suspense, useState, useEffect } from 'react'; import { useQuery, useAction } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import { ErrorBoundary } from "@shared/components/ErrorBoundary"; import { FileText, diff --git a/apps/web/src/features/documents/views/PublicDocuments.tsx b/apps/web/src/features/documents/views/PublicDocuments.tsx index 65d4a96b..0cd3a6a5 100644 --- a/apps/web/src/features/documents/views/PublicDocuments.tsx +++ b/apps/web/src/features/documents/views/PublicDocuments.tsx @@ -1,6 +1,6 @@ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import { Globe } from "lucide-react"; import { DocumentCard } from "@features/documents/components/documentsHub"; import { PageHeroHeader } from "@shared/ui/PageHeroHeader"; diff --git a/apps/web/src/features/documents/views/SpreadsheetView.tsx b/apps/web/src/features/documents/views/SpreadsheetView.tsx index c5019495..1298ab6f 100644 --- a/apps/web/src/features/documents/views/SpreadsheetView.tsx +++ b/apps/web/src/features/documents/views/SpreadsheetView.tsx @@ -1,7 +1,7 @@ import React, { Suspense, useState, useEffect, useRef, useCallback } from 'react'; import { useQuery, useMutation, useAction } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import { toast } from 'sonner'; import { Loader2, diff --git a/apps/web/src/features/dogfood/components/TasteBenchPanel.tsx b/apps/web/src/features/dogfood/components/TasteBenchPanel.tsx index c9d2f767..ce32b622 100644 --- a/apps/web/src/features/dogfood/components/TasteBenchPanel.tsx +++ b/apps/web/src/features/dogfood/components/TasteBenchPanel.tsx @@ -1,6 +1,6 @@ import { useEffect, useMemo, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { TASTE_BENCH_CORRECTIONS, TASTE_BENCH_DIMENSIONS, diff --git a/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx b/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx index ffa340d1..d71f4bb0 100644 --- a/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx +++ b/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx @@ -2,7 +2,7 @@ import { useAction, useConvex, useMutation, useQuery } from "convex/react"; import { useConvexAuth } from "convex/react"; import { useAuthActions } from "@convex-dev/auth/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { PageHeroHeader } from "@/shared/ui/PageHeroHeader"; import { TasteBenchPanel } from "../components/TasteBenchPanel"; diff --git a/apps/web/src/features/editor/components/UnifiedEditor.tsx b/apps/web/src/features/editor/components/UnifiedEditor.tsx index c33276bc..6caec606 100644 --- a/apps/web/src/features/editor/components/UnifiedEditor.tsx +++ b/apps/web/src/features/editor/components/UnifiedEditor.tsx @@ -7,8 +7,8 @@ import StarterKit from "@tiptap/starter-kit"; import "@blocknote/core/fonts/inter.css"; import "@blocknote/mantine/style.css"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import { useBlockNoteSync } from "@convex-dev/prosemirror-sync/blocknote"; import { useQuery, useMutation, useConvex } from "convex/react"; diff --git a/apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx b/apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx index 58773c4d..55a295fc 100644 --- a/apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx +++ b/apps/web/src/features/editor/components/UnifiedEditor/DeepAgentProgress.tsx @@ -11,7 +11,7 @@ import React, { useMemo } from "react"; import type { PendingEdit, ThreadEditStats } from "../../hooks/usePendingEdits"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // Thread colors for multi-agent scenarios (up to 6 distinct colors) // Tailwind class equivalents: bg-blue-500/10, bg-emerald-500/10, etc. diff --git a/apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx b/apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx index 80877d72..85a9b3d4 100644 --- a/apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx +++ b/apps/web/src/features/editor/components/UnifiedEditor/PmBridge.tsx @@ -5,7 +5,7 @@ import React, { useEffect } from 'react'; import { useCurrentEditor } from '@tiptap/react'; -import { Id } from '../../../../../convex/_generated/dataModel'; +import { Id } from '@convex/_generated/dataModel'; import { getBlockText } from '../../utils/blockUtils'; interface PmBridgeProps { diff --git a/apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx b/apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx index 3b1104cd..dc63b41a 100644 --- a/apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx +++ b/apps/web/src/features/editor/components/UnifiedEditor/ShadowTiptap.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { EditorProvider } from '@tiptap/react'; import StarterKit from '@tiptap/starter-kit'; import { PmBridge } from './PmBridge'; -import { Id } from '../../../../../convex/_generated/dataModel'; +import { Id } from '@convex/_generated/dataModel'; interface ShadowTiptapProps { documentId: Id<"documents">; diff --git a/apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts b/apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts index b04837cb..377811ae 100644 --- a/apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts +++ b/apps/web/src/features/editor/components/UnifiedEditor/useInlineFastAgent.ts @@ -5,8 +5,8 @@ import { useState, useCallback, useRef, useEffect } from "react"; import { useConvex, useAction, useMutation, useQuery } from "convex/react"; import { useUIMessages } from "@convex-dev/agent/react"; -import { api, internal } from "../../../../../convex/_generated/api"; -import { Id } from "../../../../../convex/_generated/dataModel"; +import { api, internal } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import type { BlockNoteEditor } from "@blocknote/core"; interface InlineFastAgentOptions { diff --git a/apps/web/src/features/editor/hooks/useEditorSeeding.ts b/apps/web/src/features/editor/hooks/useEditorSeeding.ts index d4acc492..9be9f319 100644 --- a/apps/web/src/features/editor/hooks/useEditorSeeding.ts +++ b/apps/web/src/features/editor/hooks/useEditorSeeding.ts @@ -5,7 +5,7 @@ import { useEffect, useRef, useMemo, useCallback } from 'react'; import { BlockNoteEditor, type PartialBlock } from '@blocknote/core'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { Id } from '@convex/_generated/dataModel'; import { blocksAreTriviallyEmpty, bnEnsureTopLevelBlock } from '../utils/blockUtils'; // Caches for seeding state diff --git a/apps/web/src/features/editor/hooks/useFileUpload.ts b/apps/web/src/features/editor/hooks/useFileUpload.ts index 59871287..c654f6b3 100644 --- a/apps/web/src/features/editor/hooks/useFileUpload.ts +++ b/apps/web/src/features/editor/hooks/useFileUpload.ts @@ -5,7 +5,7 @@ import { useCallback } from 'react'; import { useMutation, useConvex } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; export function useFileUpload() { const convex = useConvex(); diff --git a/apps/web/src/features/editor/hooks/useHashtagMenu.ts b/apps/web/src/features/editor/hooks/useHashtagMenu.ts index 81f05b15..3ba2ce0a 100644 --- a/apps/web/src/features/editor/hooks/useHashtagMenu.ts +++ b/apps/web/src/features/editor/hooks/useHashtagMenu.ts @@ -6,8 +6,8 @@ import { useCallback } from 'react'; import { useConvex } from 'convex/react'; import { DefaultReactSuggestionItem } from '@blocknote/react'; -import { api } from '../../../../convex/_generated/api'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; interface UseHashtagMenuOptions { editor: any; // BlockNote editor instance diff --git a/apps/web/src/features/editor/hooks/useMentionMenu.ts b/apps/web/src/features/editor/hooks/useMentionMenu.ts index 6a3adbdc..8caaeae8 100644 --- a/apps/web/src/features/editor/hooks/useMentionMenu.ts +++ b/apps/web/src/features/editor/hooks/useMentionMenu.ts @@ -6,7 +6,7 @@ import { useCallback } from 'react'; import { useConvex } from 'convex/react'; import { DefaultReactSuggestionItem } from '@blocknote/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; interface UseMentionMenuOptions { editor: any; // BlockNote editor instance diff --git a/apps/web/src/features/editor/hooks/usePendingEdits.ts b/apps/web/src/features/editor/hooks/usePendingEdits.ts index 1d5b6b00..b55a50b9 100644 --- a/apps/web/src/features/editor/hooks/usePendingEdits.ts +++ b/apps/web/src/features/editor/hooks/usePendingEdits.ts @@ -17,8 +17,8 @@ import { useQuery, useMutation } from "convex/react"; import { useEffect, useRef, useCallback, useMemo, useState } from "react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; export interface PendingEdit { _id: Id<"pendingDocumentEdits">; diff --git a/apps/web/src/features/editor/hooks/useProposalSystem.ts b/apps/web/src/features/editor/hooks/useProposalSystem.ts index 6acde902..7be9e110 100644 --- a/apps/web/src/features/editor/hooks/useProposalSystem.ts +++ b/apps/web/src/features/editor/hooks/useProposalSystem.ts @@ -5,8 +5,8 @@ import { useState, useEffect, useCallback, useRef, useMemo } from 'react'; import { useQuery, useMutation } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import type { AIToolAction } from '../types'; interface PendingProposal { diff --git a/apps/web/src/features/editor/types.ts b/apps/web/src/features/editor/types.ts index 1eebc234..dd3e4569 100644 --- a/apps/web/src/features/editor/types.ts +++ b/apps/web/src/features/editor/types.ts @@ -3,7 +3,7 @@ * Extracted from UnifiedEditor.tsx for modularity */ -import { Id } from "../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; export type EditorMode = "quickEdit" | "quickNote" | "full"; diff --git a/apps/web/src/features/entities/components/notebook/BlockProvenance.tsx b/apps/web/src/features/entities/components/notebook/BlockProvenance.tsx index 4fd523fd..3f000beb 100644 --- a/apps/web/src/features/entities/components/notebook/BlockProvenance.tsx +++ b/apps/web/src/features/entities/components/notebook/BlockProvenance.tsx @@ -21,7 +21,7 @@ */ import { memo } from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { BlockChip } from "./BlockChipRenderer"; type Block = { diff --git a/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx b/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx index 3b0b0572..90f1ec87 100644 --- a/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx +++ b/apps/web/src/features/entities/components/notebook/DiligenceDriftBanner.tsx @@ -20,7 +20,7 @@ import { useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type VerdictRow = { _id: string; diff --git a/apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx b/apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx index 115ba798..aabe39d7 100644 --- a/apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx +++ b/apps/web/src/features/entities/components/notebook/EntityNotebookLive.tsx @@ -17,7 +17,7 @@ import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useMutation, usePaginatedQuery, useQuery } from "convex/react"; import { useNavigate } from "react-router-dom"; import { AlertTriangle, ExternalLink, Link2, Lock } from "lucide-react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { chipsEqual, chipsToPlainText, @@ -74,7 +74,7 @@ import { readQueue, removeById as removeOfflineEdit, } from "./notebookOfflineQueue"; -import { buildProductBlockSyncId } from "../../../../../shared/productBlockSync"; +import { buildProductBlockSyncId } from "../../../../../../../shared/productBlockSync"; import { useDiligenceBlocks } from "./useDiligenceBlocks"; import type { DiligenceDecorationData } from "./DiligenceDecorationPlugin"; import { acceptDecorationIntoNotebook } from "./acceptDecorationIntoNotebook"; diff --git a/apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx b/apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx index 6c297294..5519a9de 100644 --- a/apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx +++ b/apps/web/src/features/entities/components/notebook/ExtendedRunPanel.tsx @@ -23,8 +23,8 @@ import { useMemo, useState } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; type RunRow = { _id: Id<"extendedThinkingRuns">; diff --git a/apps/web/src/features/entities/components/notebook/MentionPicker.tsx b/apps/web/src/features/entities/components/notebook/MentionPicker.tsx index 3470352e..648df386 100644 --- a/apps/web/src/features/entities/components/notebook/MentionPicker.tsx +++ b/apps/web/src/features/entities/components/notebook/MentionPicker.tsx @@ -25,7 +25,7 @@ import { useCallback, useEffect, useRef, useState, type KeyboardEvent } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; export type EntityMatch = { diff --git a/apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx b/apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx index 1ee04963..e340624c 100644 --- a/apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx +++ b/apps/web/src/features/entities/components/notebook/NotebookBlockEditor.tsx @@ -20,7 +20,7 @@ import { useTiptapSync } from "@convex-dev/prosemirror-sync/tiptap"; import { useConvexApi } from "@/lib/convexApi"; import type { EntityMatch } from "./MentionPicker"; import { BlockChipRenderer, type BlockChip } from "./BlockChipRenderer"; -import { chipsToProsemirrorDoc, prosemirrorDocToChips } from "../../../../../shared/notebookBlockProsemirror"; +import { chipsToProsemirrorDoc, prosemirrorDocToChips } from "../../../../../../../shared/notebookBlockProsemirror"; import { createDiligenceDecorationPlugin, diligenceDecorationPluginKey, diff --git a/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts index 5ad50ebe..c450eb79 100644 --- a/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts +++ b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { acceptDecorationIntoNotebook } from "./acceptDecorationIntoNotebook"; import type { DiligenceDecorationData } from "./DiligenceDecorationPlugin"; import { diff --git a/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts index 1c2ba8ac..19bd993e 100644 --- a/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts +++ b/apps/web/src/features/entities/components/notebook/entityNotebookAuthorityHelpers.ts @@ -1,4 +1,4 @@ -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { AcceptedNotebookBlockDraft } from "./acceptDecorationIntoNotebook"; import type { BlockChip } from "./BlockChipRenderer"; import { diff --git a/apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts b/apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts index 3ff77f8d..79c4ce2c 100644 --- a/apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts +++ b/apps/web/src/features/entities/components/notebook/entityNotebookLiveHelpers.ts @@ -10,7 +10,7 @@ * existing tests that import by component-file path. */ -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { BlockChip } from "./BlockChipRenderer"; export type BlockKind = diff --git a/apps/web/src/features/entities/views/EntityPage.tsx b/apps/web/src/features/entities/views/EntityPage.tsx index fd168d0b..12f1acf1 100644 --- a/apps/web/src/features/entities/views/EntityPage.tsx +++ b/apps/web/src/features/entities/views/EntityPage.tsx @@ -56,7 +56,7 @@ import { buildPrepBriefPrompt, getReportArtifactLabel, isPrepBriefType, -} from "../../../../shared/reportArtifacts"; +} from "../../../../../../shared/reportArtifacts"; import { buildEntityPath, buildCrmSummary, diff --git a/apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx b/apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx index aad6e9b7..59094f82 100644 --- a/apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx +++ b/apps/web/src/features/evaluation/views/EvolutionDashboardView.tsx @@ -9,7 +9,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; function VerdictBadge({ verdict }: { verdict: string }) { const colors: Record = { diff --git a/apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx b/apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx index b13d095b..9ec8956c 100644 --- a/apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx +++ b/apps/web/src/features/events/views/ScratchnodePrivateBridge.tsx @@ -17,7 +17,7 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { useMutation } from "convex/react"; import DOMPurify from "dompurify"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type NoteSnapshot = { title: string; bodyHtml: string; pinned: boolean; updatedAt: number }; type ConsumeResult = diff --git a/apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx b/apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx index 78da76a4..6fa85a15 100644 --- a/apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx +++ b/apps/web/src/features/events/views/ScratchnodeWikiBridge.tsx @@ -25,7 +25,7 @@ import { useMemo } from "react"; import { useQuery } from "convex/react"; import DOMPurify from "dompurify"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type PublishedWiki = { eventName: string; diff --git a/apps/web/src/features/financialOperator/components/ApprovalCard.tsx b/apps/web/src/features/financialOperator/components/ApprovalCard.tsx index cb6a4b30..e9850621 100644 --- a/apps/web/src/features/financialOperator/components/ApprovalCard.tsx +++ b/apps/web/src/features/financialOperator/components/ApprovalCard.tsx @@ -1,7 +1,7 @@ import { useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import type { ApprovalRequestPayload, StepStatus } from "../types"; interface Props { diff --git a/apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx b/apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx index 856de4de..7f55ec39 100644 --- a/apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx +++ b/apps/web/src/features/financialOperator/components/FinancialOperatorOverlay.tsx @@ -22,7 +22,7 @@ import { useState, useEffect, useCallback } from "react"; import { ChevronRight, X, Maximize2, Minimize2 } from "lucide-react"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { FinancialOperatorTimeline } from "./FinancialOperatorTimeline"; import { ModelCapabilityBadge } from "./ModelCapabilityBadge"; diff --git a/apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx b/apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx index f5cd2a54..f29e7895 100644 --- a/apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx +++ b/apps/web/src/features/financialOperator/components/FinancialOperatorTimeline.tsx @@ -1,6 +1,6 @@ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { StepCard, type StepRecord } from "./StepCard"; interface Props { diff --git a/apps/web/src/features/financialOperator/components/StepCard.tsx b/apps/web/src/features/financialOperator/components/StepCard.tsx index 19890029..82d0deb9 100644 --- a/apps/web/src/features/financialOperator/components/StepCard.tsx +++ b/apps/web/src/features/financialOperator/components/StepCard.tsx @@ -1,4 +1,4 @@ -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import type { ApprovalRequestPayload, ArtifactPayload, diff --git a/apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx b/apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx index 66ad5510..b2bdf898 100644 --- a/apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx +++ b/apps/web/src/features/financialOperator/components/WorkspaceComposer.tsx @@ -27,8 +27,8 @@ import { useState, useRef, useEffect } from "react"; import { useAction } from "convex/react"; import { ArrowUp, FileText, Link as LinkIcon, Mic, X, Plus } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { ModelCapabilityBadge } from "./ModelCapabilityBadge"; import { setActiveFinancialRun } from "./FinancialOperatorOverlay"; diff --git a/apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx b/apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx index f683e48b..c735fa8e 100644 --- a/apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx +++ b/apps/web/src/features/financialOperator/components/WorkspaceModePane.tsx @@ -31,8 +31,8 @@ import { ArrowLeft, Sparkles, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { FinancialOperatorTimeline } from "./FinancialOperatorTimeline"; import { setActiveFinancialRun } from "./FinancialOperatorOverlay"; import { diff --git a/apps/web/src/features/financialOperator/types.ts b/apps/web/src/features/financialOperator/types.ts index 7168d876..f691cd41 100644 --- a/apps/web/src/features/financialOperator/types.ts +++ b/apps/web/src/features/financialOperator/types.ts @@ -21,4 +21,4 @@ export type { ToolCallPayload, ValidationFinding, ValidationPayload, -} from "../../../convex/domains/financialOperator/types"; +} from "@convex/domains/financialOperator/types"; diff --git a/apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx b/apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx index 5e59dc90..2ad94037 100644 --- a/apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx +++ b/apps/web/src/features/financialOperator/views/FinancialOperatorDemo.tsx @@ -22,8 +22,8 @@ import { TrendingUp, MessageSquare, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { FinancialOperatorTimeline } from "../components/FinancialOperatorTimeline"; import { setActiveFinancialRun } from "../components/FinancialOperatorOverlay"; import { ModelCapabilityBadge } from "../components/ModelCapabilityBadge"; diff --git a/apps/web/src/features/home/views/HomeLanding.tsx b/apps/web/src/features/home/views/HomeLanding.tsx index ae693498..cb14f388 100644 --- a/apps/web/src/features/home/views/HomeLanding.tsx +++ b/apps/web/src/features/home/views/HomeLanding.tsx @@ -33,7 +33,7 @@ import { ComposerRoutingPreview } from "@/features/product/components/ComposerRo import { useProductBootstrap } from "@/features/product/lib/useProductBootstrap"; import { buildOperatorContextHint, buildOperatorContextLabel } from "@/features/product/lib/operatorContext"; import { uploadProductDraftFiles } from "@/features/product/lib/uploadDraftFiles"; -import { buildEntityAliasKey } from "../../../../shared/reportArtifacts"; +import { buildEntityAliasKey } from "../../../../../../shared/reportArtifacts"; import { EntityMentionText, seedEntitiesFromReports } from "@/features/notebook/components/EntityMentionText"; const SUGGESTED_PROMPTS = [ diff --git a/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx b/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx index ed1e84ea..2a552143 100644 --- a/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx +++ b/apps/web/src/features/mcp/components/SyncBridgeAccountPanel.tsx @@ -11,7 +11,7 @@ import { Smartphone, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getSyncBridgeAccountUrl, getSyncBridgeHealthUrl, diff --git a/apps/web/src/features/mcp/views/McpLedgerPage.tsx b/apps/web/src/features/mcp/views/McpLedgerPage.tsx index dc398e0a..95d1a50c 100644 --- a/apps/web/src/features/mcp/views/McpLedgerPage.tsx +++ b/apps/web/src/features/mcp/views/McpLedgerPage.tsx @@ -10,7 +10,7 @@ import { ShieldX, } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { SharedContextProtocolPanel } from "@/features/mcp/components/SharedContextProtocolPanel"; import { SyncBridgeAccountPanel } from "@/features/mcp/components/SyncBridgeAccountPanel"; import { cn } from "@/lib/utils"; diff --git a/apps/web/src/features/missions/views/MissionControlView.tsx b/apps/web/src/features/missions/views/MissionControlView.tsx index 648c87cb..0a1f5021 100644 --- a/apps/web/src/features/missions/views/MissionControlView.tsx +++ b/apps/web/src/features/missions/views/MissionControlView.tsx @@ -8,7 +8,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; function StatusBadge({ status }: { status: string }) { const colors: Record = { diff --git a/apps/web/src/features/monitoring/components/PRSuggestions.tsx b/apps/web/src/features/monitoring/components/PRSuggestions.tsx index 5030fcf9..72617db3 100644 --- a/apps/web/src/features/monitoring/components/PRSuggestions.tsx +++ b/apps/web/src/features/monitoring/components/PRSuggestions.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import { useQuery } from "convex/react"; import { useNavigate } from "react-router-dom"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { GitPullRequest, CheckCircle, Clock, XCircle, ExternalLink, Lightbulb, RefreshCw, ArrowRight } from "lucide-react"; import { PageHeroHeader } from "../../../shared/ui/PageHeroHeader"; diff --git a/apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx b/apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx index d7b7c2c3..adec65bf 100644 --- a/apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx +++ b/apps/web/src/features/monitoring/components/PipelineRollupPanel.tsx @@ -19,7 +19,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type TelemetryRollup = { total: number; diff --git a/apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx b/apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx index ee4833ba..b5df9ab4 100644 --- a/apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx +++ b/apps/web/src/features/narrative/components/HypothesisScorecard/HypothesisScorecard.tsx @@ -12,7 +12,7 @@ */ import React from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useHypothesisScorecard } from "../../hooks/useHypotheses"; interface HypothesisScorecardProps { diff --git a/apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx b/apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx index 20b6f1b1..aec2f740 100644 --- a/apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx +++ b/apps/web/src/features/narrative/components/SignalMetricsDashboard/SignalMetricsDashboard.tsx @@ -12,7 +12,7 @@ */ import React from "react"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { useThreadSignalSummary } from "../../hooks/useSignalMetrics"; interface SignalMetricsDashboardProps { diff --git a/apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx b/apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx index ffaf8d76..46a51ecf 100644 --- a/apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx +++ b/apps/web/src/features/narrative/components/social/EntityFindingsPanel.tsx @@ -1,6 +1,6 @@ import React, { useMemo, useState, useEffect } from "react"; -import { api } from "../../../../../convex/_generated/api"; -import type { Id } from "../../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { useStableQuery } from "@/hooks/useStableQuery"; import { Building2, ExternalLink, FileText } from "lucide-react"; diff --git a/apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx b/apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx index cbdc7c31..59452eff 100644 --- a/apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx +++ b/apps/web/src/features/narrative/components/social/LinkedInPostArchiveView.tsx @@ -1,5 +1,5 @@ import React, { useState, useMemo, useCallback } from "react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useStableQuery } from "@/hooks/useStableQuery"; import { LinkedInPostCard } from "./LinkedInPostCard"; import { EntityFindingsPanel } from "./EntityFindingsPanel"; diff --git a/apps/web/src/features/narrative/hooks/useCorrelations.ts b/apps/web/src/features/narrative/hooks/useCorrelations.ts index d1daeabb..fbbcfb25 100644 --- a/apps/web/src/features/narrative/hooks/useCorrelations.ts +++ b/apps/web/src/features/narrative/hooks/useCorrelations.ts @@ -8,8 +8,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { useMemo } from "react"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/apps/web/src/features/narrative/hooks/useHypotheses.ts b/apps/web/src/features/narrative/hooks/useHypotheses.ts index 8c5c8649..e1665b94 100644 --- a/apps/web/src/features/narrative/hooks/useHypotheses.ts +++ b/apps/web/src/features/narrative/hooks/useHypotheses.ts @@ -7,8 +7,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; /** * Hypothesis status type diff --git a/apps/web/src/features/narrative/hooks/useNarrativeEvents.ts b/apps/web/src/features/narrative/hooks/useNarrativeEvents.ts index 08fa67d4..85ab8732 100644 --- a/apps/web/src/features/narrative/hooks/useNarrativeEvents.ts +++ b/apps/web/src/features/narrative/hooks/useNarrativeEvents.ts @@ -7,8 +7,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import type { NarrativeEvent, WeekColumn } from "../types"; export interface UseNarrativeEventsOptions { diff --git a/apps/web/src/features/narrative/hooks/useNarrativeThreads.ts b/apps/web/src/features/narrative/hooks/useNarrativeThreads.ts index cebd4e55..db382bb7 100644 --- a/apps/web/src/features/narrative/hooks/useNarrativeThreads.ts +++ b/apps/web/src/features/narrative/hooks/useNarrativeThreads.ts @@ -7,7 +7,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { NarrativeThread } from "../types"; export interface UseNarrativeThreadsOptions { diff --git a/apps/web/src/features/narrative/hooks/useSignalMetrics.ts b/apps/web/src/features/narrative/hooks/useSignalMetrics.ts index b40254f0..71d036e5 100644 --- a/apps/web/src/features/narrative/hooks/useSignalMetrics.ts +++ b/apps/web/src/features/narrative/hooks/useSignalMetrics.ts @@ -7,8 +7,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; /** * Signal domain type diff --git a/apps/web/src/features/narrative/types.ts b/apps/web/src/features/narrative/types.ts index 88da8c50..ffeeade6 100644 --- a/apps/web/src/features/narrative/types.ts +++ b/apps/web/src/features/narrative/types.ts @@ -6,7 +6,7 @@ * @module features/narrative/types */ -import type { Id } from "../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; /** * Thread phase for narrative arc progression diff --git a/apps/web/src/features/notebook/hooks/useEntityExpansion.ts b/apps/web/src/features/notebook/hooks/useEntityExpansion.ts index e433e7e7..7167cbb1 100644 --- a/apps/web/src/features/notebook/hooks/useEntityExpansion.ts +++ b/apps/web/src/features/notebook/hooks/useEntityExpansion.ts @@ -73,7 +73,7 @@ async function getConvexClient(): Promise<{ client: any; api: any } | null> { if (!_clientPromise) { _clientPromise = (async () => { const { ConvexHttpClient } = await import("convex/browser"); - const { api } = await import("../../../../convex/_generated/api"); + const { api } = await import("@convex/_generated/api"); const client = new ConvexHttpClient(convexUrl); return { client, api }; })(); diff --git a/apps/web/src/features/observability/views/ObservabilityView.tsx b/apps/web/src/features/observability/views/ObservabilityView.tsx index 13e9d709..dc9b7a0b 100644 --- a/apps/web/src/features/observability/views/ObservabilityView.tsx +++ b/apps/web/src/features/observability/views/ObservabilityView.tsx @@ -8,7 +8,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { ErrorBoundary } from "@/shared/components/ErrorBoundary"; import { Activity, diff --git a/apps/web/src/features/onboarding/views/TutorialPage.tsx b/apps/web/src/features/onboarding/views/TutorialPage.tsx index 95f058c5..5da85b99 100644 --- a/apps/web/src/features/onboarding/views/TutorialPage.tsx +++ b/apps/web/src/features/onboarding/views/TutorialPage.tsx @@ -1,7 +1,7 @@ import { useState, useRef, useEffect } from "react"; import { useAction } from "convex/react"; import { useAuthActions } from "@convex-dev/auth/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import ReactMarkdown from 'react-markdown'; import { Bot, @@ -23,7 +23,7 @@ import { Megaphone, Stethoscope, } from "lucide-react"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; interface OnboardingStep { id: string; diff --git a/apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx b/apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx index 84fbdc63..383199af 100644 --- a/apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx +++ b/apps/web/src/features/pipelines/views/PipelineEvalScorecard.tsx @@ -6,7 +6,7 @@ import React, { useMemo } from "react"; import { useStableQuery } from "@/hooks/useStableQuery"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Gauge, TrendingUp } from "lucide-react"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; diff --git a/apps/web/src/features/pipelines/views/PipelineLauncher.tsx b/apps/web/src/features/pipelines/views/PipelineLauncher.tsx index 838fbeb4..1685e1e8 100644 --- a/apps/web/src/features/pipelines/views/PipelineLauncher.tsx +++ b/apps/web/src/features/pipelines/views/PipelineLauncher.tsx @@ -9,7 +9,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useConvexAuth, useMutation } from "convex/react"; import { useAuthActions } from "@convex-dev/auth/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Calendar, Layers } from "lucide-react"; import { ExactComposer } from "@/features/designKit/exact/ExactComposer"; import { diff --git a/apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx b/apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx index a39e3c46..90eee6ba 100644 --- a/apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx +++ b/apps/web/src/features/pipelines/views/PipelineRunsPanel.tsx @@ -6,7 +6,7 @@ */ import React, { useMemo, useState } from "react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useStableQuery } from "@/hooks/useStableQuery"; import { useWindowedList } from "@/lib/performance/useWindowedList"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; diff --git a/apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx b/apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx index 7e5b5423..2ec7892c 100644 --- a/apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx +++ b/apps/web/src/features/pipelines/views/PipelineSchedulesPanel.tsx @@ -7,8 +7,8 @@ import React from "react"; import { useConvexAuth, useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import { useWindowedList } from "@/lib/performance/useWindowedList"; import { Calendar, diff --git a/apps/web/src/features/redesign/components/ChatAssistantMessage.tsx b/apps/web/src/features/redesign/components/ChatAssistantMessage.tsx index f5968b99..4ece7e7b 100644 --- a/apps/web/src/features/redesign/components/ChatAssistantMessage.tsx +++ b/apps/web/src/features/redesign/components/ChatAssistantMessage.tsx @@ -59,7 +59,7 @@ import { type ResearchStage, type ResearchStageId, } from "../../research/LiveResearchChecklist"; -import { isStructuredAnswer } from "../../../../shared/redesign/answerFormat"; +import { isStructuredAnswer } from "../../../../../../shared/redesign/answerFormat"; import type { ChatAnswer } from "../hooks/useRedesignChatRun"; import { showToast } from "./Toast"; diff --git a/apps/web/src/features/redesign/components/UniversalComposer.test.tsx b/apps/web/src/features/redesign/components/UniversalComposer.test.tsx index 476e8e2b..f0ef99bf 100644 --- a/apps/web/src/features/redesign/components/UniversalComposer.test.tsx +++ b/apps/web/src/features/redesign/components/UniversalComposer.test.tsx @@ -1,7 +1,7 @@ import { act, fireEvent, render, screen } from "@testing-library/react"; import { afterEach, beforeEach, describe, expect, it, vi } from "vitest"; -import { modelForTier } from "../../../../convex/domains/redesign/chatRuns"; +import { modelForTier } from "@convex/domains/redesign/chatRuns"; import { CANCEL_ARM_DELAY_MS, DEFAULT_TIERS, diff --git a/apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx b/apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx index a64d0ee0..e9d8f2bd 100644 --- a/apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx +++ b/apps/web/src/features/redesign/components/edition/EvidenceChecklistStrip.tsx @@ -9,7 +9,7 @@ * the caller should pass null and we render a hyphen. */ -import type { EvidenceChecklist } from "../../../../../convex/domains/research/narrative/validators"; +import type { EvidenceChecklist } from "@convex/domains/research/narrative/validators"; import { DotGrid } from "./DotGrid"; const LEVEL_LABEL: Record<"grounded" | "mixed" | "speculative", string> = { diff --git a/apps/web/src/features/redesign/components/edition/FormatStrip.tsx b/apps/web/src/features/redesign/components/edition/FormatStrip.tsx index 8775f2a4..1057b52e 100644 --- a/apps/web/src/features/redesign/components/edition/FormatStrip.tsx +++ b/apps/web/src/features/redesign/components/edition/FormatStrip.tsx @@ -24,7 +24,7 @@ import { useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { showToast } from "../Toast"; interface Props { diff --git a/apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx b/apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx index d9ffe22f..f90b91a8 100644 --- a/apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx +++ b/apps/web/src/features/redesign/components/edition/VideoLiteEmbed.tsx @@ -28,7 +28,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useAction, useQuery } from "convex/react"; -import { api } from "../../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { detectVideoProviderClient, sha256Hex } from "../../utils/videoProvider"; interface Props { diff --git a/apps/web/src/features/redesign/hooks/useActiveHypotheses.ts b/apps/web/src/features/redesign/hooks/useActiveHypotheses.ts index b350f806..8e21142c 100644 --- a/apps/web/src/features/redesign/hooks/useActiveHypotheses.ts +++ b/apps/web/src/features/redesign/hooks/useActiveHypotheses.ts @@ -6,8 +6,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; -import type { EvidenceChecklist } from "../../../../convex/domains/research/narrative/validators"; +import { api } from "@convex/_generated/api"; +import type { EvidenceChecklist } from "@convex/domains/research/narrative/validators"; export interface EditionHypothesis { _id: string; diff --git a/apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts b/apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts index 8deb7a96..64bfbfe7 100644 --- a/apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts +++ b/apps/web/src/features/redesign/hooks/useCapabilitiesDelta.ts @@ -9,7 +9,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export interface CapabilitiesDelta { windowDays: number; diff --git a/apps/web/src/features/redesign/hooks/useEditionFootnotes.ts b/apps/web/src/features/redesign/hooks/useEditionFootnotes.ts index 529d27eb..ece98337 100644 --- a/apps/web/src/features/redesign/hooks/useEditionFootnotes.ts +++ b/apps/web/src/features/redesign/hooks/useEditionFootnotes.ts @@ -8,7 +8,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export interface FootnoteArtifact { _id: string; diff --git a/apps/web/src/features/redesign/hooks/useInboxLive.ts b/apps/web/src/features/redesign/hooks/useInboxLive.ts index ad26e5ac..dca2c8fc 100644 --- a/apps/web/src/features/redesign/hooks/useInboxLive.ts +++ b/apps/web/src/features/redesign/hooks/useInboxLive.ts @@ -7,7 +7,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { InboxItem } from "../fixtures"; import { getAnonymousProductSessionId } from "../../product/lib/productIdentity"; diff --git a/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts b/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts index 027d11f9..fa4afece 100644 --- a/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts +++ b/apps/web/src/features/redesign/hooks/useLatestDailyBriefSnapshot.ts @@ -5,7 +5,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export interface KeyStat { label?: string; diff --git a/apps/web/src/features/redesign/hooks/useLiveArtifacts.ts b/apps/web/src/features/redesign/hooks/useLiveArtifacts.ts index c458b0cf..2d34e183 100644 --- a/apps/web/src/features/redesign/hooks/useLiveArtifacts.ts +++ b/apps/web/src/features/redesign/hooks/useLiveArtifacts.ts @@ -9,7 +9,7 @@ import { useEffect, useMemo, useRef, useState } from "react"; import { useConvex, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { PulseMetric, PulseCard, PublicResearchCard, ReportCardData, SignalClass } from "../fixtures"; interface ArchivePost { diff --git a/apps/web/src/features/redesign/hooks/useRedesignChatRun.ts b/apps/web/src/features/redesign/hooks/useRedesignChatRun.ts index 29724ed8..3acf1de1 100644 --- a/apps/web/src/features/redesign/hooks/useRedesignChatRun.ts +++ b/apps/web/src/features/redesign/hooks/useRedesignChatRun.ts @@ -16,7 +16,7 @@ */ import { useState, useCallback, useEffect, useMemo, useRef } from "react"; import { useMutation, useQuery, useConvexAuth } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { ChatAnswer as BaseChatAnswer } from "../fixtures"; import type { RouterTier } from "../components/UniversalComposer"; import type { LiveGroundingDecision } from "shared/redesign/contextRuntimePolicy"; diff --git a/apps/web/src/features/redesign/hooks/useTemporalEdition.ts b/apps/web/src/features/redesign/hooks/useTemporalEdition.ts index 77aaa081..8a26971e 100644 --- a/apps/web/src/features/redesign/hooks/useTemporalEdition.ts +++ b/apps/web/src/features/redesign/hooks/useTemporalEdition.ts @@ -5,7 +5,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getStoredAnonymousSessionId } from "./editionSession"; /* ─── Daily edition (specific past day) ──────────────────────────── */ diff --git a/apps/web/src/features/redesign/hooks/useTodayPulse.ts b/apps/web/src/features/redesign/hooks/useTodayPulse.ts index ef1cb31d..98aeae63 100644 --- a/apps/web/src/features/redesign/hooks/useTodayPulse.ts +++ b/apps/web/src/features/redesign/hooks/useTodayPulse.ts @@ -13,7 +13,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getStoredAnonymousSessionId } from "./editionSession"; export type TodayPulseProvenance = "user" | "public-trending" | "empty"; diff --git a/apps/web/src/features/redesign/hooks/useTopForecasts.ts b/apps/web/src/features/redesign/hooks/useTopForecasts.ts index 5625ea9e..76faa1d3 100644 --- a/apps/web/src/features/redesign/hooks/useTopForecasts.ts +++ b/apps/web/src/features/redesign/hooks/useTopForecasts.ts @@ -7,7 +7,7 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export interface EditionForecast { _id: string; diff --git a/apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx b/apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx index 0cc4aa84..7a771a1b 100644 --- a/apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx +++ b/apps/web/src/features/redesign/pages/ScratchnodeNoteDetailPage.tsx @@ -13,7 +13,7 @@ import { useQuery } from "convex/react"; import { Link, useParams } from "react-router-dom"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useScratchnodeSessionId } from "../hooks/useScratchnodeSessionId"; type NoteDetail = { diff --git a/apps/web/src/features/redesign/surfaces/ChatSurface.tsx b/apps/web/src/features/redesign/surfaces/ChatSurface.tsx index 139ae160..0b8cf194 100644 --- a/apps/web/src/features/redesign/surfaces/ChatSurface.tsx +++ b/apps/web/src/features/redesign/surfaces/ChatSurface.tsx @@ -40,7 +40,7 @@ import { buildGraphContextBridgePacket } from "../lib/graphContextBridge"; import { buildConversationContext } from "../lib/chatContinuation"; import { STARTER_ICONS } from "../components/ChatEmptyState"; import { useMutation, useQuery, useConvexAuth } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { LiveResearchChecklist } from "../../research/LiveResearchChecklist"; import { Conversation, diff --git a/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx b/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx index f0851e97..31718565 100644 --- a/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx +++ b/apps/web/src/features/redesign/surfaces/EditorialHomeSurface.tsx @@ -39,7 +39,7 @@ import { useEffect, useMemo, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { UniversalComposer } from "../components/UniversalComposer"; import { StreamingMarkdown } from "../components/StreamingMarkdown"; import { EditorialSection } from "../components/edition/EditorialSection"; diff --git a/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx b/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx index 73c5e41c..adc166ea 100644 --- a/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx +++ b/apps/web/src/features/redesign/surfaces/ScratchnodeEventsSurface.tsx @@ -22,7 +22,7 @@ import { useMemo, useState } from "react"; import { useMutation, useQuery } from "convex/react"; import { Link } from "react-router-dom"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useScratchnodeSessionId } from "../hooks/useScratchnodeSessionId"; import { getAnonymousProductSessionId } from "../../product/lib/productIdentity"; diff --git a/apps/web/src/features/research/components/CardInspector.tsx b/apps/web/src/features/research/components/CardInspector.tsx index ee1bc116..ad5a608e 100644 --- a/apps/web/src/features/research/components/CardInspector.tsx +++ b/apps/web/src/features/research/components/CardInspector.tsx @@ -30,7 +30,7 @@ import { X, Network, Bell, Layers } from "lucide-react"; import type { ResourceCard, ResourceUri, -} from "../../../../shared/research/resourceCards"; +} from "../../../../../../shared/research/resourceCards"; export interface CardInspectorProps { card: ResourceCard | null; diff --git a/apps/web/src/features/research/components/ChartAnnotationLayer.tsx b/apps/web/src/features/research/components/ChartAnnotationLayer.tsx index 312b4a66..21ded0c5 100644 --- a/apps/web/src/features/research/components/ChartAnnotationLayer.tsx +++ b/apps/web/src/features/research/components/ChartAnnotationLayer.tsx @@ -11,7 +11,7 @@ import React, { useMemo } from "react"; import { motion, AnimatePresence } from "framer-motion"; import { useMotionConfig } from '@/lib/motion'; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useCurrentAct, type Act } from "../contexts/FocusSyncContext"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/apps/web/src/features/research/components/EnhancedPersonalPulse.tsx b/apps/web/src/features/research/components/EnhancedPersonalPulse.tsx index 950de3e4..c4ef55c7 100644 --- a/apps/web/src/features/research/components/EnhancedPersonalPulse.tsx +++ b/apps/web/src/features/research/components/EnhancedPersonalPulse.tsx @@ -12,7 +12,7 @@ import { Zap, } from 'lucide-react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { useTimeContext } from '../../../hooks/useTimeContext'; import { sanitizeDocumentTitle } from '@/lib/displayText'; import { useMotionConfig } from '@/lib/motion'; diff --git a/apps/web/src/features/research/components/EntityContextDrawer.tsx b/apps/web/src/features/research/components/EntityContextDrawer.tsx index 66a6ddc2..0da4be91 100644 --- a/apps/web/src/features/research/components/EntityContextDrawer.tsx +++ b/apps/web/src/features/research/components/EntityContextDrawer.tsx @@ -3,7 +3,7 @@ import React, { useEffect, useMemo, useRef, useState } from "react"; import { X, RefreshCw, Building2, MapPin, Calendar, Globe, Users, DollarSign, ArrowUpRight } from "lucide-react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useFastAgent } from "@/features/agents/context/FastAgentContext"; import { AUDIT_MOCKS } from "../data/audit_mocks"; import { RepoStatsPanel } from "./RepoStatsPanel"; diff --git a/apps/web/src/features/research/components/ForYouFeed.tsx b/apps/web/src/features/research/components/ForYouFeed.tsx index cee259a7..0f0b105e 100644 --- a/apps/web/src/features/research/components/ForYouFeed.tsx +++ b/apps/web/src/features/research/components/ForYouFeed.tsx @@ -7,7 +7,7 @@ import React, { useState, useMemo, useRef } from "react"; import { motion } from "framer-motion"; import { useQuery, useMutation } from "convex/react"; import { SignatureOrb } from "../../../shared/ui/SignatureOrb"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Bookmark, ExternalLink, diff --git a/apps/web/src/features/research/components/ForecastCockpit.tsx b/apps/web/src/features/research/components/ForecastCockpit.tsx index 6cc2716d..58aecef4 100644 --- a/apps/web/src/features/research/components/ForecastCockpit.tsx +++ b/apps/web/src/features/research/components/ForecastCockpit.tsx @@ -1,11 +1,11 @@ import { useState } from "react"; import { TrendingUp, Target, BarChart3, ChevronDown, ChevronUp } from "lucide-react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { ForecastCard } from "./ForecastCard"; import { CalibrationPlot } from "./CalibrationPlot"; import { BrierTrendChart } from "./BrierTrendChart"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // ═══════════════════════════════════════════════════════════════════════════ // FORECAST COCKPIT diff --git a/apps/web/src/features/research/components/GitHubExplorer.tsx b/apps/web/src/features/research/components/GitHubExplorer.tsx index 69001775..2386a154 100644 --- a/apps/web/src/features/research/components/GitHubExplorer.tsx +++ b/apps/web/src/features/research/components/GitHubExplorer.tsx @@ -5,7 +5,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Github, Star, TrendingUp, Code, ExternalLink, Tag } from "lucide-react"; import { PageHeroHeader } from "../../../shared/ui/PageHeroHeader"; diff --git a/apps/web/src/features/research/components/IndustryUpdatesPanel.tsx b/apps/web/src/features/research/components/IndustryUpdatesPanel.tsx index 76679cfc..91cf8fc6 100644 --- a/apps/web/src/features/research/components/IndustryUpdatesPanel.tsx +++ b/apps/web/src/features/research/components/IndustryUpdatesPanel.tsx @@ -7,7 +7,7 @@ import React, { useState, useMemo } from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { toast } from "sonner"; import { TrendingUp, diff --git a/apps/web/src/features/research/components/InstantSearchBar.tsx b/apps/web/src/features/research/components/InstantSearchBar.tsx index 7603ad8d..e9f2dfd4 100644 --- a/apps/web/src/features/research/components/InstantSearchBar.tsx +++ b/apps/web/src/features/research/components/InstantSearchBar.tsx @@ -11,7 +11,7 @@ import React, { useState, useEffect, useRef, useCallback } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Search, ArrowRight, FileText, Sparkles, Clock, Zap } from 'lucide-react'; import { cn } from '@/lib/utils'; diff --git a/apps/web/src/features/research/components/LiveDashboard.tsx b/apps/web/src/features/research/components/LiveDashboard.tsx index ab6c754f..98a39ae1 100644 --- a/apps/web/src/features/research/components/LiveDashboard.tsx +++ b/apps/web/src/features/research/components/LiveDashboard.tsx @@ -2,7 +2,7 @@ import React from "react"; import { useQuery, useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { StickyDashboard } from "./StickyDashboard"; import { RefreshCw, AlertCircle, ChevronLeft, ChevronRight, Calendar, RotateCcw } from "lucide-react"; import type { DashboardState } from "@/features/research/types"; diff --git a/apps/web/src/features/research/components/LiveRadarWidget.tsx b/apps/web/src/features/research/components/LiveRadarWidget.tsx index efc9f231..4fa519af 100644 --- a/apps/web/src/features/research/components/LiveRadarWidget.tsx +++ b/apps/web/src/features/research/components/LiveRadarWidget.tsx @@ -7,7 +7,7 @@ import React, { useState } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Activity, Zap, diff --git a/apps/web/src/features/research/components/ModelComparisonTable.tsx b/apps/web/src/features/research/components/ModelComparisonTable.tsx index 7803da24..9087f2ea 100644 --- a/apps/web/src/features/research/components/ModelComparisonTable.tsx +++ b/apps/web/src/features/research/components/ModelComparisonTable.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { RefreshCw, TrendingUp, Clock } from "lucide-react"; interface ModelComparisonTableProps { diff --git a/apps/web/src/features/research/components/MorningDigest.tsx b/apps/web/src/features/research/components/MorningDigest.tsx index 2c910149..9fec745e 100644 --- a/apps/web/src/features/research/components/MorningDigest.tsx +++ b/apps/web/src/features/research/components/MorningDigest.tsx @@ -1,6 +1,6 @@ import React, { useState, useEffect, useMemo, useRef } from 'react'; import { useQuery, useAction, useMutation } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { Sparkles, ChevronDown, diff --git a/apps/web/src/features/research/components/PaperDetailsCard.tsx b/apps/web/src/features/research/components/PaperDetailsCard.tsx index 958b4c02..75d551cf 100644 --- a/apps/web/src/features/research/components/PaperDetailsCard.tsx +++ b/apps/web/src/features/research/components/PaperDetailsCard.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { FileText, RefreshCw, ExternalLink } from "lucide-react"; interface PaperDetailsCardProps { diff --git a/apps/web/src/features/research/components/PersonalAnalytics.tsx b/apps/web/src/features/research/components/PersonalAnalytics.tsx index fdc02579..f7e5f982 100644 --- a/apps/web/src/features/research/components/PersonalAnalytics.tsx +++ b/apps/web/src/features/research/components/PersonalAnalytics.tsx @@ -18,7 +18,7 @@ import { Flame, } from 'lucide-react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { staggerContainerVariants, staggerItemVariants } from '../../../utils/animations'; import { useMotionConfig } from '@/lib/motion'; diff --git a/apps/web/src/features/research/components/PersonalDashboard.tsx b/apps/web/src/features/research/components/PersonalDashboard.tsx index bba9a93c..701ed332 100644 --- a/apps/web/src/features/research/components/PersonalDashboard.tsx +++ b/apps/web/src/features/research/components/PersonalDashboard.tsx @@ -11,7 +11,7 @@ import { Clock, } from 'lucide-react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { useTimeContext } from '../../../hooks/useTimeContext'; import { useMotionConfig } from '@/lib/motion'; diff --git a/apps/web/src/features/research/components/RecommendationCard.tsx b/apps/web/src/features/research/components/RecommendationCard.tsx index cb56dde1..815ffeef 100644 --- a/apps/web/src/features/research/components/RecommendationCard.tsx +++ b/apps/web/src/features/research/components/RecommendationCard.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react'; import { motion } from 'framer-motion'; import { X, Lightbulb, FileText, Users, Bell, Sparkles, ChevronRight, ThumbsUp, ThumbsDown, Star } from 'lucide-react'; -import { Id } from '../../../../convex/_generated/dataModel'; +import { Id } from '@convex/_generated/dataModel'; import { useMotionConfig } from '@/lib/motion'; interface RecommendationCardProps { diff --git a/apps/web/src/features/research/components/RelatedFeedsGrid.tsx b/apps/web/src/features/research/components/RelatedFeedsGrid.tsx index b36069e7..b018ba08 100644 --- a/apps/web/src/features/research/components/RelatedFeedsGrid.tsx +++ b/apps/web/src/features/research/components/RelatedFeedsGrid.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { ExternalLink, Tag, diff --git a/apps/web/src/features/research/components/RepoSignalPanel.tsx b/apps/web/src/features/research/components/RepoSignalPanel.tsx index 06782751..2b8fcfd9 100644 --- a/apps/web/src/features/research/components/RepoSignalPanel.tsx +++ b/apps/web/src/features/research/components/RepoSignalPanel.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Network, RefreshCw, Star, GitBranch } from "lucide-react"; import SignalMomentumMini from "./SignalMomentumMini"; diff --git a/apps/web/src/features/research/components/RepoStatsPanel.tsx b/apps/web/src/features/research/components/RepoStatsPanel.tsx index 72d4acca..e0a2e330 100644 --- a/apps/web/src/features/research/components/RepoStatsPanel.tsx +++ b/apps/web/src/features/research/components/RepoStatsPanel.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useAction, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Sparkline, SparkBars } from "./Sparkline"; import { GitBranch, Star, Clock, RefreshCw } from "lucide-react"; diff --git a/apps/web/src/features/research/components/ScrollytellingLayout.tsx b/apps/web/src/features/research/components/ScrollytellingLayout.tsx index fd071dc8..7f02ba34 100644 --- a/apps/web/src/features/research/components/ScrollytellingLayout.tsx +++ b/apps/web/src/features/research/components/ScrollytellingLayout.tsx @@ -9,7 +9,7 @@ import streamData from "@/features/research/content/researchStream.json"; import LiveDashboard from "./LiveDashboard"; import SafeVegaChart from "./SafeVegaChart"; import type { DashboardState, StorySection } from "@/features/research/types"; -import { isUIFlagEnabled } from "../../../../convex/lib/featureFlags"; +import { isUIFlagEnabled } from "@convex/lib/featureFlags"; import type { Signal, Action, VizArtifact } from "@/features/research/types/dailyBriefSchema"; import { PageHeroHeader } from "@shared/ui/PageHeroHeader"; import { SignalList } from "./SignalCard"; diff --git a/apps/web/src/features/research/components/SignalMomentumMini.tsx b/apps/web/src/features/research/components/SignalMomentumMini.tsx index 2a447b16..b9f88ea5 100644 --- a/apps/web/src/features/research/components/SignalMomentumMini.tsx +++ b/apps/web/src/features/research/components/SignalMomentumMini.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { SparkBars } from "./Sparkline"; import { ErrorBoundary } from "@/shared/components/ErrorBoundary"; diff --git a/apps/web/src/features/research/components/SignalTimeseriesPanel.tsx b/apps/web/src/features/research/components/SignalTimeseriesPanel.tsx index f02ea72b..613f368d 100644 --- a/apps/web/src/features/research/components/SignalTimeseriesPanel.tsx +++ b/apps/web/src/features/research/components/SignalTimeseriesPanel.tsx @@ -2,7 +2,7 @@ import React, { useMemo, useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { SparkBars } from "./Sparkline"; import { Activity, Download } from "lucide-react"; import { ErrorBoundary } from "@/shared/components/ErrorBoundary"; diff --git a/apps/web/src/features/research/components/StackImpactPanel.tsx b/apps/web/src/features/research/components/StackImpactPanel.tsx index 6ea29516..87071b60 100644 --- a/apps/web/src/features/research/components/StackImpactPanel.tsx +++ b/apps/web/src/features/research/components/StackImpactPanel.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { AlertTriangle, RefreshCw } from "lucide-react"; import { EntityRadar } from "./EntityRadar"; diff --git a/apps/web/src/features/research/components/StrategyMetricsPanel.tsx b/apps/web/src/features/research/components/StrategyMetricsPanel.tsx index 6358659e..33412354 100644 --- a/apps/web/src/features/research/components/StrategyMetricsPanel.tsx +++ b/apps/web/src/features/research/components/StrategyMetricsPanel.tsx @@ -2,7 +2,7 @@ import React, { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { BarChart3, RefreshCw } from "lucide-react"; interface StrategyMetricsPanelProps { diff --git a/apps/web/src/features/research/components/WhatChangedPanel.tsx b/apps/web/src/features/research/components/WhatChangedPanel.tsx index f0960c22..bc9b06d0 100644 --- a/apps/web/src/features/research/components/WhatChangedPanel.tsx +++ b/apps/web/src/features/research/components/WhatChangedPanel.tsx @@ -14,7 +14,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useAction, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Bell, AlertTriangle, diff --git a/apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx b/apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx index 0e1c92e0..9250025d 100644 --- a/apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx +++ b/apps/web/src/features/research/components/dossier/DossierMediaGallery.tsx @@ -5,7 +5,7 @@ import React, { useState, useRef, useEffect } from 'react'; import { ChevronDown, ChevronRight, Video, Image as ImageIcon, FileText, Play, ExternalLink, X, Download } from 'lucide-react'; import type { VideoAsset, ImageAsset, DocumentAsset } from './mediaExtractor'; import MiniEditorPopover from '@/shared/components/MiniEditorPopover'; -import type { Id } from '../../../../../convex/_generated/dataModel'; +import type { Id } from '@convex/_generated/dataModel'; interface DossierMediaGalleryProps { videos: VideoAsset[]; diff --git a/apps/web/src/features/research/components/newsletter/NewsletterView.tsx b/apps/web/src/features/research/components/newsletter/NewsletterView.tsx index bb190f94..872d47d2 100644 --- a/apps/web/src/features/research/components/newsletter/NewsletterView.tsx +++ b/apps/web/src/features/research/components/newsletter/NewsletterView.tsx @@ -4,7 +4,7 @@ import React, { useState, useMemo, useCallback } from 'react'; import { useAction } from 'convex/react'; -import { api } from '../../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { parseMarkdownToDossier } from '../../utils/newsletterParser'; import { NewsletterSectionBlock, DigestHero, type NewsletterSection, type NewsletterMediaItem } from './NewsletterComponents'; import { EvidenceDrawer, type EvidenceSource } from './EvidenceDrawer'; diff --git a/apps/web/src/features/research/contexts/FocusSyncContext.tsx b/apps/web/src/features/research/contexts/FocusSyncContext.tsx index 1353f8d8..8b7f6730 100644 --- a/apps/web/src/features/research/contexts/FocusSyncContext.tsx +++ b/apps/web/src/features/research/contexts/FocusSyncContext.tsx @@ -2,7 +2,7 @@ import React, { createContext, useContext, useCallback, useMemo } from "react"; import { useQuery, useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/apps/web/src/features/research/hooks/useBriefData.ts b/apps/web/src/features/research/hooks/useBriefData.ts index 5e82d899..ad1d4e98 100644 --- a/apps/web/src/features/research/hooks/useBriefData.ts +++ b/apps/web/src/features/research/hooks/useBriefData.ts @@ -11,7 +11,7 @@ import { useMemo } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { normalizeBriefDateString } from '@/lib/briefDate'; // Source-of-truth types live in `dailyBriefSchema.ts`; the duplicates in // `../types.ts` are a legacy minimal shape that predates the full schema. diff --git a/apps/web/src/features/research/hooks/useEntityHoverData.ts b/apps/web/src/features/research/hooks/useEntityHoverData.ts index 4c0bfeec..e5f16893 100644 --- a/apps/web/src/features/research/hooks/useEntityHoverData.ts +++ b/apps/web/src/features/research/hooks/useEntityHoverData.ts @@ -11,7 +11,7 @@ import { useState, useEffect, useRef } from "react"; import { useQuery, useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { EntityHoverData } from "../components/EntityHoverPreview"; import type { EntityType } from "../types/entitySchema"; diff --git a/apps/web/src/features/research/hooks/useFeedData.ts b/apps/web/src/features/research/hooks/useFeedData.ts index 7d1807e8..11e0f6cf 100644 --- a/apps/web/src/features/research/hooks/useFeedData.ts +++ b/apps/web/src/features/research/hooks/useFeedData.ts @@ -10,7 +10,7 @@ import { useMemo, useState, useCallback } from 'react'; import { useQuery } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import type { FeedItem, SentimentType } from '../components/FeedCard'; // Category configuration with keyword patterns diff --git a/apps/web/src/features/research/hooks/useFocusSyncDebounced.ts b/apps/web/src/features/research/hooks/useFocusSyncDebounced.ts index 6792d640..12494d1b 100644 --- a/apps/web/src/features/research/hooks/useFocusSyncDebounced.ts +++ b/apps/web/src/features/research/hooks/useFocusSyncDebounced.ts @@ -13,7 +13,7 @@ import { useState, useCallback, useEffect, useRef } from 'react'; import { useQuery, useMutation } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; export type Act = 'actI' | 'actII' | 'actIII'; export type FocusSource = 'chart_hover' | 'text_hover' | 'agent_tool' | 'panel_action'; diff --git a/apps/web/src/features/research/hooks/usePersonalBrief.ts b/apps/web/src/features/research/hooks/usePersonalBrief.ts index 9d49e086..b49ff7b6 100644 --- a/apps/web/src/features/research/hooks/usePersonalBrief.ts +++ b/apps/web/src/features/research/hooks/usePersonalBrief.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react'; import { useQuery, useAction } from 'convex/react'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { useBriefData } from './useBriefData'; import type { DailyBriefPayload } from '../types'; diff --git a/apps/web/src/features/research/hooks/useReaderContent.ts b/apps/web/src/features/research/hooks/useReaderContent.ts index 89acc6d5..5b5c26b6 100644 --- a/apps/web/src/features/research/hooks/useReaderContent.ts +++ b/apps/web/src/features/research/hooks/useReaderContent.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export type SourceMatrixItem = { title: string; diff --git a/apps/web/src/features/research/sections/DashboardSection.tsx b/apps/web/src/features/research/sections/DashboardSection.tsx index bf81c85d..dd1ff28d 100644 --- a/apps/web/src/features/research/sections/DashboardSection.tsx +++ b/apps/web/src/features/research/sections/DashboardSection.tsx @@ -10,7 +10,7 @@ import React, { useMemo, useState } from "react"; import { useAction, useQuery } from "convex/react"; import { Calendar, ChevronLeft, ChevronRight, RefreshCw, RotateCcw } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { StickyDashboard } from "../components/StickyDashboard"; import type { ChartDataPointContext } from "../components/EnhancedLineChart"; import { useBriefDateSelection } from "@/lib/useBriefDateSelection"; diff --git a/apps/web/src/features/research/sections/DealListSection.tsx b/apps/web/src/features/research/sections/DealListSection.tsx index 375402d4..b5be6505 100644 --- a/apps/web/src/features/research/sections/DealListSection.tsx +++ b/apps/web/src/features/research/sections/DealListSection.tsx @@ -6,7 +6,7 @@ import React, { useEffect, useMemo, useState } from "react"; import { useAction, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { RefreshCw } from "lucide-react"; import { DealFlyout, DealListPanel, type Deal } from "../components/DealListPanel"; import { ErrorBoundary } from "@/shared/components/ErrorBoundary"; diff --git a/apps/web/src/features/research/types/index.ts b/apps/web/src/features/research/types/index.ts index 18abab41..f5465b49 100644 --- a/apps/web/src/features/research/types/index.ts +++ b/apps/web/src/features/research/types/index.ts @@ -24,7 +24,7 @@ export type { DashboardState, AgentDashboardUpdate, StorySection -} from "../types"; +} from "./"; // Export Daily Brief canonical schema export type { diff --git a/apps/web/src/features/research/utils/newsletterParser.ts b/apps/web/src/features/research/utils/newsletterParser.ts index 777cb224..d0f04de3 100644 --- a/apps/web/src/features/research/utils/newsletterParser.ts +++ b/apps/web/src/features/research/utils/newsletterParser.ts @@ -1,7 +1,7 @@ // src/features/research/utils/newsletterParser.ts // Parse markdown content into structured newsletter sections -import { matchSectionKey, generateSectionId, DOSSIER_SECTION_KEYS } from '../../../../shared/sectionIds'; +import { matchSectionKey, generateSectionId, DOSSIER_SECTION_KEYS } from '../../../../../../shared/sectionIds'; import type { ReactNode } from 'react'; export interface ParsedBullet { @@ -39,8 +39,8 @@ function parseBullets(sectionContent: string): ParsedBullet[] { const lines = sectionContent.split('\n'); for (const line of lines) { const trimmed = line.trim(); - if (trimmed.match(/^[-*]\s+/)) { - const text = trimmed.replace(/^[-*]\s+/, ''); + if (trimmed.match(/^[-*�]\s+/)) { + const text = trimmed.replace(/^[-*�]\s+/, ''); const evidenceChips = extractFactIds(text); const cleanText = text.replace(FACT_ANCHOR_REGEX, '').trim(); bullets.push({ text: cleanText, evidenceChips }); diff --git a/apps/web/src/features/research/views/CinematicHome.tsx b/apps/web/src/features/research/views/CinematicHome.tsx index 8e91e146..978b7bcb 100644 --- a/apps/web/src/features/research/views/CinematicHome.tsx +++ b/apps/web/src/features/research/views/CinematicHome.tsx @@ -18,7 +18,7 @@ import { import { useQuery } from 'convex/react'; import { useMotionConfig } from '@/lib/motion'; import { SignatureOrb } from '../../../shared/ui/SignatureOrb'; -import { api } from '../../../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { JarvisHUDLayout } from '@/features/agents/components/FastAgentPanel/JarvisHUDLayout'; import { ErrorBoundary } from '@/shared/components/ErrorBoundary'; import { sanitizeReadableText } from '@/lib/displayText'; diff --git a/apps/web/src/features/research/views/DossierViewer.tsx b/apps/web/src/features/research/views/DossierViewer.tsx index 50482bcb..cc503787 100644 --- a/apps/web/src/features/research/views/DossierViewer.tsx +++ b/apps/web/src/features/research/views/DossierViewer.tsx @@ -1,7 +1,7 @@ import { useQuery, useAction, useMutation } from "convex/react"; import { useRef, useState, useMemo, useEffect, useCallback, Suspense, lazy } from "react"; -import { api } from "../../../../convex/_generated/api"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import { PanelGroup, Panel, PanelResizeHandle, type ImperativePanelGroupHandle, type ImperativePanelHandle } from "react-resizable-panels"; import { ChevronLeft, ChevronRight, Sparkles, Loader2, Video, Image as ImageIcon, FileText, Maximize2, Edit3, LayoutList, Search, Home, ChevronDown, Filter, SortAsc, ExternalLink } from "lucide-react"; import { DossierMediaGallery } from "@/features/research/components/dossier/DossierMediaGallery"; diff --git a/apps/web/src/features/research/views/EntityProfilePage.tsx b/apps/web/src/features/research/views/EntityProfilePage.tsx index a5018e2e..172dcd7c 100644 --- a/apps/web/src/features/research/views/EntityProfilePage.tsx +++ b/apps/web/src/features/research/views/EntityProfilePage.tsx @@ -15,7 +15,7 @@ import React, { useMemo, useState } from "react"; import { useNavigate } from "react-router-dom"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Building2, User, diff --git a/apps/web/src/features/research/views/FundingBriefView.tsx b/apps/web/src/features/research/views/FundingBriefView.tsx index 89497e32..d09f422e 100644 --- a/apps/web/src/features/research/views/FundingBriefView.tsx +++ b/apps/web/src/features/research/views/FundingBriefView.tsx @@ -7,7 +7,7 @@ import { useState, useMemo, useCallback } from "react"; import { useQuery, useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { DollarSign, TrendingUp, diff --git a/apps/web/src/features/research/views/LiveDossierDocument.tsx b/apps/web/src/features/research/views/LiveDossierDocument.tsx index 7be122c6..6182c41a 100644 --- a/apps/web/src/features/research/views/LiveDossierDocument.tsx +++ b/apps/web/src/features/research/views/LiveDossierDocument.tsx @@ -2,13 +2,13 @@ import { DeepAgentProgress } from "@/features/agents/views/DeepAgentProgress"; import { TaskPlanPanel, workflowProgressToTaskSteps } from "@/features/agents/views/TaskPlanPanel"; import { InlineMetrics, type WorkflowMetrics } from "@/features/agents/views/WorkflowMetricsBar"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useUIMessages } from "@convex-dev/agent/react"; import ReactMarkdown from "react-markdown"; import remarkGfm from "remark-gfm"; import { useEffect, useRef, useMemo, useState } from "react"; import { Sparkles, TrendingUp, Users, Briefcase, FileText, Lightbulb, ChevronRight, ChevronDown, Loader2, Radio, Activity, Bot, Globe, Database, Zap, CheckCircle2, AlertCircle, Link2, ExternalLink, Calendar, Youtube, FileSearch, Copy, Check, Image as ImageIcon, Play, User } from "lucide-react"; -import { Id } from "../../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { toolPartsToTimelineSteps, type TimelineStep } from "@features/agents/components/FastAgentPanel/StepTimeline"; // Artifact streaming integration diff --git a/apps/web/src/features/research/views/PublicSignalsLog.tsx b/apps/web/src/features/research/views/PublicSignalsLog.tsx index c3886df5..f836caaa 100644 --- a/apps/web/src/features/research/views/PublicSignalsLog.tsx +++ b/apps/web/src/features/research/views/PublicSignalsLog.tsx @@ -1,7 +1,7 @@ import { useMemo, useState, useCallback } from "react"; import { useQuery } from "convex/react"; import { useEffect } from "react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import ReactMarkdown from "react-markdown"; import { ChevronLeft, ChevronRight } from "lucide-react"; import { sanitizeReadableText } from "@/lib/displayText"; diff --git a/apps/web/src/features/research/views/ReportDetailPage.tsx b/apps/web/src/features/research/views/ReportDetailPage.tsx index 6580e5f4..5bda5257 100644 --- a/apps/web/src/features/research/views/ReportDetailPage.tsx +++ b/apps/web/src/features/research/views/ReportDetailPage.tsx @@ -18,7 +18,7 @@ import { getReportWorkspaceRouteFromPath } from "@/features/reports/lib/reportNo import type { ResourceCard, ResourceUri, -} from "../../../../shared/research/resourceCards"; +} from "../../../../../../shared/research/resourceCards"; const API_BASE = (import.meta as unknown as { env?: { VITE_NODEBENCH_API_URL?: string } }) diff --git a/apps/web/src/features/research/views/ReportDetailWorkspace.tsx b/apps/web/src/features/research/views/ReportDetailWorkspace.tsx index 7e633746..28a66045 100644 --- a/apps/web/src/features/research/views/ReportDetailWorkspace.tsx +++ b/apps/web/src/features/research/views/ReportDetailWorkspace.tsx @@ -23,7 +23,7 @@ import { CardInspector } from "@/features/research/components/CardInspector"; import type { ResourceCard, ResourceUri, -} from "../../../../shared/research/resourceCards"; +} from "../../../../../../shared/research/resourceCards"; export type WorkspaceTab = "brief" | "cards" | "map" | "sources"; diff --git a/apps/web/src/features/research/views/ResearchHub.tsx b/apps/web/src/features/research/views/ResearchHub.tsx index 3e33b8a9..1a1ec061 100644 --- a/apps/web/src/features/research/views/ResearchHub.tsx +++ b/apps/web/src/features/research/views/ResearchHub.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useRef, useState, useMemo } from "react" import { ArrowRight, Check, Link2, Newspaper, Zap, TrendingUp, LayoutGrid, Layers, Globe2, ShieldCheck } from "lucide-react"; import { formatBriefDate, isBriefDateToday } from "@/lib/briefDate"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { EvidenceProvider, useEvidence } from "@/features/research/contexts/EvidenceContext"; import { useFastAgent } from "@/features/agents/context/FastAgentContext"; import { ErrorBoundary as SectionErrorBoundary } from "@/shared/components/ErrorBoundary"; diff --git a/apps/web/src/features/research/views/WatchlistsView.tsx b/apps/web/src/features/research/views/WatchlistsView.tsx index d85faf95..cdffbccc 100644 --- a/apps/web/src/features/research/views/WatchlistsView.tsx +++ b/apps/web/src/features/research/views/WatchlistsView.tsx @@ -1,7 +1,7 @@ import { useQuery } from "convex/react"; import { BellRing, Eye, Globe2, Layers3, TimerReset } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; function WatchlistStat({ label, diff --git a/apps/web/src/features/research/views/WorldMonitorView.tsx b/apps/web/src/features/research/views/WorldMonitorView.tsx index 05b1b212..ce790ebf 100644 --- a/apps/web/src/features/research/views/WorldMonitorView.tsx +++ b/apps/web/src/features/research/views/WorldMonitorView.tsx @@ -2,7 +2,7 @@ import { useMemo, useState } from "react"; import { useQuery } from "convex/react"; import { Globe2, MapPin, Radar, ShieldAlert, Siren, Tags } from "lucide-react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; const SEVERITY_TONE: Record = { low: "border-emerald-500/20 bg-emerald-500/10 text-emerald-700 dark:text-emerald-300", diff --git a/apps/web/src/features/share/components/ShareEntityButton.tsx b/apps/web/src/features/share/components/ShareEntityButton.tsx index fda78ce4..14cce1a4 100644 --- a/apps/web/src/features/share/components/ShareEntityButton.tsx +++ b/apps/web/src/features/share/components/ShareEntityButton.tsx @@ -19,7 +19,7 @@ import { useMemo, useState } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export type ShareEntityButtonProps = { entitySlug: string; diff --git a/apps/web/src/features/share/views/PublicEntityShareView.tsx b/apps/web/src/features/share/views/PublicEntityShareView.tsx index 06d6d2ac..77b1fdf2 100644 --- a/apps/web/src/features/share/views/PublicEntityShareView.tsx +++ b/apps/web/src/features/share/views/PublicEntityShareView.tsx @@ -15,7 +15,7 @@ import { useEffect } from "react"; import { useMutation, useQuery } from "convex/react"; import { useNavigate } from "react-router-dom"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { buildEntityPath } from "@/features/entities/lib/entityExport"; import { describeShareStatus, parseShareTokenFromPath } from "./publicShareHelpers"; diff --git a/apps/web/src/features/strategy/views/ExecutionTraceView.tsx b/apps/web/src/features/strategy/views/ExecutionTraceView.tsx index 736ce214..127b671b 100644 --- a/apps/web/src/features/strategy/views/ExecutionTraceView.tsx +++ b/apps/web/src/features/strategy/views/ExecutionTraceView.tsx @@ -18,8 +18,8 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ai-ui/tab import { ToggleGroup, ToggleGroupItem } from "@/components/ai-ui/toggle-group"; import { cn } from "@/lib/utils"; import { SourceChip } from "@/shared/ui"; -import { api } from "../../../../convex/_generated/api"; -import type { Id } from "../../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; import type { TaskSession, TaskSpan, diff --git a/apps/web/src/features/voice/components/VoiceAuditFeed.tsx b/apps/web/src/features/voice/components/VoiceAuditFeed.tsx index 1a4b383a..ddedadf7 100644 --- a/apps/web/src/features/voice/components/VoiceAuditFeed.tsx +++ b/apps/web/src/features/voice/components/VoiceAuditFeed.tsx @@ -17,7 +17,7 @@ import { useQuery } from "convex/react"; import { useMemo } from "react"; // The api object has the new realtimeAudit module after PR #274's codegen. // Until codegen runs in CI, fall back to a relaxed lookup so tsc passes. -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; type AuditGate = | "anonymous_no_persist" diff --git a/apps/web/src/features/voice/components/VoiceCostBadge.tsx b/apps/web/src/features/voice/components/VoiceCostBadge.tsx index 82e2d733..4e6f7083 100644 --- a/apps/web/src/features/voice/components/VoiceCostBadge.tsx +++ b/apps/web/src/features/voice/components/VoiceCostBadge.tsx @@ -37,7 +37,7 @@ import { useState } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; interface VoiceCostBadgeProps { userId: string; // user's Convex id diff --git a/apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts b/apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts index 546938fa..34f1659f 100644 --- a/apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts +++ b/apps/web/src/features/workspace/lib/useEventCaptureRecorder.ts @@ -1,7 +1,7 @@ import { useCallback, useMemo } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; import type { CaptureRoute } from "@/features/product/lib/captureRouter"; import { diff --git a/apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts b/apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts index 78066e96..cd06460a 100644 --- a/apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts +++ b/apps/web/src/features/workspace/lib/useEventWorkspacePersistence.ts @@ -2,7 +2,7 @@ import { useCallback, useEffect, useMemo, useState } from "react"; import { ConvexHttpClient } from "convex/browser"; import { useConvex } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { inferCaptureRoute } from "@/features/product/lib/captureRouter"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; import { diff --git a/apps/web/src/hooks/contextPills.tsx b/apps/web/src/hooks/contextPills.tsx index 9f84856e..90a55cdf 100644 --- a/apps/web/src/hooks/contextPills.tsx +++ b/apps/web/src/hooks/contextPills.tsx @@ -1,5 +1,5 @@ import React, { createContext, useCallback, useContext, useMemo, useState } from "react"; -import { Id } from "../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; // Types export type ViewingDoc = { id: Id<"documents">; title?: string }; diff --git a/apps/web/src/hooks/useAgentLanes.ts b/apps/web/src/hooks/useAgentLanes.ts index 3896c09c..e05c0f14 100644 --- a/apps/web/src/hooks/useAgentLanes.ts +++ b/apps/web/src/hooks/useAgentLanes.ts @@ -3,7 +3,7 @@ // Subscribes to agentDelegations + agentWriteEvents for live multi-lane streaming import { useQuery } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useMemo, useRef, useState, useEffect } from "react"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/apps/web/src/hooks/useArtifactStreamConsumer.ts b/apps/web/src/hooks/useArtifactStreamConsumer.ts index 6a165aa9..f271ebde 100644 --- a/apps/web/src/hooks/useArtifactStreamConsumer.ts +++ b/apps/web/src/hooks/useArtifactStreamConsumer.ts @@ -4,9 +4,9 @@ import { useEffect, useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useArtifactStore } from "./useArtifactStore"; -import type { ArtifactCard } from "../../shared/artifacts"; +import type { ArtifactCard } from "../../../../shared/artifacts"; interface UseArtifactStreamConsumerOptions { /** Agent thread ID (runId) - stable for entire dossier */ diff --git a/apps/web/src/hooks/useCockpitRouting.ts b/apps/web/src/hooks/useCockpitRouting.ts index f4aa1eae..2693e2f0 100644 --- a/apps/web/src/hooks/useCockpitRouting.ts +++ b/apps/web/src/hooks/useCockpitRouting.ts @@ -1,6 +1,6 @@ import { useState, useEffect } from "react"; import { useLocation } from "react-router-dom"; -import { Id } from "../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { buildCockpitPath, parseCockpitSurfaceParam, diff --git a/apps/web/src/hooks/useConvexSearch.ts b/apps/web/src/hooks/useConvexSearch.ts index 6eca86b0..c851a29b 100644 --- a/apps/web/src/hooks/useConvexSearch.ts +++ b/apps/web/src/hooks/useConvexSearch.ts @@ -9,7 +9,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { ConvexHttpClient } from "convex/browser"; -import type { Id } from "../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; import { getApi } from "@/lib/convexApi"; export interface ConvexSearchState { diff --git a/apps/web/src/hooks/useCurrentUser.ts b/apps/web/src/hooks/useCurrentUser.ts index 22e4def7..d2869f60 100644 --- a/apps/web/src/hooks/useCurrentUser.ts +++ b/apps/web/src/hooks/useCurrentUser.ts @@ -19,8 +19,8 @@ */ import { useQuery } from "convex/react"; -import { api } from "../../convex/_generated/api"; -import type { Id } from "../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; /** Full user doc, or `null` (signed out), or `undefined` (loading). */ export function useCurrentUser() { diff --git a/apps/web/src/hooks/useEngagementTracking.ts b/apps/web/src/hooks/useEngagementTracking.ts index 2b1114ac..703e3a9d 100644 --- a/apps/web/src/hooks/useEngagementTracking.ts +++ b/apps/web/src/hooks/useEngagementTracking.ts @@ -1,6 +1,6 @@ import { useEffect, useRef, useCallback } from 'react'; import { useMutation } from 'convex/react'; -import { api } from '../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; export type ReportType = 'daily_brief' | 'weekly_digest' | 'funding_report' | 'research_highlights'; export type EngagementType = 'view' | 'click' | 'expand' | 'scroll' | 'time_spent'; diff --git a/apps/web/src/hooks/useGlobalEventListeners.ts b/apps/web/src/hooks/useGlobalEventListeners.ts index 14efdb3d..a3b1b6e7 100644 --- a/apps/web/src/hooks/useGlobalEventListeners.ts +++ b/apps/web/src/hooks/useGlobalEventListeners.ts @@ -1,5 +1,5 @@ import { useEffect } from 'react'; -import { Id } from '../../convex/_generated/dataModel'; +import { Id } from '@convex/_generated/dataModel'; import type { MainView } from '@/lib/registry/viewRegistry'; interface UseGlobalEventListenersOptions { diff --git a/apps/web/src/hooks/useInlineCitations.ts b/apps/web/src/hooks/useInlineCitations.ts index ca418ef0..154344eb 100644 --- a/apps/web/src/hooks/useInlineCitations.ts +++ b/apps/web/src/hooks/useInlineCitations.ts @@ -7,7 +7,7 @@ import { buildStableCitationIndex, injectInlineCitationSupers, type FactToArtifacts, -} from "../../shared/citations/injectInlineCitations"; +} from "../../../../shared/citations/injectInlineCitations"; import { useArtifactStore } from "./useArtifactStore"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/apps/web/src/hooks/useIntentTelemetry.ts b/apps/web/src/hooks/useIntentTelemetry.ts index 63306f6d..3a6f4edf 100644 --- a/apps/web/src/hooks/useIntentTelemetry.ts +++ b/apps/web/src/hooks/useIntentTelemetry.ts @@ -2,7 +2,7 @@ import { useCallback } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; export type IntentTelemetrySource = | "voice" diff --git a/apps/web/src/hooks/useMcp.ts b/apps/web/src/hooks/useMcp.ts index 3a293b44..edf6ff0e 100644 --- a/apps/web/src/hooks/useMcp.ts +++ b/apps/web/src/hooks/useMcp.ts @@ -1,7 +1,7 @@ import { useState, useCallback, useEffect } from 'react'; import { useMutation, useQuery, useAction } from 'convex/react'; -import { api } from '../../convex/_generated/api'; -import type { Id } from '../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import type { Id } from '@convex/_generated/dataModel'; const MCP_PRIORITY = ["context7", "convex"]; diff --git a/apps/web/src/hooks/useOracleSession.ts b/apps/web/src/hooks/useOracleSession.ts index 3d76b236..ba70a64d 100644 --- a/apps/web/src/hooks/useOracleSession.ts +++ b/apps/web/src/hooks/useOracleSession.ts @@ -12,8 +12,8 @@ import { useCallback, useMemo, useRef, useState } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../convex/_generated/api"; -import type { Id } from "../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; // ─── Types ─────────────────────────────────────────────────────────────────── diff --git a/apps/web/src/hooks/usePlannerState.ts b/apps/web/src/hooks/usePlannerState.ts index 55ae5c76..f497abb0 100644 --- a/apps/web/src/hooks/usePlannerState.ts +++ b/apps/web/src/hooks/usePlannerState.ts @@ -1,7 +1,7 @@ import { useMemo, useState, useCallback } from "react"; import { useMutation, useQuery } from "convex/react"; -import { api } from "../../convex/_generated/api"; -import type { Id } from "../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import type { Id } from "@convex/_generated/dataModel"; /** * Shared planner state across CalendarHomeHub and DocumentsHomeHub. diff --git a/apps/web/src/hooks/useRealtimeTranscription.ts b/apps/web/src/hooks/useRealtimeTranscription.ts index 9b001bc3..1fe53b9e 100644 --- a/apps/web/src/hooks/useRealtimeTranscription.ts +++ b/apps/web/src/hooks/useRealtimeTranscription.ts @@ -1,6 +1,6 @@ import { useAction } from 'convex/react'; import { useCallback, useRef, useState } from 'react'; -import { api } from '../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; interface UseRealtimeTranscriptionOptions { onTranscript: (text: string) => void; diff --git a/apps/web/src/hooks/useRecommendations.ts b/apps/web/src/hooks/useRecommendations.ts index 2b93bff1..293f99b1 100644 --- a/apps/web/src/hooks/useRecommendations.ts +++ b/apps/web/src/hooks/useRecommendations.ts @@ -1,6 +1,6 @@ import { useQuery, useMutation } from 'convex/react'; -import { api } from '../../convex/_generated/api'; -import { Id } from '../../convex/_generated/dataModel'; +import { api } from '@convex/_generated/api'; +import { Id } from '@convex/_generated/dataModel'; import { useCallback, useEffect, useRef } from 'react'; /** diff --git a/apps/web/src/hooks/useStreamingTranscription.ts b/apps/web/src/hooks/useStreamingTranscription.ts index 0616318d..b240ab65 100644 --- a/apps/web/src/hooks/useStreamingTranscription.ts +++ b/apps/web/src/hooks/useStreamingTranscription.ts @@ -17,7 +17,7 @@ import { useState, useRef, useCallback, useEffect } from "react"; import { useAction } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; // ── Types ──────────────────────────────────────────────────────────────────── diff --git a/apps/web/src/hooks/useSwarm.ts b/apps/web/src/hooks/useSwarm.ts index 90508a0c..b66702f7 100644 --- a/apps/web/src/hooks/useSwarm.ts +++ b/apps/web/src/hooks/useSwarm.ts @@ -6,9 +6,9 @@ */ import { useQuery, useMutation, useAction } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { useMemo, useCallback } from "react"; -import type { Id } from "../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/apps/web/src/hooks/useUnifiedItems.ts b/apps/web/src/hooks/useUnifiedItems.ts index 72808c67..465ccd28 100644 --- a/apps/web/src/hooks/useUnifiedItems.ts +++ b/apps/web/src/hooks/useUnifiedItems.ts @@ -1,6 +1,6 @@ import { useMemo } from "react"; import { useQuery } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { docToUnified, taskToUnified } from "@/adapters/unifiedAdapters"; import type { UnifiedItem } from "@/types/unified"; diff --git a/apps/web/src/hooks/useViewWebMcpTools.ts b/apps/web/src/hooks/useViewWebMcpTools.ts index cfe84b80..e74cd7b6 100644 --- a/apps/web/src/hooks/useViewWebMcpTools.ts +++ b/apps/web/src/hooks/useViewWebMcpTools.ts @@ -14,7 +14,7 @@ import { useEffect, useRef } from "react"; import { useConvex } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { MainView } from "@/lib/registry/viewRegistry"; import { getViewTools, type ViewToolDefinition } from "@/lib/registry/viewToolMap"; diff --git a/apps/web/src/hooks/useVoiceInput.ts b/apps/web/src/hooks/useVoiceInput.ts index 45fb2b23..6cd8abaa 100644 --- a/apps/web/src/hooks/useVoiceInput.ts +++ b/apps/web/src/hooks/useVoiceInput.ts @@ -9,7 +9,7 @@ import { useState, useRef, useCallback } from 'react'; import { useAction } from 'convex/react'; -import { api } from '../../convex/_generated/api'; +import { api } from '@convex/_generated/api'; import { useStreamingTranscription } from './useStreamingTranscription'; import { useGeminiLiveSession } from './useGeminiLiveSession'; diff --git a/apps/web/src/hooks/useWebMcpProvider.ts b/apps/web/src/hooks/useWebMcpProvider.ts index c3eb4dba..f28eff00 100644 --- a/apps/web/src/hooks/useWebMcpProvider.ts +++ b/apps/web/src/hooks/useWebMcpProvider.ts @@ -33,7 +33,7 @@ import { useEffect, useRef } from "react"; import { useConvex } from "convex/react"; -import { api } from "../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import type { MainView } from "@/lib/registry/viewRegistry"; import { type ViewCapability, diff --git a/apps/web/src/layouts/ActiveSurfaceHost.tsx b/apps/web/src/layouts/ActiveSurfaceHost.tsx index 6ac39449..d10968b7 100644 --- a/apps/web/src/layouts/ActiveSurfaceHost.tsx +++ b/apps/web/src/layouts/ActiveSurfaceHost.tsx @@ -1,6 +1,6 @@ import { lazy, Suspense, useRef } from "react"; import { useLocation } from "react-router-dom"; -import { Id } from "../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { ErrorBoundary } from "@/shared/components/ErrorBoundary"; import { ViewSkeleton } from "@/components/skeletons"; import { AgentScreen } from "@/shared/agent-ui/AgentScreen"; diff --git a/apps/web/src/layouts/CockpitLayout.tsx b/apps/web/src/layouts/CockpitLayout.tsx index b1b37409..023063b8 100644 --- a/apps/web/src/layouts/CockpitLayout.tsx +++ b/apps/web/src/layouts/CockpitLayout.tsx @@ -16,7 +16,7 @@ import { useState, useEffect, useCallback, useRef, useMemo, startTransition, Suspense, lazy } from "react"; import { useLocation, useNavigate } from "react-router-dom"; import { useConvexAuth } from "convex/react"; -import { Id } from "../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { useFastAgent } from "@/features/agents/context/FastAgentContext"; import { useCommandPalette } from "../hooks/useCommandPalette"; import { useGlobalEventListeners } from "../hooks/useGlobalEventListeners"; diff --git a/apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx b/apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx index f0b58b67..eee7dd7e 100644 --- a/apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx +++ b/apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx @@ -1,5 +1,5 @@ import React, { useMemo } from "react"; -import { Id } from "../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { X, ExternalLink } from "lucide-react"; import { useQuery, useMutation, useAction} from "convex/react"; import { useConvexApi } from "@/lib/convexApi"; diff --git a/apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts b/apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts index 1333a485..d77aa340 100644 --- a/apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts +++ b/apps/web/src/layouts/chrome/commandPalette/useFederatedSearch.ts @@ -21,7 +21,7 @@ import { useCallback, useEffect, useRef, useState } from "react"; import { useAction } from "convex/react"; -import { api } from "../../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { getAnonymousProductSessionId } from "@/features/product/lib/productIdentity"; import { CLIENT_TIMEOUT_MS, diff --git a/apps/web/src/lib/convexApi.ts b/apps/web/src/lib/convexApi.ts index ccd91d8e..4614dfa7 100644 --- a/apps/web/src/lib/convexApi.ts +++ b/apps/web/src/lib/convexApi.ts @@ -23,7 +23,7 @@ import { useState, useEffect } from "react"; -type ConvexApi = typeof import("../../convex/_generated/api")["api"]; +type ConvexApi = typeof import("@convex/_generated/api")["api"]; let _cached: ConvexApi | null = null; let _promise: Promise | null = null; @@ -32,7 +32,7 @@ let _promise: Promise | null = null; // By the time React renders the first component that calls useConvexApi(), // the promise is likely already resolved, eliminating the null flash. if (typeof window !== "undefined") { - _promise = import("../../convex/_generated/api").then((mod) => { + _promise = import("@convex/_generated/api").then((mod) => { _cached = mod.api; return _cached; }); @@ -42,7 +42,7 @@ if (typeof window !== "undefined") { export function getApi(): Promise { if (_cached) return Promise.resolve(_cached); if (_promise) return _promise; - _promise = import("../../convex/_generated/api").then((mod) => { + _promise = import("@convex/_generated/api").then((mod) => { _cached = mod.api; return _cached; }); diff --git a/apps/web/src/lib/pdf/usePDFGenerator.ts b/apps/web/src/lib/pdf/usePDFGenerator.ts index 67687d06..ff0493a9 100644 --- a/apps/web/src/lib/pdf/usePDFGenerator.ts +++ b/apps/web/src/lib/pdf/usePDFGenerator.ts @@ -7,7 +7,7 @@ import { useState, useCallback } from "react"; import { useMutation } from "convex/react"; -import { api } from "../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { generateQuarterlySummaryPDF, generateCompanyDossierPDF, diff --git a/apps/web/src/lib/shapes/events.ts b/apps/web/src/lib/shapes/events.ts index 2bbaf6c9..25b753f7 100644 --- a/apps/web/src/lib/shapes/events.ts +++ b/apps/web/src/lib/shapes/events.ts @@ -1,4 +1,4 @@ -import { Id } from "../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; // Typed payload for quick prompt events used across the app export type QuickPromptEventDetail = { diff --git a/apps/web/src/lib/shapes/ids.ts b/apps/web/src/lib/shapes/ids.ts index ccf41da5..004a1777 100644 --- a/apps/web/src/lib/shapes/ids.ts +++ b/apps/web/src/lib/shapes/ids.ts @@ -1,4 +1,4 @@ -import type { Id } from "../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // Runtime guard for Convex Id strings. Keeps it intentionally simple: // - must be a non-empty string. Further shape checks (like prefix) are avoided diff --git a/apps/web/src/lib/time/calendarHelpers.ts b/apps/web/src/lib/time/calendarHelpers.ts index 36221938..531613d0 100644 --- a/apps/web/src/lib/time/calendarHelpers.ts +++ b/apps/web/src/lib/time/calendarHelpers.ts @@ -1,5 +1,5 @@ // Calendar helper utilities moved from CalendarView.tsx -import type { Id } from "../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; // ============ DATE UTILITY FUNCTIONS (internal) ============ const formatFullDate = (date: Date) => { diff --git a/apps/web/src/main.tsx b/apps/web/src/main.tsx index 289bcb62..e455ef3c 100644 --- a/apps/web/src/main.tsx +++ b/apps/web/src/main.tsx @@ -175,7 +175,7 @@ if (import.meta.env.PROD && convex) { if (now - last < 30_000) return; lastSentBySig.set(signature, now); - import("../convex/_generated/api").then(({ api }) => { + import("@convex/_generated/api").then(({ api }) => { convex.mutation(api.domains.operations.bugLoop.reportClientError, { message: args.message, stack: args.stack, diff --git a/apps/web/src/shared/artifacts.ts b/apps/web/src/shared/artifacts.ts index 5c14ab27..0ccca3b9 100644 --- a/apps/web/src/shared/artifacts.ts +++ b/apps/web/src/shared/artifacts.ts @@ -2,4 +2,4 @@ // Re-export from root shared folder for backwards compatibility // The canonical source is now shared/artifacts.ts at project root -export * from "../../shared/artifacts"; +export * from "../../../../shared/artifacts"; diff --git a/apps/web/src/shared/components/MiniEditorPopover.tsx b/apps/web/src/shared/components/MiniEditorPopover.tsx index 43cd89bf..3c6bd7f1 100644 --- a/apps/web/src/shared/components/MiniEditorPopover.tsx +++ b/apps/web/src/shared/components/MiniEditorPopover.tsx @@ -1,8 +1,8 @@ import React, { Suspense, useMemo, Component, type ReactNode, type ErrorInfo } from "react"; -import { Id } from "../../../convex/_generated/dataModel"; +import { Id } from "@convex/_generated/dataModel"; import { X } from "lucide-react"; import { useQuery } from "convex/react"; -import { api } from "../../../convex/_generated/api"; +import { api } from "@convex/_generated/api"; import { Popover, PopoverAnchor, PopoverContent } from "@/components/ai-ui/popover"; // Lazy-load heavy editors so they don't bloat the main bundle. diff --git a/apps/web/src/shared/components/PresenceIndicator.tsx b/apps/web/src/shared/components/PresenceIndicator.tsx index bf9c64a2..19fdeef0 100644 --- a/apps/web/src/shared/components/PresenceIndicator.tsx +++ b/apps/web/src/shared/components/PresenceIndicator.tsx @@ -1,5 +1,5 @@ -import { api } from "../../../convex/_generated/api"; -import { Id } from "../../../convex/_generated/dataModel"; +import { api } from "@convex/_generated/api"; +import { Id } from "@convex/_generated/dataModel"; import usePresence from "@convex-dev/presence/react"; import FacePile from "@convex-dev/presence/facepile"; import { useAuthToken } from "@convex-dev/auth/react"; diff --git a/apps/web/src/shared/ui/EmptyState.tsx b/apps/web/src/shared/ui/EmptyState.tsx index 6ebdd5e8..f639e488 100644 --- a/apps/web/src/shared/ui/EmptyState.tsx +++ b/apps/web/src/shared/ui/EmptyState.tsx @@ -25,7 +25,7 @@ import React from 'react'; import { motion } from 'framer-motion'; import { cn } from '../../lib/utils'; -import { SignatureOrb } from '../../shared/ui/SignatureOrb'; +import { SignatureOrb } from './SignatureOrb'; import { useMotionConfig } from '@/lib/motion'; type EmptyStateVariant = 'documents' | 'search' | 'inbox' | 'tasks' | 'error' | 'success' | 'orb'; diff --git a/apps/web/src/shared/ui/SidebarUpcoming.tsx b/apps/web/src/shared/ui/SidebarUpcoming.tsx index 789fcfda..3101aa05 100644 --- a/apps/web/src/shared/ui/SidebarUpcoming.tsx +++ b/apps/web/src/shared/ui/SidebarUpcoming.tsx @@ -1,7 +1,7 @@ import React, { useState, useRef, useCallback, useEffect } from "react"; import AgendaMiniRow from "@features/calendar/components/agenda/AgendaMiniRow"; import MiniEditorPopover from "@/shared/components/MiniEditorPopover"; -import type { Id } from "../../../convex/_generated/dataModel"; +import type { Id } from "@convex/_generated/dataModel"; export interface SidebarUpcomingProps { // Hook shape can evolve; keep it permissive to avoid churn. diff --git a/apps/web/src/test/agentResponseFlywheel.test.ts b/apps/web/src/test/agentResponseFlywheel.test.ts index 26ae522c..f4d99f79 100644 --- a/apps/web/src/test/agentResponseFlywheel.test.ts +++ b/apps/web/src/test/agentResponseFlywheel.test.ts @@ -3,7 +3,7 @@ import { reviewAgentResponse, summarizeResponseReviews, type AgentResponseReviewAggregateRow, -} from "../../shared/agentResponseFlywheel"; +} from "../../../../shared/agentResponseFlywheel"; describe("agentResponseFlywheel", () => { it("flags freshness-sensitive responses that lack sources and absolute dates", () => { diff --git a/apps/web/src/test/dcfSpreadsheetMapping.test.ts b/apps/web/src/test/dcfSpreadsheetMapping.test.ts index f0671b79..4b995ebd 100644 --- a/apps/web/src/test/dcfSpreadsheetMapping.test.ts +++ b/apps/web/src/test/dcfSpreadsheetMapping.test.ts @@ -4,7 +4,7 @@ import { mapCellToField, normalizeDCFParameterValue, setParameterAtPath, -} from "../../convex/domains/financial/dcfSpreadsheetMapping"; +} from "@convex/domains/financial/dcfSpreadsheetMapping"; describe("dcfSpreadsheetMapping", () => { test("mapCellToField maps editable input cells", () => { diff --git a/apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts b/apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts index 07078aba..13ac28da 100644 --- a/apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts +++ b/apps/web/src/test/scratchnodeLaunchGoalLoopSelection.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; -import { selectDevelopmentCandidate } from "../../scripts/scratchnode/runLaunchGoalLoop.mjs"; +import { selectDevelopmentCandidate } from "../../../../scripts/scratchnode/runLaunchGoalLoop.mjs"; describe("selectDevelopmentCandidate", () => { it("explains why blocker work wins", () => { diff --git a/apps/web/src/test/successLoopsLib.test.ts b/apps/web/src/test/successLoopsLib.test.ts index b5664989..76bd2dd0 100644 --- a/apps/web/src/test/successLoopsLib.test.ts +++ b/apps/web/src/test/successLoopsLib.test.ts @@ -4,7 +4,7 @@ import { computeLoopHealth, defaultNextRecommendedAction, type SuccessLoopsDashboardSnapshot, -} from "../../convex/domains/successLoops/lib"; +} from "@convex/domains/successLoops/lib"; describe("successLoops lib", () => { it("marks a well-instrumented loop as strengthening", () => { diff --git a/apps/web/src/test/taskSessionProofPack.test.ts b/apps/web/src/test/taskSessionProofPack.test.ts index b076ffae..6f3c8695 100644 --- a/apps/web/src/test/taskSessionProofPack.test.ts +++ b/apps/web/src/test/taskSessionProofPack.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest"; -import { buildTaskSessionProofPack } from "../../convex/domains/operations/taskManager/proofPack"; +import { buildTaskSessionProofPack } from "@convex/domains/operations/taskManager/proofPack"; /* ── Helpers ───────────────────────────────────────────────────── */ diff --git a/apps/web/src/test/trajectoryScore.test.ts b/apps/web/src/test/trajectoryScore.test.ts index b8f7685d..e933f7f3 100644 --- a/apps/web/src/test/trajectoryScore.test.ts +++ b/apps/web/src/test/trajectoryScore.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vitest"; -import { computeTrajectoryScores } from "../../convex/domains/trajectory/lib"; +import { computeTrajectoryScores } from "@convex/domains/trajectory/lib"; describe("computeTrajectoryScores", () => { it("marks repeated evidence-backed improvement as compounding", () => { diff --git a/backend/convex/_generated/api.d.ts b/backend/convex/_generated/api.d.ts index 55d64794..28a8108a 100644 --- a/backend/convex/_generated/api.d.ts +++ b/backend/convex/_generated/api.d.ts @@ -54,10 +54,13 @@ import type * as domains_agents_agentLoop from "../domains/agents/agentLoop.js"; import type * as domains_agents_agentLoopQueries from "../domains/agents/agentLoopQueries.js"; import type * as domains_agents_agentMarketplace from "../domains/agents/agentMarketplace.js"; import type * as domains_agents_agentMemory from "../domains/agents/agentMemory.js"; +import type * as domains_agents_agentMemorySummary from "../domains/agents/agentMemorySummary.js"; import type * as domains_agents_agentNavigation from "../domains/agents/agentNavigation.js"; +import type * as domains_agents_agentPlanSummary from "../domains/agents/agentPlanSummary.js"; import type * as domains_agents_agentPlanning from "../domains/agents/agentPlanning.js"; import type * as domains_agents_agentPostingPipeline from "../domains/agents/agentPostingPipeline.js"; import type * as domains_agents_agentRouter from "../domains/agents/agentRouter.js"; +import type * as domains_agents_agentRunPresentation from "../domains/agents/agentRunPresentation.js"; import type * as domains_agents_agentScratchpads from "../domains/agents/agentScratchpads.js"; import type * as domains_agents_agentTimelines from "../domains/agents/agentTimelines.js"; import type * as domains_agents_agentViewManifest from "../domains/agents/agentViewManifest.js"; @@ -71,6 +74,13 @@ import type * as domains_agents_arbitrage_tools_sourceHealthCheck from "../domai import type * as domains_agents_arbitrage_tools_sourceQualityRanking from "../domains/agents/arbitrage/tools/sourceQualityRanking.js"; import type * as domains_agents_autonomousCrons from "../domains/agents/autonomousCrons.js"; import type * as domains_agents_autonomousCronsQueries from "../domains/agents/autonomousCronsQueries.js"; +import type * as domains_agents_autonomy_commits from "../domains/agents/autonomy/commits.js"; +import type * as domains_agents_autonomy_evidence from "../domains/agents/autonomy/evidence.js"; +import type * as domains_agents_autonomy_grants from "../domains/agents/autonomy/grants.js"; +import type * as domains_agents_autonomy_hash from "../domains/agents/autonomy/hash.js"; +import type * as domains_agents_autonomy_policy from "../domains/agents/autonomy/policy.js"; +import type * as domains_agents_autonomy_proposals from "../domains/agents/autonomy/proposals.js"; +import type * as domains_agents_autonomy_remainders from "../domains/agents/autonomy/remainders.js"; import type * as domains_agents_batchAPI from "../domains/agents/batchAPI.js"; import type * as domains_agents_budget_budgetGate from "../domains/agents/budget/budgetGate.js"; import type * as domains_agents_canonicalPlanner from "../domains/agents/canonicalPlanner.js"; @@ -192,8 +202,8 @@ import type * as domains_agents_dueDiligence_investorPlaybook_playbookOrchestrat import type * as domains_agents_dueDiligence_investorPlaybook_types from "../domains/agents/dueDiligence/investorPlaybook/types.js"; import type * as domains_agents_dueDiligence_investorProtection_index from "../domains/agents/dueDiligence/investorProtection/index.js"; import type * as domains_agents_dueDiligence_investorProtection_investorProtectionMutations from "../domains/agents/dueDiligence/investorProtection/investorProtectionMutations.js"; -import type * as domains_agents_dueDiligence_investorProtection_investorProtectionOwnership from "../domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.js"; import type * as domains_agents_dueDiligence_investorProtection_investorProtectionOrchestrator from "../domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.js"; +import type * as domains_agents_dueDiligence_investorProtection_investorProtectionOwnership from "../domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.js"; import type * as domains_agents_dueDiligence_investorProtection_phases_claimsExtraction from "../domains/agents/dueDiligence/investorProtection/phases/claimsExtraction.js"; import type * as domains_agents_dueDiligence_investorProtection_types from "../domains/agents/dueDiligence/investorProtection/types.js"; import type * as domains_agents_dueDiligence_memoSynthesizer from "../domains/agents/dueDiligence/memoSynthesizer.js"; @@ -205,6 +215,7 @@ import type * as domains_agents_evolutionVerification from "../domains/agents/ev import type * as domains_agents_fastAgentChat from "../domains/agents/fastAgentChat.js"; import type * as domains_agents_fastAgentChatHelpers from "../domains/agents/fastAgentChatHelpers.js"; import type * as domains_agents_fastAgentDocumentCreation from "../domains/agents/fastAgentDocumentCreation.js"; +import type * as domains_agents_fastAgentDocumentCreationOwnership from "../domains/agents/fastAgentDocumentCreationOwnership.js"; import type * as domains_agents_fastAgentPanelStreaming from "../domains/agents/fastAgentPanelStreaming.js"; import type * as domains_agents_glmFlashWithReasoning from "../domains/agents/glmFlashWithReasoning.js"; import type * as domains_agents_glmHybridApproach from "../domains/agents/glmHybridApproach.js"; @@ -249,6 +260,7 @@ import type * as domains_agents_receipts_emitWithReceipt from "../domains/agents import type * as domains_agents_researchJobs from "../domains/agents/researchJobs.js"; import type * as domains_agents_responseFlywheel from "../domains/agents/responseFlywheel.js"; import type * as domains_agents_runtimeRouting from "../domains/agents/runtimeRouting.js"; +import type * as domains_agents_runtimeTierFallback from "../domains/agents/runtimeTierFallback.js"; import type * as domains_agents_safety_artifactDecisionGate from "../domains/agents/safety/artifactDecisionGate.js"; import type * as domains_agents_safety_lowConfidenceGuard from "../domains/agents/safety/lowConfidenceGuard.js"; import type * as domains_agents_safety_rateLimitGuard from "../domains/agents/safety/rateLimitGuard.js"; @@ -533,6 +545,9 @@ import type * as domains_evaluation_scoring_scoringFramework from "../domains/ev import type * as domains_evaluation_scoring_sourceCitations from "../domains/evaluation/scoring/sourceCitations.js"; import type * as domains_evaluation_sourceQuality from "../domains/evaluation/sourceQuality.js"; import type * as domains_evaluation_systemE2E from "../domains/evaluation/systemE2E.js"; +import type * as domains_evaluation_tasteBench from "../domains/evaluation/tasteBench.js"; +import type * as domains_evaluation_tasteBenchPolicy from "../domains/evaluation/tasteBenchPolicy.js"; +import type * as domains_evaluation_tasteBenchSchema from "../domains/evaluation/tasteBenchSchema.js"; import type * as domains_evaluation_testAgentDirect from "../domains/evaluation/testAgentDirect.js"; import type * as domains_evaluation_testAgentQueries from "../domains/evaluation/testAgentQueries.js"; import type * as domains_evaluation_testAnthropicApi from "../domains/evaluation/testAnthropicApi.js"; @@ -911,9 +926,12 @@ import type * as domains_pipelines_composedPipeline from "../domains/pipelines/c import type * as domains_pipelines_designGenPipeline from "../domains/pipelines/designGenPipeline.js"; import type * as domains_pipelines_linkupAdapter from "../domains/pipelines/linkupAdapter.js"; import type * as domains_pipelines_piRuntime from "../domains/pipelines/piRuntime.js"; +import type * as domains_pipelines_pipelineAdmission from "../domains/pipelines/pipelineAdmission.js"; +import type * as domains_pipelines_pipelineAttempt from "../domains/pipelines/pipelineAttempt.js"; import type * as domains_pipelines_pipelineDocumentHandoff from "../domains/pipelines/pipelineDocumentHandoff.js"; import type * as domains_pipelines_pipelineEvalQueries from "../domains/pipelines/pipelineEvalQueries.js"; import type * as domains_pipelines_pipelineMcpHttp from "../domains/pipelines/pipelineMcpHttp.js"; +import type * as domains_pipelines_pipelineOwnership from "../domains/pipelines/pipelineOwnership.js"; import type * as domains_pipelines_pipelineRunsMutations from "../domains/pipelines/pipelineRunsMutations.js"; import type * as domains_pipelines_pipelineRunsQueries from "../domains/pipelines/pipelineRunsQueries.js"; import type * as domains_pipelines_pipelineSchedule from "../domains/pipelines/pipelineSchedule.js"; @@ -921,6 +939,7 @@ import type * as domains_pipelines_pipelineStreamMutations from "../domains/pipe import type * as domains_pipelines_pipelineTrace from "../domains/pipelines/pipelineTrace.js"; import type * as domains_pipelines_pipelineWorkflow from "../domains/pipelines/pipelineWorkflow.js"; import type * as domains_pipelines_researchPipeline from "../domains/pipelines/researchPipeline.js"; +import type * as domains_pipelines_researchProvenance from "../domains/pipelines/researchProvenance.js"; import type * as domains_proactive_actions_emailDraftGenerator from "../domains/proactive/actions/emailDraftGenerator.js"; import type * as domains_proactive_actions_gmailDraftActions from "../domains/proactive/actions/gmailDraftActions.js"; import type * as domains_proactive_actions_testDraftGenerator from "../domains/proactive/actions/testDraftGenerator.js"; @@ -1494,6 +1513,7 @@ import type * as tools_sendSms from "../tools/sendSms.js"; import type * as tools_shared_structuredOutput from "../tools/shared/structuredOutput.js"; import type * as tools_social_instagramTools from "../tools/social/instagramTools.js"; import type * as tools_social_linkedinTools from "../tools/social/linkedinTools.js"; +import type * as tools_spreadsheetOperationTypes from "../tools/spreadsheetOperationTypes.js"; import type * as tools_spreadsheet_spreadsheetCrudTools from "../tools/spreadsheet/spreadsheetCrudTools.js"; import type * as tools_teachability_index from "../tools/teachability/index.js"; import type * as tools_teachability_learnUserSkill from "../tools/teachability/learnUserSkill.js"; @@ -1579,10 +1599,13 @@ declare const fullApi: ApiFromModules<{ "domains/agents/agentLoopQueries": typeof domains_agents_agentLoopQueries; "domains/agents/agentMarketplace": typeof domains_agents_agentMarketplace; "domains/agents/agentMemory": typeof domains_agents_agentMemory; + "domains/agents/agentMemorySummary": typeof domains_agents_agentMemorySummary; "domains/agents/agentNavigation": typeof domains_agents_agentNavigation; + "domains/agents/agentPlanSummary": typeof domains_agents_agentPlanSummary; "domains/agents/agentPlanning": typeof domains_agents_agentPlanning; "domains/agents/agentPostingPipeline": typeof domains_agents_agentPostingPipeline; "domains/agents/agentRouter": typeof domains_agents_agentRouter; + "domains/agents/agentRunPresentation": typeof domains_agents_agentRunPresentation; "domains/agents/agentScratchpads": typeof domains_agents_agentScratchpads; "domains/agents/agentTimelines": typeof domains_agents_agentTimelines; "domains/agents/agentViewManifest": typeof domains_agents_agentViewManifest; @@ -1596,6 +1619,13 @@ declare const fullApi: ApiFromModules<{ "domains/agents/arbitrage/tools/sourceQualityRanking": typeof domains_agents_arbitrage_tools_sourceQualityRanking; "domains/agents/autonomousCrons": typeof domains_agents_autonomousCrons; "domains/agents/autonomousCronsQueries": typeof domains_agents_autonomousCronsQueries; + "domains/agents/autonomy/commits": typeof domains_agents_autonomy_commits; + "domains/agents/autonomy/evidence": typeof domains_agents_autonomy_evidence; + "domains/agents/autonomy/grants": typeof domains_agents_autonomy_grants; + "domains/agents/autonomy/hash": typeof domains_agents_autonomy_hash; + "domains/agents/autonomy/policy": typeof domains_agents_autonomy_policy; + "domains/agents/autonomy/proposals": typeof domains_agents_autonomy_proposals; + "domains/agents/autonomy/remainders": typeof domains_agents_autonomy_remainders; "domains/agents/batchAPI": typeof domains_agents_batchAPI; "domains/agents/budget/budgetGate": typeof domains_agents_budget_budgetGate; "domains/agents/canonicalPlanner": typeof domains_agents_canonicalPlanner; @@ -1717,8 +1747,8 @@ declare const fullApi: ApiFromModules<{ "domains/agents/dueDiligence/investorPlaybook/types": typeof domains_agents_dueDiligence_investorPlaybook_types; "domains/agents/dueDiligence/investorProtection/index": typeof domains_agents_dueDiligence_investorProtection_index; "domains/agents/dueDiligence/investorProtection/investorProtectionMutations": typeof domains_agents_dueDiligence_investorProtection_investorProtectionMutations; - "domains/agents/dueDiligence/investorProtection/investorProtectionOwnership": typeof domains_agents_dueDiligence_investorProtection_investorProtectionOwnership; "domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator": typeof domains_agents_dueDiligence_investorProtection_investorProtectionOrchestrator; + "domains/agents/dueDiligence/investorProtection/investorProtectionOwnership": typeof domains_agents_dueDiligence_investorProtection_investorProtectionOwnership; "domains/agents/dueDiligence/investorProtection/phases/claimsExtraction": typeof domains_agents_dueDiligence_investorProtection_phases_claimsExtraction; "domains/agents/dueDiligence/investorProtection/types": typeof domains_agents_dueDiligence_investorProtection_types; "domains/agents/dueDiligence/memoSynthesizer": typeof domains_agents_dueDiligence_memoSynthesizer; @@ -1730,6 +1760,7 @@ declare const fullApi: ApiFromModules<{ "domains/agents/fastAgentChat": typeof domains_agents_fastAgentChat; "domains/agents/fastAgentChatHelpers": typeof domains_agents_fastAgentChatHelpers; "domains/agents/fastAgentDocumentCreation": typeof domains_agents_fastAgentDocumentCreation; + "domains/agents/fastAgentDocumentCreationOwnership": typeof domains_agents_fastAgentDocumentCreationOwnership; "domains/agents/fastAgentPanelStreaming": typeof domains_agents_fastAgentPanelStreaming; "domains/agents/glmFlashWithReasoning": typeof domains_agents_glmFlashWithReasoning; "domains/agents/glmHybridApproach": typeof domains_agents_glmHybridApproach; @@ -1774,6 +1805,7 @@ declare const fullApi: ApiFromModules<{ "domains/agents/researchJobs": typeof domains_agents_researchJobs; "domains/agents/responseFlywheel": typeof domains_agents_responseFlywheel; "domains/agents/runtimeRouting": typeof domains_agents_runtimeRouting; + "domains/agents/runtimeTierFallback": typeof domains_agents_runtimeTierFallback; "domains/agents/safety/artifactDecisionGate": typeof domains_agents_safety_artifactDecisionGate; "domains/agents/safety/lowConfidenceGuard": typeof domains_agents_safety_lowConfidenceGuard; "domains/agents/safety/rateLimitGuard": typeof domains_agents_safety_rateLimitGuard; @@ -2058,6 +2090,9 @@ declare const fullApi: ApiFromModules<{ "domains/evaluation/scoring/sourceCitations": typeof domains_evaluation_scoring_sourceCitations; "domains/evaluation/sourceQuality": typeof domains_evaluation_sourceQuality; "domains/evaluation/systemE2E": typeof domains_evaluation_systemE2E; + "domains/evaluation/tasteBench": typeof domains_evaluation_tasteBench; + "domains/evaluation/tasteBenchPolicy": typeof domains_evaluation_tasteBenchPolicy; + "domains/evaluation/tasteBenchSchema": typeof domains_evaluation_tasteBenchSchema; "domains/evaluation/testAgentDirect": typeof domains_evaluation_testAgentDirect; "domains/evaluation/testAgentQueries": typeof domains_evaluation_testAgentQueries; "domains/evaluation/testAnthropicApi": typeof domains_evaluation_testAnthropicApi; @@ -2436,9 +2471,12 @@ declare const fullApi: ApiFromModules<{ "domains/pipelines/designGenPipeline": typeof domains_pipelines_designGenPipeline; "domains/pipelines/linkupAdapter": typeof domains_pipelines_linkupAdapter; "domains/pipelines/piRuntime": typeof domains_pipelines_piRuntime; + "domains/pipelines/pipelineAdmission": typeof domains_pipelines_pipelineAdmission; + "domains/pipelines/pipelineAttempt": typeof domains_pipelines_pipelineAttempt; "domains/pipelines/pipelineDocumentHandoff": typeof domains_pipelines_pipelineDocumentHandoff; "domains/pipelines/pipelineEvalQueries": typeof domains_pipelines_pipelineEvalQueries; "domains/pipelines/pipelineMcpHttp": typeof domains_pipelines_pipelineMcpHttp; + "domains/pipelines/pipelineOwnership": typeof domains_pipelines_pipelineOwnership; "domains/pipelines/pipelineRunsMutations": typeof domains_pipelines_pipelineRunsMutations; "domains/pipelines/pipelineRunsQueries": typeof domains_pipelines_pipelineRunsQueries; "domains/pipelines/pipelineSchedule": typeof domains_pipelines_pipelineSchedule; @@ -2446,6 +2484,7 @@ declare const fullApi: ApiFromModules<{ "domains/pipelines/pipelineTrace": typeof domains_pipelines_pipelineTrace; "domains/pipelines/pipelineWorkflow": typeof domains_pipelines_pipelineWorkflow; "domains/pipelines/researchPipeline": typeof domains_pipelines_researchPipeline; + "domains/pipelines/researchProvenance": typeof domains_pipelines_researchProvenance; "domains/proactive/actions/emailDraftGenerator": typeof domains_proactive_actions_emailDraftGenerator; "domains/proactive/actions/gmailDraftActions": typeof domains_proactive_actions_gmailDraftActions; "domains/proactive/actions/testDraftGenerator": typeof domains_proactive_actions_testDraftGenerator; @@ -3019,6 +3058,7 @@ declare const fullApi: ApiFromModules<{ "tools/shared/structuredOutput": typeof tools_shared_structuredOutput; "tools/social/instagramTools": typeof tools_social_instagramTools; "tools/social/linkedinTools": typeof tools_social_linkedinTools; + "tools/spreadsheetOperationTypes": typeof tools_spreadsheetOperationTypes; "tools/spreadsheet/spreadsheetCrudTools": typeof tools_spreadsheet_spreadsheetCrudTools; "tools/teachability/index": typeof tools_teachability_index; "tools/teachability/learnUserSkill": typeof tools_teachability_learnUserSkill; diff --git a/backend/convex/actions/externalOrchestrator.ts b/backend/convex/actions/externalOrchestrator.ts index 5bb9720c..dad6cf8f 100644 --- a/backend/convex/actions/externalOrchestrator.ts +++ b/backend/convex/actions/externalOrchestrator.ts @@ -2,7 +2,7 @@ import { internalAction } from "../_generated/server"; import { v } from "convex/values"; -import { getLlmModel } from "../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../shared/llm/modelCatalog"; import { getModelSpec, resolveModelAlias, type ApprovedModel } from "../domains/agents/mcp_tools/models/modelResolver"; type Provider = "openai" | "gemini"; diff --git a/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts b/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts index 43074475..d45e2b77 100644 --- a/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts +++ b/backend/convex/domains/agents/adapters/google/googleInteractionsAdapter.ts @@ -8,7 +8,7 @@ import type { SubAgentAdapter, } from "../types"; import { DEFAULT_SDK_CONFIG } from "../types"; -import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../../shared/llm/modelCatalog"; export const GEMINI_DEEP_RESEARCH_AGENT_IDS = [ "deep-research-preview-04-2026", diff --git a/backend/convex/domains/agents/core/coordinatorAgent.ts b/backend/convex/domains/agents/core/coordinatorAgent.ts index 50dc6b9a..e587e501 100644 --- a/backend/convex/domains/agents/core/coordinatorAgent.ts +++ b/backend/convex/domains/agents/core/coordinatorAgent.ts @@ -234,7 +234,7 @@ import { wrapAllToolsWithResourceLinkWrapping } from "../../../lib/withResourceL import type { Id } from "../../../_generated/dataModel"; // Section ID generation for artifact linking -import { generateSectionId } from "../../../../shared/sectionIds"; +import { generateSectionId } from "../../../../../shared/sectionIds"; // Note: DEFAULT_MODEL is imported from "../mcp_tools/models" (line 16) diff --git a/backend/convex/domains/agents/core/delegation/delegationTools.ts b/backend/convex/domains/agents/core/delegation/delegationTools.ts index f0ae2c74..3b09ebf3 100644 --- a/backend/convex/domains/agents/core/delegation/delegationTools.ts +++ b/backend/convex/domains/agents/core/delegation/delegationTools.ts @@ -23,7 +23,7 @@ import { createSECAgent } from "../subagents/sec_subagent/secAgent"; import { createOpenBBAgent } from "../subagents/openbb_subagent/openbbAgent"; import { createEntityResearchAgent } from "../subagents/entity_subagent/entityResearchAgent"; import { createDossierAgent } from "../subagents/dossier_subagent/dossierAgent"; -import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../../shared/llm/modelCatalog"; type DelegationTool = Tool; diff --git a/backend/convex/domains/agents/core/multiAgentWorkflow.ts b/backend/convex/domains/agents/core/multiAgentWorkflow.ts index 8bbefd9b..1739306e 100644 --- a/backend/convex/domains/agents/core/multiAgentWorkflow.ts +++ b/backend/convex/domains/agents/core/multiAgentWorkflow.ts @@ -127,7 +127,7 @@ export const runWorkflow = internalAction({ ]); // Use model catalog for consistent model selection - const { getLlmModel } = await import("../../../../shared/llm/modelCatalog"); + const { getLlmModel } = await import("../../../../../shared/llm/modelCatalog"); const coordinatorModel = getLlmModel("agent", "openai"); const { createCoordinatorAgent } = await import("./coordinatorAgent"); const coordinator = createCoordinatorAgent(coordinatorModel); diff --git a/backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts b/backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts index 330d528d..f143349a 100644 --- a/backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts +++ b/backend/convex/domains/agents/core/subagents/document_subagent/documentAgentWithMetaTools.ts @@ -19,7 +19,7 @@ import { openai } from "@ai-sdk/openai"; import { components } from "../../../../../_generated/api"; // Import centralized model resolver (2025 consolidated - 7 models only) -import { getLanguageModelSafe } from "../../../../agents/mcp_tools/models"; +import { getLanguageModelSafe } from "../../../mcp_tools/models"; // Import meta-tools (hybrid search) import { diff --git a/backend/convex/domains/agents/fastAgentChat.ts b/backend/convex/domains/agents/fastAgentChat.ts index b5f5f631..325a75c3 100644 --- a/backend/convex/domains/agents/fastAgentChat.ts +++ b/backend/convex/domains/agents/fastAgentChat.ts @@ -12,7 +12,7 @@ import OpenAI from "openai"; import Anthropic from "@anthropic-ai/sdk"; import { createGoogleGenerativeAI } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../shared/llm/modelCatalog"; +import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../../shared/llm/modelCatalog"; /** * Modern fast agent chat action diff --git a/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts b/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts index 181834b6..ba06d995 100644 --- a/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts +++ b/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts @@ -1,7 +1,7 @@ import { readFileSync } from "node:fs"; import { resolve } from "node:path"; import { describe, expect, it } from "vitest"; -import * as citations from "../../../shared/citations"; +import * as citations from "../../../../shared/citations"; describe("FastAgent citation provenance guard", () => { it("does not expose a helper that turns retrieval into claim citations", () => { diff --git a/backend/convex/domains/agents/fastAgentDocumentCreation.ts b/backend/convex/domains/agents/fastAgentDocumentCreation.ts index bb77d8ca..2db50ae8 100644 --- a/backend/convex/domains/agents/fastAgentDocumentCreation.ts +++ b/backend/convex/domains/agents/fastAgentDocumentCreation.ts @@ -217,7 +217,7 @@ export const generateAndCreateDocument = action({ const { google } = await import("@ai-sdk/google"); // Use model catalog for consistent model selection - const { getLlmModel } = await import("../../../shared/llm/modelCatalog"); + const { getLlmModel } = await import("../../../../shared/llm/modelCatalog"); const agentModel = getLlmModel("agent", "openai"); // Helper to get language model based on model name diff --git a/backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts b/backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts index 453575da..8d2f6f6d 100644 --- a/backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts +++ b/backend/convex/domains/agents/fastAgentPanelStreaming.anonymousAccess.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from "vitest"; import { api, components } from "../../_generated/api"; import schema from "../../schema"; import { authorizeFastAgentStreamingRequest } from "./fastAgentPanelStreaming"; -import agentComponentSchema from "../../../node_modules/@convex-dev/agent/dist/component/schema.js"; +import agentComponentSchema from "../../../../node_modules/@convex-dev/agent/dist/component/schema.js"; const DIR_SEGMENTS = ["domains", "agents"]; function rerootGlobKey(key: string): string { diff --git a/backend/convex/domains/agents/fastAgentPanelStreaming.ts b/backend/convex/domains/agents/fastAgentPanelStreaming.ts index 23d3cffd..e2521aaf 100644 --- a/backend/convex/domains/agents/fastAgentPanelStreaming.ts +++ b/backend/convex/domains/agents/fastAgentPanelStreaming.ts @@ -63,7 +63,7 @@ import { openai } from "@ai-sdk/openai"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; import { z } from "zod"; -import type { WebSourceLike } from "../../../shared/citations"; +import type { WebSourceLike } from "../../../../shared/citations"; import { buildUltraLongChatWorkingSet, renderUltraLongChatWorkingSetMarkdown, @@ -72,7 +72,7 @@ import { type EntityFastLaneCache, type UltraLongChatMessage, type UltraLongChatWorkingSet, -} from "../../../shared/ultraLongChatContext"; +} from "../../../../shared/ultraLongChatContext"; import { chooseNodeBenchRuntimeRoute } from "./runtimeRouting"; import { assertTierModelAllowed, @@ -91,7 +91,7 @@ import { import { FAST_AGENT_SIGN_IN_BENEFIT_COPY, resolveFastAgentRequestedModel, -} from "../../../shared/llm/fastAgentRuntimeContract"; +} from "../../../../shared/llm/fastAgentRuntimeContract"; // Import tools import { fusionSearch, quickSearch } from "../../tools/search"; @@ -438,7 +438,7 @@ import { providerFallbackChain, isProviderConfigured, type UserTier -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; // Import from centralized model resolver (SINGLE SOURCE OF TRUTH) import { diff --git a/backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts b/backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts index 348b5fe7..d7363095 100644 --- a/backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts +++ b/backend/convex/domains/agents/orchestrator/geminiVideoWrapper.ts @@ -12,7 +12,7 @@ import { internalAction } from "../../../_generated/server"; import { internal } from "../../../_generated/api"; import { GoogleGenAI, createUserContent } from "@google/genai"; import { createHash } from "crypto"; -import { getLlmModel } from "../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; const STORE_TO_STORAGE_CHARS = 250_000; const MAX_INLINE_RAW_CONTENT_CHARS = 120_000; diff --git a/backend/convex/domains/agents/responseFlywheel.ts b/backend/convex/domains/agents/responseFlywheel.ts index 7ef132be..83ff5d5f 100644 --- a/backend/convex/domains/agents/responseFlywheel.ts +++ b/backend/convex/domains/agents/responseFlywheel.ts @@ -9,7 +9,7 @@ import { summarizeResponseReviews, type AgentResponseFlywheelSnapshot, type AgentResponseReviewAggregateRow, -} from "../../../shared/agentResponseFlywheel"; +} from "../../../../shared/agentResponseFlywheel"; import { buildTrajectoryEntityKey } from "../trajectory/lib"; const MAX_REVIEW_WINDOW = 120; diff --git a/backend/convex/domains/agents/runtimeRouting.test.ts b/backend/convex/domains/agents/runtimeRouting.test.ts index f88bc16d..bee58b25 100644 --- a/backend/convex/domains/agents/runtimeRouting.test.ts +++ b/backend/convex/domains/agents/runtimeRouting.test.ts @@ -1,6 +1,6 @@ import { describe, expect, it } from "vitest"; import { chooseNodeBenchRuntimeRoute } from "./runtimeRouting"; -import type { UltraLongChatWorkingSet } from "../../../shared/ultraLongChatContext"; +import type { UltraLongChatWorkingSet } from "../../../../shared/ultraLongChatContext"; function buildWorkingSet( overrides: Partial = {}, diff --git a/backend/convex/domains/agents/runtimeRouting.ts b/backend/convex/domains/agents/runtimeRouting.ts index e73c8737..df42f309 100644 --- a/backend/convex/domains/agents/runtimeRouting.ts +++ b/backend/convex/domains/agents/runtimeRouting.ts @@ -1,4 +1,4 @@ -import type { UltraLongChatWorkingSet } from "../../../shared/ultraLongChatContext"; +import type { UltraLongChatWorkingSet } from "../../../../shared/ultraLongChatContext"; import { NODEBENCH_ADVISOR_MODEL, NODEBENCH_BACKGROUND_MODELS, diff --git a/backend/convex/domains/ai/ai.ts b/backend/convex/domains/ai/ai.ts index ca0b24a5..2f0cca2f 100644 --- a/backend/convex/domains/ai/ai.ts +++ b/backend/convex/domains/ai/ai.ts @@ -10,7 +10,7 @@ import { generateText } from "ai"; import { Id } from "../../_generated/dataModel"; import { z } from "zod"; import { zodToJsonSchema } from "zod-to-json-schema"; -import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../shared/llm/modelCatalog"; +import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../../shared/llm/modelCatalog"; // Legacy import - agentTools not used with new Convex Agent system // import { agentToolsOpenAI } from "../agents/agentTools"; diff --git a/backend/convex/domains/ai/genai.ts b/backend/convex/domains/ai/genai.ts index 61403f12..3b4b8900 100644 --- a/backend/convex/domains/ai/genai.ts +++ b/backend/convex/domains/ai/genai.ts @@ -12,7 +12,7 @@ import { createPartFromUri, Type, } from "@google/genai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // --- Embedding helper --- async function embedTexts(openai: OpenAI, texts: string[]): Promise { diff --git a/backend/convex/domains/ai/metadataAnalyzer.ts b/backend/convex/domains/ai/metadataAnalyzer.ts index 0082408f..944a15bb 100644 --- a/backend/convex/domains/ai/metadataAnalyzer.ts +++ b/backend/convex/domains/ai/metadataAnalyzer.ts @@ -7,7 +7,7 @@ import { api, internal } from "../../_generated/api"; import { getAuthUserId } from "@convex-dev/auth/server"; import type { Id } from "../../_generated/dataModel"; import { GoogleGenAI, createUserContent } from "@google/genai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Shared constants const METADATA_HEADING = "\uD83D\uDCCA Metadata (Auto-Generated)"; diff --git a/backend/convex/domains/ai/morningDigest.ts b/backend/convex/domains/ai/morningDigest.ts index 4576cdf5..d2e40b8e 100644 --- a/backend/convex/domains/ai/morningDigest.ts +++ b/backend/convex/domains/ai/morningDigest.ts @@ -6,7 +6,7 @@ import OpenAI from "openai"; import Anthropic from "@anthropic-ai/sdk"; import { createGoogleGenerativeAI } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel, getProviderForModel, resolveModelAlias, getModelWithFailover } from "../../../shared/llm/modelCatalog"; +import { getLlmModel, getProviderForModel, resolveModelAlias, getModelWithFailover } from "../../../../shared/llm/modelCatalog"; // NOTE: Query is in morningDigestQueries.ts (Convex requires queries in non-Node files) // Import it via: api.domains.ai.morningDigestQueries.getDigestData diff --git a/backend/convex/domains/documents/fileAnalysis.ts b/backend/convex/domains/documents/fileAnalysis.ts index c92f0af0..361a33e9 100644 --- a/backend/convex/domains/documents/fileAnalysis.ts +++ b/backend/convex/domains/documents/fileAnalysis.ts @@ -15,7 +15,7 @@ import { FileState, } from "@google/genai"; import { Id } from "../../_generated/dataModel"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Type definitions interface AnalysisResult { diff --git a/backend/convex/domains/documents/fileSearch.ts b/backend/convex/domains/documents/fileSearch.ts index 6fadeb3e..369aae61 100644 --- a/backend/convex/domains/documents/fileSearch.ts +++ b/backend/convex/domains/documents/fileSearch.ts @@ -5,7 +5,7 @@ import { internal } from "../../_generated/api"; import type { Id } from "../../_generated/dataModel"; import { getAuthUserId } from "@convex-dev/auth/server"; import { GoogleGenAI } from "@google/genai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Helper to get Gemini API key function getGeminiKey(): string { diff --git a/backend/convex/domains/evaluation/dogfood/screenshotQa.ts b/backend/convex/domains/evaluation/dogfood/screenshotQa.ts index 4d3c3e6b..dda58a4b 100644 --- a/backend/convex/domains/evaluation/dogfood/screenshotQa.ts +++ b/backend/convex/domains/evaluation/dogfood/screenshotQa.ts @@ -5,7 +5,7 @@ import { action } from "../../../_generated/server"; import { internal } from "../../../_generated/api"; import { getAuthUserId } from "@convex-dev/auth/server"; import { GoogleGenAI, Type } from "@google/genai"; -import { getLlmModel } from "../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; import crypto from "node:crypto"; function getGeminiKey(): string { diff --git a/backend/convex/domains/evaluation/dogfood/videoQa.ts b/backend/convex/domains/evaluation/dogfood/videoQa.ts index cb8935cf..ca5ad936 100644 --- a/backend/convex/domains/evaluation/dogfood/videoQa.ts +++ b/backend/convex/domains/evaluation/dogfood/videoQa.ts @@ -5,7 +5,7 @@ import { action } from "../../../_generated/server"; import { internal } from "../../../_generated/api"; import { getAuthUserId } from "@convex-dev/auth/server"; import { GoogleGenAI, createPartFromUri, Type } from "@google/genai"; -import { getLlmModel } from "../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; import crypto from "node:crypto"; /** Primary: gemini-3.1-flash for temporal video reasoning. diff --git a/backend/convex/domains/evaluation/eval/runBatch.ts b/backend/convex/domains/evaluation/eval/runBatch.ts index 8c993525..d99fbc42 100644 --- a/backend/convex/domains/evaluation/eval/runBatch.ts +++ b/backend/convex/domains/evaluation/eval/runBatch.ts @@ -18,7 +18,7 @@ import OpenAI from "openai"; import { productionTestCases } from "./productionTestCases"; import { zodResponseFormat } from "openai/helpers/zod"; import { z } from "zod"; -import { getLlmModel } from "../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; import { Id } from "../../../_generated/dataModel"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/backend/convex/domains/evaluation/personaEpisodeEval.ts b/backend/convex/domains/evaluation/personaEpisodeEval.ts index b3fc6e93..36c21c05 100644 --- a/backend/convex/domains/evaluation/personaEpisodeEval.ts +++ b/backend/convex/domains/evaluation/personaEpisodeEval.ts @@ -6,7 +6,7 @@ import { internal, components } from "../../_generated/api"; import { Agent, stepCountIs } from "@convex-dev/agent"; import { getLanguageModelSafe, DEFAULT_MODEL } from "../agents/mcp_tools/models"; import { PERSONAS, type Persona, GROUND_TRUTH_ENTITIES } from "./groundTruth"; -import { calculateRequestCost } from "../../../shared/llm/modelCatalog"; +import { calculateRequestCost } from "../../../../shared/llm/modelCatalog"; type DebriefV1 = { schemaVersion: "debrief_v1"; diff --git a/backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts b/backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts index b78b3188..3c81b07d 100644 --- a/backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts +++ b/backend/convex/domains/evaluation/scenarios/researchUltraLongChatEval.ts @@ -8,7 +8,7 @@ import { type EntityFastLaneCache, type UltraLongChatMessage, type UltraLongChatWorkingSet, -} from "../../../../shared/ultraLongChatContext"; +} from "../../../../../shared/ultraLongChatContext"; type AngleId = UltraLongChatWorkingSet["activeAngles"][number]; diff --git a/backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts b/backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts index 69b2f0df..aca0bea8 100644 --- a/backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts +++ b/backend/convex/domains/evaluation/scenarios/ultraLongChatRealPathEval.ts @@ -31,7 +31,7 @@ import { type EntityFastLaneCache, type UltraLongChatMessage, type UltraLongChatWorkingSet, -} from "../../../../shared/ultraLongChatContext"; +} from "../../../../../shared/ultraLongChatContext"; import { NODEBENCH_ADVISOR_MODEL, NODEBENCH_EXECUTOR_MODELS, diff --git a/backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts b/backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts index 662f0552..fc8d04ee 100644 --- a/backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts +++ b/backend/convex/domains/evaluation/ultraLongChat/batchRunner.ts @@ -29,7 +29,7 @@ import { judgeTurn } from "./judge"; import { calculateRequestCost, getModelPricing, -} from "../../../../shared/llm/modelCatalog"; +} from "../../../../../shared/llm/modelCatalog"; // ═══════════════════════════════════════════════════════════════════════════ // CONSTANTS diff --git a/backend/convex/domains/integrations/billing/rateLimiting.ts b/backend/convex/domains/integrations/billing/rateLimiting.ts index 06ec381c..5af5a230 100644 --- a/backend/convex/domains/integrations/billing/rateLimiting.ts +++ b/backend/convex/domains/integrations/billing/rateLimiting.ts @@ -19,7 +19,7 @@ import { getBestModelForTier, getProviderForModel, type LlmTask, -} from "../../../../shared/llm/modelCatalog"; +} from "../../../../../shared/llm/modelCatalog"; const UNLIMITED_SMALL_MODELS = new Set([ "gpt-5.4-nano", diff --git a/backend/convex/domains/integrations/gmail.ts b/backend/convex/domains/integrations/gmail.ts index f378f0c5..ac7e2137 100644 --- a/backend/convex/domains/integrations/gmail.ts +++ b/backend/convex/domains/integrations/gmail.ts @@ -2,7 +2,7 @@ import { action, internalAction, internalMutation, internalQuery, mutation, quer import { v } from "convex/values"; import { getAuthUserId } from "@convex-dev/auth/server"; import { api, internal } from "../../_generated/api"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; import { Doc, Id } from "../../_generated/dataModel"; /** diff --git a/backend/convex/domains/integrations/resend.ts b/backend/convex/domains/integrations/resend.ts index 053452bf..d9692918 100644 --- a/backend/convex/domains/integrations/resend.ts +++ b/backend/convex/domains/integrations/resend.ts @@ -5,7 +5,7 @@ import { action, internalAction } from "../../_generated/server"; import { v } from "convex/values"; import { api, internal } from "../../_generated/api"; -import type { EmailDigest } from "../../../src/features/research/components/EmailDigestPreview"; +import type { EmailDigest } from "../../../../apps/web/src/features/research/components/EmailDigestPreview"; /** * Send email via Resend API diff --git a/backend/convex/domains/integrations/voice/voiceActions.ts b/backend/convex/domains/integrations/voice/voiceActions.ts index 8d13a141..d103d6a8 100644 --- a/backend/convex/domains/integrations/voice/voiceActions.ts +++ b/backend/convex/domains/integrations/voice/voiceActions.ts @@ -9,7 +9,7 @@ import { httpAction } from "../../../_generated/server"; import { internal, components } from "../../../_generated/api"; import { createVoiceAgent, createVoiceCoordinatorAgent, createVoicePlannerAgent, voicePlanSchema } from "./voiceAgent"; import { getAuthUserId } from "@convex-dev/auth/server"; -import { getLlmModel } from "../../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../../shared/llm/modelCatalog"; /** * Voice session state stored in DB diff --git a/backend/convex/domains/knowledge/entityInsights.ts b/backend/convex/domains/knowledge/entityInsights.ts index 8b1fced3..0e930c5a 100644 --- a/backend/convex/domains/knowledge/entityInsights.ts +++ b/backend/convex/domains/knowledge/entityInsights.ts @@ -12,10 +12,10 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; import { runPiOrAiSdkCompletion } from "../pipelines/piRuntime"; import { linkupSearch } from "../../tools/media/linkupSearch"; -import { getStockPrice } from "../../domains/agents/core/subagents/openbb_subagent/tools/equityTools"; +import { getStockPrice } from "../agents/core/subagents/openbb_subagent/tools/equityTools"; type SourceMatrixItem = { title: string; diff --git a/backend/convex/domains/mcp/mcpToolLedger.ts b/backend/convex/domains/mcp/mcpToolLedger.ts index af14186d..2abe2cdd 100644 --- a/backend/convex/domains/mcp/mcpToolLedger.ts +++ b/backend/convex/domains/mcp/mcpToolLedger.ts @@ -15,7 +15,7 @@ import { v } from "convex/values"; import { query, mutation, internalMutation } from "../../_generated/server"; import type { Id, Doc } from "../../_generated/dataModel"; -import { hashSync } from "../../../shared/artifacts"; +import { hashSync } from "../../../../shared/artifacts"; type RiskTier = | "read_only" diff --git a/backend/convex/domains/product/blockProsemirror.test.ts b/backend/convex/domains/product/blockProsemirror.test.ts index 94b37767..763c965f 100644 --- a/backend/convex/domains/product/blockProsemirror.test.ts +++ b/backend/convex/domains/product/blockProsemirror.test.ts @@ -21,11 +21,11 @@ import { chipsToProsemirrorDoc, prosemirrorDocToChips, type NotebookBlockChip, -} from "../../../shared/notebookBlockProsemirror"; +} from "../../../../shared/notebookBlockProsemirror"; import { buildProductBlockSyncId, parseProductBlockSyncId, -} from "../../../shared/productBlockSync"; +} from "../../../../shared/productBlockSync"; function roundTrip(chips: NotebookBlockChip[]): NotebookBlockChip[] { const doc = chipsToProsemirrorDoc(chips); diff --git a/backend/convex/domains/product/blockProsemirror.ts b/backend/convex/domains/product/blockProsemirror.ts index b8bfebfd..6fbdbe61 100644 --- a/backend/convex/domains/product/blockProsemirror.ts +++ b/backend/convex/domains/product/blockProsemirror.ts @@ -5,11 +5,11 @@ import { query, mutation, type MutationCtx, type QueryCtx } from "../../_generat import { v } from "convex/values"; import { requireBlockReadAccessById, requireBlockWriteAccessById, requireProductIdentity } from "./helpers"; -import { parseProductBlockSyncId } from "../../../shared/productBlockSync"; +import { parseProductBlockSyncId } from "../../../../shared/productBlockSync"; import { chipsToProsemirrorDoc, prosemirrorDocToChips, -} from "../../../shared/notebookBlockProsemirror"; +} from "../../../../shared/notebookBlockProsemirror"; import { productBlockChipValidator } from "./schema"; const prosemirrorSync = new ProsemirrorSync(components.prosemirrorSync); diff --git a/backend/convex/domains/product/blocks.ts b/backend/convex/domains/product/blocks.ts index b92d7a64..36adafd2 100644 --- a/backend/convex/domains/product/blocks.ts +++ b/backend/convex/domains/product/blocks.ts @@ -30,7 +30,7 @@ import { resolveProductReadOwnerKeys, requireProductIdentity, } from "./helpers"; -import { getSystemEntityNodeBySlug } from "../../../shared/systemIntelligence"; +import { getSystemEntityNodeBySlug } from "../../../../shared/systemIntelligence"; import { comparePositions, comparePositionsWithId, diff --git a/backend/convex/domains/product/chat.ts b/backend/convex/domains/product/chat.ts index 03b9562d..f45b2e0e 100644 --- a/backend/convex/domains/product/chat.ts +++ b/backend/convex/domains/product/chat.ts @@ -5,8 +5,8 @@ import { buildPreviewText, deriveDomainFromUrl, requireProductIdentity, summariz import { ensureEntityForReport, upsertEntityContextItem, upsertExplicitRelatedEntitiesForReport } from "./entities"; import { productRoutingDecisionValidator } from "./schema"; import { isProductRuntimeFlagEnabled } from "../../lib/featureFlags"; -import { deriveCanonicalReportSections } from "../../../shared/reportSections"; -import { buildPrepBriefTitle, deriveReportArtifactMode, type ReportArtifactMode } from "../../../shared/reportArtifacts"; +import { deriveCanonicalReportSections } from "../../../../shared/reportSections"; +import { buildPrepBriefTitle, deriveReportArtifactMode, type ReportArtifactMode } from "../../../../shared/reportArtifacts"; import { upsertOpenProductNudge } from "./nudgeHelpers"; import { recomputeEntitySearchableText, @@ -16,7 +16,7 @@ import { syncGenericDiligenceProjectionDrafts, buildGenericDiligenceProjectionDr import { buildProductProviderBudgetSummary, type ProductProviderBudgetSummary, -} from "../../../shared/productRuntime"; +} from "../../../../shared/productRuntime"; import { classifyProductRequest, compileActionItems, @@ -32,7 +32,7 @@ import { type ProductClaimLedgerSummary, type ProductPersistenceDecision, type ProductResolvedTarget, -} from "../../../shared/productAnswerControl"; +} from "../../../../shared/productAnswerControl"; // Defense-in-depth save gate. Composes with productAnswerControl.decidePersistence. // See: convex/domains/agents/safety/artifactDecisionGate.ts import { diff --git a/backend/convex/domains/product/diligenceCheckpointStructuring.ts b/backend/convex/domains/product/diligenceCheckpointStructuring.ts index 0c648f40..513cb42e 100644 --- a/backend/convex/domains/product/diligenceCheckpointStructuring.ts +++ b/backend/convex/domains/product/diligenceCheckpointStructuring.ts @@ -8,7 +8,7 @@ import { classifyAuthority, type AuthorityTier, type BlockType as AuthorityBlockType, -} from "../../../server/pipeline/authority/defaultTiers"; +} from "../../../../workers/node/pipeline/authority/defaultTiers"; import { DEFAULT_MODEL, executeWithModelFallback, diff --git a/backend/convex/domains/product/diligenceLlmJudgeRuns.ts b/backend/convex/domains/product/diligenceLlmJudgeRuns.ts index b4c2947f..45c8085f 100644 --- a/backend/convex/domains/product/diligenceLlmJudgeRuns.ts +++ b/backend/convex/domains/product/diligenceLlmJudgeRuns.ts @@ -41,7 +41,7 @@ import { promptHashOf, validateLlmJudgeScores, type LlmJudgeInput, -} from "../../../server/pipeline/diligenceLlmJudge"; +} from "../../../../workers/node/pipeline/diligenceLlmJudge"; import { getActivePublicEntityShareByToken, requireAuthenticatedProductIdentity, diff --git a/backend/convex/domains/product/diligenceProjectionRuntime.ts b/backend/convex/domains/product/diligenceProjectionRuntime.ts index 9ea12ea2..373e4b71 100644 --- a/backend/convex/domains/product/diligenceProjectionRuntime.ts +++ b/backend/convex/domains/product/diligenceProjectionRuntime.ts @@ -1,6 +1,6 @@ import type { Doc, Id } from "../../_generated/dataModel"; import type { MutationCtx } from "../../_generated/server"; -import { ALL_BLOCK_TYPES, classifyAuthority, type BlockType, type AuthorityTier } from "../../../server/pipeline/authority/defaultTiers"; +import { ALL_BLOCK_TYPES, classifyAuthority, type BlockType, type AuthorityTier } from "../../../../workers/node/pipeline/authority/defaultTiers"; export type ProjectionBlockType = "projection" | BlockType; diff --git a/backend/convex/domains/product/diligenceProjections.ts b/backend/convex/domains/product/diligenceProjections.ts index 00f2b8c1..2615375d 100644 --- a/backend/convex/domains/product/diligenceProjections.ts +++ b/backend/convex/domains/product/diligenceProjections.ts @@ -53,13 +53,13 @@ import { emitDiligenceProjectionInstrumented, type EmitProjectionArgs, type EmitProjectionResult, -} from "../../../server/pipeline/diligenceProjectionWriter"; +} from "../../../../workers/node/pipeline/diligenceProjectionWriter"; import { classifyError, fingerprintFailure, normalizeMessageStem, -} from "../../../server/pipeline/retryPolicy"; -import { judgeDiligenceRun } from "../../../server/pipeline/diligenceJudge"; +} from "../../../../workers/node/pipeline/retryPolicy"; +import { judgeDiligenceRun } from "../../../../workers/node/pipeline/diligenceJudge"; const DILIGENCE_BLOCK_TYPE_VALIDATOR = v.union( v.literal("projection"), diff --git a/backend/convex/domains/product/entities.ts b/backend/convex/domains/product/entities.ts index 3ed2dab2..fd1a4ca8 100644 --- a/backend/convex/domains/product/entities.ts +++ b/backend/convex/domains/product/entities.ts @@ -27,7 +27,7 @@ import { isLegacyPromptArtifact, isPlaceholderPrepEntity, isPrepBriefType, -} from "../../../shared/reportArtifacts"; +} from "../../../../shared/reportArtifacts"; const TOKEN_STOPWORDS = new Set([ "the", diff --git a/backend/convex/domains/product/entityMemory.ts b/backend/convex/domains/product/entityMemory.ts index 75ca49cc..02d0090b 100644 --- a/backend/convex/domains/product/entityMemory.ts +++ b/backend/convex/domains/product/entityMemory.ts @@ -21,11 +21,11 @@ import { compactTopic, type CompactionFact, type TopicFileContent, -} from "../../../server/pipeline/topicCompaction"; +} from "../../../../workers/node/pipeline/topicCompaction"; import { diffTopicFacts, buildNudgeText, -} from "../../../server/pipeline/changeDetector"; +} from "../../../../workers/node/pipeline/changeDetector"; const MAX_TOPICS_PER_ENTITY = 20; diff --git a/backend/convex/domains/product/extendedThinking.ts b/backend/convex/domains/product/extendedThinking.ts index ff2c4342..afcf8467 100644 --- a/backend/convex/domains/product/extendedThinking.ts +++ b/backend/convex/domains/product/extendedThinking.ts @@ -49,7 +49,7 @@ import { MAX_CHECKPOINTS, MAX_THINKING_BUDGET_TOKENS, MAX_OUTPUT_TOKENS, -} from "../../../server/pipeline/extendedThinkingRunner"; +} from "../../../../workers/node/pipeline/extendedThinkingRunner"; const DEFAULT_MODEL = "claude-sonnet-4.6"; const DEFAULT_CHECKPOINTS = 8; diff --git a/backend/convex/domains/product/nudgeHelpers.ts b/backend/convex/domains/product/nudgeHelpers.ts index e8f7cd1d..8d669a7a 100644 --- a/backend/convex/domains/product/nudgeHelpers.ts +++ b/backend/convex/domains/product/nudgeHelpers.ts @@ -1,6 +1,6 @@ import type { Doc, Id } from "../../_generated/dataModel"; import type { MutationCtx } from "../../_generated/server"; -import { getNudgeGroupKey } from "../../../shared/nudges"; +import { getNudgeGroupKey } from "../../../../shared/nudges"; type ProductNudgeType = Doc<"productNudges">["type"]; type ProductNudgePriority = Doc<"productNudges">["priority"]; diff --git a/backend/convex/domains/product/nudges.ts b/backend/convex/domains/product/nudges.ts index c00f0c6a..7a040190 100644 --- a/backend/convex/domains/product/nudges.ts +++ b/backend/convex/domains/product/nudges.ts @@ -3,8 +3,8 @@ import { v } from "convex/values"; import { internal } from "../../_generated/api"; import { resolveProductIdentitySafely, resolveProductReadOwnerKeys, requireProductIdentity } from "./helpers"; import { listOpenProductNudgesInGroup, upsertOpenProductNudge } from "./nudgeHelpers"; -import { collapseNudgesIntoGroups } from "../../../shared/nudges"; -import { isLegacyPromptArtifact, isPlaceholderPrepEntity } from "../../../shared/reportArtifacts"; +import { collapseNudgesIntoGroups } from "../../../../shared/nudges"; +import { isLegacyPromptArtifact, isPlaceholderPrepEntity } from "../../../../shared/reportArtifacts"; function buildSuggestedActions(nudges: Array<{ actionLabel?: string; type?: string }>): string[] { const suggestions = new Set(); diff --git a/backend/convex/domains/product/reports.ts b/backend/convex/domains/product/reports.ts index 2d5df21b..6afeaa0e 100644 --- a/backend/convex/domains/product/reports.ts +++ b/backend/convex/domains/product/reports.ts @@ -19,7 +19,7 @@ import { isLegacyPromptArtifact, isPlaceholderPrepEntity, isPrepBriefType, -} from "../../../shared/reportArtifacts"; +} from "../../../../shared/reportArtifacts"; function buildReportRefreshPrompt(report: { title: string; diff --git a/backend/convex/domains/product/systemIntelligence.ts b/backend/convex/domains/product/systemIntelligence.ts index 9cd48cb1..2f763f6c 100644 --- a/backend/convex/domains/product/systemIntelligence.ts +++ b/backend/convex/domains/product/systemIntelligence.ts @@ -1,6 +1,6 @@ import { query } from "../../_generated/server"; import { v } from "convex/values"; -import { buildSystemEntityNodes, getSystemEntityNodeBySlug } from "../../../shared/systemIntelligence"; +import { buildSystemEntityNodes, getSystemEntityNodeBySlug } from "../../../../shared/systemIntelligence"; const SYSTEM_POST_LIMIT = 240; const GENERIC_SYSTEM_NAME_PATTERNS = [ diff --git a/backend/convex/domains/publicResearch/core.ts b/backend/convex/domains/publicResearch/core.ts index 42a620ba..2718c75d 100644 --- a/backend/convex/domains/publicResearch/core.ts +++ b/backend/convex/domains/publicResearch/core.ts @@ -1,7 +1,7 @@ import { v } from "convex/values"; import { internalMutation, mutation, query } from "../../_generated/server"; import { internal } from "../../_generated/api"; -import { hashSync } from "../../../shared/artifacts"; +import { hashSync } from "../../../../shared/artifacts"; const DAY_MS = 24 * 60 * 60 * 1000; const DEFAULT_FRESHNESS_TTL_MS = 30 * DAY_MS; diff --git a/backend/convex/domains/redesign/chatRuns.ts b/backend/convex/domains/redesign/chatRuns.ts index ad8b65df..ab669b41 100644 --- a/backend/convex/domains/redesign/chatRuns.ts +++ b/backend/convex/domains/redesign/chatRuns.ts @@ -43,13 +43,13 @@ import { getAuthUserId } from "@convex-dev/auth/server"; import { decideLiveGrounding, type LiveGroundingDecision, -} from "../../../shared/redesign/contextRuntimePolicy"; -import { classifyPrompt } from "../../../shared/redesign/promptClassifier"; +} from "../../../../shared/redesign/contextRuntimePolicy"; +import { classifyPrompt } from "../../../../shared/redesign/promptClassifier"; import { classifyEvidenceVerification, type EvidenceVerificationState, -} from "../../../shared/redesign/sourceVerificationPolicy"; -import { extractBankReconciliationFact } from "../../../shared/redesign/bankReconciliationFactExtractor"; +} from "../../../../shared/redesign/sourceVerificationPolicy"; +import { extractBankReconciliationFact } from "../../../../shared/redesign/bankReconciliationFactExtractor"; // ───────── Types ───────── diff --git a/backend/convex/domains/research/angleRegistry.ts b/backend/convex/domains/research/angleRegistry.ts index 011430a3..fdcdd5fe 100644 --- a/backend/convex/domains/research/angleRegistry.ts +++ b/backend/convex/domains/research/angleRegistry.ts @@ -15,9 +15,9 @@ */ import { v } from "convex/values"; -import type { AngleId } from "../../../shared/research/angleIds"; +import type { AngleId } from "../../../../shared/research/angleIds"; -export type { AngleId } from "../../../shared/research/angleIds"; +export type { AngleId } from "../../../../shared/research/angleIds"; export const angleIdValidator = v.union( v.literal("entity_profile"), diff --git a/backend/convex/domains/research/briefGenerator.ts b/backend/convex/domains/research/briefGenerator.ts index 708edb0f..fbaa5bcc 100644 --- a/backend/convex/domains/research/briefGenerator.ts +++ b/backend/convex/domains/research/briefGenerator.ts @@ -11,11 +11,11 @@ import { v } from "convex/values"; import { internalAction } from "../../_generated/server"; import { internal } from "../../_generated/api"; import OpenAI from "openai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Import schema and validator types -import type { DailyBriefPayload, Signal, Evidence, Action } from "../../../src/features/research/types/dailyBriefSchema"; -import { DailyBriefJSONSchema } from "../../../src/features/research/types/dailyBriefSchema"; +import type { DailyBriefPayload, Signal, Evidence, Action } from "../../../../apps/web/src/features/research/types/dailyBriefSchema"; +import { DailyBriefJSONSchema } from "../../../../apps/web/src/features/research/types/dailyBriefSchema"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/backend/convex/domains/research/dailyBriefPersonalOverlay.ts b/backend/convex/domains/research/dailyBriefPersonalOverlay.ts index 99986679..52f2f045 100644 --- a/backend/convex/domains/research/dailyBriefPersonalOverlay.ts +++ b/backend/convex/domains/research/dailyBriefPersonalOverlay.ts @@ -20,7 +20,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; async function generateWithProvider( modelInput: string, diff --git a/backend/convex/domains/research/dailyBriefWorker.ts b/backend/convex/domains/research/dailyBriefWorker.ts index 19ddf711..64d4810e 100644 --- a/backend/convex/domains/research/dailyBriefWorker.ts +++ b/backend/convex/domains/research/dailyBriefWorker.ts @@ -19,7 +19,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; async function generateWithProvider( modelInput: string, diff --git a/backend/convex/domains/research/dashboardMetrics.ts b/backend/convex/domains/research/dashboardMetrics.ts index 476a0f01..a384bb94 100644 --- a/backend/convex/domains/research/dashboardMetrics.ts +++ b/backend/convex/domains/research/dashboardMetrics.ts @@ -2,7 +2,7 @@ import { internalAction } from "../../_generated/server"; import { internal } from "../../_generated/api"; -import type { DashboardState, KeyStat, CapabilityEntry, MarketShareSegment } from "../../../src/features/research/types"; +import type { DashboardState, KeyStat, CapabilityEntry, MarketShareSegment } from "../../../../apps/web/src/features/research/types"; import { createHash } from "crypto"; /** diff --git a/backend/convex/domains/research/dashboardQueries.ts b/backend/convex/domains/research/dashboardQueries.ts index 16cbf8f5..b3ee6d74 100644 --- a/backend/convex/domains/research/dashboardQueries.ts +++ b/backend/convex/domains/research/dashboardQueries.ts @@ -2,7 +2,7 @@ import { v } from "convex/values"; import { query, mutation, action, internalQuery } from "../../_generated/server"; import { internal } from "../../_generated/api"; import { Doc } from "../../_generated/dataModel"; -import type { DashboardState } from "../../../src/features/research/types"; +import type { DashboardState } from "../../../../apps/web/src/features/research/types"; /** * Internal query to fetch feed items for metrics calculation diff --git a/backend/convex/domains/research/dealFlow.ts b/backend/convex/domains/research/dealFlow.ts index 7c9c967d..f903e12a 100644 --- a/backend/convex/domains/research/dealFlow.ts +++ b/backend/convex/domains/research/dealFlow.ts @@ -12,7 +12,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; import { linkupSearch } from "../../tools/media/linkupSearch"; const CACHE_TTL_MS = 6 * 60 * 60 * 1000; diff --git a/backend/convex/domains/research/executiveBrief.ts b/backend/convex/domains/research/executiveBrief.ts index be52c6f4..e7e094d1 100644 --- a/backend/convex/domains/research/executiveBrief.ts +++ b/backend/convex/domains/research/executiveBrief.ts @@ -19,7 +19,7 @@ import { api, internal } from "../../_generated/api"; import { getAuthUserId } from "@convex-dev/auth/server"; import OpenAI from "openai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; import { createHash, randomUUID } from "crypto"; import { @@ -29,16 +29,16 @@ import { type Signal, type Action as BriefAction, type VizArtifact, -} from "../../../src/features/research/types/dailyBriefSchema"; +} from "../../../../apps/web/src/features/research/types/dailyBriefSchema"; import { BRIEF_SYSTEM_PROMPT, BRIEF_OUTPUT_CONSTRAINTS, BRIEF_EXAMPLE_PROMPT, -} from "../../../src/features/research/prompts/briefConstraints"; +} from "../../../../apps/web/src/features/research/prompts/briefConstraints"; import { parseAndValidateBrief, buildRetryPrompt, -} from "../../../src/features/research/utils/briefGenerator"; +} from "../../../../apps/web/src/features/research/utils/briefGenerator"; type FeedItem = { sourceId?: string; diff --git a/backend/convex/domains/research/lensRegistry.ts b/backend/convex/domains/research/lensRegistry.ts index 9709fca8..9f4de722 100644 --- a/backend/convex/domains/research/lensRegistry.ts +++ b/backend/convex/domains/research/lensRegistry.ts @@ -14,8 +14,8 @@ * free change once v1 is proven. */ -import type { AngleId } from "../../../shared/research/angleIds"; -import type { LensId, DepthId } from "../../../shared/research/lensIds"; +import type { AngleId } from "../../../../shared/research/angleIds"; +import type { LensId, DepthId } from "../../../../shared/research/lensIds"; /** A single layer of a lens's rendered hierarchy. */ export interface LensLayer { diff --git a/backend/convex/domains/research/modelComparison.ts b/backend/convex/domains/research/modelComparison.ts index e3a8baa5..4fb7df35 100644 --- a/backend/convex/domains/research/modelComparison.ts +++ b/backend/convex/domains/research/modelComparison.ts @@ -12,7 +12,7 @@ import { resolveModelAlias, getModelWithFailover, modelPricing, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; const CACHE_TTL_MS = 12 * 60 * 60 * 1000; diff --git a/backend/convex/domains/research/narrative/didYouKnow.ts b/backend/convex/domains/research/narrative/didYouKnow.ts index 119b6fff..c1de9b19 100644 --- a/backend/convex/domains/research/narrative/didYouKnow.ts +++ b/backend/convex/domains/research/narrative/didYouKnow.ts @@ -4,7 +4,7 @@ import { v } from "convex/values"; import { internalAction } from "../../../_generated/server"; import { internal } from "../../../_generated/api"; import type { Id } from "../../../_generated/dataModel"; -import { makeWebSourceCitationId } from "../../../../shared/citations/webSourceCitations"; +import { makeWebSourceCitationId } from "../../../../../shared/citations/webSourceCitations"; type ChatMessage = { role: "system" | "user" | "assistant"; content: string }; diff --git a/backend/convex/domains/research/narrative/didYouKnowSources.ts b/backend/convex/domains/research/narrative/didYouKnowSources.ts index ac6149d2..c2301d87 100644 --- a/backend/convex/domains/research/narrative/didYouKnowSources.ts +++ b/backend/convex/domains/research/narrative/didYouKnowSources.ts @@ -5,7 +5,7 @@ import { internalAction } from "../../../_generated/server"; import type { ActionCtx } from "../../../_generated/server"; import { api, internal } from "../../../_generated/api"; import type { Id } from "../../../_generated/dataModel"; -import { makeWebSourceCitationId } from "../../../../shared/citations/webSourceCitations"; +import { makeWebSourceCitationId } from "../../../../../shared/citations/webSourceCitations"; type PreparedSource = { url: string; diff --git a/backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts b/backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts index 04ed2d59..23adbe85 100644 --- a/backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts +++ b/backend/convex/domains/research/narrative/experiments/freshNewsDidYouKnowExperiment.ts @@ -5,7 +5,7 @@ import { internalAction } from "../../../../_generated/server"; import type { ActionCtx } from "../../../../_generated/server"; import { api, internal } from "../../../../_generated/api"; import type { Id } from "../../../../_generated/dataModel"; -import { makeWebSourceCitationId } from "../../../../../shared/citations/webSourceCitations"; +import { makeWebSourceCitationId } from "../../../../../../shared/citations/webSourceCitations"; import { getCurrentWeekNumber } from "../newsroom/state"; type FetchedSource = { diff --git a/backend/convex/domains/research/narrative/mutations/dedup.ts b/backend/convex/domains/research/narrative/mutations/dedup.ts index 95190676..6aa9a0c1 100644 --- a/backend/convex/domains/research/narrative/mutations/dedup.ts +++ b/backend/convex/domains/research/narrative/mutations/dedup.ts @@ -16,7 +16,7 @@ import { internal } from "../../../../_generated/api"; import { claimSetValidator } from "../validators"; import type { Id } from "../../../../_generated/dataModel"; import { fnv1a32Hex } from "../adapters/types"; -import { makeWebSourceCitationId } from "../../../../../shared/citations/webSourceCitations"; +import { makeWebSourceCitationId } from "../../../../../../shared/citations/webSourceCitations"; // ═══════════════════════════════════════════════════════════════════════════ // CONTENT HASH COMPUTATION diff --git a/backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts index ab00250a..aea1b549 100644 --- a/backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts +++ b/backend/convex/domains/research/narrative/newsroom/agents/analystAgent.ts @@ -16,7 +16,7 @@ import { generateText } from "ai"; import type { ActionCtx } from "../../../../../_generated/server"; import { internal } from "../../../../../_generated/api"; import { getLanguageModelSafe } from "../../../../agents/mcp_tools/models"; -import { fnv1a32Hex } from "../../../../../../shared/citations/webSourceCitations"; +import { fnv1a32Hex } from "../../../../../../../shared/citations/webSourceCitations"; import type { NewsroomState, NarrativeShift, diff --git a/backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts index 83a70dcb..3bf43e86 100644 --- a/backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts +++ b/backend/convex/domains/research/narrative/newsroom/agents/publisherAgent.ts @@ -21,7 +21,7 @@ import { getLanguageModelSafe } from "../../../../agents/mcp_tools/models"; import { fnv1a32Hex, makeWebSourceCitationId, -} from "../../../../../../shared/citations/webSourceCitations"; +} from "../../../../../../../shared/citations/webSourceCitations"; import type { NewsroomState, NarrativeShift, diff --git a/backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts b/backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts index 5b9bf43e..d4461dd7 100644 --- a/backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts +++ b/backend/convex/domains/research/narrative/newsroom/agents/scoutAgent.ts @@ -18,7 +18,7 @@ import { internal } from "../../../../../_generated/api"; import { SearchOrchestrator } from "../../../../search/fusion/orchestrator"; import type { SearchResult } from "../../../../search/fusion/types"; import type { NewsroomState, NewsItem, SearchLogEntry } from "../state"; -import { fnv1a32Hex } from "../../../../../../shared/citations/webSourceCitations"; +import { fnv1a32Hex } from "../../../../../../../shared/citations/webSourceCitations"; import { processAllContent, type NarrativeEventInput, diff --git a/backend/convex/domains/research/paperDetails.ts b/backend/convex/domains/research/paperDetails.ts index 507ad2bc..432300a9 100644 --- a/backend/convex/domains/research/paperDetails.ts +++ b/backend/convex/domains/research/paperDetails.ts @@ -12,7 +12,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; import { linkupSearch } from "../../tools/media/linkupSearch"; const CACHE_TTL_MS = 24 * 60 * 60 * 1000; diff --git a/backend/convex/domains/research/publicDossier.ts b/backend/convex/domains/research/publicDossier.ts index 11112c47..1c4ca82d 100644 --- a/backend/convex/domains/research/publicDossier.ts +++ b/backend/convex/domains/research/publicDossier.ts @@ -10,7 +10,7 @@ import { v } from "convex/values"; import { action, internalAction } from "../../_generated/server"; import { api, internal } from "../../_generated/api"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // NOTE: Queries and mutations are in publicDossierQueries.ts // Import them via api.domains.research.publicDossierQueries instead diff --git a/backend/convex/domains/research/repoScout.ts b/backend/convex/domains/research/repoScout.ts index 763bdb6e..7e32a91c 100644 --- a/backend/convex/domains/research/repoScout.ts +++ b/backend/convex/domains/research/repoScout.ts @@ -12,7 +12,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; import { linkupSearch } from "../../tools/media/linkupSearch"; const CACHE_TTL_MS = 6 * 60 * 60 * 1000; diff --git a/backend/convex/domains/research/researchRunAction.ts b/backend/convex/domains/research/researchRunAction.ts index ed77c712..1f738c97 100644 --- a/backend/convex/domains/research/researchRunAction.ts +++ b/backend/convex/domains/research/researchRunAction.ts @@ -36,11 +36,11 @@ import { traceSpan, startSpan, closeSpan, -} from "../../../shared/research/tracing.js"; +} from "../../../../shared/research/tracing.js"; import { SPAN_ROOT_SELECTION, SPAN_ENTITY_HYDRATION, -} from "../../../shared/research/spanNames.js"; +} from "../../../../shared/research/spanNames.js"; // Deterministic slug for canonical entity lookup (intelligenceEntities.entityKey). // Must match the slug we accept at /v1/resources/expand so the URI round-trips. diff --git a/backend/convex/domains/research/stackImpact.ts b/backend/convex/domains/research/stackImpact.ts index f13c246e..7b9b03ca 100644 --- a/backend/convex/domains/research/stackImpact.ts +++ b/backend/convex/domains/research/stackImpact.ts @@ -12,7 +12,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; type ReaderContentResult = { ok?: boolean; diff --git a/backend/convex/domains/research/strategyMetrics.ts b/backend/convex/domains/research/strategyMetrics.ts index 51de3084..81964290 100644 --- a/backend/convex/domains/research/strategyMetrics.ts +++ b/backend/convex/domains/research/strategyMetrics.ts @@ -12,7 +12,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; const CACHE_TTL_MS = 12 * 60 * 60 * 1000; diff --git a/backend/convex/domains/search/searchPipelineNode.ts b/backend/convex/domains/search/searchPipelineNode.ts index 64a00ab0..4a5f0d5e 100644 --- a/backend/convex/domains/search/searchPipelineNode.ts +++ b/backend/convex/domains/search/searchPipelineNode.ts @@ -3,18 +3,18 @@ import { v } from "convex/values"; import { internalAction } from "../../_generated/server"; import { api, internal } from "../../_generated/api"; -import type { McpTool } from "../../../packages/mcp-local/src/types.js"; -import { entityEnrichmentTools } from "../../../packages/mcp-local/src/tools/entityEnrichmentTools.js"; -import { founderLocalPipelineTools } from "../../../packages/mcp-local/src/tools/founderLocalPipeline.js"; -import { llmTools } from "../../../packages/mcp-local/src/tools/llmTools.js"; -import { monteCarloTools } from "../../../packages/mcp-local/src/tools/monteCarloTools.js"; -import { reconTools } from "../../../packages/mcp-local/src/tools/reconTools.js"; -import { webTools } from "../../../packages/mcp-local/src/tools/webTools.js"; +import type { McpTool } from "../../../../packages/mcp-local/src/types.js"; +import { entityEnrichmentTools } from "../../../../packages/mcp-local/src/tools/entityEnrichmentTools.js"; +import { founderLocalPipelineTools } from "../../../../packages/mcp-local/src/tools/founderLocalPipeline.js"; +import { llmTools } from "../../../../packages/mcp-local/src/tools/llmTools.js"; +import { monteCarloTools } from "../../../../packages/mcp-local/src/tools/monteCarloTools.js"; +import { reconTools } from "../../../../packages/mcp-local/src/tools/reconTools.js"; +import { webTools } from "../../../../packages/mcp-local/src/tools/webTools.js"; import { executeHarness, generatePlan, synthesizeResults, -} from "../../../server/agentHarness.js"; +} from "../../../../workers/node/agentHarness.js"; import { buildSearchForecastGate } from "./searchForecastGate.js"; type SearchTraceEntry = { diff --git a/backend/convex/domains/social/postDedupAction.ts b/backend/convex/domains/social/postDedupAction.ts index b1d95252..9d783d7c 100644 --- a/backend/convex/domains/social/postDedupAction.ts +++ b/backend/convex/domains/social/postDedupAction.ts @@ -23,7 +23,7 @@ import { getLlmModel, resolveModelAlias, getModelWithFailover, -} from "../../../shared/llm/modelCatalog"; +} from "../../../../shared/llm/modelCatalog"; import { generateDedupJudgePrompt, type DedupVerdict } from "./postDedup"; // ═══════════════════════════════════════════════════════════════════════════ diff --git a/backend/convex/domains/verification/claimVerificationAction.ts b/backend/convex/domains/verification/claimVerificationAction.ts index 38f2b2b2..10bdf779 100644 --- a/backend/convex/domains/verification/claimVerificationAction.ts +++ b/backend/convex/domains/verification/claimVerificationAction.ts @@ -12,7 +12,7 @@ import OpenAI from "openai"; import Anthropic from "@anthropic-ai/sdk"; import { createGoogleGenerativeAI } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../shared/llm/modelCatalog"; +import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../../../shared/llm/modelCatalog"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/backend/convex/domains/verification/multiSourceValidation.ts b/backend/convex/domains/verification/multiSourceValidation.ts index 7b5d7b9b..db5aafef 100644 --- a/backend/convex/domains/verification/multiSourceValidation.ts +++ b/backend/convex/domains/verification/multiSourceValidation.ts @@ -289,7 +289,7 @@ async function validateWithNews( try { // Use fusion search to find multiple sources - const { SearchOrchestrator } = await import("../../domains/search/fusion/orchestrator"); + const { SearchOrchestrator } = await import("../search/fusion/orchestrator"); const orchestrator = new SearchOrchestrator(ctx); const searchResults = await orchestrator.search({ diff --git a/backend/convex/events.ts b/backend/convex/events.ts index 98e3f82f..88c44311 100644 --- a/backend/convex/events.ts +++ b/backend/convex/events.ts @@ -35,8 +35,8 @@ import { v } from "convex/values"; import { internal } from "./_generated/api"; import { action, query, mutation, internalMutation, internalQuery, internalAction } from "./_generated/server"; import { enforceRateLimit } from "./scratchnodeRateLimit"; -import { routeLLM, askAnswerSignals } from "../shared/llm/router"; -import { rerankWithGemini, condenseQuery, type TriCandidate } from "../shared/search/triSearch"; +import { routeLLM, askAnswerSignals } from "../../shared/llm/router"; +import { rerankWithGemini, condenseQuery, type TriCandidate } from "../../shared/search/triSearch"; class ConvexError> extends Error { data: T; diff --git a/backend/convex/globalResearch/artifacts.ts b/backend/convex/globalResearch/artifacts.ts index b7f4a936..fc991a80 100644 --- a/backend/convex/globalResearch/artifacts.ts +++ b/backend/convex/globalResearch/artifacts.ts @@ -5,7 +5,7 @@ import { v } from "convex/values"; import { internalMutation, internalQuery } from "../_generated/server"; import { Doc } from "../_generated/dataModel"; -import { hashSync, canonicalizeUrl, extractHost } from "../../shared/artifacts"; +import { hashSync, canonicalizeUrl, extractHost } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // CONSTANTS diff --git a/backend/convex/globalResearch/cacheSimple.ts b/backend/convex/globalResearch/cacheSimple.ts index 0f7c7c5d..b7b13444 100644 --- a/backend/convex/globalResearch/cacheSimple.ts +++ b/backend/convex/globalResearch/cacheSimple.ts @@ -5,7 +5,7 @@ import { v } from "convex/values"; import { internalMutation, internalQuery } from "../_generated/server"; import { Doc } from "../_generated/dataModel"; -import { hashSync } from "../../shared/artifacts"; +import { hashSync } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // TTL CONSTANTS (milliseconds) diff --git a/backend/convex/globalResearch/mentions.ts b/backend/convex/globalResearch/mentions.ts index 454d8390..0e139dc1 100644 --- a/backend/convex/globalResearch/mentions.ts +++ b/backend/convex/globalResearch/mentions.ts @@ -5,7 +5,7 @@ import { v } from "convex/values"; import { internalMutation, internalQuery } from "../_generated/server"; import { Doc } from "../_generated/dataModel"; -import { hashSync } from "../../shared/artifacts"; +import { hashSync } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // CONSTANTS diff --git a/backend/convex/globalResearch/queries.ts b/backend/convex/globalResearch/queries.ts index 3ec6bce1..1b214795 100644 --- a/backend/convex/globalResearch/queries.ts +++ b/backend/convex/globalResearch/queries.ts @@ -5,7 +5,7 @@ import { v } from "convex/values"; import { internalMutation, internalQuery } from "../_generated/server"; import { Doc } from "../_generated/dataModel"; -import { hashSync } from "../../shared/artifacts"; +import { hashSync } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // CONSTANTS diff --git a/backend/convex/globalResearch/runs.ts b/backend/convex/globalResearch/runs.ts index a21060fb..22a243ec 100644 --- a/backend/convex/globalResearch/runs.ts +++ b/backend/convex/globalResearch/runs.ts @@ -5,7 +5,7 @@ import { v } from "convex/values"; import { internalMutation, internalQuery } from "../_generated/server"; import { Doc } from "../_generated/dataModel"; -import { hashSync } from "../../shared/artifacts"; +import { hashSync } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/backend/convex/lib/artifactModels.ts b/backend/convex/lib/artifactModels.ts index 13f9a847..1b7359cc 100644 --- a/backend/convex/lib/artifactModels.ts +++ b/backend/convex/lib/artifactModels.ts @@ -3,7 +3,7 @@ // This prevents schema drift from creeping into shared types import { Doc } from "../_generated/dataModel"; -import type { ArtifactCard } from "../../shared/artifacts"; +import type { ArtifactCard } from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // TYPE: ArtifactRow (exactly what schema allows) diff --git a/backend/convex/lib/artifactPersistence.ts b/backend/convex/lib/artifactPersistence.ts index 78b55929..595d2fa5 100644 --- a/backend/convex/lib/artifactPersistence.ts +++ b/backend/convex/lib/artifactPersistence.ts @@ -17,7 +17,7 @@ import { extractHost, classifyProvider, generateArtifactIdSync, -} from "../../shared/artifacts"; +} from "../../../shared/artifacts"; // ═══════════════════════════════════════════════════════════════════════════ // FEATURE FLAGS & CONSTANTS diff --git a/backend/convex/lib/withArtifactPersistence.ts b/backend/convex/lib/withArtifactPersistence.ts index 9c89955c..a8d443c4 100644 --- a/backend/convex/lib/withArtifactPersistence.ts +++ b/backend/convex/lib/withArtifactPersistence.ts @@ -2,8 +2,8 @@ // Central tool wrapper for artifact extraction and persistence // Wraps ALL tools at registration time - extraction decides "no-op" -import { extractArtifacts } from "../../shared/artifactExtractors"; -import { canonicalizeUrl, generateIdempotencyKey } from "../../shared/artifacts"; +import { extractArtifacts } from "../../../shared/artifactExtractors"; +import { canonicalizeUrl, generateIdempotencyKey } from "../../../shared/artifacts"; import { internal } from "../_generated/api"; import type { Id } from "../_generated/dataModel"; diff --git a/backend/convex/tags_actions.ts b/backend/convex/tags_actions.ts index c80285b1..daa3321b 100644 --- a/backend/convex/tags_actions.ts +++ b/backend/convex/tags_actions.ts @@ -8,7 +8,7 @@ import OpenAI from "openai"; import Anthropic from "@anthropic-ai/sdk"; import { createGoogleGenerativeAI } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../shared/llm/modelCatalog"; +import { getLlmModel, resolveModelAlias, getModelWithFailover } from "../../shared/llm/modelCatalog"; /** * LLM-powered tag generation for documents diff --git a/backend/convex/tools/calendar/emailEventExtractor.ts b/backend/convex/tools/calendar/emailEventExtractor.ts index ae395905..befde44f 100644 --- a/backend/convex/tools/calendar/emailEventExtractor.ts +++ b/backend/convex/tools/calendar/emailEventExtractor.ts @@ -4,7 +4,7 @@ import { generateText } from "ai"; import { openai } from "@ai-sdk/openai"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Helper to get the appropriate language model based on model name function getLanguageModel(modelName: string) { diff --git a/backend/convex/tools/document/contextTools.ts b/backend/convex/tools/document/contextTools.ts index 35de93a4..e2fc996f 100644 --- a/backend/convex/tools/document/contextTools.ts +++ b/backend/convex/tools/document/contextTools.ts @@ -21,7 +21,7 @@ import { createTool } from "@convex-dev/agent"; import { z } from "zod"; import { GoogleGenAI, createUserContent, Type } from "@google/genai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // ═══════════════════════════════════════════════════════════════════════════ // LATENCY BUDGET CONFIGURATION diff --git a/backend/convex/tools/evaluation/evaluator.ts b/backend/convex/tools/evaluation/evaluator.ts index b2df4f17..b6dd9552 100644 --- a/backend/convex/tools/evaluation/evaluator.ts +++ b/backend/convex/tools/evaluation/evaluator.ts @@ -8,7 +8,7 @@ import OpenAI from "openai"; import { zodResponseFormat } from "openai/helpers/zod"; import { z } from "zod"; import { allTestCases, TestCase } from "./testCases"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; const openai = new OpenAI(); diff --git a/backend/convex/tools/integration/orchestrationTools.ts b/backend/convex/tools/integration/orchestrationTools.ts index 007f926a..0d7a36e4 100644 --- a/backend/convex/tools/integration/orchestrationTools.ts +++ b/backend/convex/tools/integration/orchestrationTools.ts @@ -5,7 +5,7 @@ import { createTool } from "@convex-dev/agent"; import { z } from "zod"; import { GoogleGenAI, createUserContent, Type } from "@google/genai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // ═══════════════════════════════════════════════════════════════════════════ // VERSIONING & CACHING diff --git a/backend/convex/tools/integration/peopleProfileSearch.ts b/backend/convex/tools/integration/peopleProfileSearch.ts index a42802c3..a8738195 100644 --- a/backend/convex/tools/integration/peopleProfileSearch.ts +++ b/backend/convex/tools/integration/peopleProfileSearch.ts @@ -8,7 +8,7 @@ import { openai } from "@ai-sdk/openai"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Helper to get the appropriate language model based on model name function getLanguageModel(modelName: string) { diff --git a/backend/convex/tools/media/entityExtractionTools.ts b/backend/convex/tools/media/entityExtractionTools.ts index e281ba3b..166711b2 100644 --- a/backend/convex/tools/media/entityExtractionTools.ts +++ b/backend/convex/tools/media/entityExtractionTools.ts @@ -12,7 +12,7 @@ import { generateText } from "ai"; import { openai } from "@ai-sdk/openai"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Helper to get the appropriate language model function getLanguageModel(modelName: string) { diff --git a/backend/convex/tools/media/recentNewsSearch.ts b/backend/convex/tools/media/recentNewsSearch.ts index 2f8751ce..476f6c1b 100644 --- a/backend/convex/tools/media/recentNewsSearch.ts +++ b/backend/convex/tools/media/recentNewsSearch.ts @@ -8,7 +8,7 @@ import { openai } from "@ai-sdk/openai"; import { anthropic } from "@ai-sdk/anthropic"; import { google } from "@ai-sdk/google"; import { generateText } from "ai"; -import { getLlmModel } from "../../../shared/llm/modelCatalog"; +import { getLlmModel } from "../../../../shared/llm/modelCatalog"; // Helper to get the appropriate language model based on model name function getLanguageModel(modelName: string) { diff --git a/components.json b/components.json index d73a2a16..edac3c1a 100644 --- a/components.json +++ b/components.json @@ -5,7 +5,7 @@ "tsx": true, "tailwind": { "config": "tailwind.config.js", - "css": "src/index.css", + "css": "apps/web/src/index.css", "baseColor": "slate", "cssVariables": true, "prefix": "" diff --git a/convex.json b/convex.json new file mode 100644 index 00000000..de279977 --- /dev/null +++ b/convex.json @@ -0,0 +1,3 @@ +{ + "functions": "backend/convex/" +} diff --git a/package.json b/package.json index 50b8f31c..0663c6b6 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,9 @@ "dev": "npm-run-all --parallel dev:frontend dev:backend dev:voice", "dev:frontend": "vite --open", "dev:backend": "convex dev --typecheck=enable", - "dev:voice": "tsx --watch --env-file=.env.local server/index.ts", + "dev:voice": "tsx --watch --env-file=.env.local workers/node/index.ts", "build": "npm run build:search-api-bundle && vite build", - "build:search-api-bundle": "npx esbuild server/vercel/searchApp.ts --bundle --packages=external --platform=node --format=esm --target=node20 --outfile=api/_searchApp.bundle.mjs", + "build:search-api-bundle": "npx esbuild workers/node/vercel/searchApp.ts --bundle --packages=external --platform=node --format=esm --target=node20 --outfile=api/_searchApp.bundle.mjs", "deploy:convex": "node scripts/deploy-convex-prod.mjs", "deploy:prod": "node scripts/deploy-prod.mjs", "preflight": "node scripts/preflight-deploy.mjs", @@ -21,9 +21,9 @@ "post-deploy:verify:json": "node scripts/post-deploy-verify.mjs --json", "proofloop:ui": "node surface-bench.mjs", "proofloop:engine": "tsx proofloop-run.ts", - "build:voice": "tsc -p server/tsconfig.json --noCheck", - "start:voice": "node dist/server/index.js", - "lint": "node scripts/ui/agentNativeUiLinter.mjs && tsc -p convex -noEmit --pretty false && tsc -p . -noEmit --pretty false && convex dev --once --typecheck=enable && vite build", + "build:voice": "tsc -p workers/node/tsconfig.json --noCheck", + "start:voice": "node dist/workers/node/index.js", + "lint": "node scripts/ui/agentNativeUiLinter.mjs && tsc -p backend/convex -noEmit --pretty false && tsc -p . -noEmit --pretty false && convex dev --once --typecheck=enable && vite build", "notebook:health": "node scripts/ops/hourlyHealthCheck.mjs", "repo:augment:check": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/repo/checkAugmentUploadScope.ps1", "repo:history:map": "powershell -NoProfile -ExecutionPolicy Bypass -File scripts/repo/mapReduceLocalHistory.ps1", @@ -51,9 +51,9 @@ "test:run:openclaw-mcp": "node scripts/testing/runVitestSegment.mjs --cwd packages/openclaw-mcp-nodebench --target src --mode filter", "test:run:overstory": "node scripts/testing/runOverstoryTests.mjs", "test:e2e": "playwright test", - "voice:dogfood": "node node_modules/@playwright/test/cli.js test tests/e2e/voice-input.spec.ts tests/e2e/voice-dogfood-scenarios.spec.ts --project=chromium --workers=1 --reporter=list", - "live-smoke": "playwright test tests/e2e/live-smoke.spec.ts --project=chromium --workers=1", - "live-smoke:mobile": "playwright test tests/e2e/live-smoke-mobile.spec.ts --project=chromium --workers=1", + "voice:dogfood": "node node_modules/@playwright/test/cli.js test evals/e2e/voice-input.spec.ts evals/e2e/voice-dogfood-scenarios.spec.ts --project=chromium --workers=1 --reporter=list", + "live-smoke": "playwright test evals/e2e/live-smoke.spec.ts --project=chromium --workers=1", + "live-smoke:mobile": "playwright test evals/e2e/live-smoke-mobile.spec.ts --project=chromium --workers=1", "live-smoke:all": "npm run live-smoke && npm run live-smoke:mobile", "verify-live": "tsx scripts/verify-live.ts", "verify-live:editorial": "tsx scripts/verify-live.ts", @@ -62,7 +62,7 @@ "test:e2e:debug": "playwright test --debug", "test:e2e:report": "playwright show-report", "test:e2e:check": "tsx scripts/check-test-prerequisites.ts", - "test:dcf": "playwright test tests/e2e/dcf-spreadsheet.spec.ts --headed", + "test:dcf": "playwright test evals/e2e/dcf-spreadsheet.spec.ts --headed", "qa:redesign": "tsx scripts/qa/redesignAgentQa.ts", "qa:redesign:fast": "tsx scripts/qa/redesignAgentQa.ts --personas banker_diligence,karpathy_learner", "qa:infer-style": "tsx scripts/qa/inferStyle.ts --self", @@ -80,7 +80,7 @@ "dogfood:full:local": "node scripts/ui/runDogfoodWalkthroughLocal.mjs --screens true --publish true", "dogfood:full:local:play": "node scripts/ui/runDogfoodWalkthroughLocal.mjs --screens true --publish true --play true", "dogfood:traverse": "tsx scripts/ui/runUiTraversalAudit.ts", - "dogfood:walkthrough": "npm run test:e2e -- tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 && npm run dogfood:publish && npm run dogfood:scribe && npm run dogfood:record && npm run dogfood:frames", + "dogfood:walkthrough": "npm run test:e2e -- evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 && npm run dogfood:publish && npm run dogfood:scribe && npm run dogfood:record && npm run dogfood:frames", "dogfood:overstory": "bash scripts/overstory/run-qa-session.sh", "dogfood:overstory:status": "bash scripts/overstory/run-in-wsl.sh status", "dogfood:overstory:dashboard": "bash scripts/overstory/run-in-wsl.sh dashboard", @@ -99,7 +99,7 @@ "sentinel:fix": "node scripts/sentinel/index.mjs --fix", "sentinel:json": "node scripts/sentinel/index.mjs --json", "lint:design": "node scripts/ui/designLinter.mjs", - "test:design": "vitest run src/design/designSystem.test.ts", + "test:design": "vitest run apps/web/src/design/designSystem.test.ts", "lint:design:json": "node scripts/ui/designLinter.mjs --json", "lint:design:fix": "node scripts/ui/designLinter.mjs --fix-suggestions", "lint:agent-ui": "node scripts/ui/agentNativeUiLinter.mjs", @@ -116,7 +116,7 @@ "dogfood:qa:ledger": "node scripts/ui/buildDogfoodGenerationLedger.mjs", "dogfood:verify:first-class": "node scripts/ui/verifyDogfoodArtifacts.mjs --requireGemini true --requireGeneration true", "dogfood:qa:first-class": "npm run dogfood:verify:strict && npm run dogfood:qa:ledger && npm run dogfood:verify:first-class", - "dogfood:proto-live-backend": "cross-env PROTO_DOGFOOD_LIVE=1 playwright test tests/e2e/proto-live-backend-dogfood.spec.ts --project=chromium --workers=1 --reporter=list", + "dogfood:proto-live-backend": "cross-env PROTO_DOGFOOD_LIVE=1 playwright test evals/e2e/proto-live-backend-dogfood.spec.ts --project=chromium --workers=1 --reporter=list", "build:analyze": "cross-env ANALYZE=true npm run build", "perf:lighthouse": "lighthouse http://localhost:5173/#analytics/hitl --output=json --output-path=lighthouse-report.json --chrome-flags=\"--headless\" --only-categories=performance,accessibility && node analyze-lighthouse.cjs", "perf:bundle": "npm run build:analyze", @@ -147,7 +147,7 @@ "eval:workflow": "convex run tools/evaluation/quickTest:testWorkflow", "golden:generate": "tsx scripts/goldenSets/generate-drane-audit-v1.ts", "golden:build": "tsx scripts/goldenSets/build-drane-golden-sets.ts", - "golden:check": "npm run golden:build && git diff --exit-code -- convex/domains/narrative/tests/goldenSets/generatedCases.ts", + "golden:check": "npm run golden:build && git diff --exit-code -- backend/convex/domains/narrative/tests/goldenSets/generatedCases.ts", "golden:report": "tsx scripts/goldenSets/report-drane-golden-sets.ts", "vault:init": "tsx scripts/vault/init-vault.ts", "vault:health": "tsx scripts/vault/health-check.ts", @@ -453,7 +453,7 @@ "test": { "environment": "jsdom", "setupFiles": [ - "./src/test/setup.ts" + "./apps/web/src/test/setup.ts" ] } }, diff --git a/packages/mcp-local/src/__tests__/forecastingScoring.test.ts b/packages/mcp-local/src/__tests__/forecastingScoring.test.ts index 0a9ea143..edf59957 100644 --- a/packages/mcp-local/src/__tests__/forecastingScoring.test.ts +++ b/packages/mcp-local/src/__tests__/forecastingScoring.test.ts @@ -16,7 +16,7 @@ import { averageLogScore, isotonicCalibrate, formatForecastDiff, -} from "../../../../convex/domains/forecasting/scoringEngine"; +} from "../../../../backend/convex/domains/forecasting/scoringEngine"; // ─── Brier Score ──────────────────────────────────────────────────────────── diff --git a/packages/mcp-local/src/benchmarks/testProviderBus.ts b/packages/mcp-local/src/benchmarks/testProviderBus.ts index 98fba953..fc99b336 100644 --- a/packages/mcp-local/src/benchmarks/testProviderBus.ts +++ b/packages/mcp-local/src/benchmarks/testProviderBus.ts @@ -10,14 +10,14 @@ import { WebSocket } from "ws"; import { ProviderBus, type ProviderBusConfig, -} from "../../../../server/providerBus.js"; +} from "../../../../workers/node/providerBus.js"; import { generateApiKey, getMemoryStore, hashApiKey, hashPrefix, type ApiKeyRecord, -} from "../../../../server/mcpAuth.js"; +} from "../../../../workers/node/mcpAuth.js"; // ═══════════════════════════════════════════════════════════════════════════ // Test helpers diff --git a/packages/mcp-local/src/security/index.ts b/packages/mcp-local/src/security/index.ts index 2e4d716f..0856b849 100644 --- a/packages/mcp-local/src/security/index.ts +++ b/packages/mcp-local/src/security/index.ts @@ -2,7 +2,7 @@ * security/ — NodeBench MCP Security Module * * Single import for all security primitives: - * import { safePath, safeExec, safeUrl, redactSecrets, auditLog } from '../security/index.js'; + * import { safePath, safeExec, safeUrl, redactSecrets, auditLog } from './index.js'; * * Addresses Reddit concern: "how many out of these 260 tools steal passwords?" * Answer: Zero, with this module enforcing boundaries at 4 layers: diff --git a/playwright.config.ts b/playwright.config.ts index 18a01281..3213c276 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -27,7 +27,7 @@ const reporter = [ ]; export default defineConfig({ - testDir: "./tests/e2e", + testDir: "./evals/e2e", timeout: 30 * 1000, forbidOnly: !!process.env.CI, retries: process.env.CI ? 2 : 0, diff --git a/scripts/attrition/dcf-validation.ts b/scripts/attrition/dcf-validation.ts index 8d8a8bc3..c4611113 100644 --- a/scripts/attrition/dcf-validation.ts +++ b/scripts/attrition/dcf-validation.ts @@ -10,8 +10,8 @@ */ // Import directly since this runs via tsx -import { runDCF, runReverseDCF, extractDCFInputs } from "../../server/lib/dcfModel.js"; -import { generateDCFSpreadsheetCells } from "../../server/lib/dcfSpreadsheetBridge.js"; +import { runDCF, runReverseDCF, extractDCFInputs } from "../../workers/node/lib/dcfModel.js"; +import { generateDCFSpreadsheetCells } from "../../workers/node/lib/dcfSpreadsheetBridge.js"; interface TestResult { name: string; diff --git a/scripts/debug-anonymous-raw.ts b/scripts/debug-anonymous-raw.ts index 81487de9..41c28c2d 100644 --- a/scripts/debug-anonymous-raw.ts +++ b/scripts/debug-anonymous-raw.ts @@ -1,7 +1,7 @@ #!/usr/bin/env npx tsx import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/debug-anonymous-thread.ts b/scripts/debug-anonymous-thread.ts index 5399d611..c56b7594 100644 --- a/scripts/debug-anonymous-thread.ts +++ b/scripts/debug-anonymous-thread.ts @@ -1,7 +1,7 @@ #!/usr/bin/env npx tsx import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; const THREAD_ID = process.argv[2]; diff --git a/scripts/debug-messages.ts b/scripts/debug-messages.ts index 4ba763d1..d922f9f5 100644 --- a/scripts/debug-messages.ts +++ b/scripts/debug-messages.ts @@ -5,7 +5,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/debug-raw-messages.ts b/scripts/debug-raw-messages.ts index edb1355f..788a1fc6 100644 --- a/scripts/debug-raw-messages.ts +++ b/scripts/debug-raw-messages.ts @@ -5,7 +5,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/debug-thread.ts b/scripts/debug-thread.ts index 4792ee36..5e9aaff3 100644 --- a/scripts/debug-thread.ts +++ b/scripts/debug-thread.ts @@ -1,7 +1,7 @@ #!/usr/bin/env npx tsx import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; const THREAD_ID = process.argv[2]; diff --git a/scripts/eval-harness/deeptrace/canary-benchmark.ts b/scripts/eval-harness/deeptrace/canary-benchmark.ts index 083ed98a..cf010b8e 100644 --- a/scripts/eval-harness/deeptrace/canary-benchmark.ts +++ b/scripts/eval-harness/deeptrace/canary-benchmark.ts @@ -37,7 +37,7 @@ import { type TriggerInput, type BranchResult, type ResearchCellOutput, -} from "../../../convex/domains/deepTrace/researchCell.js"; +} from "../../../backend/convex/domains/deepTrace/researchCell.js"; import type { ThroughputMetrics, QualityMetrics, CostEntry } from "./optimizerTypes.js"; import { computeCostUsd } from "./optimizerTypes.js"; diff --git a/scripts/export-dailybrief-ntfy-results.ts b/scripts/export-dailybrief-ntfy-results.ts index 894e4b8d..87bb141c 100644 --- a/scripts/export-dailybrief-ntfy-results.ts +++ b/scripts/export-dailybrief-ntfy-results.ts @@ -16,7 +16,7 @@ import { spawnSync } from "node:child_process"; import { mkdirSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/fixIvoAIFunding.ts b/scripts/fixIvoAIFunding.ts index cb43a38e..dc362110 100644 --- a/scripts/fixIvoAIFunding.ts +++ b/scripts/fixIvoAIFunding.ts @@ -11,7 +11,7 @@ * 4. Creates the correct Ivo AI funding record */ -import { internalMutation, internalQuery } from "../convex/_generated/server"; +import { internalMutation, internalQuery } from "../backend/convex/_generated/server"; import { v } from "convex/values"; /** diff --git a/scripts/generate-live-digest.ts b/scripts/generate-live-digest.ts index 58b2ddbf..35b0403e 100644 --- a/scripts/generate-live-digest.ts +++ b/scripts/generate-live-digest.ts @@ -4,7 +4,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/manualEnrichLocations.ts b/scripts/manualEnrichLocations.ts index 3638c39c..c69f04d2 100644 --- a/scripts/manualEnrichLocations.ts +++ b/scripts/manualEnrichLocations.ts @@ -4,9 +4,9 @@ * Quick manual population of known company locations from analysis */ -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; import { ConvexHttpClient } from "convex/browser"; -import type { Id } from "../convex/_generated/dataModel"; +import type { Id } from "../backend/convex/_generated/dataModel"; const client = new ConvexHttpClient(process.env.CONVEX_URL!); diff --git a/scripts/migrate-evaluation-scenarios.ts b/scripts/migrate-evaluation-scenarios.ts index 1fb7fe10..2ba70a62 100644 --- a/scripts/migrate-evaluation-scenarios.ts +++ b/scripts/migrate-evaluation-scenarios.ts @@ -12,7 +12,7 @@ import dotenv from "dotenv"; import { readFileSync } from "node:fs"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/nodebench-cli.ts b/scripts/nodebench-cli.ts index 584a20b1..4b0b6000 100644 --- a/scripts/nodebench-cli.ts +++ b/scripts/nodebench-cli.ts @@ -2,7 +2,7 @@ import { ConvexHttpClient } from "convex/browser"; import { buildEventCaptureMutationArgs } from "../apps/api-headless/src/lib/event-capture-projection.ts"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; type ParsedArgs = { command?: string; diff --git a/scripts/qa/liveMultipleMeBackendQa.ts b/scripts/qa/liveMultipleMeBackendQa.ts index 0efd95a1..7c1d3d03 100644 --- a/scripts/qa/liveMultipleMeBackendQa.ts +++ b/scripts/qa/liveMultipleMeBackendQa.ts @@ -16,10 +16,10 @@ import { config as loadEnv } from "dotenv"; import * as fs from "node:fs/promises"; import * as path from "node:path"; -import { judgeAgentRun } from "../../convex/domains/evaluation/agentRunJudge"; -import { runPiOrAiSdkCompletion } from "../../convex/domains/pipelines/piRuntime"; -import { buildBriefPrompt, buildDeltaSummaryPrompt } from "../../convex/domains/operations/batchAutopilot/promptBuilder"; -import { judgeDiligenceRun } from "../../server/pipeline/diligenceJudge"; +import { judgeAgentRun } from "../../backend/convex/domains/evaluation/agentRunJudge"; +import { runPiOrAiSdkCompletion } from "../../backend/convex/domains/pipelines/piRuntime"; +import { buildBriefPrompt, buildDeltaSummaryPrompt } from "../../backend/convex/domains/operations/batchAutopilot/promptBuilder"; +import { judgeDiligenceRun } from "../../workers/node/pipeline/diligenceJudge"; import { createChatMultiplyHandoff, createRedesignUniverseUpsertArgs, @@ -27,7 +27,7 @@ import { proposeMemoryPatch, toRedesignDocumentPatchProposal, toRedesignStyleProfileUpsertArgs, -} from "../../convex/domains/operatorProfile/manifest"; +} from "../../backend/convex/domains/operatorProfile/manifest"; loadEnv({ path: ".env.local" }); loadEnv({ path: ".env" }); diff --git a/scripts/run-agent-eval.ts b/scripts/run-agent-eval.ts index 0bae1510..f10f0302 100644 --- a/scripts/run-agent-eval.ts +++ b/scripts/run-agent-eval.ts @@ -13,7 +13,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; // ═══════════════════════════════════════════════════════════════════════════ // CONFIGURATION diff --git a/scripts/run-baseline-eval.ts b/scripts/run-baseline-eval.ts index 9351f435..d90f8e17 100644 --- a/scripts/run-baseline-eval.ts +++ b/scripts/run-baseline-eval.ts @@ -6,7 +6,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/run-bench.mjs b/scripts/run-bench.mjs index 061e0145..b96e742c 100644 --- a/scripts/run-bench.mjs +++ b/scripts/run-bench.mjs @@ -28,7 +28,7 @@ console.log("Personas: Daily Driver, Continuation Seeker, Drifter, New User"); console.log("═══════════════════════════════════════════════════════════\n"); try { - const { internal } = await import("../convex/_generated/api.js"); + const { internal } = await import("../backend/convex/_generated/api.js"); const result = await client.action( internal.domains.product.wikiDreamingEvalProduction.runFullBenchmark, { ownerKey, runsPerScenario } diff --git a/scripts/run-benchmark-suite.ts b/scripts/run-benchmark-suite.ts index 801f43ca..ed74c6e8 100644 --- a/scripts/run-benchmark-suite.ts +++ b/scripts/run-benchmark-suite.ts @@ -14,7 +14,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; diff --git a/scripts/run-comprehensive-eval.ts b/scripts/run-comprehensive-eval.ts index 82db8020..6d1c86ec 100644 --- a/scripts/run-comprehensive-eval.ts +++ b/scripts/run-comprehensive-eval.ts @@ -22,7 +22,7 @@ import { mkdirSync, writeFileSync, appendFileSync, readFileSync } from "node:fs" import { spawnSync } from "node:child_process"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; // ═══════════════════════════════════════════════════════════════════════════ // TYPES diff --git a/scripts/run-expanded-eval.ts b/scripts/run-expanded-eval.ts index 9894884e..2d33fb0e 100644 --- a/scripts/run-expanded-eval.ts +++ b/scripts/run-expanded-eval.ts @@ -27,7 +27,7 @@ import { mkdirSync, writeFileSync, readFileSync } from "node:fs"; import { spawnSync } from "node:child_process"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/run-feature-eval.ts b/scripts/run-feature-eval.ts index a4aabdd7..cd65b6f6 100644 --- a/scripts/run-feature-eval.ts +++ b/scripts/run-feature-eval.ts @@ -25,7 +25,7 @@ import { mkdirSync, writeFileSync } from "node:fs"; import { spawnSync } from "node:child_process"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/run-fully-parallel-eval.ts b/scripts/run-fully-parallel-eval.ts index 5d767b0a..18da449d 100644 --- a/scripts/run-fully-parallel-eval.ts +++ b/scripts/run-fully-parallel-eval.ts @@ -19,7 +19,7 @@ import { mkdirSync, writeFileSync, appendFileSync } from "node:fs"; import { spawnSync } from "node:child_process"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; // ═══════════════════════════════════════════════════════════════════════════ // DISCLOSURE METRICS TYPES (P0 Instrumentation) diff --git a/scripts/run-jpm-analysis.ts b/scripts/run-jpm-analysis.ts index 8efb4f27..cfb24e47 100644 --- a/scripts/run-jpm-analysis.ts +++ b/scripts/run-jpm-analysis.ts @@ -6,7 +6,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; import * as fs from "fs"; import * as path from "path"; import { fileURLToPath } from "url"; diff --git a/scripts/run-live-api-smoke.ts b/scripts/run-live-api-smoke.ts index 33441970..7672d3db 100644 --- a/scripts/run-live-api-smoke.ts +++ b/scripts/run-live-api-smoke.ts @@ -12,7 +12,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; function getArg(flag: string): string | undefined { const idx = process.argv.indexOf(flag); diff --git a/scripts/run-live-eval.ts b/scripts/run-live-eval.ts index 5ef122dc..5a34174d 100644 --- a/scripts/run-live-eval.ts +++ b/scripts/run-live-eval.ts @@ -16,7 +16,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; // ═══════════════════════════════════════════════════════════════════════════ // CONFIGURATION diff --git a/scripts/run-load-test.ts b/scripts/run-load-test.ts index fb71f005..525b6b33 100644 --- a/scripts/run-load-test.ts +++ b/scripts/run-load-test.ts @@ -13,7 +13,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const client = new ConvexHttpClient(CONVEX_URL); diff --git a/scripts/run-parallel-eval.ts b/scripts/run-parallel-eval.ts index ad63f218..117c3355 100644 --- a/scripts/run-parallel-eval.ts +++ b/scripts/run-parallel-eval.ts @@ -16,7 +16,7 @@ import { mkdirSync, writeFileSync } from "node:fs"; import { spawnSync } from "node:child_process"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/run-persona-episode-eval.ts b/scripts/run-persona-episode-eval.ts index 340391de..f9f68be5 100644 --- a/scripts/run-persona-episode-eval.ts +++ b/scripts/run-persona-episode-eval.ts @@ -18,7 +18,7 @@ import { spawnSync } from "node:child_process"; import { mkdirSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; import { findOpenAiModelPricing, loadOrFetchOpenAiApiPricingSnapshot, @@ -34,7 +34,7 @@ import { loadOrFetchGoogleGeminiApiPricingSnapshot, readGoogleGeminiApiPricingSnapshotFromFile, } from "./pricing/googleGeminiApiPricing"; -import { APPROVED_MODELS, MODEL_UI_INFO, type Provider } from "../src/shared/llm/approvedModels"; +import { APPROVED_MODELS, MODEL_UI_INFO, type Provider } from "../apps/web/src/shared/llm/approvedModels"; import { modelPricing as sharedModelPricing } from "../shared/llm/modelCatalog"; dotenv.config({ path: ".env.local" }); diff --git a/scripts/run-postable-benchmarks.ts b/scripts/run-postable-benchmarks.ts index 6681b4a3..5f8ffa2c 100644 --- a/scripts/run-postable-benchmarks.ts +++ b/scripts/run-postable-benchmarks.ts @@ -21,7 +21,7 @@ import { spawnSync } from "node:child_process"; import { mkdirSync, writeFileSync } from "node:fs"; import { join } from "node:path"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/run-regression-suite.ts b/scripts/run-regression-suite.ts index f73f2360..7c065d9e 100644 --- a/scripts/run-regression-suite.ts +++ b/scripts/run-regression-suite.ts @@ -15,7 +15,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const client = new ConvexHttpClient(CONVEX_URL); diff --git a/scripts/run-scenario-catalog-runtime-eval.ts b/scripts/run-scenario-catalog-runtime-eval.ts index e20f54c9..469ec898 100644 --- a/scripts/run-scenario-catalog-runtime-eval.ts +++ b/scripts/run-scenario-catalog-runtime-eval.ts @@ -6,8 +6,8 @@ import net from "node:net"; import { join } from "node:path"; import dotenv from "dotenv"; -import { inferCaptureRoute, type CaptureRoute } from "../src/features/product/lib/captureRouter"; -import { HERO_SCENARIO_TESTS, type ScenarioTestCase } from "../src/features/workspace/data/scenarioCatalog"; +import { inferCaptureRoute, type CaptureRoute } from "../apps/web/src/features/product/lib/captureRouter"; +import { HERO_SCENARIO_TESTS, type ScenarioTestCase } from "../apps/web/src/features/workspace/data/scenarioCatalog"; dotenv.config({ path: ".env.local" }); dotenv.config(); diff --git a/scripts/run-smoke-test.mjs b/scripts/run-smoke-test.mjs index 7590c1f0..1694a755 100644 --- a/scripts/run-smoke-test.mjs +++ b/scripts/run-smoke-test.mjs @@ -6,7 +6,7 @@ const match = envContent.match(/(?:VITE_)?CONVEX_URL=(.+)/); const url = match[1].trim().replace(/^["']|["']$/g, ""); const client = new ConvexHttpClient(url); -const { internal } = await import("../convex/_generated/api.js"); +const { internal } = await import("../backend/convex/_generated/api.js"); const result = await client.action( internal.domains.research.researchSessionSmoke.smokeTestPrimitives, { ownerKey: "smoke-owner", userId: "smoke-user" } diff --git a/scripts/run-system-e2e.ts b/scripts/run-system-e2e.ts index ce8e7350..e1f836e3 100644 --- a/scripts/run-system-e2e.ts +++ b/scripts/run-system-e2e.ts @@ -19,7 +19,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; function hasFlag(flag: string): boolean { return process.argv.includes(flag); diff --git a/scripts/run-ultra-long-chat-bench.mjs b/scripts/run-ultra-long-chat-bench.mjs index 2a58d0df..65d6c42c 100644 --- a/scripts/run-ultra-long-chat-bench.mjs +++ b/scripts/run-ultra-long-chat-bench.mjs @@ -23,7 +23,7 @@ console.log(" Advisor: Kimi K2.6 | Executors: Gemini 3.x lanes"); console.log("═══════════════════════════════════════════════════════════════════\n"); try { - const { internal } = await import("../convex/_generated/api.js"); + const { internal } = await import("../backend/convex/_generated/api.js"); const result = await client.action( internal.domains.research.researchSessionBenchmark.runUltraLongChatBenchmark, { ownerKey, userId } diff --git a/scripts/seed-entity-contexts.ts b/scripts/seed-entity-contexts.ts index d8fc793d..dd45c6b3 100644 --- a/scripts/seed-entity-contexts.ts +++ b/scripts/seed-entity-contexts.ts @@ -4,7 +4,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/seed-q4-2025-funding.ts b/scripts/seed-q4-2025-funding.ts index f36d0057..b6adca93 100644 --- a/scripts/seed-q4-2025-funding.ts +++ b/scripts/seed-q4-2025-funding.ts @@ -5,7 +5,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const client = new ConvexHttpClient(process.env.CONVEX_URL!); diff --git a/scripts/test-adaptive-enrichment.ts b/scripts/test-adaptive-enrichment.ts index 3514a55c..667ab849 100644 --- a/scripts/test-adaptive-enrichment.ts +++ b/scripts/test-adaptive-enrichment.ts @@ -9,7 +9,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-agent-digest.ts b/scripts/test-agent-digest.ts index c8e42a5c..dbafde70 100644 --- a/scripts/test-agent-digest.ts +++ b/scripts/test-agent-digest.ts @@ -13,7 +13,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const client = new ConvexHttpClient(CONVEX_URL); @@ -106,7 +106,7 @@ async function testDigestFormatting() { console.log("=".repeat(60) + "\n"); // Import the formatting function locally - const digestAgent = await import("../convex/domains/agents/digestAgent"); + const digestAgent = await import("../backend/convex/domains/agents/digestAgent"); const { formatDigestForNtfy } = digestAgent; type AgentDigestOutput = digestAgent.AgentDigestOutput; @@ -190,7 +190,7 @@ async function testSendFormattedDigest() { console.log("TEST 3: Send Formatted Digest to ntfy"); console.log("=".repeat(60) + "\n"); - const digestAgent2 = await import("../convex/domains/agents/digestAgent"); + const digestAgent2 = await import("../backend/convex/domains/agents/digestAgent"); const formatDigestForNtfy2 = digestAgent2.formatDigestForNtfy; // Create a mock digest diff --git a/scripts/test-agent.ts b/scripts/test-agent.ts index 0df832e9..6867e7ce 100644 --- a/scripts/test-agent.ts +++ b/scripts/test-agent.ts @@ -1,5 +1,5 @@ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; async function test() { const client = new ConvexHttpClient("https://agile-caribou-964.convex.cloud"); diff --git a/scripts/test-anonymous-flow.ts b/scripts/test-anonymous-flow.ts index 2570231e..98436e35 100644 --- a/scripts/test-anonymous-flow.ts +++ b/scripts/test-anonymous-flow.ts @@ -5,7 +5,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-autonomous-research.ts b/scripts/test-autonomous-research.ts index f7c9fce1..1d10988a 100644 --- a/scripts/test-autonomous-research.ts +++ b/scripts/test-autonomous-research.ts @@ -8,7 +8,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-claim-classifier.ts b/scripts/test-claim-classifier.ts index 806a4734..f911ee44 100644 --- a/scripts/test-claim-classifier.ts +++ b/scripts/test-claim-classifier.ts @@ -13,8 +13,8 @@ import { verifyPersonDepth, rankAlternativeInterpretations, checkTemporalConsistency, -} from "../convex/domains/agents/dueDiligence/deepResearch/claimClassifier"; -import type { Claim, ResearchSource } from "../convex/domains/agents/dueDiligence/deepResearch/types"; +} from "../backend/convex/domains/agents/dueDiligence/deepResearch/claimClassifier"; +import type { Claim, ResearchSource } from "../backend/convex/domains/agents/dueDiligence/deepResearch/types"; console.log("=".repeat(80)); console.log("CLAIM CLASSIFIER TESTS"); diff --git a/scripts/test-dd-pipeline.ts b/scripts/test-dd-pipeline.ts index 3d1a3ea9..bba81b74 100644 --- a/scripts/test-dd-pipeline.ts +++ b/scripts/test-dd-pipeline.ts @@ -7,7 +7,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; // Configuration const CONVEX_URL = process.env.CONVEX_URL ?? "https://formal-shepherd-851.convex.cloud"; diff --git a/scripts/test-deep-research-e2e.ts b/scripts/test-deep-research-e2e.ts index 191f4da6..adf22ea8 100644 --- a/scripts/test-deep-research-e2e.ts +++ b/scripts/test-deep-research-e2e.ts @@ -196,7 +196,7 @@ async function runTest() { console.log("Testing query decomposition locally...\n"); // Import the query decomposer directly for unit testing - const { decomposeQuerySync } = await import("../convex/domains/agents/dueDiligence/deepResearch/queryDecomposer"); + const { decomposeQuerySync } = await import("../backend/convex/domains/agents/dueDiligence/deepResearch/queryDecomposer"); const decomposed = decomposeQuerySync(GROUND_TRUTH_QUERY); diff --git a/scripts/test-deep-research-offline-eval.ts b/scripts/test-deep-research-offline-eval.ts index 62bb22f2..d36c8cd5 100644 --- a/scripts/test-deep-research-offline-eval.ts +++ b/scripts/test-deep-research-offline-eval.ts @@ -88,7 +88,7 @@ async function runEvaluation() { console.log("╚════════════════════════════════════════════════════════════════════════════╝\n"); // Import modules - const { decomposeQuerySync } = await import("../convex/domains/agents/dueDiligence/deepResearch/queryDecomposer"); + const { decomposeQuerySync } = await import("../backend/convex/domains/agents/dueDiligence/deepResearch/queryDecomposer"); // Step 1: Test Query Decomposition console.log("═".repeat(80)); @@ -122,7 +122,7 @@ async function runEvaluation() { ]; // Import types to validate structure - const types = await import("../convex/domains/agents/dueDiligence/deepResearch/types"); + const types = await import("../backend/convex/domains/agents/dueDiligence/deepResearch/types"); console.log("\n✓ All required types exist and are exported"); for (const check of typeChecks) { diff --git a/scripts/test-digest-entity-e2e.ts b/scripts/test-digest-entity-e2e.ts index 5c077065..764a924a 100644 --- a/scripts/test-digest-entity-e2e.ts +++ b/scripts/test-digest-entity-e2e.ts @@ -14,7 +14,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; const client = new ConvexHttpClient(CONVEX_URL); @@ -138,7 +138,7 @@ async function testDefaultModel(): Promise { console.log("Location: convex/domains/agents/mcp_tools/models/modelResolver.ts"); // Import and check - const { DEFAULT_MODEL } = await import("../convex/domains/agents/mcp_tools/models/modelResolver"); + const { DEFAULT_MODEL } = await import("../backend/convex/domains/agents/mcp_tools/models/modelResolver"); const isGeminiFlash = DEFAULT_MODEL === "gemini-3-flash-preview"; console.log(`\nActual default: ${DEFAULT_MODEL}`); @@ -181,7 +181,7 @@ async function testDigestGeneration(): Promise { // For local testing, we'll call via npx convex run // The actual action requires convex context, so we test the formatting locally - const digestAgent = await import("../convex/domains/agents/digestAgent"); + const digestAgent = await import("../backend/convex/domains/agents/digestAgent"); const { formatDigestForNtfy } = digestAgent; type AgentDigestOutput = digestAgent.AgentDigestOutput; @@ -345,7 +345,7 @@ async function testEntityTypeExtraction(): Promise { try { // Import the formatting function to test entity extraction locally - const digestAgent = await import("../convex/domains/agents/digestAgent"); + const digestAgent = await import("../backend/convex/domains/agents/digestAgent"); const { formatDigestForNtfy } = digestAgent; type AgentDigestOutput = digestAgent.AgentDigestOutput; @@ -474,7 +474,7 @@ async function testNtfyEntityFormatting(): Promise { console.log("═".repeat(60) + "\n"); try { - const digestAgent = await import("../convex/domains/agents/digestAgent"); + const digestAgent = await import("../backend/convex/domains/agents/digestAgent"); const { formatDigestForNtfy } = digestAgent; type AgentDigestOutput = digestAgent.AgentDigestOutput; @@ -609,7 +609,7 @@ async function testSchemaValidation(): Promise { console.log(`New types to add (${newTypes.length}): ${newTypes.join(", ")}`); // Check EntityLink icons/colors mapping - const digestAgent = await import("../convex/domains/agents/digestAgent"); + const digestAgent = await import("../backend/convex/domains/agents/digestAgent"); // Test that formatDigestForNtfy handles new types gracefully // Note: formatDigestForNtfy limits to 2 entities, so we test each type separately diff --git a/scripts/test-email-system.ts b/scripts/test-email-system.ts index 634f77e4..5162170e 100644 --- a/scripts/test-email-system.ts +++ b/scripts/test-email-system.ts @@ -11,7 +11,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-entity-query.ts b/scripts/test-entity-query.ts index 730f1068..c8c3e94f 100644 --- a/scripts/test-entity-query.ts +++ b/scripts/test-entity-query.ts @@ -2,7 +2,7 @@ * Test the getEntityContext query (with type) */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-instagram-ingestion.ts b/scripts/test-instagram-ingestion.ts index 41789ac2..319b0a74 100644 --- a/scripts/test-instagram-ingestion.ts +++ b/scripts/test-instagram-ingestion.ts @@ -11,7 +11,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const TEST_INSTAGRAM_URL = process.env.TEST_INSTAGRAM_URL || "https://www.instagram.com/p/C1234example/"; diff --git a/scripts/test-linkedin-posting.ts b/scripts/test-linkedin-posting.ts index b03e9001..e80ba023 100644 --- a/scripts/test-linkedin-posting.ts +++ b/scripts/test-linkedin-posting.ts @@ -11,7 +11,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const DRY_RUN = process.env.DRY_RUN !== "false"; diff --git a/scripts/test-multi-sdk-adapters.ts b/scripts/test-multi-sdk-adapters.ts index 31f52a4e..c2e296bb 100644 --- a/scripts/test-multi-sdk-adapters.ts +++ b/scripts/test-multi-sdk-adapters.ts @@ -17,41 +17,41 @@ import { executeWithAdapter, routeQuery, clearRegistry, -} from "../convex/domains/agents/adapters/registry"; +} from "../backend/convex/domains/agents/adapters/registry"; import { createDeepReasoningAgent, createAnthropicReasoningAdapter, -} from "../convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter"; +} from "../backend/convex/domains/agents/adapters/anthropic/anthropicReasoningAdapter"; import { createOpenAIAgentsAdapter, createTriageAgentSystem, -} from "../convex/domains/agents/adapters/openai/openaiAgentsAdapter"; +} from "../backend/convex/domains/agents/adapters/openai/openaiAgentsAdapter"; import { createVercelAiSdkAdapter, -} from "../convex/domains/agents/adapters/vercel/vercelAiSdkAdapter"; +} from "../backend/convex/domains/agents/adapters/vercel/vercelAiSdkAdapter"; import { createLangGraphAdapter, -} from "../convex/domains/agents/adapters/langgraph/langgraphAdapter"; +} from "../backend/convex/domains/agents/adapters/langgraph/langgraphAdapter"; import { createGoogleInteractionsAdapter, DEFAULT_GEMINI_DEEP_RESEARCH_AGENT, -} from "../convex/domains/agents/adapters/google/googleInteractionsAdapter"; +} from "../backend/convex/domains/agents/adapters/google/googleInteractionsAdapter"; import { detectSDKFromQuery, DEFAULT_SDK_CONFIG, -} from "../convex/domains/agents/adapters/types"; +} from "../backend/convex/domains/agents/adapters/types"; import { executeHandoff, serializeHandoffContext, findBestAdapterForTask, -} from "../convex/domains/agents/adapters/handoffBridge"; +} from "../backend/convex/domains/agents/adapters/handoffBridge"; // Test colors for console output const colors = { diff --git a/scripts/test-single-provider.ts b/scripts/test-single-provider.ts index ff816490..ec15b048 100644 --- a/scripts/test-single-provider.ts +++ b/scripts/test-single-provider.ts @@ -3,7 +3,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-single-scenario.ts b/scripts/test-single-scenario.ts index cc6654ee..3f03a2e1 100644 --- a/scripts/test-single-scenario.ts +++ b/scripts/test-single-scenario.ts @@ -13,7 +13,7 @@ import dotenv from "dotenv"; import { spawnSync } from "node:child_process"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../convex/_generated/api"; +import { api } from "../backend/convex/_generated/api"; import { writeFileSync } from "fs"; import { join } from "path"; diff --git a/scripts/test-streamasync-direct.ts b/scripts/test-streamasync-direct.ts index e8d0201c..56bdae95 100644 --- a/scripts/test-streamasync-direct.ts +++ b/scripts/test-streamasync-direct.ts @@ -6,7 +6,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api"; +import { api, internal } from "../backend/convex/_generated/api"; // Use production deployment for testing const CONVEX_URL = process.env.CONVEX_URL || "https://agile-caribou-964.convex.cloud"; diff --git a/scripts/test-verification-e2e.js b/scripts/test-verification-e2e.js index 06e55d29..7efedc79 100644 --- a/scripts/test-verification-e2e.js +++ b/scripts/test-verification-e2e.js @@ -9,7 +9,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api.js"; +import { api, internal } from "../backend/convex/_generated/api.js"; const CONVEX_URL = process.env.CONVEX_URL || "https://formal-shepherd-851.convex.cloud"; const client = new ConvexHttpClient(CONVEX_URL); diff --git a/scripts/trigger-pdf-extraction.ts b/scripts/trigger-pdf-extraction.ts index dafa2d23..88ba8525 100644 --- a/scripts/trigger-pdf-extraction.ts +++ b/scripts/trigger-pdf-extraction.ts @@ -4,7 +4,7 @@ * Run: npx tsx scripts/trigger-pdf-extraction.ts */ import { ConvexHttpClient } from "convex/browser"; -import { api, internal } from "../convex/_generated/api.js"; +import { api, internal } from "../backend/convex/_generated/api.js"; const CONVEX_URL = "https://formal-shepherd-851.convex.cloud"; diff --git a/scripts/ui/runUiTraversalAudit.ts b/scripts/ui/runUiTraversalAudit.ts index 7e1492a4..5e10d805 100644 --- a/scripts/ui/runUiTraversalAudit.ts +++ b/scripts/ui/runUiTraversalAudit.ts @@ -4,7 +4,7 @@ import { spawn, type ChildProcess } from "node:child_process"; import { existsSync, rmSync } from "node:fs"; import { appendFile, mkdir, rm, writeFile } from "node:fs/promises"; import { chromium, type Page } from "playwright"; -import { VIEW_REGISTRY } from "../../src/lib/registry/viewRegistry.ts"; +import { VIEW_REGISTRY } from "../../apps/web/src/lib/registry/viewRegistry.ts"; type RouteTarget = { id: string; diff --git a/scripts/verify-rocketride-evidence-bundle.ts b/scripts/verify-rocketride-evidence-bundle.ts index e589acf3..e7f24cf8 100644 --- a/scripts/verify-rocketride-evidence-bundle.ts +++ b/scripts/verify-rocketride-evidence-bundle.ts @@ -1,11 +1,11 @@ import { readFile } from "node:fs/promises"; import process from "node:process"; -import { validateNodeBenchWorkflowCandidate } from "../src/shared/nodeBenchWorkflowCandidate"; +import { validateNodeBenchWorkflowCandidate } from "../apps/web/src/shared/nodeBenchWorkflowCandidate"; import { buildRocketRideEvidenceReportCandidate, validateRocketRideEvidenceBundle, type RocketRideEvidenceBundle, -} from "../src/shared/rocketRideEvidenceBundle"; +} from "../apps/web/src/shared/rocketRideEvidenceBundle"; const [inputPath] = process.argv.slice(2); if (!inputPath) { diff --git a/tailwind.config.js b/tailwind.config.js index 0ea095ef..6a849557 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -2,7 +2,7 @@ const { fontFamily } = require("tailwindcss/defaultTheme"); module.exports = { darkMode: 'class', - content: ["./index.html", "./src/**/*.{js,jsx,ts,tsx,mdx}"], + content: ["./apps/web/index.html", "./apps/web/src/**/*.{js,jsx,ts,tsx,mdx}"], theme: { extend: { fontFamily: { diff --git a/tsconfig.app.json b/tsconfig.app.json index 7de3ab8d..00f5113a 100644 --- a/tsconfig.app.json +++ b/tsconfig.app.json @@ -24,12 +24,14 @@ /* Import paths */ "paths": { - "@/*": ["./src/*"], - "@features/*": ["./src/features/*"], - "@shared/*": ["./src/shared/*"], - "@shared/ui/*": ["./src/shared/ui/*"] + "@/*": ["./apps/web/src/*"], + "@features/*": ["./apps/web/src/features/*"], + "@shared/*": ["./apps/web/src/shared/*"], + "@shared/ui/*": ["./apps/web/src/shared/ui/*"], + "@convex/*": ["./backend/convex/*"], + "shared/*": ["./shared/*"] } }, - "include": ["src"], - "exclude": ["convex", "convex/**/*", "node_modules"] + "include": ["apps/web/src"], + "exclude": ["backend/convex", "backend/convex/**/*", "node_modules"] } diff --git a/tsconfig.json b/tsconfig.json index 14730b5d..f82a6220 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,10 +7,11 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "@/*": ["./src/*"], - "@features/*": ["./src/features/*"], - "@shared/*": ["./src/shared/*"], - "@shared/ui/*": ["./src/shared/ui/*"], + "@/*": ["./apps/web/src/*"], + "@features/*": ["./apps/web/src/features/*"], + "@shared/*": ["./apps/web/src/shared/*"], + "@shared/ui/*": ["./apps/web/src/shared/ui/*"], + "@convex/*": ["./backend/convex/*"], "shared/*": ["./shared/*"] } } diff --git a/vite.config.ts b/vite.config.ts index ea4eac63..e16581ce 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -167,6 +167,14 @@ export default defineConfig(({ mode }) => { }, }, }, + // Standard-tree layout: the web app lives under apps/web (index.html there), + // while public/, env files, and dist/ stay at the repo root — public/ hosts + // the scratchnode live room (coordination hot file) and Vercel serves dist/. + // envDir MUST stay at the repo root or VITE_CONVEX_URL vanishes from builds + // (the documented 2026-05-11 P0). + root: path.resolve(__dirname, "apps/web"), + publicDir: path.resolve(__dirname, "public"), + envDir: __dirname, plugins: [ react(), // Service Worker + PWA for aggressive caching @@ -373,10 +381,11 @@ window.addEventListener('message', async (message) => { resolve: { // Order matters: keep specific aliases above the generic "@/" alias. alias: [ - { find: "@features", replacement: path.resolve(__dirname, "./src/features").replace(/\\/g, "/") }, - { find: "@shared", replacement: path.resolve(__dirname, "./src/shared").replace(/\\/g, "/") }, + { find: "@convex", replacement: path.resolve(__dirname, "./backend/convex").replace(/\\/g, "/") }, + { find: "@features", replacement: path.resolve(__dirname, "./apps/web/src/features").replace(/\\/g, "/") }, + { find: "@shared", replacement: path.resolve(__dirname, "./apps/web/src/shared").replace(/\\/g, "/") }, { find: "shared", replacement: path.resolve(__dirname, "./shared").replace(/\\/g, "/") }, - { find: /^@\//, replacement: `${path.resolve(__dirname, "./src").replace(/\\/g, "/")}/` }, + { find: /^@\//, replacement: `${path.resolve(__dirname, "./apps/web/src").replace(/\\/g, "/")}/` }, ], // Prevent duplicate React instances (common cause of "Invalid hook call" in Vite/monorepo setups). // Streamdown and the app both consume Shiki. Resolve one root copy so a @@ -391,9 +400,12 @@ window.addEventListener('message', async (message) => { test: { globals: true, environment: "jsdom", - setupFiles: ["./src/test/setup.ts"], + setupFiles: ["./apps/web/src/test/setup.ts"], }, build: { + // Vite root is apps/web, but Vercel + scripts expect dist/ at the repo root. + outDir: path.resolve(__dirname, "dist"), + emptyOutDir: true, // The heaviest routes/editors are lazy-loaded; keep this warning slightly higher // so it flags meaningful regressions without noise. chunkSizeWarningLimit: 2200, diff --git a/vitest.config.ts b/vitest.config.ts index 8000863e..cc0c79fa 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,19 +8,19 @@ export default defineConfig({ plugins: [react()], resolve: { alias: [ - { find: "@features", replacement: toPosix(path.resolve(__dirname, "./src/features")) }, - { find: "@shared", replacement: toPosix(path.resolve(__dirname, "./src/shared")) }, - { find: /^@\//, replacement: `${toPosix(path.resolve(__dirname, "./src"))}/` }, + { find: "@features", replacement: toPosix(path.resolve(__dirname, "./apps/web/src/features")) }, + { find: "@shared", replacement: toPosix(path.resolve(__dirname, "./apps/web/src/shared")) }, + { find: /^@\//, replacement: `${toPosix(path.resolve(__dirname, "./apps/web/src"))}/` }, ], }, test: { globals: true, environment: "jsdom", - setupFiles: ["./src/test/setup.ts"], + setupFiles: ["./apps/web/src/test/setup.ts"], // Playwright tests live under `tests/` and should run via Playwright, not Vitest. exclude: [ ...configDefaults.exclude, - "tests/**", + "evals/**", ".tmp/**", ".nodebench-ref/**", ".overstory/**", diff --git a/workers/node/agentHarness.ts b/workers/node/agentHarness.ts index c2a4395f..91144040 100644 --- a/workers/node/agentHarness.ts +++ b/workers/node/agentHarness.ts @@ -21,7 +21,7 @@ * LLM-orchestrated execution loop. */ -import { recordAction, recordFailure, getReflectionPrompt, recordRecoveryOutcome, initSessionMemoryTables } from "../packages/mcp-local/src/sync/sessionMemory.js"; +import { recordAction, recordFailure, getReflectionPrompt, recordRecoveryOutcome, initSessionMemoryTables } from "../../packages/mcp-local/src/sync/sessionMemory.js"; import { formatEntityMemoryRecallForPrompt, MEMORY_CONTEXT_STEP_ID, diff --git a/workers/node/agents/voiceAgent.ts b/workers/node/agents/voiceAgent.ts index f073216f..cf9c2b45 100644 --- a/workers/node/agents/voiceAgent.ts +++ b/workers/node/agents/voiceAgent.ts @@ -10,7 +10,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../../convex/_generated/api"; +import { api } from "../../../backend/convex/_generated/api"; // ── Convex client ────────────────────────────────────────────────────────── diff --git a/workers/node/harnessRuntime.test.ts b/workers/node/harnessRuntime.test.ts index 491f8875..ca3b4a65 100644 --- a/workers/node/harnessRuntime.test.ts +++ b/workers/node/harnessRuntime.test.ts @@ -5,7 +5,7 @@ import { describe, expect, it } from "vitest"; import { HarnessRuntime, decideHarnessRouting } from "./harnessRuntime.js"; -import type { McpTool } from "../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../packages/mcp-local/src/types.js"; function createTool(name: string, handler: McpTool["handler"]): McpTool { return { diff --git a/workers/node/harnessRuntime.ts b/workers/node/harnessRuntime.ts index d79e55fd..325f0d1c 100644 --- a/workers/node/harnessRuntime.ts +++ b/workers/node/harnessRuntime.ts @@ -40,8 +40,8 @@ import { } from "./lib/entityMemoryRecall.js"; import { saveExtractedSkillTemplate, shouldExtractSkillTemplate } from "./lib/skillExtractor.js"; import { saveHarnessTraceDistillation } from "./lib/traceDistillation.js"; -import type { McpTool } from "../packages/mcp-local/src/types.js"; -import { deriveReportArtifactMode } from "../shared/reportArtifacts.js"; +import type { McpTool } from "../../packages/mcp-local/src/types.js"; +import { deriveReportArtifactMode } from "../../shared/reportArtifacts.js"; // ── Types ───────────────────────────────────────────────────────────── diff --git a/workers/node/hyperloopRoute.test.ts b/workers/node/hyperloopRoute.test.ts index b95afb23..7bea696a 100644 --- a/workers/node/hyperloopRoute.test.ts +++ b/workers/node/hyperloopRoute.test.ts @@ -12,7 +12,7 @@ describe("createHyperloopRouter", () => { let server: ReturnType; let baseUrl = ""; let tempDir = ""; - let evaluateTask: typeof import("../packages/mcp-local/src/sync/hyperloopEval.js").evaluateTask; + let evaluateTask: typeof import("../../packages/mcp-local/src/sync/hyperloopEval.js").evaluateTask; let createHyperloopRouter: typeof import("./routes/hyperloop.js").createHyperloopRouter; beforeAll(async () => { @@ -20,7 +20,7 @@ describe("createHyperloopRouter", () => { process.env.NODEBENCH_DATA_DIR = tempDir; vi.resetModules(); - ({ evaluateTask } = await import("../packages/mcp-local/src/sync/hyperloopEval.js")); + ({ evaluateTask } = await import("../../packages/mcp-local/src/sync/hyperloopEval.js")); ({ createHyperloopRouter } = await import("./routes/hyperloop.js")); evaluateTask({ diff --git a/workers/node/index.ts b/workers/node/index.ts index c1660c9a..674f5be5 100644 --- a/workers/node/index.ts +++ b/workers/node/index.ts @@ -30,7 +30,7 @@ import { getMemoryStore, generateApiKey, hashPrefix, type ApiKeyRecord } from ". import { CommandBridge } from "./commandBridge.js"; import { mountProviderBus } from "./providerBus.js"; import { SyncBridgeServer } from "./syncBridge.js"; -import type { McpTool } from "../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../packages/mcp-local/src/types.js"; import { createSessionRouter } from "./routes/session.js"; import { createVoiceCaptureRouter } from "./routes/voiceCapture.js"; import { createTtsRouter } from "./routes/tts.js"; @@ -62,7 +62,7 @@ const PORT = portIdx >= 0 && args[portIdx + 1] ? parseInt(args[portIdx + 1], 10) async function loadTools(): Promise { try { // loadAllToolsets() must be called first — TOOLSET_MAP starts empty with lazy-loading - const { TOOLSET_MAP, loadAllToolsets } = await import("../packages/mcp-local/src/toolsetRegistry.js"); + const { TOOLSET_MAP, loadAllToolsets } = await import("../../packages/mcp-local/src/toolsetRegistry.js"); await loadAllToolsets(); const allTools: McpTool[] = []; // TOOLSET_MAP is a Map — use .values() if Map, or Object.values() if plain object diff --git a/workers/node/lib/canonicalModels.ts b/workers/node/lib/canonicalModels.ts index c34d79d8..6499ba75 100644 --- a/workers/node/lib/canonicalModels.ts +++ b/workers/node/lib/canonicalModels.ts @@ -8,7 +8,7 @@ * Bounded: each collection has MAX with LRU eviction. */ -import { getDb as getCanonicalDb } from "../../packages/mcp-local/src/db.js"; +import { getDb as getCanonicalDb } from "../../../packages/mcp-local/src/db.js"; // ── DB setup ───────────────────────────────────────────────────────── diff --git a/workers/node/lib/skillExtractor.ts b/workers/node/lib/skillExtractor.ts index 61eef968..819e94a1 100644 --- a/workers/node/lib/skillExtractor.ts +++ b/workers/node/lib/skillExtractor.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import path from "node:path"; -import { genId, getDb } from "../../packages/mcp-local/src/db.js"; +import { genId, getDb } from "../../../packages/mcp-local/src/db.js"; import type { HarnessPlan, HarnessStepResult } from "../agentHarness.js"; export interface ExtractedSkillTemplateRecord { diff --git a/workers/node/lib/traceDistillation.ts b/workers/node/lib/traceDistillation.ts index 005ec839..18f291d2 100644 --- a/workers/node/lib/traceDistillation.ts +++ b/workers/node/lib/traceDistillation.ts @@ -1,7 +1,7 @@ import fs from "node:fs"; import path from "node:path"; -import { genId, getDb } from "../../packages/mcp-local/src/db.js"; +import { genId, getDb } from "../../../packages/mcp-local/src/db.js"; import type { HarnessPlan, HarnessStepResult } from "../agentHarness.js"; export interface HarnessTraceDistillationRecord { diff --git a/workers/node/lib/trajectoryStore.ts b/workers/node/lib/trajectoryStore.ts index 9e4a3224..ab56f2bd 100644 --- a/workers/node/lib/trajectoryStore.ts +++ b/workers/node/lib/trajectoryStore.ts @@ -56,7 +56,7 @@ export const TOKEN_COST_USD = 0.000004; // ── DB (reuse canonical singleton) ─────────────────────────────────── -import { getDb as getCanonicalDb } from "../../packages/mcp-local/src/db.js"; +import { getDb as getCanonicalDb } from "../../../packages/mcp-local/src/db.js"; let _tableReady = false; diff --git a/workers/node/mcpGateway.ts b/workers/node/mcpGateway.ts index b9755acc..27a2ee21 100644 --- a/workers/node/mcpGateway.ts +++ b/workers/node/mcpGateway.ts @@ -27,7 +27,7 @@ import { type Server as HttpServer } from "node:http"; import { WebSocketServer, WebSocket } from "ws"; import type { IncomingMessage } from "node:http"; import type { Duplex } from "node:stream"; -import type { McpTool } from "../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../packages/mcp-local/src/types.js"; import { validateApiKey, diff --git a/workers/node/routes/founderEpisodeConvex.ts b/workers/node/routes/founderEpisodeConvex.ts index 0a49a811..5b1c74e4 100644 --- a/workers/node/routes/founderEpisodeConvex.ts +++ b/workers/node/routes/founderEpisodeConvex.ts @@ -1,5 +1,5 @@ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../../convex/_generated/api.js"; +import { api } from "../../../backend/convex/_generated/api.js"; let _client: ConvexHttpClient | null = null; diff --git a/workers/node/routes/harness.ts b/workers/node/routes/harness.ts index 029a2079..eb6daa09 100644 --- a/workers/node/routes/harness.ts +++ b/workers/node/routes/harness.ts @@ -19,7 +19,7 @@ import { Router, type Request, type Response } from "express"; import { HarnessRuntime, type TraceEvent } from "../harnessRuntime.js"; import { getPricingSnapshot, getPricingSummary } from "../pricingScraper.js"; -import type { McpTool } from "../../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../../packages/mcp-local/src/types.js"; export function createHarnessRouter(tools: McpTool[]): Router { const router = Router(); diff --git a/workers/node/routes/hyperloop.ts b/workers/node/routes/hyperloop.ts index 323afeb7..31b7d306 100644 --- a/workers/node/routes/hyperloop.ts +++ b/workers/node/routes/hyperloop.ts @@ -1,10 +1,10 @@ import { Router } from "express"; -import { getArchiveStats } from "../../packages/mcp-local/src/sync/hyperloopArchive.js"; +import { getArchiveStats } from "../../../packages/mcp-local/src/sync/hyperloopArchive.js"; import { computeImprovementAtK, listRecentEvaluations, listTrackedClassifications, -} from "../../packages/mcp-local/src/sync/hyperloopEval.js"; +} from "../../../packages/mcp-local/src/sync/hyperloopEval.js"; export function createHyperloopRouter(): Router { const router = Router(); diff --git a/workers/node/routes/improvementRoute.ts b/workers/node/routes/improvementRoute.ts index a6634bfe..3d656bc1 100644 --- a/workers/node/routes/improvementRoute.ts +++ b/workers/node/routes/improvementRoute.ts @@ -8,8 +8,8 @@ import { Router, type Request, type Response } from "express"; import { getTrajectoryStats, listTrajectorySummaries, estimateCostSaved } from "../lib/trajectoryStore.js"; -import { getArchiveStats, listTopEntries } from "../../packages/mcp-local/src/sync/hyperloopArchive.js"; -import { listRecentEvaluations } from "../../packages/mcp-local/src/sync/hyperloopEval.js"; +import { getArchiveStats, listTopEntries } from "../../../packages/mcp-local/src/sync/hyperloopArchive.js"; +import { listRecentEvaluations } from "../../../packages/mcp-local/src/sync/hyperloopEval.js"; // Cost constant moved to trajectoryStore.ts — use estimateCostSaved() diff --git a/workers/node/routes/pipelineRoute.ts b/workers/node/routes/pipelineRoute.ts index 3fd51173..882e794c 100644 --- a/workers/node/routes/pipelineRoute.ts +++ b/workers/node/routes/pipelineRoute.ts @@ -11,8 +11,8 @@ import { Router, type Request, type Response } from "express"; import { runSearchPipelineWithEnvelope, stateToResultPacket } from "../pipeline/searchPipeline.js"; -import { evaluateTask } from "../../packages/mcp-local/src/sync/hyperloopEval.js"; -import { runPromotionCycle } from "../../packages/mcp-local/src/sync/hyperloopArchive.js"; +import { evaluateTask } from "../../../packages/mcp-local/src/sync/hyperloopEval.js"; +import { runPromotionCycle } from "../../../packages/mcp-local/src/sync/hyperloopArchive.js"; import { runPreSearchHooks, runPostSearchHooks } from "../pipeline/hooks.js"; // ── Attrition retention bridge (inline push in route handler) ── diff --git a/workers/node/routes/search.ts b/workers/node/routes/search.ts index 35753bca..7a9eea0a 100644 --- a/workers/node/routes/search.ts +++ b/workers/node/routes/search.ts @@ -16,8 +16,8 @@ */ import { Request, Response, Router } from "express"; -import { getDb, genId } from "../../packages/mcp-local/src/db.js"; -import { initBehaviorTables, logSession, logQuery, logToolCall, findSimilarPriorQuery } from "../../packages/mcp-local/src/profiler/behaviorStore.js"; +import { getDb, genId } from "../../../packages/mcp-local/src/db.js"; +import { initBehaviorTables, logSession, logQuery, logToolCall, findSimilarPriorQuery } from "../../../packages/mcp-local/src/profiler/behaviorStore.js"; import { ConvexHttpClient } from "convex/browser"; import { anyApi } from "convex/server"; import { @@ -32,11 +32,11 @@ import { type EntityMemoryRecallEntry, } from "../lib/entityMemoryRecall.js"; import { buildRoutingGuidance, decideHarnessRouting } from "../harnessRuntime.js"; -import type { McpTool } from "../../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../../packages/mcp-local/src/types.js"; import { detectFounderCompanyMode, getFounderRolePacketDefault, -} from "../../packages/mcp-local/src/tools/founderOperatingModel.js"; +} from "../../../packages/mcp-local/src/tools/founderOperatingModel.js"; import { classifySignals } from "../lib/signalTaxonomy.js"; import { createEvidenceSpans } from "../lib/evidenceSpan.js"; import { computeRoutingHints, formatRoutingHintsForPrompt } from "../lib/routingHints.js"; @@ -48,24 +48,24 @@ import { recordLocalArtifact, recordLocalOutcome, upsertDurableObject, -} from "../../packages/mcp-local/src/sync/store.js"; -import { buildContextBundle } from "../../packages/mcp-local/src/tools/contextInjection.js"; -import { evaluateTask } from "../../packages/mcp-local/src/sync/hyperloopEval.js"; +} from "../../../packages/mcp-local/src/sync/store.js"; +import { buildContextBundle } from "../../../packages/mcp-local/src/tools/contextInjection.js"; +import { evaluateTask } from "../../../packages/mcp-local/src/sync/hyperloopEval.js"; import { buildWorkflowAssetFromEnvelope, createEnvelopeFromResultPacket } from "../lib/workflowEnvelope.js"; // Demo-safety guards (see docs/architecture/DEMO_PREFLIGHT.md) -import { checkAllLayers } from "../../convex/domains/agents/safety/rateLimitGuard.js"; +import { checkAllLayers } from "../../../backend/convex/domains/agents/safety/rateLimitGuard.js"; import { webSearchSingleflight, canonicalFetchSingleflight, entitySummarySingleflight, stableKey, -} from "../../convex/domains/agents/safety/singleflightMap.js"; +} from "../../../backend/convex/domains/agents/safety/singleflightMap.js"; import { classifyRetrievalConfidence, buildLowConfidenceCard, shouldStreamAnswer, type RetrievalState, -} from "../../convex/domains/agents/safety/lowConfidenceGuard.js"; +} from "../../../backend/convex/domains/agents/safety/lowConfidenceGuard.js"; const SEARCH_SOURCE = "search_api"; const CONTROL_PLANE_VIEW_ID = "view:control-plane"; @@ -1893,7 +1893,7 @@ let _judgeToolOutput: ((args: any) => Promise) | null = null; async function getJudge() { if (!_judgeToolOutput) { try { - const { llmJudgeLoopTools } = await import("../../packages/mcp-local/src/tools/llmJudgeLoop.js"); + const { llmJudgeLoopTools } = await import("../../../packages/mcp-local/src/tools/llmJudgeLoop.js"); const tool = llmJudgeLoopTools.find(t => t.name === "judge_tool_output"); if (tool) _judgeToolOutput = tool.handler; } catch { /* judge not available */ } diff --git a/workers/node/routes/session.ts b/workers/node/routes/session.ts index e789b881..a5156d15 100644 --- a/workers/node/routes/session.ts +++ b/workers/node/routes/session.ts @@ -26,7 +26,7 @@ import { Router } from "express"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../../convex/_generated/api"; +import { api } from "../../../backend/convex/_generated/api"; import { getGeminiVoiceTools, executeVoiceTool } from "../agents/voiceAgent.js"; import { DEFAULT_VOICE_DAILY_CAP_USD, diff --git a/workers/node/routes/sharedContext.ts b/workers/node/routes/sharedContext.ts index 2d9290ec..9679bd2d 100644 --- a/workers/node/routes/sharedContext.ts +++ b/workers/node/routes/sharedContext.ts @@ -10,14 +10,14 @@ import { proposeSharedContextTask, publishSharedContextPacket, registerSharedContextPeer, -} from "../../packages/mcp-local/src/sync/store.js"; +} from "../../../packages/mcp-local/src/sync/store.js"; import { appendFounderEpisodeSpan, finalizeFounderEpisode, getFounderEpisode, listFounderEpisodes, startFounderEpisode, -} from "../../packages/mcp-local/src/sync/founderEpisodeStore.js"; +} from "../../../packages/mcp-local/src/sync/founderEpisodeStore.js"; import { appendFounderEpisodeSpanConvex, diff --git a/workers/node/routes/sharedContextConvex.ts b/workers/node/routes/sharedContextConvex.ts index 97a5085a..482452c5 100644 --- a/workers/node/routes/sharedContextConvex.ts +++ b/workers/node/routes/sharedContextConvex.ts @@ -9,7 +9,7 @@ */ import { ConvexHttpClient } from "convex/browser"; -import { api } from "../../convex/_generated/api.js"; +import { api } from "../../../backend/convex/_generated/api.js"; import { appendFounderEpisodeSpanConvex as appendFounderEpisodeSpanConvexImpl, finalizeFounderEpisodeConvex as finalizeFounderEpisodeConvexImpl, diff --git a/workers/node/routes/subconscious.ts b/workers/node/routes/subconscious.ts index f28d2c0e..b41b25ee 100644 --- a/workers/node/routes/subconscious.ts +++ b/workers/node/routes/subconscious.ts @@ -13,10 +13,10 @@ import { getRecentWhispers, type BlockType, ALL_BLOCK_TYPES, -} from "../../packages/mcp-local/src/subconscious/blocks.js"; -import { getGraphSummary } from "../../packages/mcp-local/src/subconscious/graphEngine.js"; -import { classifyPrompt } from "../../packages/mcp-local/src/subconscious/classifier.js"; -import { generateWhisper, type SubconsciousMode } from "../../packages/mcp-local/src/subconscious/whisperPolicy.js"; +} from "../../../packages/mcp-local/src/subconscious/blocks.js"; +import { getGraphSummary } from "../../../packages/mcp-local/src/subconscious/graphEngine.js"; +import { classifyPrompt } from "../../../packages/mcp-local/src/subconscious/classifier.js"; +import { generateWhisper, type SubconsciousMode } from "../../../packages/mcp-local/src/subconscious/whisperPolicy.js"; export function createSubconsciousRouter(): Router { const router = Router(); diff --git a/workers/node/routes/toolGraph.ts b/workers/node/routes/toolGraph.ts index 25ae4f42..7da3aacb 100644 --- a/workers/node/routes/toolGraph.ts +++ b/workers/node/routes/toolGraph.ts @@ -11,7 +11,7 @@ export function createToolGraphRouter() { router.get("/tool-graph", async (_req, res) => { try { const { ALL_REGISTRY_ENTRIES } = await import( - "../../packages/mcp-local/src/tools/toolRegistry.js" + "../../../packages/mcp-local/src/tools/toolRegistry.js"" ); const entries = ALL_REGISTRY_ENTRIES as any[]; diff --git a/workers/node/routes/voiceCapture.ts b/workers/node/routes/voiceCapture.ts index 76c616b1..a784360f 100644 --- a/workers/node/routes/voiceCapture.ts +++ b/workers/node/routes/voiceCapture.ts @@ -29,7 +29,7 @@ import { Router } from "express"; import crypto from "node:crypto"; import { ConvexHttpClient } from "convex/browser"; -import { api } from "../../convex/_generated/api.js"; +import { api } from "../../../backend/convex/_generated/api.js"; // ── Constants (BOUND, BOUND_READ) ───────────────────────────────────────────── diff --git a/workers/node/searchRoute.test.ts b/workers/node/searchRoute.test.ts index 0ef47a5f..e81f669c 100644 --- a/workers/node/searchRoute.test.ts +++ b/workers/node/searchRoute.test.ts @@ -10,7 +10,7 @@ import { afterAll, beforeAll, describe, expect, it, vi } from "vitest"; import { createSearchRouter } from "./routes/search.js"; import { synthesizeResults, type HarnessExecution } from "./agentHarness.js"; -import type { McpTool } from "../packages/mcp-local/src/types.js"; +import type { McpTool } from "../../packages/mcp-local/src/types.js"; const weeklyResetTool: McpTool = { name: "founder_local_weekly_reset", diff --git a/workers/node/syncBridge.test.ts b/workers/node/syncBridge.test.ts index 8932d749..cc5cd925 100644 --- a/workers/node/syncBridge.test.ts +++ b/workers/node/syncBridge.test.ts @@ -9,7 +9,7 @@ import { EventEmitter } from "node:events"; import { WebSocket } from "ws"; import { SyncBridgeServer } from "./syncBridge.js"; -import type { SyncBridgeEnvelope } from "../packages/mcp-local/src/sync/protocol.js"; +import type { SyncBridgeEnvelope } from "../../packages/mcp-local/src/sync/protocol.js"; class MockWebSocket extends EventEmitter { static OPEN = WebSocket.OPEN; diff --git a/workers/node/syncBridge.ts b/workers/node/syncBridge.ts index 20ac239e..fb9aa174 100644 --- a/workers/node/syncBridge.ts +++ b/workers/node/syncBridge.ts @@ -14,8 +14,8 @@ import type { SyncBridgeSyncAckPayload, SyncQueueOperation, SyncScope, -} from "../packages/mcp-local/src/sync/protocol.js"; -import { createSyncEnvelope } from "../packages/mcp-local/src/sync/protocol.js"; +} from "../../packages/mcp-local/src/sync/protocol.js"; +import { createSyncEnvelope } from "../../packages/mcp-local/src/sync/protocol.js"; interface ConnectedDevice { ws: WebSocket; diff --git a/workers/node/tsconfig.json b/workers/node/tsconfig.json index 60bb0089..4e2e8a91 100644 --- a/workers/node/tsconfig.json +++ b/workers/node/tsconfig.json @@ -1,8 +1,8 @@ { - "extends": "../tsconfig.json", + "extends": "../../tsconfig.json", "compilerOptions": { - "outDir": "../dist/server", - "rootDir": "..", + "outDir": "../../dist", + "rootDir": "../..", "module": "ESNext", "moduleResolution": "node", "target": "ES2020", diff --git a/workers/node/vercel/searchApp.ts b/workers/node/vercel/searchApp.ts index 3b01090c..d99655d6 100644 --- a/workers/node/vercel/searchApp.ts +++ b/workers/node/vercel/searchApp.ts @@ -1,14 +1,14 @@ import cors from "cors"; import express from "express"; import Database from "better-sqlite3"; -import type { McpTool } from "../../packages/mcp-local/src/types.js"; -import { entityEnrichmentTools } from "../../packages/mcp-local/src/tools/entityEnrichmentTools.js"; -import { founderLocalPipelineTools } from "../../packages/mcp-local/src/tools/founderLocalPipeline.js"; -import { reconTools } from "../../packages/mcp-local/src/tools/reconTools.js"; -import { webTools } from "../../packages/mcp-local/src/tools/webTools.js"; -import { llmTools } from "../../packages/mcp-local/src/tools/llmTools.js"; -import { monteCarloTools } from "../../packages/mcp-local/src/tools/monteCarloTools.js"; -import { initSweepTables, runSweep, computeDelta, getLatestSweep, getPreviousSweep, generateRecommendations } from "../../packages/mcp-local/src/sweep/engine.js"; +import type { McpTool } from "../../../packages/mcp-local/src/types.js"; +import { entityEnrichmentTools } from "../../../packages/mcp-local/src/tools/entityEnrichmentTools.js"; +import { founderLocalPipelineTools } from "../../../packages/mcp-local/src/tools/founderLocalPipeline.js"; +import { reconTools } from "../../../packages/mcp-local/src/tools/reconTools.js"; +import { webTools } from "../../../packages/mcp-local/src/tools/webTools.js"; +import { llmTools } from "../../../packages/mcp-local/src/tools/llmTools.js"; +import { monteCarloTools } from "../../../packages/mcp-local/src/tools/monteCarloTools.js"; +import { initSweepTables, runSweep, computeDelta, getLatestSweep, getPreviousSweep, generateRecommendations } from "../../../packages/mcp-local/src/sweep/engine.js"; import { createSearchRouter } from "../routes/search.js"; import { createStreamingSearchRouter } from "../routes/streamingSearch.js"; import { createSharedContextRouter } from "../routes/sharedContext.js"; From 96b6d433d9ff2d90819e7e45334a0c2cda6497ea Mon Sep 17 00:00:00 2001 From: hshum Date: Sun, 19 Jul 2026 18:32:47 -0700 Subject: [PATCH 4/5] wip(migration): vitest @convex alias, guard-test roots, linter roots, string-path sweeps (checkpoint 3) Co-Authored-By: Claude Fable 5 --- .github/workflows/tier-b-preview.yml | 2 +- adw/goals/README.md | 2 +- ...elf-improvement-loop-live-signal-convex.md | 2 +- .../convex-improvementLoop.ts.pending | 2 +- adw/improvement-loop/ledger.json | 2 +- adw/improvement-loop/run-cycle.mjs | 2 +- adw/improvement-loop/scan.mjs | 2 +- .../ai-ui/PrimitiveMigration.guard.test.ts | 104 +++++++++--------- .../ResidualControlsMigration.guard.test.ts | 22 ++-- .../FastAgentDeclutter.guard.test.ts | 52 ++++----- .../MessageBubble.streaming.test.tsx | 2 +- .../TraceAuditPanel.provenance.test.ts | 2 +- .../__tests__/runtimeGrounding.guard.test.ts | 6 +- .../dogfood/views/DogfoodReviewView.tsx | 2 +- .../AgentWorkspaceHonesty.guard.test.ts | 14 +-- .../AgentWorkspaceResponsiveCss.guard.test.ts | 4 +- .../CanonicalRuntimeSurfaces.guard.test.ts | 4 +- .../surfaces/ChatContinuation.test.ts | 4 +- .../surfaces/ChatResponseShape.guard.test.ts | 8 +- .../surfaces/ChatRunLifecycle.guard.test.ts | 12 +- .../surfaces/ChatTypography.guard.test.ts | 8 +- .../surfaces/OneSurface.guard.test.ts | 12 +- apps/web/src/hooks/VOICE_INTENT_ROUTER.md | 8 +- .../shared/nodeBenchWorkflowCandidate.test.ts | 2 +- .../agentRuntimeTierFallback.test.ts | 2 +- .../investorProtectionOwnership.auth.test.ts | 24 ++-- .../fastAgentCitationProvenance.guard.test.ts | 2 +- .../fastAgentDocumentCreation.auth.test.ts | 2 +- .../fastAgentRuntimeSecurity.guard.test.ts | 56 +++++----- .../agents/swarmOwnership.auth.test.ts | 10 +- .../mcpDocumentEndpoints.auth.test.ts | 2 +- .../taskManagerOwnership.auth.test.ts | 8 +- evals/e2e/cmdk-palette.spec.ts | 4 +- evals/e2e/demo-walkthrough.spec.ts | 2 +- evals/e2e/edition-home-mobile.spec.ts | 4 +- evals/e2e/live-smoke-mobile.spec.ts | 2 +- evals/e2e/pr77-me-anchor-nav.spec.ts | 2 +- evals/e2e/ui-contract-runner.spec.ts | 2 +- evals/prompts/jarvis-voice-e2e-agent.md | 6 +- evals/prompts/sentinel-self-test.md | 2 +- .../releaseWorkflowContracts.test.ts | 10 +- scripts/eval/run-three-lane-eval.ts | 2 +- .../repo/export-scratchnode-live-public.mjs | 10 +- scripts/score-dopamine.ts | 2 +- scripts/scratchnode/scanLaunch.mjs | 2 +- scripts/sentinel/runner.mjs | 2 +- scripts/sentinel/swarm.mjs | 2 +- scripts/ui/agentNativeUiLinter.mjs | 2 +- scripts/ui/designLinter.mjs | 2 +- scripts/ui/publishDogfoodGallery.mjs | 4 +- scripts/ui/runDogfoodGeminiQa.mjs | 2 +- scripts/ui/runDogfoodWalkthroughLocal.mjs | 4 +- scripts/ui/runScenarioRegression.mjs | 2 +- scripts/verify-live.ts | 2 +- vitest.config.ts | 1 + 55 files changed, 230 insertions(+), 229 deletions(-) diff --git a/.github/workflows/tier-b-preview.yml b/.github/workflows/tier-b-preview.yml index 726522e6..11f409ac 100644 --- a/.github/workflows/tier-b-preview.yml +++ b/.github/workflows/tier-b-preview.yml @@ -303,7 +303,7 @@ jobs: fi # exact-kit-parity-prod: visual selector parity (per-PR canonical-component check) # one-flow-regression: full surface tour + A9 fallback + interactive chip behavior - # ui-contract-runner: executes docs/design/ui-contract/surfaces/*.contract.json + # ui-contract-runner: executes proof/ui-contract/surfaces/*.contract.json # (anchors, computed geometry, theme wiring, state copy) against the preview npx playwright test evals/e2e/vercel-preview-security.spec.ts evals/e2e/exact-kit-parity-prod.spec.ts evals/e2e/one-flow-regression.spec.ts evals/e2e/ui-contract-runner.spec.ts --project=chromium --reporter=line diff --git a/adw/goals/README.md b/adw/goals/README.md index 1c886d3d..c9903a5d 100644 --- a/adw/goals/README.md +++ b/adw/goals/README.md @@ -65,7 +65,7 @@ Goal → Spec → Subagents → Critic → Patch → Demo → Evals → Docs → | **Founder-initiated goal** | any time | you pick a Goal Card → agent fans out → critic → patch → verify → ship | CI-gated PR | Substantive work is **never** auto-shipped — it becomes a Goal Card the founder approves. -The deterministic substrate is `scripts/improvement-loop/`; the agent manual is +The deterministic substrate is `adw/improvement-loop/`; the agent manual is [`.claude/rules/self_improvement_loop.md`](../.claude/rules/self_improvement_loop.md). ## Subagent roles (one narrow job each — never generic) diff --git a/adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md b/adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md index 86d4d4a6..44b6935a 100644 --- a/adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md +++ b/adw/goals/nodebench/002-self-improvement-loop-live-signal-convex.md @@ -10,7 +10,7 @@ in `convex-improvementLoop.ts.pending` (never deployed) → `--push-convex` degr - **severity:** P1 (HONEST_STATUS / live_dom_verification — the ledger must not claim "shipped" without proof) ## Scope -- **Allowed:** `scripts/improvement-loop/run-cycle.mjs` (capture `liveSignal`; require it before `outcome:'shipped'`; make `pushConvex` honest when the endpoint is absent); `scripts/improvement-loop/ledger.json` (add `liveSignal` field; backfill C001-C004 honestly — `null` where not actually verified, never fabricated); `convex/improvementLoop.ts` + `convex/schema.ts` **only if** graduating the `.pending` Convex table; `convex-improvementLoop.ts.pending` +- **Allowed:** `adw/improvement-loop/run-cycle.mjs` (capture `liveSignal`; require it before `outcome:'shipped'`; make `pushConvex` honest when the endpoint is absent); `adw/improvement-loop/ledger.json` (add `liveSignal` field; backfill C001-C004 honestly — `null` where not actually verified, never fabricated); `convex/improvementLoop.ts` + `convex/schema.ts` **only if** graduating the `.pending` Convex table; `convex-improvementLoop.ts.pending` - **Forbidden:** `public/proto/home-v5.html`; any ScratchNode honesty-contract test or live send/render path; any new surface - **Core-loop flow:** the meta-loop that ships fixes TO the core loop — honest ledger + working observability keep it trustworthy - **Invariant that must NOT break:** never claim `shipped` without a recorded `liveSignal` (or explicit honest `liveVerified:false` + reason); `pushConvex` must never fake success — if Convex absent, record `{ok:false, reason:'endpoint-not-deployed'}`; run-cycle.mjs stays observe/score/record only (never edits product code) diff --git a/adw/improvement-loop/convex-improvementLoop.ts.pending b/adw/improvement-loop/convex-improvementLoop.ts.pending index 36b9e0d5..567ac62d 100644 --- a/adw/improvement-loop/convex-improvementLoop.ts.pending +++ b/adw/improvement-loop/convex-improvementLoop.ts.pending @@ -2,7 +2,7 @@ // Live-backend ledger for the continuous Self-Improvement Loop. // // Pattern: append-only telemetry. The deterministic substrate -// (scripts/improvement-loop/run-cycle.mjs) writes one row per cycle; the +// (adw/improvement-loop/run-cycle.mjs) writes one row per cycle; the // product can read recent cycles for in-app observability. // // Reliability (.claude/rules/agentic_reliability.md): diff --git a/adw/improvement-loop/ledger.json b/adw/improvement-loop/ledger.json index 4fd6a469..7887d915 100644 --- a/adw/improvement-loop/ledger.json +++ b/adw/improvement-loop/ledger.json @@ -46,7 +46,7 @@ "shipped": { "files": [ "public/proto/home-v5.html", - "scripts/improvement-loop/scan.mjs" + "adw/improvement-loop/scan.mjs" ] }, "liveSignal": null, diff --git a/adw/improvement-loop/run-cycle.mjs b/adw/improvement-loop/run-cycle.mjs index cc0993ac..de16bb5c 100644 --- a/adw/improvement-loop/run-cycle.mjs +++ b/adw/improvement-loop/run-cycle.mjs @@ -13,7 +13,7 @@ * (table `improvementLoopCycles`) when `--push-convex` is passed and the deployment is reachable. * Convex failures degrade gracefully and are recorded honestly (HONEST_STATUS) — never faked. * - * Usage: node scripts/improvement-loop/run-cycle.mjs [--effort-budget 3] [--push-convex] [--note "..."] + * Usage: node adw/improvement-loop/run-cycle.mjs [--effort-budget 3] [--push-convex] [--note "..."] */ import { spawnSync } from 'node:child_process'; import { readFileSync, writeFileSync, existsSync } from 'node:fs'; diff --git a/adw/improvement-loop/scan.mjs b/adw/improvement-loop/scan.mjs index 081f3e48..faf8e6f1 100644 --- a/adw/improvement-loop/scan.mjs +++ b/adw/improvement-loop/scan.mjs @@ -16,7 +16,7 @@ * Scoring: score = impact(1..5) * confidence(0..1) / effort(1..5) * safety='human' opportunities are QUEUED (score forced to 0) — never auto-shipped. * - * Usage: node scripts/improvement-loop/scan.mjs [--json] + * Usage: node adw/improvement-loop/scan.mjs [--json] */ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs'; import { resolve, dirname } from 'node:path'; diff --git a/apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts b/apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts index c91dbfcd..8f052a8f 100644 --- a/apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts +++ b/apps/web/src/components/ai-ui/PrimitiveMigration.guard.test.ts @@ -3,61 +3,61 @@ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs"; import { join, relative } from "node:path"; const ROOT = process.cwd(); -const SRC = join(ROOT, "src"); +const SRC = join(ROOT, "apps", "web", "src"); const migratedSurfaces = [ - "src/shared/components/DialogOverlay.tsx", - "src/features/chat/components/ChatShareSheet.tsx", - "src/features/chat/components/ThreadActionsSheet.tsx", - "src/features/reports/components/ReportShareSheet.tsx", - "src/features/research/ProofDrawer.tsx", - "src/features/research/components/FeedReaderModal.tsx", - "src/features/research/components/newsletter/EvidenceDrawer.tsx", - "src/features/controlPlane/components/DelegationModal.tsx", - "src/features/onboarding/components/OnboardingWizard.tsx", - "src/features/redesign/components/ShortcutsOverlay.tsx", - "src/features/redesign/components/MobileShell.tsx", - "src/shared/components/MiniEditorPopover.tsx", - "src/features/calendar/components/agenda/AgendaEditorPopover.tsx", - "src/features/calendar/components/agenda/AgendaMiniRow.tsx", - "src/layouts/chrome/HashtagQuickNotePopover.tsx", - "src/features/founder/components/FeedbackWidget.tsx", - "src/features/notebook/components/NotebookBlockFinder.tsx", - "src/features/redesign/components/CommandPalette.tsx", - "src/layouts/chrome/CommandPalette.tsx", - "src/features/redesign/components/MessageActions.tsx", - "src/shared/ui/SurfacePrimitives.tsx", - "src/features/redesign/surfaces/ReportsSurface.tsx", - "src/layouts/settings/SettingsModal.tsx", - "src/features/research/components/DeepDiveAccordion.tsx", - "src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx", - "src/features/redesign/surfaces/ChatSurface.tsx", - "src/layouts/CockpitLayout.tsx", - "src/features/product/components/ProductFileAssetPicker.tsx", - "src/features/documents/components/DocumentsPlannerOverlays.tsx", - "src/features/entities/views/EntityPage.tsx", + "apps/web/src/shared/components/DialogOverlay.tsx", + "apps/web/src/features/chat/components/ChatShareSheet.tsx", + "apps/web/src/features/chat/components/ThreadActionsSheet.tsx", + "apps/web/src/features/reports/components/ReportShareSheet.tsx", + "apps/web/src/features/research/ProofDrawer.tsx", + "apps/web/src/features/research/components/FeedReaderModal.tsx", + "apps/web/src/features/research/components/newsletter/EvidenceDrawer.tsx", + "apps/web/src/features/controlPlane/components/DelegationModal.tsx", + "apps/web/src/features/onboarding/components/OnboardingWizard.tsx", + "apps/web/src/features/redesign/components/ShortcutsOverlay.tsx", + "apps/web/src/features/redesign/components/MobileShell.tsx", + "apps/web/src/shared/components/MiniEditorPopover.tsx", + "apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx", + "apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx", + "apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx", + "apps/web/src/features/founder/components/FeedbackWidget.tsx", + "apps/web/src/features/notebook/components/NotebookBlockFinder.tsx", + "apps/web/src/features/redesign/components/CommandPalette.tsx", + "apps/web/src/layouts/chrome/CommandPalette.tsx", + "apps/web/src/features/redesign/components/MessageActions.tsx", + "apps/web/src/shared/ui/SurfacePrimitives.tsx", + "apps/web/src/features/redesign/surfaces/ReportsSurface.tsx", + "apps/web/src/layouts/settings/SettingsModal.tsx", + "apps/web/src/features/research/components/DeepDiveAccordion.tsx", + "apps/web/src/features/documents/components/documentsHub/planner/PlannerModeToggle.tsx", + "apps/web/src/features/redesign/surfaces/ChatSurface.tsx", + "apps/web/src/layouts/CockpitLayout.tsx", + "apps/web/src/features/product/components/ProductFileAssetPicker.tsx", + "apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx", + "apps/web/src/features/entities/views/EntityPage.tsx", ].map((path) => join(ROOT, path)); const migratedOverlaySurfaces = [ - "src/shared/components/DialogOverlay.tsx", - "src/features/chat/components/ChatShareSheet.tsx", - "src/features/chat/components/ThreadActionsSheet.tsx", - "src/features/reports/components/ReportShareSheet.tsx", - "src/features/research/ProofDrawer.tsx", - "src/features/research/components/FeedReaderModal.tsx", - "src/features/research/components/newsletter/EvidenceDrawer.tsx", - "src/features/controlPlane/components/DelegationModal.tsx", - "src/features/onboarding/components/OnboardingWizard.tsx", - "src/features/redesign/components/MobileShell.tsx", - "src/shared/components/MiniEditorPopover.tsx", - "src/features/calendar/components/agenda/AgendaEditorPopover.tsx", - "src/features/calendar/components/agenda/AgendaMiniRow.tsx", - "src/layouts/chrome/HashtagQuickNotePopover.tsx", - "src/features/founder/components/FeedbackWidget.tsx", - "src/features/notebook/components/NotebookBlockFinder.tsx", - "src/features/product/components/ProductFileAssetPicker.tsx", - "src/features/documents/components/DocumentsPlannerOverlays.tsx", - "src/features/entities/views/EntityPage.tsx", + "apps/web/src/shared/components/DialogOverlay.tsx", + "apps/web/src/features/chat/components/ChatShareSheet.tsx", + "apps/web/src/features/chat/components/ThreadActionsSheet.tsx", + "apps/web/src/features/reports/components/ReportShareSheet.tsx", + "apps/web/src/features/research/ProofDrawer.tsx", + "apps/web/src/features/research/components/FeedReaderModal.tsx", + "apps/web/src/features/research/components/newsletter/EvidenceDrawer.tsx", + "apps/web/src/features/controlPlane/components/DelegationModal.tsx", + "apps/web/src/features/onboarding/components/OnboardingWizard.tsx", + "apps/web/src/features/redesign/components/MobileShell.tsx", + "apps/web/src/shared/components/MiniEditorPopover.tsx", + "apps/web/src/features/calendar/components/agenda/AgendaEditorPopover.tsx", + "apps/web/src/features/calendar/components/agenda/AgendaMiniRow.tsx", + "apps/web/src/layouts/chrome/HashtagQuickNotePopover.tsx", + "apps/web/src/features/founder/components/FeedbackWidget.tsx", + "apps/web/src/features/notebook/components/NotebookBlockFinder.tsx", + "apps/web/src/features/product/components/ProductFileAssetPicker.tsx", + "apps/web/src/features/documents/components/DocumentsPlannerOverlays.tsx", + "apps/web/src/features/entities/views/EntityPage.tsx", ].map((path) => join(ROOT, path)); function sourceFiles(dir = SRC): string[] { @@ -108,8 +108,8 @@ describe("shadcn/Radix primitive adoption", () => { .sort(); expect(portalFiles).toEqual([ - "src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx", - "src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx", + "apps/web/src/features/editor/components/UnifiedEditor/PendingEditHighlights.tsx", + "apps/web/src/features/editor/components/UnifiedEditor/ProposalInlineDecorations.tsx", ]); }); diff --git a/apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts b/apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts index e0321d2a..71f2b1c6 100644 --- a/apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts +++ b/apps/web/src/components/ai-ui/ResidualControlsMigration.guard.test.ts @@ -6,12 +6,12 @@ const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8" describe("residual control primitive migration", () => { it.each([ - "src/features/controlPlane/views/LegalPage.tsx", - "src/features/deepSim/views/DecisionMemoView.tsx", - "src/features/research/views/ReportDetailWorkspace.tsx", - "src/features/research/views/ResearchHub.tsx", - "src/features/strategy/views/ExecutionTraceView.tsx", - "src/features/strategy/views/ProductDirectionMemoView.tsx", + "apps/web/src/features/controlPlane/views/LegalPage.tsx", + "apps/web/src/features/deepSim/views/DecisionMemoView.tsx", + "apps/web/src/features/research/views/ReportDetailWorkspace.tsx", + "apps/web/src/features/research/views/ResearchHub.tsx", + "apps/web/src/features/strategy/views/ExecutionTraceView.tsx", + "apps/web/src/features/strategy/views/ProductDirectionMemoView.tsx", ])("uses the shared Radix tabs contract in %s", (path) => { const source = read(path); expect(source).toContain("@/components/ai-ui/tabs"); @@ -22,8 +22,8 @@ describe("residual control primitive migration", () => { }); it("delegates document filter and density keyboard behavior to ToggleGroup", () => { - const toolbar = read("src/features/documents/components/FiltersToolsBar.tsx"); - const dataHook = read("src/features/documents/hooks/useDocumentData.ts"); + const toolbar = read("apps/web/src/features/documents/components/FiltersToolsBar.tsx"); + const dataHook = read("apps/web/src/features/documents/hooks/useDocumentData.ts"); expect(toolbar).toContain("@/components/ai-ui/toggle-group"); expect(toolbar.match(/ { }); it("models execution disclosure as a single-select toggle group", () => { - const source = read("src/features/strategy/views/ExecutionTraceView.tsx"); + const source = read("apps/web/src/features/strategy/views/ExecutionTraceView.tsx"); expect(source).toContain(" { - const source = read("src/features/product/components/ProductIntakeComposer.tsx"); + const source = read("apps/web/src/features/product/components/ProductIntakeComposer.tsx"); expect(source).toContain("@/components/ai-ui/toggle-group"); expect(source.match(/ { - const source = read("src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx"); + const source = read("apps/web/src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx"); expect(source).toContain("@/components/ai-ui/toggle-group"); expect(source).toContain("id: report.id"); expect(source.match(/item\.id \?\? item\.name/g)).toHaveLength(2); diff --git a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts index df53ad58..b2f41357 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts +++ b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/FastAgentDeclutter.guard.test.ts @@ -9,8 +9,8 @@ function source(file: string) { describe("FastAgent declutter guards", () => { it("keeps the unreachable nested command palette and its dead controls removed", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); - const overlays = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const overlays = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.PanelOverlays.tsx"); for (const deadState of [ "showCommandPalette", @@ -39,7 +39,7 @@ describe("FastAgent declutter guards", () => { }); it("keeps missing selection capabilities absent instead of exposing no-op controls", () => { - const context = source("src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx"); + const context = source("apps/web/src/features/agents/components/FastAgentPanel/MessageHandlersContext.tsx"); expect(context).toContain("const defaultHandlers: MessageHandlers = {};"); expect(context).not.toMatch(/onCompanySelect:\s*\(\)\s*=>\s*\{\}/); @@ -49,9 +49,9 @@ describe("FastAgent declutter guards", () => { }); it("keeps removed telemetry navigation and private guest task history unreachable", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); - const context = source("src/features/agents/context/FastAgentContext.tsx"); - const hub = source("src/features/agents/views/AgentsHub.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const context = source("apps/web/src/features/agents/context/FastAgentContext.tsx"); + const hub = source("apps/web/src/features/agents/views/AgentsHub.tsx"); expect(panel).not.toContain('["chat", "sources", "telemetry", "trace"]'); expect(context).not.toContain('"sources" | "telemetry" | "trace"'); @@ -59,7 +59,7 @@ describe("FastAgent declutter guards", () => { }); it("does not invent default object-first chat actions", () => { - const chatLane = source("src/features/chat/components/ChatLane.tsx"); + const chatLane = source("apps/web/src/features/chat/components/ChatLane.tsx"); expect(chatLane).not.toContain("DEFAULT_SUGGESTIONS"); expect(chatLane).not.toContain("onClick: () => {}"); @@ -68,7 +68,7 @@ describe("FastAgent declutter guards", () => { }); it("does not read rendered messages before their memo is initialized", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); expect(panel).toContain("const renderedMessagesRef = useRef([]);"); expect(panel).toContain("renderedMessagesRef.current = messagesToRender;"); @@ -76,7 +76,7 @@ describe("FastAgent declutter guards", () => { }); it("follows the reachable rendered stream without overriding a reader who scrolled away", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); expect(panel).toContain("autoScrollEnabledRef.current = distanceFromBottom < 30;"); expect(panel).toMatch(/if \(autoScrollEnabledRef\.current\) \{[\s\S]*?messagesEndRef\.current\?\.scrollIntoView/); @@ -87,7 +87,7 @@ describe("FastAgent declutter guards", () => { }); it("keeps every composer-focus path and the skip link correct in both panel modes", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); expect(panel).toMatch(/function focusFastAgentComposer\(\)[\s\S]*?'\.fast-agent-panel #product-intake-query, \.fast-agent-panel #fa-chat-input'/); expect(panel.match(/focusFastAgentComposer\(\);/g)).toHaveLength(4); @@ -96,7 +96,7 @@ describe("FastAgent declutter guards", () => { }); it("processes contextual opens once on every viewport and waits for a runtime owner", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); const contextualOpen = panel.slice( panel.indexOf("// Apply openOptions once per requestId"), panel.indexOf("// Persist dossier context"), @@ -140,15 +140,15 @@ describe("FastAgent declutter guards", () => { }); it("migrates removed legacy chat mode instead of restoring dead actions", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); expect(panel).toContain("useState<'agent' | 'agent-streaming'>('agent-streaming')"); expect(panel).not.toContain("localStorage.getItem('fastAgentPanel.chatMode')"); }); it("requires runtime backing before citations or entities become controls", () => { - const bubble = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx"); - const spans = source("src/features/research/components/InteractiveSpanParser.tsx"); + const bubble = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx"); + const spans = source("apps/web/src/features/research/components/InteractiveSpanParser.tsx"); expect(bubble).not.toContain("parseCitationUrlsFromText"); expect(bubble).toContain("if (!base) continue;"); @@ -160,9 +160,9 @@ describe("FastAgent declutter guards", () => { }); it("keeps executable and document controls behind successful runtime output", () => { - const bubble = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx"); - const documents = source("src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx"); - const provenance = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts"); + const bubble = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.UIMessageBubble.tsx"); + const documents = source("apps/web/src/features/agents/components/FastAgentPanel/DocumentActionCard.tsx"); + const provenance = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.provenance.ts"); expect(bubble).not.toContain("new Function"); expect(bubble).not.toContain("RunCodeButton"); @@ -181,9 +181,9 @@ describe("FastAgent declutter guards", () => { }); it("keeps global navigation controls wired to real destinations", () => { - const palette = source("src/layouts/chrome/CommandPalette.tsx"); - const cockpit = source("src/layouts/CockpitLayout.tsx"); - const rail = source("src/layouts/WorkspaceRail.tsx"); + const palette = source("apps/web/src/layouts/chrome/CommandPalette.tsx"); + const cockpit = source("apps/web/src/layouts/CockpitLayout.tsx"); + const rail = source("apps/web/src/layouts/WorkspaceRail.tsx"); expect(palette).not.toContain("Create New Document"); expect(palette).not.toContain("Create New Task"); @@ -197,8 +197,8 @@ describe("FastAgent declutter guards", () => { }); it("lets unsupported create phrases fall through to the real agent", () => { - const cockpit = source("src/layouts/CockpitLayout.tsx"); - const voiceRouter = source("src/hooks/useVoiceIntentRouter.ts"); + const cockpit = source("apps/web/src/layouts/CockpitLayout.tsx"); + const voiceRouter = source("apps/web/src/hooks/useVoiceIntentRouter.ts"); for (const deadEmitter of ["document:create", "voice:create-task", "voice:create-event"]) { expect(cockpit).not.toContain(deadEmitter); @@ -210,9 +210,9 @@ describe("FastAgent declutter guards", () => { }); it("keeps advertised focus and connection labels truthful", () => { - const panel = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); - const inputBar = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx"); - const status = source("src/layouts/StatusStrip.tsx"); + const panel = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const inputBar = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx"); + const status = source("apps/web/src/layouts/StatusStrip.tsx"); expect(panel).not.toContain('[placeholder="Message..."]'); expect(inputBar).toContain('data-testid="fast-agent-prompt-input"'); @@ -230,7 +230,7 @@ describe("FastAgent declutter guards", () => { }); it("does not mutate the runtime thread array and exposes rows to keyboards", () => { - const threads = source("src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx"); + const threads = source("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ThreadList.tsx"); expect(threads.match(/let filtered = \[\.\.\.threads\];/g)).toHaveLength(2); expect(threads).toContain('role="button"'); diff --git a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx index d593e047..e63f4eee 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx +++ b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/MessageBubble.streaming.test.tsx @@ -4,7 +4,7 @@ import { describe, expect, test } from 'vitest'; const panelDirectory = join( process.cwd(), - 'src/features/agents/components/FastAgentPanel', + 'apps/web/src/features/agents/components/FastAgentPanel', ); const legacyBubblePath = join(panelDirectory, 'FastAgentPanel.MessageBubble.tsx'); const legacyStreamPath = join(panelDirectory, 'FastAgentPanel.MessageStream.tsx'); diff --git a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts index 0c4cf97f..262a016c 100644 --- a/apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts +++ b/apps/web/src/features/agents/components/FastAgentPanel/__tests__/TraceAuditPanel.provenance.test.ts @@ -6,7 +6,7 @@ import { describe, expect, it } from "vitest"; const source = readFileSync( resolve( process.cwd(), - "src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx", + "apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.TraceAuditPanel.tsx", ), "utf8", ); diff --git a/apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts b/apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts index 0f06cd86..a8a92803 100644 --- a/apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts +++ b/apps/web/src/features/designKit/exact/__tests__/runtimeGrounding.guard.test.ts @@ -4,15 +4,15 @@ import { resolve } from "node:path"; import { describe, expect, it } from "vitest"; const exactKitSource = readFileSync( - resolve(process.cwd(), "src/features/designKit/exact/ExactKit.tsx"), + resolve(process.cwd(), "apps/web/src/features/designKit/exact/ExactKit.tsx"), "utf8", ); const exactKitCss = readFileSync( - resolve(process.cwd(), "src/features/designKit/exact/exactKit.css"), + resolve(process.cwd(), "apps/web/src/features/designKit/exact/exactKit.css"), "utf8", ); const topNavSource = readFileSync( - resolve(process.cwd(), "src/layouts/ProductTopNav.tsx"), + resolve(process.cwd(), "apps/web/src/layouts/ProductTopNav.tsx"), "utf8", ); diff --git a/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx b/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx index d71f4bb0..e43cea93 100644 --- a/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx +++ b/apps/web/src/features/dogfood/views/DogfoodReviewView.tsx @@ -770,7 +770,7 @@ export function DogfoodReviewView() { }, []); const commands = useMemo(() => { - const runE2e = "npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1"; + const runE2e = "npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1"; const publish = "npm run dogfood:publish"; const record = "npm run dogfood:record"; const recordStatic = "npm run dogfood:record:static"; diff --git a/apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts b/apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts index a78def72..9dc0197b 100644 --- a/apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/AgentWorkspaceHonesty.guard.test.ts @@ -6,17 +6,17 @@ import { describe, expect, it } from "vitest"; const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8"); describe("first-class agent workspace honesty contract", () => { - const chat = read("src/features/redesign/surfaces/ChatSurface.tsx"); - const shell = read("src/features/redesign/RedesignShell.tsx"); - const prototype = read("src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx"); - const workspaceCss = read("src/features/redesign/agent-workspace.css"); - const composer = read("src/features/redesign/components/UniversalComposer.tsx"); - const conversation = read("src/components/ai-elements/conversation.tsx"); + const chat = read("apps/web/src/features/redesign/surfaces/ChatSurface.tsx"); + const shell = read("apps/web/src/features/redesign/RedesignShell.tsx"); + const prototype = read("apps/web/src/features/redesign/surfaces/HomeV2PrototypeSurface.tsx"); + const workspaceCss = read("apps/web/src/features/redesign/agent-workspace.css"); + const composer = read("apps/web/src/features/redesign/components/UniversalComposer.tsx"); + const conversation = read("apps/web/src/components/ai-elements/conversation.tsx"); // Phase A of docs/design/ONE_CHAT_INTERFACE.md: the answer anatomy (receipt // telemetry, evidence source parsing, "how we got this answer" trace, the // honest probe banner) moved out of ChatSurface into the ONE component both // renderers mount. The honesty assertions follow the code to its new home. - const chatMsg = read("src/features/redesign/components/ChatAssistantMessage.tsx"); + const chatMsg = read("apps/web/src/features/redesign/components/ChatAssistantMessage.tsx"); it("exposes one runtime-grounded read, write, and verification contract", () => { expect(chat).toContain("RunScopeDisclosure"); diff --git a/apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts b/apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts index 6d8d7aa7..0c3cf6c0 100644 --- a/apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/AgentWorkspaceResponsiveCss.guard.test.ts @@ -4,11 +4,11 @@ import { resolve } from "node:path"; import { describe, expect, it } from "vitest"; const primitives = readFileSync( - resolve(process.cwd(), "src/features/redesign/primitives.css"), + resolve(process.cwd(), "apps/web/src/features/redesign/primitives.css"), "utf8", ); const workspaceCss = readFileSync( - resolve(process.cwd(), "src/features/redesign/agent-workspace.css"), + resolve(process.cwd(), "apps/web/src/features/redesign/agent-workspace.css"), "utf8", ); diff --git a/apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts b/apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts index 045152ea..47b71c4a 100644 --- a/apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/CanonicalRuntimeSurfaces.guard.test.ts @@ -7,8 +7,8 @@ const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8" describe("canonical runtime surface deduplication", () => { it("reuses the owner-scoped Inbox and Me trees in the redesign shell", () => { - const inbox = read("src/features/redesign/surfaces/InboxSurface.tsx"); - const me = read("src/features/redesign/surfaces/MeSurface.tsx"); + const inbox = read("apps/web/src/features/redesign/surfaces/InboxSurface.tsx"); + const me = read("apps/web/src/features/redesign/surfaces/MeSurface.tsx"); expect(inbox).toContain(""); expect(me).toContain(""); diff --git a/apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts b/apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts index 0030c219..c1f20f3b 100644 --- a/apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts +++ b/apps/web/src/features/redesign/surfaces/ChatContinuation.test.ts @@ -43,8 +43,8 @@ describe("reproducible answer continuation", () => { }); it("keeps private continuation history out of public hash reads", () => { - const backend = readFileSync("convex/domains/redesign/chatRuns.ts", "utf8"); - const receipt = readFileSync("src/features/redesign/pages/ReproducibleChatPage.tsx", "utf8"); + const backend = readFileSync("backend/convex/domains/redesign/chatRuns.ts", "utf8"); + const receipt = readFileSync("apps/web/src/features/redesign/pages/ReproducibleChatPage.tsx", "utf8"); expect(backend).toContain("conversationContext: _conversationContext"); expect(backend).toContain("parentRunHash: _parentRunHash"); expect(receipt).toContain("data-testid=\"continue-reproducible-chat\""); diff --git a/apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts index 01752311..ca6930be 100644 --- a/apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/ChatResponseShape.guard.test.ts @@ -12,10 +12,10 @@ const read = (path: string) => readFileSync(path, "utf8"); * two renderers structurally cannot drift. */ describe("compact chat response rendering (one chat interface)", () => { - const chatMsg = read("src/features/redesign/components/ChatAssistantMessage.tsx"); - const chat = read("src/features/redesign/surfaces/ChatSurface.tsx"); - const replay = read("src/features/redesign/pages/ReproducibleChatPage.tsx"); - const workspaceCss = read("src/features/redesign/agent-workspace.css"); + const chatMsg = read("apps/web/src/features/redesign/components/ChatAssistantMessage.tsx"); + const chat = read("apps/web/src/features/redesign/surfaces/ChatSurface.tsx"); + const replay = read("apps/web/src/features/redesign/pages/ReproducibleChatPage.tsx"); + const workspaceCss = read("apps/web/src/features/redesign/agent-workspace.css"); it("gates every optional section on non-empty content — compact answers stay compact", () => { // Row 2 secondary prose renders only when whyItMatters is present. diff --git a/apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts index c82d4676..9215496a 100644 --- a/apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/ChatRunLifecycle.guard.test.ts @@ -6,14 +6,14 @@ import { describe, expect, it } from "vitest"; const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8"); describe("durable chat run lifecycle contract", () => { - const backend = read("convex/domains/redesign/chatRuns.ts"); - const schema = read("convex/schema.ts"); - const hook = read("src/features/redesign/hooks/useRedesignChatRun.ts"); - const chat = read("src/features/redesign/surfaces/ChatSurface.tsx"); - const composer = read("src/features/redesign/components/UniversalComposer.tsx"); + const backend = read("backend/convex/domains/redesign/chatRuns.ts"); + const schema = read("backend/convex/schema.ts"); + const hook = read("apps/web/src/features/redesign/hooks/useRedesignChatRun.ts"); + const chat = read("apps/web/src/features/redesign/surfaces/ChatSurface.tsx"); + const composer = read("apps/web/src/features/redesign/components/UniversalComposer.tsx"); // Phase A of docs/design/ONE_CHAT_INTERFACE.md — the RuntimeBoard metric strip // (provider/model/tokens/cost/receipt) lives in the one ChatAssistantMessage. - const chatMsg = read("src/features/redesign/components/ChatAssistantMessage.tsx"); + const chatMsg = read("apps/web/src/features/redesign/components/ChatAssistantMessage.tsx"); it("deduplicates paid submissions by owner and client request id", () => { expect(schema).toContain('.index("by_user_client_request", ["userId", "clientRequestId"])'); diff --git a/apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts b/apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts index dfec784b..7c583920 100644 --- a/apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/ChatTypography.guard.test.ts @@ -3,10 +3,10 @@ import { resolve } from "node:path"; import { describe, expect, it } from "vitest"; -const chatMsg = readFileSync(resolve(process.cwd(), "src/features/redesign/components/ChatAssistantMessage.tsx"), "utf8"); -const replay = readFileSync(resolve(process.cwd(), "src/features/redesign/pages/ReproducibleChatPage.tsx"), "utf8"); -const workspaceCss = readFileSync(resolve(process.cwd(), "src/features/redesign/agent-workspace.css"), "utf8"); -const tokens = readFileSync(resolve(process.cwd(), "src/features/redesign/tokens.css"), "utf8"); +const chatMsg = readFileSync(resolve(process.cwd(), "apps/web/src/features/redesign/components/ChatAssistantMessage.tsx"), "utf8"); +const replay = readFileSync(resolve(process.cwd(), "apps/web/src/features/redesign/pages/ReproducibleChatPage.tsx"), "utf8"); +const workspaceCss = readFileSync(resolve(process.cwd(), "apps/web/src/features/redesign/agent-workspace.css"), "utf8"); +const tokens = readFileSync(resolve(process.cwd(), "apps/web/src/features/redesign/tokens.css"), "utf8"); describe("chat typography contract", () => { it("keeps structured answers in the compact product type scale", () => { diff --git a/apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts b/apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts index 95179941..f6cfd530 100644 --- a/apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts +++ b/apps/web/src/features/redesign/surfaces/OneSurface.guard.test.ts @@ -6,15 +6,15 @@ import { describe, expect, it } from "vitest"; const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8"); describe("NodeBench one-surface product contract", () => { - const app = read("src/App.tsx"); - const shell = read("src/features/redesign/RedesignShell.tsx"); - const header = read("src/features/redesign/components/TopNav.tsx"); - const chat = read("src/features/redesign/surfaces/ChatSurface.tsx"); - const workspaceCss = read("src/features/redesign/agent-workspace.css"); + const app = read("apps/web/src/App.tsx"); + const shell = read("apps/web/src/features/redesign/RedesignShell.tsx"); + const header = read("apps/web/src/features/redesign/components/TopNav.tsx"); + const chat = read("apps/web/src/features/redesign/surfaces/ChatSurface.tsx"); + const workspaceCss = read("apps/web/src/features/redesign/agent-workspace.css"); // Phase A of docs/design/ONE_CHAT_INTERFACE.md — the answer's trace disclosure // and source-URL parsing live in the one ChatAssistantMessage both renderers // mount; the "same surface" intent is preserved, just at its new home. - const chatMsg = read("src/features/redesign/components/ChatAssistantMessage.tsx"); + const chatMsg = read("apps/web/src/features/redesign/components/ChatAssistantMessage.tsx"); it("mounts only the canonical decision workspace in the primary shell", () => { expect(shell).toContain('data-product-surface="decision-workspace"'); diff --git a/apps/web/src/hooks/VOICE_INTENT_ROUTER.md b/apps/web/src/hooks/VOICE_INTENT_ROUTER.md index 1596deca..f806172f 100644 --- a/apps/web/src/hooks/VOICE_INTENT_ROUTER.md +++ b/apps/web/src/hooks/VOICE_INTENT_ROUTER.md @@ -21,7 +21,7 @@ User speaks/types → JarvisHUDLayout.handlePromptSubmit / FastAgentInputBar.han | `src/components/hud/JarvisHUDLayout.tsx` | Intercepts in `handlePromptSubmit`, shows voice confirmation | | `src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx` | Passes `onVoiceIntent` to InputBar | | `src/features/agents/components/FastAgentPanel/FastAgentPanel.InputBar.tsx` | Intercepts in `handleSend` before `/spawn` | -| `tests/e2e/voice-input.spec.ts` | Scenarios 7-13: navigation, modes, create, theme, utilities, fallthrough, a11y | +| `evals/e2e/voice-input.spec.ts` | Scenarios 7-13: navigation, modes, create, theme, utilities, fallthrough, a11y | ### Prop Threading @@ -48,7 +48,7 @@ CockpitLayout (owns all callbacks: navigate, setMode, openSettings, etc.) ``` 4. **Wire callback** in `useVoiceIntentRouter` hook's switch/if block 5. **Wire implementation** in `CockpitLayout.tsx` → `voiceIntentActions` useMemo -6. **Add E2E test** in `tests/e2e/voice-input.spec.ts` under the appropriate scenario +6. **Add E2E test** in `evals/e2e/voice-input.spec.ts` under the appropriate scenario ## Key Design Decisions @@ -99,10 +99,10 @@ The `VIEW_ALIASES` map in `useVoiceIntentRouter.ts` maps spoken phrases to `Main ```bash # Unit test the pure parser (no React needed) # parseVoiceIntent is exported — can be tested standalone -npx vitest run tests/e2e/voice-input.spec.ts +npx vitest run evals/e2e/voice-input.spec.ts # Full E2E with running app -npx playwright test tests/e2e/voice-input.spec.ts +npx playwright test evals/e2e/voice-input.spec.ts ``` Scenarios 7-13 in `voice-input.spec.ts` cover: diff --git a/apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts b/apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts index f6346f08..1cb1d36f 100644 --- a/apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts +++ b/apps/web/src/shared/nodeBenchWorkflowCandidate.test.ts @@ -70,7 +70,7 @@ function frozenStudyCandidate(): NodeBenchWorkflowCandidate { readFileSync( resolve( process.cwd(), - "src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json", + "apps/web/src/shared/fixtures/rocketride-nodebenchai-frozen-sources.json", ), "utf8", ), diff --git a/backend/convex/__tests__/agentRuntimeTierFallback.test.ts b/backend/convex/__tests__/agentRuntimeTierFallback.test.ts index 68514b5f..00cef04b 100644 --- a/backend/convex/__tests__/agentRuntimeTierFallback.test.ts +++ b/backend/convex/__tests__/agentRuntimeTierFallback.test.ts @@ -45,7 +45,7 @@ const denied = ( }); const streamingSource = readFileSync( - resolve(process.cwd(), "convex/domains/agents/fastAgentPanelStreaming.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/fastAgentPanelStreaming.ts"), "utf8", ); diff --git a/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts index 239b4dde..56728fee 100644 --- a/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts +++ b/backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOwnership.auth.test.ts @@ -42,13 +42,13 @@ const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8" describe("due-diligence adjacent public-surface guard", () => { it("keeps demo, eval, and private-result surfaces off the public Convex API", () => { for (const path of [ - "convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts", - "convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts", - "convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts", - "convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts", - "convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts", - "convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts", - "convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts", + "backend/convex/domains/agents/dueDiligence/deepResearch/deepResearchOrchestrator.ts", + "backend/convex/domains/agents/dueDiligence/investorPlaybook/agenticPlaybook.ts", + "backend/convex/domains/agents/dueDiligence/investorPlaybook/evalPlaybook.ts", + "backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookActions.ts", + "backend/convex/domains/agents/dueDiligence/investorPlaybook/playbookMutations.ts", + "backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts", + "backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts", ]) { expect(read(path)).not.toMatch( /export const \w+\s*=\s*(?:action|query|mutation)\(/, @@ -56,15 +56,15 @@ describe("due-diligence adjacent public-surface guard", () => { } for (const removedPath of [ - "convex/domains/agents/dueDiligence/investorPlaybook/agenticTest.ts", + "backend/convex/domains/agents/dueDiligence/investorPlaybook/agenticTest.ts", "scripts/eval-investor-playbook.ts", "scripts/test-deep-research-live.ts", ]) { expect(existsSync(resolve(process.cwd(), removedPath))).toBe(false); } - const generatedApi = read("convex/_generated/api.d.ts"); - const barrel = read("convex/domains/agents/dueDiligence/index.ts"); + const generatedApi = read("backend/convex/_generated/api.d.ts"); + const barrel = read("backend/convex/domains/agents/dueDiligence/index.ts"); expect(generatedApi).not.toContain("investorPlaybook/agenticTest"); expect(barrel).not.toMatch( /\b(?:startVerificationJob|startDeepResearch|getInvestorProtectionJob|getPlaybookResultByEntity|runAgenticDueDiligence)\b/, @@ -73,10 +73,10 @@ describe("due-diligence adjacent public-surface guard", () => { it("requires owner binding before retained investor-protection writes", () => { const mutations = read( - "convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts", + "backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionMutations.ts", ); const orchestrator = read( - "convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts", + "backend/convex/domains/agents/dueDiligence/investorProtection/investorProtectionOrchestrator.ts", ); const saveResultStart = mutations.indexOf("export const internalSaveResult"); const saveResultEnd = mutations.indexOf("// CACHE OPERATIONS", saveResultStart); diff --git a/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts b/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts index ba06d995..cac9165b 100644 --- a/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts +++ b/backend/convex/domains/agents/fastAgentCitationProvenance.guard.test.ts @@ -15,7 +15,7 @@ describe("FastAgent citation provenance guard", () => { const source = readFileSync( resolve( process.cwd(), - "convex/domains/agents/fastAgentPanelStreaming.ts", + "backend/convex/domains/agents/fastAgentPanelStreaming.ts", ), "utf8", ); diff --git a/backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts b/backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts index 37dec8fa..1cd9128e 100644 --- a/backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts +++ b/backend/convex/domains/agents/fastAgentDocumentCreation.auth.test.ts @@ -50,7 +50,7 @@ describe("FastAgent document thread ownership", () => { it("checks ownership before invoking the Agent or reading thread messages", () => { const source = readFileSync( - resolve(process.cwd(), "convex/domains/agents/fastAgentDocumentCreation.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/fastAgentDocumentCreation.ts"), "utf8", ); const actionStart = source.indexOf("export const generateAndCreateDocument"); diff --git a/backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts b/backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts index a9e42126..cb5d10e1 100644 --- a/backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts +++ b/backend/convex/domains/agents/fastAgentRuntimeSecurity.guard.test.ts @@ -7,18 +7,18 @@ const read = (path: string) => readFileSync(resolve(process.cwd(), path), "utf8" describe("runtime trust boundary guards", () => { it("does not expose a caller-selected thread model action", () => { - const source = read("convex/domains/agents/fastAgentPanelStreaming.ts"); + const source = read("backend/convex/domains/agents/fastAgentPanelStreaming.ts"); expect(source).not.toContain("export const generateDocumentContent"); expect(source).not.toContain("[generateDocumentContent]"); }); it("has no legacy bearer-stream renderer, query, or HTTP driver", () => { - const streaming = read("convex/domains/agents/fastAgentPanelStreaming.ts"); - const router = read("convex/router.ts"); + const streaming = read("backend/convex/domains/agents/fastAgentPanelStreaming.ts"); + const router = read("backend/convex/router.ts"); const legacyRenderer = resolve( process.cwd(), - "src/features/agents/components/FastAgentPanel/FastAgentPanel.StreamingMessage.tsx", + "apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.StreamingMessage.tsx", ); expect(existsSync(legacyRenderer)).toBe(false); @@ -29,7 +29,7 @@ describe("runtime trust boundary guards", () => { }); it("checks exact document-link ownership before inserting the document", () => { - const source = read("convex/domains/agents/fastAgentPanelStreaming.ts"); + const source = read("backend/convex/domains/agents/fastAgentPanelStreaming.ts"); const start = source.indexOf("export const createDocumentFromAgentContent"); const end = source.indexOf("export const getThreadByStreamIdInternal", start); const body = source.slice(start, end); @@ -44,8 +44,8 @@ describe("runtime trust boundary guards", () => { }); it("does not write user prompt or message previews to runtime logs", () => { - const streaming = read("convex/domains/agents/fastAgentPanelStreaming.ts"); - const documentCreation = read("convex/domains/agents/fastAgentDocumentCreation.ts"); + const streaming = read("backend/convex/domains/agents/fastAgentPanelStreaming.ts"); + const documentCreation = read("backend/convex/domains/agents/fastAgentDocumentCreation.ts"); expect(streaming).not.toContain("args.prompt.substring"); expect(streaming).not.toContain("sanitizedPrompt.substring"); @@ -56,8 +56,8 @@ describe("runtime trust boundary guards", () => { }); it("requires TRACE receipts and binds them to the exact output payload", () => { - const helper = read("convex/domains/agents/receipts/emitWithReceipt.ts"); - const trace = read("convex/domains/agents/traceOrchestrator.ts"); + const helper = read("backend/convex/domains/agents/receipts/emitWithReceipt.ts"); + const trace = read("backend/convex/domains/agents/traceOrchestrator.ts"); expect(helper).toContain("resultOutputHash"); expect(helper).toContain("hashTraceResultOutput(resultOutput)"); @@ -67,11 +67,11 @@ describe("runtime trust boundary guards", () => { }); it("does not expose response-shape heuristics as confidence", () => { - const trace = read("convex/domains/agents/traceOrchestrator.ts"); - const swarm = read("src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx"); + const trace = read("backend/convex/domains/agents/traceOrchestrator.ts"); + const swarm = read("apps/web/src/features/agents/components/FastAgentPanel/SwarmLanesView.tsx"); const removedTimeline = resolve( process.cwd(), - "src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx", + "apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx", ); expect(trace).not.toContain("traceOutput.confidence"); @@ -81,16 +81,16 @@ describe("runtime trust boundary guards", () => { }); it("removes the unused parallel UI/API and keeps only bounded owner-bound storage", () => { - const tree = read("convex/domains/agents/parallelTaskTree.ts"); - const panel = read("src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); - const designSystem = read("src/design/designSystem.ts"); - const generatedApi = read("convex/_generated/api.d.ts"); + const tree = read("backend/convex/domains/agents/parallelTaskTree.ts"); + const panel = read("apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.tsx"); + const designSystem = read("apps/web/src/design/designSystem.ts"); + const generatedApi = read("backend/convex/_generated/api.d.ts"); for (const removedPath of [ - "convex/domains/agents/parallelTaskOrchestrator.ts", - "src/features/agents/hooks/useParallelTaskExecution.ts", - "src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx", - "src/features/agents/components/FastAgentPanel/FastAgentPanel.DecisionTreeKanban.tsx", + "backend/convex/domains/agents/parallelTaskOrchestrator.ts", + "apps/web/src/features/agents/hooks/useParallelTaskExecution.ts", + "apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx", + "apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.DecisionTreeKanban.tsx", ]) { expect(existsSync(resolve(process.cwd(), removedPath))).toBe(false); } @@ -107,14 +107,14 @@ describe("runtime trust boundary guards", () => { }); it("keeps core due-diligence storage and orchestration behind owner-bound internal APIs", () => { - const mutations = read("convex/domains/agents/dueDiligence/ddMutations.ts"); - const orchestrator = read("convex/domains/agents/dueDiligence/ddOrchestrator.ts"); - const enhanced = read("convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts"); - const triggerQueries = read("convex/domains/agents/dueDiligence/ddTriggerQueries.ts"); - const triggers = read("convex/domains/agents/dueDiligence/ddTriggers.ts"); - const encounter = read("convex/domains/operations/encounters/encounterCapture.ts"); - const slack = read("convex/domains/integrations/slack/slackAgent.ts"); - const evaluation = read("convex/domains/evaluation/ddEvaluation.ts"); + const mutations = read("backend/convex/domains/agents/dueDiligence/ddMutations.ts"); + const orchestrator = read("backend/convex/domains/agents/dueDiligence/ddOrchestrator.ts"); + const enhanced = read("backend/convex/domains/agents/dueDiligence/ddEnhancedOrchestrator.ts"); + const triggerQueries = read("backend/convex/domains/agents/dueDiligence/ddTriggerQueries.ts"); + const triggers = read("backend/convex/domains/agents/dueDiligence/ddTriggers.ts"); + const encounter = read("backend/convex/domains/operations/encounters/encounterCapture.ts"); + const slack = read("backend/convex/domains/integrations/slack/slackAgent.ts"); + const evaluation = read("backend/convex/domains/evaluation/ddEvaluation.ts"); const vite = read("vite.config.ts"); expect(mutations).not.toMatch(/export const \w+ = (?:query|mutation|action)\(/); diff --git a/backend/convex/domains/agents/swarmOwnership.auth.test.ts b/backend/convex/domains/agents/swarmOwnership.auth.test.ts index 822e63ef..090cea40 100644 --- a/backend/convex/domains/agents/swarmOwnership.auth.test.ts +++ b/backend/convex/domains/agents/swarmOwnership.auth.test.ts @@ -193,19 +193,19 @@ describe.skipIf(!convexTestAvailable)("swarm owner isolation", () => { describe("swarm ownership source guards", () => { it("keeps all raw swarm writes internal and orchestrators on owner-checked reads", () => { const mutations = readFileSync( - resolve(process.cwd(), "convex/domains/agents/swarmMutations.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/swarmMutations.ts"), "utf8", ); const orchestrator = readFileSync( - resolve(process.cwd(), "convex/domains/agents/swarmOrchestrator.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/swarmOrchestrator.ts"), "utf8", ); const enhanced = readFileSync( - resolve(process.cwd(), "convex/domains/agents/swarmOrchestratorEnhanced.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/swarmOrchestratorEnhanced.ts"), "utf8", ); const liveSmoke = readFileSync( - resolve(process.cwd(), "convex/domains/evaluation/liveApiSmoke.ts"), + resolve(process.cwd(), "backend/convex/domains/evaluation/liveApiSmoke.ts"), "utf8", ); const cancelSwarm = orchestrator.slice( @@ -236,7 +236,7 @@ describe("swarm ownership source guards", () => { it("does not expose arbitrary email lookup or caller-selected list ownership", () => { const queries = readFileSync( - resolve(process.cwd(), "convex/domains/agents/swarmQueries.ts"), + resolve(process.cwd(), "backend/convex/domains/agents/swarmQueries.ts"), "utf8", ); const listActive = queries.slice( diff --git a/backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts b/backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts index e92d3649..87fb9787 100644 --- a/backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts +++ b/backend/convex/domains/documents/mcpDocumentEndpoints.auth.test.ts @@ -340,7 +340,7 @@ describe.skipIf(!convexTestAvailable)("MCP document read ownership", () => { describe("MCP document dispatcher ownership guards", () => { it("injects the service owner into both direct read routes", () => { const source = readFileSync( - resolve(process.cwd(), "convex/domains/mcp/mcpGatewayDispatcher.ts"), + resolve(process.cwd(), "backend/convex/domains/mcp/mcpGatewayDispatcher.ts"), "utf8", ); diff --git a/backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts b/backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts index e42ff804..6962e4bc 100644 --- a/backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts +++ b/backend/convex/domains/operations/taskManager/taskManagerOwnership.auth.test.ts @@ -168,15 +168,15 @@ describe.skipIf(!convexTestAvailable)("task-manager owner isolation", () => { describe("task-manager source guards", () => { it("does not ship fixture seeds or heuristic proof confidence", () => { const mutations = readFileSync( - resolve(process.cwd(), "convex/domains/operations/taskManager/mutations.ts"), + resolve(process.cwd(), "backend/convex/domains/operations/taskManager/mutations.ts"), "utf8", ); const proofPack = readFileSync( - resolve(process.cwd(), "convex/domains/operations/taskManager/proofPack.ts"), + resolve(process.cwd(), "backend/convex/domains/operations/taskManager/proofPack.ts"), "utf8", ); const detail = readFileSync( - resolve(process.cwd(), "src/features/agents/components/TaskManager/TaskSessionDetail.tsx"), + resolve(process.cwd(), "apps/web/src/features/agents/components/TaskManager/TaskSessionDetail.tsx"), "utf8", ); @@ -189,7 +189,7 @@ describe("task-manager source guards", () => { it("keeps MCP trace writes on injected internal service contracts", () => { const dispatcher = readFileSync( - resolve(process.cwd(), "convex/domains/mcp/mcpGatewayDispatcher.ts"), + resolve(process.cwd(), "backend/convex/domains/mcp/mcpGatewayDispatcher.ts"), "utf8", ); diff --git a/evals/e2e/cmdk-palette.spec.ts b/evals/e2e/cmdk-palette.spec.ts index d5a093b7..21ccb1c6 100644 --- a/evals/e2e/cmdk-palette.spec.ts +++ b/evals/e2e/cmdk-palette.spec.ts @@ -9,8 +9,8 @@ * 2. Empty query — Commands group renders, status bar absent (no fetch fired). * 3. Escape closes the palette. * - * Run locally: npx playwright test tests/e2e/cmdk-palette.spec.ts --project=chromium - * Run on prod: BASE_URL=https://www.nodebenchai.com npm run live-smoke -- tests/e2e/cmdk-palette.spec.ts + * Run locally: npx playwright test evals/e2e/cmdk-palette.spec.ts --project=chromium + * Run on prod: BASE_URL=https://www.nodebenchai.com npm run live-smoke -- evals/e2e/cmdk-palette.spec.ts * * The test deliberately does NOT assert on specific result counts or text * (those depend on what's in the user's account). It asserts on the diff --git a/evals/e2e/demo-walkthrough.spec.ts b/evals/e2e/demo-walkthrough.spec.ts index 68115c7a..37bee614 100644 --- a/evals/e2e/demo-walkthrough.spec.ts +++ b/evals/e2e/demo-walkthrough.spec.ts @@ -18,7 +18,7 @@ * * Usage: * BASE_URL=http://127.0.0.1:4173 npm run live-smoke:demo # or: - * BASE_URL=http://127.0.0.1:4173 npx playwright test tests/e2e/demo-walkthrough.spec.ts --project=chromium + * BASE_URL=http://127.0.0.1:4173 npx playwright test evals/e2e/demo-walkthrough.spec.ts --project=chromium * * Outputs: * screenshots → .tmp/demo-walkthrough/{tf}/*.png diff --git a/evals/e2e/edition-home-mobile.spec.ts b/evals/e2e/edition-home-mobile.spec.ts index d7fdd489..f0e26972 100644 --- a/evals/e2e/edition-home-mobile.spec.ts +++ b/evals/e2e/edition-home-mobile.spec.ts @@ -10,7 +10,7 @@ * .claude/rules/live_dom_verification.md (Tier B mobile coverage) * * Why this spec exists: - * The desktop spec at tests/e2e/edition-home.spec.ts asserts a single + * The desktop spec at evals/e2e/edition-home.spec.ts asserts a single * line of mobile coverage by calling page.setViewportSize(375, ...) * inside Scenario A — but the test runs under chromium with a desktop * user agent, no DPR shift, and no touch. That hides real mobile @@ -425,5 +425,5 @@ test.describe("Editorial home — mobile (375x812)", () => { * configs), Mobile-D's tap() falls back to click(). To run with full * touch dispatch use a dedicated mobile project; this spec is * intentionally project-agnostic so it runs in any chromium project that - * tests/e2e is configured for. + * evals/e2e is configured for. */ diff --git a/evals/e2e/live-smoke-mobile.spec.ts b/evals/e2e/live-smoke-mobile.spec.ts index 66457ac8..f686ab4b 100644 --- a/evals/e2e/live-smoke-mobile.spec.ts +++ b/evals/e2e/live-smoke-mobile.spec.ts @@ -9,7 +9,7 @@ * living outside CI: exactly the "test the pipeline cannot see" failure mode * issue #567 documented. This spec now asserts the one-surface reality; * richer per-clause coverage lives in the surface contract - * (docs/design/ui-contract/surfaces/decision-workspace.contract.json) executed + * (proof/ui-contract/surfaces/decision-workspace.contract.json) executed * by ui-contract-runner.spec.ts. */ diff --git a/evals/e2e/pr77-me-anchor-nav.spec.ts b/evals/e2e/pr77-me-anchor-nav.spec.ts index aef3efc6..3a9f570b 100644 --- a/evals/e2e/pr77-me-anchor-nav.spec.ts +++ b/evals/e2e/pr77-me-anchor-nav.spec.ts @@ -3,7 +3,7 @@ * * Defaults to production www.nodebenchai.com. Override with BASE_URL env to * point at a preview deployment or localhost dev server. Mirrors the - * BASE_URL convention from tests/e2e/live-smoke.spec.ts so this spec can be + * BASE_URL convention from evals/e2e/live-smoke.spec.ts so this spec can be * folded into the live-smoke run when desired. * * What this guards against: diff --git a/evals/e2e/ui-contract-runner.spec.ts b/evals/e2e/ui-contract-runner.spec.ts index f4152b13..6e45e187 100644 --- a/evals/e2e/ui-contract-runner.spec.ts +++ b/evals/e2e/ui-contract-runner.spec.ts @@ -1,6 +1,6 @@ /** * UI contract runner — executes every surface contract in - * docs/design/ui-contract/surfaces/*.contract.json against the live DOM. + * proof/ui-contract/surfaces/*.contract.json against the live DOM. * * Agent-native QA: the surface DECLARES its invariants (anchors, computed * geometry, theme wiring, deep-link-forced state copy) as data; this one diff --git a/evals/prompts/jarvis-voice-e2e-agent.md b/evals/prompts/jarvis-voice-e2e-agent.md index 45d25bd5..7115f10b 100644 --- a/evals/prompts/jarvis-voice-e2e-agent.md +++ b/evals/prompts/jarvis-voice-e2e-agent.md @@ -263,7 +263,7 @@ Key files: - `src/layouts/CockpitLayout.tsx` - `src/layouts/cockpitModes.ts` - `src/contexts/ThemeContext.tsx` -- `tests/e2e/voice-input.spec.ts` +- `evals/e2e/voice-input.spec.ts` Expected wiring targets from the current codebase: @@ -467,7 +467,7 @@ Before stopping, re-run: - typecheck - relevant unit tests if added -- `tests/e2e/voice-input.spec.ts` +- `evals/e2e/voice-input.spec.ts` Existing voice tests must keep passing. Add new tests; do not remove coverage to make failures disappear. @@ -475,7 +475,7 @@ Existing voice tests must keep passing. Add new tests; do not remove coverage to Add E2E coverage in: -- `tests/e2e/voice-input.spec.ts` +- `evals/e2e/voice-input.spec.ts` Minimum expectations: diff --git a/evals/prompts/sentinel-self-test.md b/evals/prompts/sentinel-self-test.md index f0bae537..a3f45a64 100644 --- a/evals/prompts/sentinel-self-test.md +++ b/evals/prompts/sentinel-self-test.md @@ -170,7 +170,7 @@ Remaining issues: | HUD system | `src/components/hud/` | | Views (29) | `src/features/research/`, `src/features/documents/`, `src/features/calendar/`, etc. | | Design tokens | `src/index.css`, `tailwind.config.ts` | -| E2E tests | `tests/e2e/` | +| E2E tests | `evals/e2e/` | | Sentinel | `scripts/sentinel/` (runner, diagnose, schema) | | Dogfood | `public/dogfood/`, `scripts/ui/`, `scripts/overstory/` | diff --git a/scripts/__tests__/releaseWorkflowContracts.test.ts b/scripts/__tests__/releaseWorkflowContracts.test.ts index c572f7f2..9f493327 100644 --- a/scripts/__tests__/releaseWorkflowContracts.test.ts +++ b/scripts/__tests__/releaseWorkflowContracts.test.ts @@ -72,7 +72,7 @@ describe("release workflow contracts", () => { it("authenticates every preview verifier without a cookie redirect loop", () => { const postDeploy = readRepoFile("scripts/post-deploy-verify.mjs"); const rawVerifier = readRepoFile("scripts/verify-live.ts"); - const liveSmoke = readRepoFile("tests/e2e/live-smoke.spec.ts"); + const liveSmoke = readRepoFile("evals/e2e/live-smoke.spec.ts"); expect(postDeploy).toContain("buildVercelBypassHeaders"); expect(postDeploy).not.toContain("x-vercel-set-bypass-cookie"); @@ -101,9 +101,9 @@ describe("release workflow contracts", () => { const workflow = readRepoFile(".github/workflows/tier-b-preview.yml"); const ci = readRepoFile(".github/workflows/ci.yml"); const playwright = readRepoFile("playwright.config.ts"); - const previewHelper = readRepoFile("tests/e2e/helpers/vercelPreview.ts"); + const previewHelper = readRepoFile("evals/e2e/helpers/vercelPreview.ts"); const securitySpec = readRepoFile( - "tests/e2e/vercel-preview-security.spec.ts", + "evals/e2e/vercel-preview-security.spec.ts", ); expect(workflow).toContain( @@ -112,9 +112,9 @@ describe("release workflow contracts", () => { expect(workflow).toContain( "VERCEL_AUTOMATION_BYPASS_SECRET is required to test the protected READY preview", ); - expect(workflow).toContain("tests/e2e/vercel-preview-security.spec.ts"); + expect(workflow).toContain("evals/e2e/vercel-preview-security.spec.ts"); expect(ci).toContain("scripts/__tests__/releaseWorkflowContracts.test.ts"); - expect(ci).toContain("tests/e2e/vercel-preview-security.spec.ts"); + expect(ci).toContain("evals/e2e/vercel-preview-security.spec.ts"); expect(playwright).not.toContain("extraHTTPHeaders"); expect(playwright).not.toContain('baseURL.endsWith(".vercel.app")'); expect(playwright).toContain( diff --git a/scripts/eval/run-three-lane-eval.ts b/scripts/eval/run-three-lane-eval.ts index 196d4193..d1911456 100644 --- a/scripts/eval/run-three-lane-eval.ts +++ b/scripts/eval/run-three-lane-eval.ts @@ -66,7 +66,7 @@ async function runLaneA(): Promise { [ "playwright", "test", - "tests/e2e/demo-walkthrough.spec.ts", + "evals/e2e/demo-walkthrough.spec.ts", "--project=chromium", "--reporter=list", ], diff --git a/scripts/repo/export-scratchnode-live-public.mjs b/scripts/repo/export-scratchnode-live-public.mjs index cdbf7047..a09b228d 100644 --- a/scripts/repo/export-scratchnode-live-public.mjs +++ b/scripts/repo/export-scratchnode-live-public.mjs @@ -24,10 +24,10 @@ const copyEntries = [ ["docs/architecture/PROTO_SURFACE_REAL_BACKEND_DOGFOOD.md", "docs/architecture/PROTO_SURFACE_REAL_BACKEND_DOGFOOD.md"], ["src/shared/agentOutputContract.ts", "contracts/agentOutputContract.ts"], ["src/shared/riskAttackEvaluator.ts", "contracts/riskAttackEvaluator.ts"], - ["tests/e2e/scratchnode-demo-route-gate.spec.ts", "tests/e2e/scratchnode-demo-route-gate.spec.ts"], - ["tests/e2e/scratchnode-live-route-honesty.spec.ts", "tests/e2e/scratchnode-live-route-honesty.spec.ts"], - ["tests/e2e/home-v5-output-contract.spec.ts", "tests/e2e/home-v5-output-contract.spec.ts"], - ["tests/e2e/proto-live-backend-dogfood.spec.ts", "tests/e2e/proto-live-backend-dogfood.spec.ts"], + ["evals/e2e/scratchnode-demo-route-gate.spec.ts", "evals/e2e/scratchnode-demo-route-gate.spec.ts"], + ["evals/e2e/scratchnode-live-route-honesty.spec.ts", "evals/e2e/scratchnode-live-route-honesty.spec.ts"], + ["evals/e2e/home-v5-output-contract.spec.ts", "evals/e2e/home-v5-output-contract.spec.ts"], + ["evals/e2e/proto-live-backend-dogfood.spec.ts", "evals/e2e/proto-live-backend-dogfood.spec.ts"], ["LICENSE", "LICENSE"], ]; @@ -265,7 +265,7 @@ function buildPackageJson() { dev: "vercel dev", verify: "npm run verify:static", "verify:static": "node scripts/verify-public-export.mjs", - "test:e2e": "playwright test tests/e2e/scratchnode-demo-route-gate.spec.ts tests/e2e/scratchnode-live-route-honesty.spec.ts tests/e2e/home-v5-output-contract.spec.ts --project=chromium --workers=1", + "test:e2e": "playwright test evals/e2e/scratchnode-demo-route-gate.spec.ts evals/e2e/scratchnode-live-route-honesty.spec.ts evals/e2e/home-v5-output-contract.spec.ts --project=chromium --workers=1", }, devDependencies: { "@playwright/test": "^1.53.0", diff --git a/scripts/score-dopamine.ts b/scripts/score-dopamine.ts index ac4fdcf6..af5e28d3 100644 --- a/scripts/score-dopamine.ts +++ b/scripts/score-dopamine.ts @@ -20,7 +20,7 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const ROOT = resolve(__dirname, ".."); const FOUNDER_VIEWS = join(ROOT, "src/features/founder/views"); -const SRC = join(ROOT, "src"); +const SRC = join(ROOT, "apps", "web", "src"); const FILES = { dashboard: join(FOUNDER_VIEWS, "FounderDashboardView.tsx"), diff --git a/scripts/scratchnode/scanLaunch.mjs b/scripts/scratchnode/scanLaunch.mjs index 1e937d56..2508ba18 100644 --- a/scripts/scratchnode/scanLaunch.mjs +++ b/scripts/scratchnode/scanLaunch.mjs @@ -26,7 +26,7 @@ const files = { goalRunbook: "docs/runbooks/GOAL_MODE_RELEASE_AUTOPILOT.md", launchRunbook: "docs/runbooks/SCRATCHNODE_LAUNCH_DAY.md", housekeepingRunbook: "docs/runbooks/WORKSPACE_HOUSEKEEPING.md", - routeHonestySpec: "tests/e2e/scratchnode-live-route-honesty.spec.ts", + routeHonestySpec: "evals/e2e/scratchnode-live-route-honesty.spec.ts", wikiBridgeSpec: "src/features/events/views/ScratchnodeWikiBridge.test.tsx", eventHandoffGoal: "goals/nodebench/001-event-handoff.md", boundaryGoal: "goals/scratchnode/003-privacy-boundary-honesty-gates.md", diff --git a/scripts/sentinel/runner.mjs b/scripts/sentinel/runner.mjs index 5f6aaaec..39db5dac 100644 --- a/scripts/sentinel/runner.mjs +++ b/scripts/sentinel/runner.mjs @@ -283,7 +283,7 @@ async function probeVoiceCoverage() { } // Check E2E test coverage - const testPath = join(ROOT, 'tests/e2e/voice-input.spec.ts'); + const testPath = join(ROOT, 'evals/e2e/voice-input.spec.ts'); if (existsSync(testPath)) { const testCode = readFileSync(testPath, 'utf8'); const scenarioCount = (testCode.match(/test\(/g) || []).length; diff --git a/scripts/sentinel/swarm.mjs b/scripts/sentinel/swarm.mjs index b094116c..3d691469 100644 --- a/scripts/sentinel/swarm.mjs +++ b/scripts/sentinel/swarm.mjs @@ -123,7 +123,7 @@ You are the Behavioral Sentinel. Your job is to verify that every interaction in - Read src/hooks/useVoiceIntentRouter.ts - Read src/hooks/useMainLayoutRouting.ts - Cross-reference: every MainView must have a voice alias - - Every voice command must have an E2E test in tests/e2e/voice-input.spec.ts + - Every voice command must have an E2E test in evals/e2e/voice-input.spec.ts 3. Accessibility: - grep for buttons without aria-label - grep for interactive elements < 44px (w-8 h-8 or smaller) diff --git a/scripts/ui/agentNativeUiLinter.mjs b/scripts/ui/agentNativeUiLinter.mjs index e1c90422..8560087d 100644 --- a/scripts/ui/agentNativeUiLinter.mjs +++ b/scripts/ui/agentNativeUiLinter.mjs @@ -5,7 +5,7 @@ import { fileURLToPath } from "node:url"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const ROOT = path.resolve(__dirname, "../.."); -const SRC_DIR = path.join(ROOT, "src"); +const SRC_DIR = path.join(ROOT, "apps", "web", "src"); const FILE_IGNORE = [ /node_modules/, diff --git a/scripts/ui/designLinter.mjs b/scripts/ui/designLinter.mjs index 20a528e9..d06deafd 100644 --- a/scripts/ui/designLinter.mjs +++ b/scripts/ui/designLinter.mjs @@ -20,7 +20,7 @@ import { fileURLToPath } from "node:url"; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const ROOT = path.resolve(__dirname, "../.."); -const SRC_DIR = path.join(ROOT, "src"); +const SRC_DIR = path.join(ROOT, "apps", "web", "src"); // ── Design Governance Spec (inlined from src/design-governance/defaultSpec.ts) // We inline the patterns here because this is an .mjs script that runs outside diff --git a/scripts/ui/publishDogfoodGallery.mjs b/scripts/ui/publishDogfoodGallery.mjs index be40370c..2ab27ca5 100644 --- a/scripts/ui/publishDogfoodGallery.mjs +++ b/scripts/ui/publishDogfoodGallery.mjs @@ -66,7 +66,7 @@ async function main() { if (!existsSync(SRC_DIR)) { throw new Error( `Missing ${SRC_DIR}. Run the dogfood e2e first:\n` + - ` npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`, + ` npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`, ); } @@ -74,7 +74,7 @@ async function main() { if (files.length === 0) { throw new Error( `No screenshots found in ${SRC_DIR}. Run the dogfood e2e first:\n` + - ` npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`, + ` npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`, ); } diff --git a/scripts/ui/runDogfoodGeminiQa.mjs b/scripts/ui/runDogfoodGeminiQa.mjs index 2b11752f..de15b536 100644 --- a/scripts/ui/runDogfoodGeminiQa.mjs +++ b/scripts/ui/runDogfoodGeminiQa.mjs @@ -4,7 +4,7 @@ import { fileURLToPath } from "node:url"; /** * Ground truth for the vision judge: every clause in the executable surface - * contracts (docs/design/ui-contract/surfaces/*.contract.json) is verified + * contracts (proof/ui-contract/surfaces/*.contract.json) is verified * deterministically in CI by ui-contract-runner.spec.ts. A vision finding that * contradicts a verified clause is a misread, not a bug — feeding the clause * list to the judge stops paid vision passes from re-litigating what CI diff --git a/scripts/ui/runDogfoodWalkthroughLocal.mjs b/scripts/ui/runDogfoodWalkthroughLocal.mjs index 7b96fdb5..8419ad44 100644 --- a/scripts/ui/runDogfoodWalkthroughLocal.mjs +++ b/scripts/ui/runDogfoodWalkthroughLocal.mjs @@ -531,7 +531,7 @@ async function main() { // eslint-disable-next-line no-console console.log(`Running dogfood e2e screenshots (BASE_URL=${baseURL}, routeShards=${routeShards})...`); await removePathRobustly(screenshotDir); - const playwrightCommand = `${npxCmd} playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`; + const playwrightCommand = `${npxCmd} playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1`; const routeLaneRuns = []; for (let shardIndex = 1; shardIndex <= routeShards; shardIndex += 1) { routeLaneRuns.push(async () => { @@ -650,7 +650,7 @@ async function main() { // eslint-disable-next-line no-console console.log(`Running scenario regression suite (BASE_URL=${baseURL})...`); const scen = spawn( - `${npxCmd} playwright test tests/e2e/scenario-regression.spec.ts --project=chromium --workers=1`, + `${npxCmd} playwright test evals/e2e/scenario-regression.spec.ts --project=chromium --workers=1`, { cwd: repoRoot, stdio: "inherit", diff --git a/scripts/ui/runScenarioRegression.mjs b/scripts/ui/runScenarioRegression.mjs index f5285243..9a113fed 100644 --- a/scripts/ui/runScenarioRegression.mjs +++ b/scripts/ui/runScenarioRegression.mjs @@ -115,7 +115,7 @@ async function main() { // eslint-disable-next-line no-console console.log(`Running scenario regression suite (BASE_URL=${baseURL})...`); - const scenCmd = `${npxCmd} playwright test tests/e2e/scenario-regression.spec.ts --project=chromium --workers=1`; + const scenCmd = `${npxCmd} playwright test evals/e2e/scenario-regression.spec.ts --project=chromium --workers=1`; const scen = spawn(scenCmd, { cwd: repoRoot, stdio: "inherit", diff --git a/scripts/verify-live.ts b/scripts/verify-live.ts index 6bd2ebce..d38b9485 100644 --- a/scripts/verify-live.ts +++ b/scripts/verify-live.ts @@ -150,7 +150,7 @@ const CHECKS: ReadonlyArray = [ // - CDN-cached stale HTML (bundle hash mismatch on rerun) // - For section-level checks (e.g. "footnotes count ≥ 8", // "capability dot grids non-empty"), use Tier B in - // `tests/e2e/live-smoke.spec.ts`. + // `evals/e2e/live-smoke.spec.ts`. // ───────────────────────────────────────────────────────────────── { name: "/redesign editorial home reachable", diff --git a/vitest.config.ts b/vitest.config.ts index cc0c79fa..99a125fd 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -8,6 +8,7 @@ export default defineConfig({ plugins: [react()], resolve: { alias: [ + { find: "@convex", replacement: toPosix(path.resolve(__dirname, "./backend/convex")) }, { find: "@features", replacement: toPosix(path.resolve(__dirname, "./apps/web/src/features")) }, { find: "@shared", replacement: toPosix(path.resolve(__dirname, "./apps/web/src/shared")) }, { find: /^@\//, replacement: `${toPosix(path.resolve(__dirname, "./apps/web/src"))}/` }, From 9e22d60e265ceb9463189094b09be7de66b680e8 Mon Sep 17 00:00:00 2001 From: hshum Date: Sun, 19 Jul 2026 18:55:30 -0700 Subject: [PATCH 5/5] wip(migration): adjudicated test repairs, findConvexDir honors convex.json, multi-line quote fix, docs+coordination (checkpoint 4) Co-Authored-By: Claude Fable 5 --- .claude/rules/backend_contract_migration.md | 16 +++---- .claude/rules/dogfood_verification.md | 6 +-- .claude/rules/eval_flywheel.md | 6 +-- .claude/rules/forecasting_os.md | 28 ++++++------- .claude/rules/gemini_qa_loop.md | 14 +++---- .claude/rules/grounded_eval.md | 4 +- .claude/rules/live_dom_verification.md | 2 +- .../rules/pipeline_operational_standard.md | 4 +- .claude/rules/pre_release_review.md | 6 +-- .claude/rules/product_design_dogfood.md | 6 +-- .claude/rules/reference_attribution.md | 2 +- .claude/rules/self_improvement_loop.md | 12 +++--- .claude/rules/telemetry_trajectory.md | 16 +++---- AGENTS.md | 42 +++++++++---------- AGENT_COORDINATION.md | 37 +++++++++------- CLAUDE.md | 18 ++++---- agent/README.md | 6 +-- agent/instructions.md | 2 +- agent/subagents/README.md | 2 +- .../notebook/MentionPicker.test.tsx | 2 +- .../components/CommandPalette.test.tsx | 2 +- .../ScratchnodeEventsSurface.test.tsx | 2 +- .../pipelines/pipelineTruthIsolation.test.ts | 2 +- .../redesign/chatRuns.contract.test.ts | 4 +- evals/e2e/ui-contract-runner.spec.ts | 2 +- nodeagent.yaml | 6 +-- nodekit.yaml | 10 ++--- .../src/tools/actionAuditTools.ts | 2 +- .../src/tools/architectTools.ts | 19 ++++++++- .../src/tools/authorizationTools.ts | 2 +- .../src/tools/componentTools.ts | 2 +- .../src/tools/cronTools.ts | 2 +- .../src/tools/dataModelingTools.ts | 2 +- .../src/tools/deploymentTools.ts | 2 +- .../src/tools/functionTools.ts | 2 +- .../src/tools/httpTools.ts | 2 +- .../src/tools/integrationBridgeTools.ts | 2 +- .../src/tools/paginationTools.ts | 2 +- .../src/tools/queryEfficiencyTools.ts | 2 +- .../src/tools/schedulerTools.ts | 2 +- .../src/tools/storageAuditTools.ts | 2 +- .../src/tools/transactionSafetyTools.ts | 2 +- .../src/tools/typeSafetyTools.ts | 2 +- .../src/tools/vectorSearchTools.ts | 2 +- .../src/__tests__/traceabilityDogfood.test.ts | 12 +++--- packages/mcp-local/src/tools/deltaTools.ts | 2 +- .../src/tools/founderStrategicOpsTools.ts | 2 +- packs/entity-intelligence/pack.yaml | 16 +++---- workers/node/routes/toolGraph.ts | 2 +- 49 files changed, 185 insertions(+), 159 deletions(-) diff --git a/.claude/rules/backend_contract_migration.md b/.claude/rules/backend_contract_migration.md index 1e9addf8..be1192de 100644 --- a/.claude/rules/backend_contract_migration.md +++ b/.claude/rules/backend_contract_migration.md @@ -1,9 +1,9 @@ --- paths: - - "convex/**/*.ts" - - "server/**/*.ts" + - "backend/convex/**/*.ts" + - "workers/node/**/*.ts" - "public/proto/*.html" - - "src/**/*.{ts,tsx}" + - "apps/web/src/**/*.{ts,tsx}" related_: [live_dom_verification, agentic_reliability, owner_mode_end_to_end, completion_traceability] --- @@ -41,7 +41,7 @@ contract, ship in **three PRs**, not one: - Old callers keep working; new callers can opt in. - For a rename: export both names, both pointing at the same handler. ```ts - // convex/events.ts + // backend/convex/events.ts const composeAnswerHandler = mutation({ /* ... */ }); export const composeAnswer = composeAnswerHandler; export const askAgent = composeAnswerHandler; // legacy alias @@ -101,9 +101,9 @@ If verification fails at any step, do not proceed to the next step. ## Contract path discipline (added 2026-05-27) -**Every Convex contract MUST specify the deployed path as `:`, not just the export name.** Convex resolves paths by filename — putting `requestSignInLink` in `convex/users.ts` deploys it at `users:requestSignInLink`, not `events:requestSignInLink`, regardless of what the contract doc says. +**Every Convex contract MUST specify the deployed path as `:`, not just the export name.** Convex resolves paths by filename — putting `requestSignInLink` in `backend/convex/users.ts` deploys it at `users:requestSignInLink`, not `events:requestSignInLink`, regardless of what the contract doc says. -Case study — PR #407/#409 hotfix (2026-05-27): the Step 8 contract specified mutations as `events:requestSignInLink` / `events:verifySignInToken` / `events:listMyEvents` to match the existing scratchnode namespace. The implementing agent put them in `convex/users.ts` (sensible — `events.ts` was overloaded). Deployed paths became `users:*`. Frontend and dogfood script kept calling `events:*` — silent function-not-found at runtime. Convex's HTTP API masks this as a generic "Server Error" message, hiding the mismatch from CI. +Case study — PR #407/#409 hotfix (2026-05-27): the Step 8 contract specified mutations as `events:requestSignInLink` / `events:verifySignInToken` / `events:listMyEvents` to match the existing scratchnode namespace. The implementing agent put them in `backend/convex/users.ts` (sensible — `events.ts` was overloaded). Deployed paths became `users:*`. Frontend and dogfood script kept calling `events:*` — silent function-not-found at runtime. Convex's HTTP API masks this as a generic "Server Error" message, hiding the mismatch from CI. ### Required contract format @@ -113,13 +113,13 @@ events:requestSignInLink({ email }) → { ok } // ✅ GOOD — deployed path is explicit users:requestSignInLink({ email }) → { ok } -// implemented in convex/users.ts as `export const requestSignInLink = mutation({...})` +// implemented in backend/convex/users.ts as `export const requestSignInLink = mutation({...})` ``` If the contract author wants the path to be `events:*` despite the implementation living in another file, the implementing PR must add an explicit re-export: ```ts -// convex/events.ts +// backend/convex/events.ts export { requestSignInLink, verifySignInToken, listMyEvents } from "./users"; ``` diff --git a/.claude/rules/dogfood_verification.md b/.claude/rules/dogfood_verification.md index f0029436..582196bb 100644 --- a/.claude/rules/dogfood_verification.md +++ b/.claude/rules/dogfood_verification.md @@ -88,9 +88,9 @@ Runs a full Scribe-like dogfood session locally and makes it UI-verifiable at `/ | Layer | Changes to | Deployed via | Visible when | |-------|-----------|-------------|--------------| -| React components | `.tsx` in `src/` | `vite build` | Preview server restarted | -| Convex functions | `.ts` in `convex/` | `npx convex deploy` | Backend redeployed | -| Convex schema | `convex/schema.ts` | `npx convex deploy` | Backend redeployed | +| React components | `.tsx` in `apps/web/src/` | `vite build` | Preview server restarted | +| Convex functions | `.ts` in `backend/convex/` | `npx convex deploy` | Backend redeployed | +| Convex schema | `backend/convex/schema.ts` | `npx convex deploy` | Backend redeployed | | MCP tools | `packages/mcp-local/` | `npx tsc` in package | MCP server restarted | | Stored data | DB records | Data migration or mutation | After migration runs | | Dashboard HTML | `briefHtml.ts` / `html.ts` | Inline — restart server | Server restarted | diff --git a/.claude/rules/eval_flywheel.md b/.claude/rules/eval_flywheel.md index 319a89ca..de0bec8c 100644 --- a/.claude/rules/eval_flywheel.md +++ b/.claude/rules/eval_flywheel.md @@ -3,7 +3,7 @@ Continuous self-improving eval loop for the NodeBench search pipeline. The system judges itself, diagnoses failures, fixes them, and loops until 100%. ## When to activate -- After any change to `server/routes/search.ts` or search-related tools +- After any change to `workers/node/routes/search.ts` or search-related tools - User says "run eval", "flywheel", "judge loop", "reach 100%" - After completing any implementation sprint touching search, entity enrichment, or result rendering - Automatically after deploying search changes @@ -109,10 +109,10 @@ Always do deep research before declaring a blocker permanent. The system should ## Key files - `packages/mcp-local/src/benchmarks/searchQualityEval.ts` — Eval harness (100+ queries, Gemini judge) - `packages/mcp-local/src/benchmarks/llmJudgeEval.ts` — Chained pipeline eval (tool A → tool B) -- `server/routes/search.ts` — Search route with 4-layer grounding pipeline +- `workers/node/routes/search.ts` — Search route with 4-layer grounding pipeline - `packages/mcp-local/src/tools/entityEnrichmentTools.ts` — Entity enrichment MCP tools - `packages/mcp-local/src/tools/webTools.ts` — web_search implementation -- `convex/tools/media/linkupSearch.ts` — Linkup search (Convex-side) +- `backend/convex/tools/media/linkupSearch.ts` — Linkup search (Convex-side) ## Anti-patterns - Declaring done at 80% because "the remaining 20% is hard" diff --git a/.claude/rules/forecasting_os.md b/.claude/rules/forecasting_os.md index 8e44ae43..7f4b4baa 100644 --- a/.claude/rules/forecasting_os.md +++ b/.claude/rules/forecasting_os.md @@ -1,12 +1,12 @@ --- paths: - - "convex/domains/forecasting/**" - - "convex/workflows/dailyLinkedInPost.ts" - - "src/features/research/components/Forecast*" - - "src/features/research/components/CalibrationPlot*" - - "src/features/research/components/BrierTrendChart*" - - "src/features/research/components/EvidenceTimeline*" - - "src/features/research/components/TraceBreadcrumb*" + - "backend/convex/domains/forecasting/**" + - "backend/convex/workflows/dailyLinkedInPost.ts" + - "apps/web/src/features/research/components/Forecast*" + - "apps/web/src/features/research/components/CalibrationPlot*" + - "apps/web/src/features/research/components/BrierTrendChart*" + - "apps/web/src/features/research/components/EvidenceTimeline*" + - "apps/web/src/features/research/components/TraceBreadcrumb*" - "packages/mcp-local/src/tools/forecastingTools.ts" related_: [reexamine_process, analyst_diagnostic, completion_traceability, reexamine_resilience] --- @@ -32,13 +32,13 @@ related_: [reexamine_process, analyst_diagnostic, completion_traceability, reexa ## Key files | File | Purpose | |------|---------| -| `convex/domains/forecasting/forecastManager.ts` | CRUD + 6 public dashboard queries | -| `convex/domains/forecasting/signalMatcher.ts` | Deterministic signal↔forecast cross-reference | -| `convex/domains/forecasting/traceWrapper.ts` | TRACE-wrapped forecast refresh (6 audit steps) | -| `convex/domains/forecasting/scoringEngine.ts` | Brier + log scoring, proper scoring rules | -| `convex/domains/forecasting/schema.ts` | 5 tables: forecasts, forecastEvidence, forecastResolutions, forecastUpdateHistory, forecastCalibrationLog | -| `convex/workflows/dailyLinkedInPost.ts` | LinkedIn pipeline with Δ badges, evidence links, TRACE | -| `src/features/research/components/ForecastCockpit.tsx` | Dashboard assembler (CalibrationPlot, BrierTrendChart, ForecastCard) | +| `backend/convex/domains/forecasting/forecastManager.ts` | CRUD + 6 public dashboard queries | +| `backend/convex/domains/forecasting/signalMatcher.ts` | Deterministic signal↔forecast cross-reference | +| `backend/convex/domains/forecasting/traceWrapper.ts` | TRACE-wrapped forecast refresh (6 audit steps) | +| `backend/convex/domains/forecasting/scoringEngine.ts` | Brier + log scoring, proper scoring rules | +| `backend/convex/domains/forecasting/schema.ts` | 5 tables: forecasts, forecastEvidence, forecastResolutions, forecastUpdateHistory, forecastCalibrationLog | +| `backend/convex/workflows/dailyLinkedInPost.ts` | LinkedIn pipeline with Δ badges, evidence links, TRACE | +| `apps/web/src/features/research/components/ForecastCockpit.tsx` | Dashboard assembler (CalibrationPlot, BrierTrendChart, ForecastCard) | | `packages/mcp-local/src/tools/forecastingTools.ts` | 9 MCP tools | ## Conventions diff --git a/.claude/rules/gemini_qa_loop.md b/.claude/rules/gemini_qa_loop.md index 1a5bae4c..a510311f 100644 --- a/.claude/rules/gemini_qa_loop.md +++ b/.claude/rules/gemini_qa_loop.md @@ -20,7 +20,7 @@ npx vite build npx vite preview --host 127.0.0.1 --port 4173 & # 3. Capture screenshots via e2e test -BASE_URL=http://127.0.0.1:4173 npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 +BASE_URL=http://127.0.0.1:4173 npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 # 4. Publish screenshots to public/dogfood/ npm run dogfood:publish @@ -92,9 +92,9 @@ Pattern: **Pro → Flash → Flash → Flash → Pro → Flash → Flash → Fla - 60% cost reduction while maintaining Pro-quality baseline analysis ### Config files -- `convex/domains/dogfood/screenshotQa.ts` — Screenshot QA action -- `convex/domains/dogfood/videoQa.ts` — Video QA action -- `convex/domains/dogfood/videoQaQueries.ts` — `getLatestProAnalysis` query for reference injection +- `backend/convex/domains/dogfood/screenshotQa.ts` — Screenshot QA action +- `backend/convex/domains/dogfood/videoQa.ts` — Video QA action +- `backend/convex/domains/dogfood/videoQaQueries.ts` — `getLatestProAnalysis` query for reference injection ## Multi-Variant Coverage @@ -125,12 +125,12 @@ This returns the step-by-step workflow chain with tool references and shell comm | File | Purpose | |------|---------| -| `convex/domains/dogfood/screenshotQa.ts` | Screenshot QA action (Gemini Flash + Jony Ive prompts) | -| `convex/domains/dogfood/videoQa.ts` | Video QA action (Gemini Flash + Jony Ive prompts) | +| `backend/convex/domains/dogfood/screenshotQa.ts` | Screenshot QA action (Gemini Flash + Jony Ive prompts) | +| `backend/convex/domains/dogfood/videoQa.ts` | Video QA action (Gemini Flash + Jony Ive prompts) | | `scripts/ui/runDogfoodGeminiQa.mjs` | CLI orchestrator for QA pipeline | | `scripts/ui/recordDogfoodWalkthrough.mjs` | Playwright video recorder | | `scripts/ui/publishDogfoodGallery.mjs` | Screenshot publisher (variant-aware manifest) | -| `tests/e2e/full-ui-dogfood.spec.ts` | E2e 4-variant screenshot capture test | +| `evals/e2e/full-ui-dogfood.spec.ts` | E2e 4-variant screenshot capture test | | `public/dogfood/qa-results.json` | QA score history | | `.tmp/dogfood-gemini-qa/*.json` | Latest QA results (screens + video) | | `shared/llm/modelCatalog.ts` | Model catalog with Gemini defaults | diff --git a/.claude/rules/grounded_eval.md b/.claude/rules/grounded_eval.md index 96304697..9b31414f 100644 --- a/.claude/rules/grounded_eval.md +++ b/.claude/rules/grounded_eval.md @@ -16,7 +16,7 @@ Before extraction, check source quality: - **medium**: 1-2 snippets — extract conservatively, flag as limited - **low**: 0 snippets — return "insufficient data" template, do NOT generate -Implementation: `retrievalConfidence` in `server/routes/search.ts` +Implementation: `retrievalConfidence` in `workers/node/routes/search.ts` ### Layer 2: Claim-Level Grounding Filter After Gemini extraction, verify each claim against source text: @@ -57,7 +57,7 @@ Implementation: `sourceIdx` field on signals, changes, risks in response - If judge variance exceeds 10% across runs, use majority vote (3x calls) ## Key files -- `server/routes/search.ts` — Layers 1-2 and 4 (retrieval, filter, citations) +- `workers/node/routes/search.ts` — Layers 1-2 and 4 (retrieval, filter, citations) - `packages/mcp-local/src/benchmarks/searchQualityEval.ts` — Layer 3 (grounded judge) - `packages/mcp-local/src/benchmarks/llmJudgeEval.ts` — Chain coherence criterion diff --git a/.claude/rules/live_dom_verification.md b/.claude/rules/live_dom_verification.md index 7da2f247..6a03c6b8 100644 --- a/.claude/rules/live_dom_verification.md +++ b/.claude/rules/live_dom_verification.md @@ -61,7 +61,7 @@ hydrates + Convex queries resolve. That means: return 200 not 404. Catches landmines (a) and (c). Does NOT prove: routes actually render the right component. -- **Tier B (tests/e2e/live-smoke.spec.ts via `npm run live-smoke`)** — +- **Tier B (evals/e2e/live-smoke.spec.ts via `npm run live-smoke`)** — Playwright loads each URL in a real browser, waits for hydration, asserts DOM nodes exist (e.g. "Link not found" on `/share/dummy`, `

` on landing, recovery CTAs visible). diff --git a/.claude/rules/pipeline_operational_standard.md b/.claude/rules/pipeline_operational_standard.md index bda9a700..b10b8816 100644 --- a/.claude/rules/pipeline_operational_standard.md +++ b/.claude/rules/pipeline_operational_standard.md @@ -34,7 +34,7 @@ instrument → judge → persist → surface → measure → regress. `reportsTokenCounts`, `capturedSources`, `emitStatusIsTerminal`. Order is stable — dashboards rely on it. Add a gate by extending `GATE_ORDER` -in `server/pipeline/diligenceJudge.ts`. +in `workers/node/pipeline/diligenceJudge.ts`. ## Verdict tiers (bounded enum) - `verified` — 0 failures, ≤ 2 skipped @@ -45,7 +45,7 @@ in `server/pipeline/diligenceJudge.ts`. ## Verification floor 1. `npx convex codegen` 2. `npx tsc --noEmit` -3. `npx vitest run server/pipeline/diligenceJudge.test.ts server/pipeline/diligenceProjectionWriter.test.ts` +3. `npx vitest run workers/node/pipeline/diligenceJudge.test.ts workers/node/pipeline/diligenceProjectionWriter.test.ts` 4. `npm run build` 5. `npm run dogfood:verify:smoke` when the UI changed diff --git a/.claude/rules/pre_release_review.md b/.claude/rules/pre_release_review.md index 59e117c1..be1e1830 100644 --- a/.claude/rules/pre_release_review.md +++ b/.claude/rules/pre_release_review.md @@ -106,7 +106,7 @@ If Convex is NOT deployed: - [ ] "Sign in" messages appear where expected ### Layer 10: WebSocket Gateway (< 3 min) -If gateway is running (`npx tsx server/index.ts`): +If gateway is running (`npx tsx workers/node/index.ts`): - [ ] `GET /health` returns 200 - [ ] `GET /mcp/health` returns session count - [ ] WebSocket connects with valid API key @@ -133,8 +133,8 @@ Test in at least one non-Chrome browser (Safari, Firefox, or Edge): ### Layer 13: Regression Risks (< 2 min) Check these known fragile areas: -- [ ] Voice server: if `server/index.ts` was modified, verify voice WebSocket still works -- [ ] Schema changes: if `convex/schema.ts` was modified, verify migration compatibility +- [ ] Voice server: if `workers/node/index.ts` was modified, verify voice WebSocket still works +- [ ] Schema changes: if `backend/convex/schema.ts` was modified, verify migration compatibility - [ ] Tool count: grep for hardcoded "289", "297", "304" — must all match current reality - [ ] Print: if Decision Memo or Postmortem was modified, verify print stylesheet (if exists) - [ ] OG tags: if `index.html` was modified, verify meta tags are correct diff --git a/.claude/rules/product_design_dogfood.md b/.claude/rules/product_design_dogfood.md index ec974776..e5f0a5bf 100644 --- a/.claude/rules/product_design_dogfood.md +++ b/.claude/rules/product_design_dogfood.md @@ -1,8 +1,8 @@ --- paths: - - "src/**/*.tsx" - - "src/**/*.css" - - "tests/e2e/**/*.ts" + - "apps/web/src/**/*.tsx" + - "apps/web/src/**/*.css" + - "evals/e2e/**/*.ts" - "scripts/ui/**/*.mjs" related_: [analyst_diagnostic, dogfood_verification, reexamine_design_reduction, completion_traceability] --- diff --git a/.claude/rules/reference_attribution.md b/.claude/rules/reference_attribution.md index 841257b8..d6fdfb57 100644 --- a/.claude/rules/reference_attribution.md +++ b/.claude/rules/reference_attribution.md @@ -58,7 +58,7 @@ from topic files rather than persisting it directly." Honest > embellished. ## What this rule enforces - New architecture docs have a "Prior art" section or the PR is rejected -- New server/pipeline/ or convex/domains/ modules have a file header comment linking their doc +- New workers/node/pipeline/ or backend/convex/domains/ modules have a file header comment linking their doc - When copying a Claude Code skill, cite `.claude/skills/` in the new skill's frontmatter ## Anti-patterns diff --git a/.claude/rules/self_improvement_loop.md b/.claude/rules/self_improvement_loop.md index 82c60501..62db0ebe 100644 --- a/.claude/rules/self_improvement_loop.md +++ b/.claude/rules/self_improvement_loop.md @@ -1,13 +1,13 @@ # Self-Improvement Loop — Operating Manual The agent brain for NodeBench's continuous improvement flywheel. Read this on every loop cycle -(manual or scheduled). The deterministic substrate is `scripts/improvement-loop/`; this rule is +(manual or scheduled). The deterministic substrate is `adw/improvement-loop/`; this rule is how the agent drives it. Canonical design: `docs/architecture/SELF_IMPROVEMENT_LOOP.md`. ## Operating model: bounded + goal-driven (NOT "never stop") -This loop is governed by the Self-Directed Development OS in [`goals/README.md`](../../goals/README.md) -and the hard gates in [`goals/HARD_GATES.md`](../../goals/HARD_GATES.md). The lesson is **not** +This loop is governed by the Self-Directed Development OS in [`adw/goals/README.md`](../../goals/README.md) +and the hard gates in [`adw/goals/HARD_GATES.md`](../../goals/HARD_GATES.md). The lesson is **not** "let the agent run forever" — it is: closed goal, reviewable definition of done, focused subagents, hard gates, batch feedback. @@ -18,7 +18,7 @@ hard gates, batch feedback. - **Cadence:** daily small-loop (propose ONE bounded next step; only tiny CI-gated detector fixes auto-ship, ≤3/day) + weekly self-review (propose issues/cuts/goals, never auto-add features). - Substantive work becomes a Goal Card (`goals//NNN-slug.md`) the founder approves. + Substantive work becomes a Goal Card (`adw/goals//NNN-slug.md`) the founder approves. - **Operating rule:** Human sets the *why* + boundary; agent explores the *how*; tests decide; docs preserve. - **Hard gates:** prod deploy, destructive migrations, auth, billing, public/private permission rules, data deletion, legal/privacy copy, wiki publish, host/mod privileges, secrets → propose only. @@ -32,7 +32,7 @@ hard gates, batch feedback. ### 1. OBSERVE + SCORE ```bash -node scripts/improvement-loop/run-cycle.mjs --effort-budget 3 +node adw/improvement-loop/run-cycle.mjs --effort-budget 3 ``` This runs `scan.mjs`, writes `backlog.latest.json`, selects the top auto-safe opportunity, and appends a cycle to `ledger.json`. @@ -84,7 +84,7 @@ If the change would touch any of these, it is **human-gated** — queue it, do N - Shipping a fix for a false-positive scanner hit (validate first). - Auto-shipping a human-gated change. - Claiming "live" on a green build (live-DOM verify first — `live_dom_verification.md`). -- Building a parallel loop instead of extending `scripts/improvement-loop/` + the existing dogfood/eval scripts. +- Building a parallel loop instead of extending `adw/improvement-loop/` + the existing dogfood/eval scripts. ## Related rules - `flywheel_continuous` · `self_building_loop` · `eval_flywheel` · `analyst_diagnostic` diff --git a/.claude/rules/telemetry_trajectory.md b/.claude/rules/telemetry_trajectory.md index b176f5b3..f794d568 100644 --- a/.claude/rules/telemetry_trajectory.md +++ b/.claude/rules/telemetry_trajectory.md @@ -10,7 +10,7 @@ Make telemetry and agent step trajectories measurable, debuggable, and beautiful ## Dev-side telemetry (internal) -### Search trace (server/routes/search.ts) +### Search trace (workers/node/routes/search.ts) Every search request emits a `trace` array with structured steps: ```typescript interface TraceStep { @@ -83,13 +83,13 @@ Every search result should be traceable back to: 5. What the user should verify independently ## Key files -- `src/features/controlPlane/components/SearchTrace.tsx` — User-facing trace UI -- `src/features/agents/components/FastAgentPanel/StepTimeline.tsx` — Agent step timeline -- `src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx` — Parallel execution -- `src/features/monitoring/views/AgentTelemetryDashboard.tsx` — Telemetry dashboard -- `src/features/trajectory/types.ts` — Trajectory score types -- `convex/domains/agents/traceTypes.ts` — TRACE framework types -- `server/routes/search.ts` — Search trace emission +- `apps/web/src/features/controlPlane/components/SearchTrace.tsx` — User-facing trace UI +- `apps/web/src/features/agents/components/FastAgentPanel/StepTimeline.tsx` — Agent step timeline +- `apps/web/src/features/agents/components/FastAgentPanel/FastAgentPanel.ParallelTaskTimeline.tsx` — Parallel execution +- `apps/web/src/features/monitoring/views/AgentTelemetryDashboard.tsx` — Telemetry dashboard +- `apps/web/src/features/trajectory/types.ts` — Trajectory score types +- `backend/convex/domains/agents/traceTypes.ts` — TRACE framework types +- `workers/node/routes/search.ts` — Search trace emission - `packages/mcp-local/src/benchmarks/searchQualityEval.ts` — Eval harness ## Related rules diff --git a/AGENTS.md b/AGENTS.md index d1325097..e2398305 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ `AGENT_COORDINATION.md` (repo root) is the live ledger of **who is editing what right now** and **what backend contracts are ready to call**. Before editing a hot file -(`public/proto/home-v5.html`, `convex/events.ts`, `convex/schema/eventsSchema.ts`): scan +(`public/proto/home-v5.html`, `backend/convex/events.ts`, `backend/convex/schema/eventsSchema.ts`): scan **Active claims**, **claim your region** before you start, and **hand off** new backend contracts there. **Never** `convex deploy`/`deploy:prod` out-of-band to the shared prod deployment — it pushes un-reviewed schema/functions and breaks the other agent's next @@ -635,8 +635,8 @@ Rules: - The browser flow may prepare a handoff prompt for Claude Code or OpenClaw, but the prompt is a consequence of the shared packet and task id, not a replacement for them. - After changes to these routes or the control-plane handoff UI, run: - `npx tsc --noEmit` - - `npx vitest run server/searchRoute.test.ts server/sharedContextRoute.test.ts` - - `npx vitest run src/features/controlPlane/views/ControlPlaneLanding.test.tsx src/features/controlPlane/components/SyncProvenanceBadge.test.tsx src/features/mcp/components/SharedContextProtocolPanel.test.tsx src/features/mcp/components/SyncBridgeAccountPanel.test.tsx` + - `npx vitest run workers/node/searchRoute.test.ts workers/node/sharedContextRoute.test.ts` + - `npx vitest run apps/web/src/features/controlPlane/views/ControlPlaneLanding.test.tsx apps/web/src/features/controlPlane/components/SyncProvenanceBadge.test.tsx apps/web/src/features/mcp/components/SharedContextProtocolPanel.test.tsx apps/web/src/features/mcp/components/SyncBridgeAccountPanel.test.tsx` - `npm run build` ## Self maintenance (nightly, autonomous) @@ -693,7 +693,7 @@ npx convex run --push "domains/operations/selfMaintenance:getLatestSelfMaintenan ``` Cron: -- `convex/crons.ts` schedules `domains/operations/selfMaintenance:runNightlySelfMaintenanceCron` daily. +- `backend/convex/crons.ts` schedules `domains/operations/selfMaintenance:runNightlySelfMaintenanceCron` daily. ## Flywheel mode (UI dogfood + Gemini QA) @@ -766,7 +766,7 @@ Full pipeline for any coding agent (Claude Code, Cursor, Windsurf, Codex): ```bash # Full cycle: build → capture → publish → record → score npx vite build -BASE_URL=http://127.0.0.1:4173 npx playwright test tests/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 +BASE_URL=http://127.0.0.1:4173 npx playwright test evals/e2e/full-ui-dogfood.spec.ts --project=chromium --workers=1 npm run dogfood:publish node scripts/ui/recordDogfoodWalkthrough.mjs --baseURL http://127.0.0.1:4173 --publish static BASE_URL=http://127.0.0.1:4173 node scripts/ui/runDogfoodGeminiQa.mjs @@ -800,7 +800,7 @@ Goal: errors become deduped cards, humans approve, agent does legwork, humans re Card substrate: `agentTaskSessions` rows with `metadata.kind='bug_card'` and deterministic `metadata.signature`. Client capture (prod only): -- `src/main.tsx` reports `window.error` and `unhandledrejection` to `domains/operations/bugLoop:reportClientError` with local rate limit. +- `apps/web/src/main.tsx` reports `window.error` and `unhandledrejection` to `domains/operations/bugLoop:reportClientError` with local rate limit. Manual triage: @@ -1015,7 +1015,7 @@ Spawned as a local process by the MCP client. No HTTP server, no port, no auth t "mcpServers": { "nodebench": { "command": "npx", - "args": ["tsx", "mcp_tools/gateway_server/stdioServer.ts"], + "args": ["tsx", "mcp_tools/gateway_workers/node/stdioServer.ts"], "env": { "CONVEX_URL": "https://formal-shepherd-851.convex.site", "MCP_SECRET": "" @@ -1032,7 +1032,7 @@ Spawned as a local process by the MCP client. No HTTP server, no port, no auth t "mcpServers": { "nodebench": { "command": "npx", - "args": ["tsx", "mcp_tools/gateway_server/stdioServer.ts"], + "args": ["tsx", "mcp_tools/gateway_workers/node/stdioServer.ts"], "env": { "CONVEX_URL": "https://formal-shepherd-851.convex.site", "MCP_SECRET": "" @@ -1049,7 +1049,7 @@ Spawned as a local process by the MCP client. No HTTP server, no port, no auth t "mcpServers": { "nodebench": { "command": "npx", - "args": ["tsx", "mcp_tools/gateway_server/stdioServer.ts"], + "args": ["tsx", "mcp_tools/gateway_workers/node/stdioServer.ts"], "env": { "CONVEX_URL": "https://formal-shepherd-851.convex.site", "MCP_SECRET": "" @@ -1067,7 +1067,7 @@ Spawned as a local process by the MCP client. No HTTP server, no port, no auth t Run the HTTP server locally if you prefer the HTTP transport or need to test the same protocol used in production. -**1. Set environment variables** (create `mcp_tools/gateway_server/.env` or export): +**1. Set environment variables** (create `mcp_tools/gateway_workers/node/.env` or export): ```bash CONVEX_URL=https://formal-shepherd-851.convex.site # .convex.site, NOT .convex.cloud @@ -1342,10 +1342,10 @@ npx convex run domains/social/linkedinScheduleGrid:scheduleNextApprovedPost '{"t ### Key files -- `convex/domains/social/linkedinContentQueue.ts` — Queue CRUD, dedup, stats -- `convex/domains/social/linkedinQualityJudge.ts` — LLM judge + batch processor -- `convex/domains/social/linkedinScheduleGrid.ts` — Time slots, scheduling, backfill -- `convex/domains/social/linkedinPosting.ts` — Queue processor (`processQueuedPost`) +- `backend/convex/domains/social/linkedinContentQueue.ts` — Queue CRUD, dedup, stats +- `backend/convex/domains/social/linkedinQualityJudge.ts` — LLM judge + batch processor +- `backend/convex/domains/social/linkedinScheduleGrid.ts` — Time slots, scheduling, backfill +- `backend/convex/domains/social/linkedinPosting.ts` — Queue processor (`processQueuedPost`) ### Founder voice & writing style guide @@ -1425,13 +1425,13 @@ npx convex run --prod domains/social/linkedinScheduleGrid:scheduleNextApprovedPo npx convex run --prod domains/social/linkedinContentQueue:listQueueItems '{"status":"approved","limit":5}' ``` -**Key file**: `convex/workflows/founderPostGenerator.ts` — `generateFounderPost` + `weeklyFounderBatch` +**Key file**: `backend/convex/workflows/founderPostGenerator.ts` — `generateFounderPost` + `weeklyFounderBatch` ### Pre-post verification pipeline Every post goes through 4 verification checks before hitting LinkedIn. Runs inside `processQueuedPost` before the actual API call. -**File**: `convex/domains/social/linkedinPrePostVerification.ts` — `verifyBeforePosting` internalAction +**File**: `backend/convex/domains/social/linkedinPrePostVerification.ts` — `verifyBeforePosting` internalAction **4 checks (run in order, cheapest first):** @@ -1449,7 +1449,7 @@ Every post goes through 4 verification checks before hitting LinkedIn. Runs insi - Claim contradiction → status set to `failed` → held for manual review - Search/LLM errors → soft warning, non-blocking (post proceeds) -**Auto-regeneration**: `convex/workflows/founderPostGenerator.ts` — `regenerateFailedPersonalPosts` queries `needs_rewrite` items with persona FOUNDER, generates fresh replacements, marks old ones as rejected. +**Auto-regeneration**: `backend/convex/workflows/founderPostGenerator.ts` — `regenerateFailedPersonalPosts` queries `needs_rewrite` items with persona FOUNDER, generates fresh replacements, marks old ones as rejected. **Manual commands:** ```bash @@ -1751,7 +1751,7 @@ After every implementation — before moving to the next task — answer these 3 Real-world evaluation of MCP tool orchestration using open-source software engineering tasks from the SWE-bench Verified dataset (500 human-validated GitHub issues from princeton-nlp). -**→ Quick Refs:** Run dataset bench: `cd packages/mcp-local && npx vitest run src/__tests__/evalDatasetBench.test.ts` | Run tool coverage: `npx vitest run src/__tests__/evalHarness.test.ts` | Dataset: [SWE-bench Verified](https://huggingface.co/datasets/princeton-nlp/SWE-bench_Verified) | See [AI Flywheel](#how-the-two-loops-compose-the-ai-flywheel-verification--eval) | See [Eval-Driven Development Loop](#eval-driven-development-loop) | See [6-Phase Verification](#6-phase-iterative-deep-dive-verification-process) +**→ Quick Refs:** Run dataset bench: `cd packages/mcp-local && npx vitest run apps/web/src/__tests__/evalDatasetBench.test.ts` | Run tool coverage: `npx vitest run apps/web/src/__tests__/evalHarness.test.ts` | Dataset: [SWE-bench Verified](https://huggingface.co/datasets/princeton-nlp/SWE-bench_Verified) | See [AI Flywheel](#how-the-two-loops-compose-the-ai-flywheel-verification--eval) | See [Eval-Driven Development Loop](#eval-driven-development-loop) | See [6-Phase Verification](#6-phase-iterative-deep-dive-verification-process) ### What it tests @@ -1820,13 +1820,13 @@ Beyond per-task pipelines, 3 cross-task tests prove the flywheel loops connect: ```bash # Full dataset bench (20 tasks, 473 tool calls) -cd packages/mcp-local && npx vitest run src/__tests__/evalDatasetBench.test.ts --reporter=verbose +cd packages/mcp-local && npx vitest run apps/web/src/__tests__/evalDatasetBench.test.ts --reporter=verbose # Tool-level coverage (47 tools, 76 calls) -cd packages/mcp-local && npx vitest run src/__tests__/evalHarness.test.ts --reporter=verbose +cd packages/mcp-local && npx vitest run apps/web/src/__tests__/evalHarness.test.ts --reporter=verbose # Both together -cd packages/mcp-local && npx vitest run src/__tests__/evalDatasetBench.test.ts src/__tests__/evalHarness.test.ts --reporter=verbose +cd packages/mcp-local && npx vitest run apps/web/src/__tests__/evalDatasetBench.test.ts apps/web/src/__tests__/evalHarness.test.ts --reporter=verbose ``` ### Latest results diff --git a/AGENT_COORDINATION.md b/AGENT_COORDINATION.md index 88d9bc72..4be625d4 100644 --- a/AGENT_COORDINATION.md +++ b/AGENT_COORDINATION.md @@ -5,7 +5,7 @@ gracefully instead of clobbering each other. This is the **single source of trut "who is touching what right now"** and "what's been built that you can call." > **Why this exists:** during the ScratchNode push, two agents edited -> `public/proto/home-v5.html` and `convex/` at the same time. It caused a real prod +> `public/proto/home-v5.html` and `backend/convex/` at the same time. It caused a real prod > incident (a Convex schema-validation failure from a `lastActivityAt` field one agent's > `deploy:prod` stamped onto rows the other agent's schema didn't declare), plus constant > line-churn / "file modified since read" fights. A 30-second note prevents all of it. @@ -13,7 +13,7 @@ gracefully instead of clobbering each other. This is the **single source of trut ## How to use it (the whole protocol) 1. **Read before you edit a hot file.** Hot files = `public/proto/home-v5.html`, - `convex/events.ts`, `convex/schema/eventsSchema.ts`, `convex/schema.ts`, and the + `backend/convex/events.ts`, `backend/convex/schema/eventsSchema.ts`, `backend/convex/schema.ts`, and the ScratchNode e2e specs. Scan **Active claims** below. 2. **Claim your region** before editing: append a bullet to **Active claims** — `agent · file:region · intent · branch/PR`. Region matters: `home-v5.html#directory` @@ -44,7 +44,7 @@ deploy happened, then something clobbered it. **Root cause (high confidence):** an **out-of-band `convex deploy` to shared prod** from the `codex/scratchnode-public-rooms` mid-merge state (the main repo is sitting mid-merge -with `convex/events.ts` in conflict). This is the exact collision this ledger exists to +with `backend/convex/events.ts` in conflict). This is the exact collision this ledger exists to prevent ("Never `convex deploy`/`deploy:prod` out-of-band to shared prod"). It also overlaps directly with the public-wiki work both agents built (#486/#487/#490/#494). @@ -57,8 +57,17 @@ Server Error) for an unknown slug. ## Active claims (who is editing what RIGHT NOW) -- **2026-06-03 · Claude →** `convex/*#handoff-token`, `src/.../ScratchnodePrivateBridge`, - `src/App.tsx#events-private-route`, `public/proto/home-v5.html#private-handoff` · +> **STANDARD-TREE MIGRATION (2026-07-19, feat/standard-tree-migration): repo paths moved.** +> `convex/` → `backend/convex/` (convex.json `functions` added; function identifiers unchanged), +> `src/` + `index.html` → `apps/web/` (`@convex` alias replaces relative `../convex` imports), +> `server/` → `workers/node/`, `tests/` → `evals/`, `scripts/improvement-loop` + `goals/` → `adw/`, +> `docs/design/ui-contract/` → `proof/ui-contract/`. `public/`, `api/`, env files, `dist/` stay at +> repo root. Hot files are now `public/proto/home-v5.html` (unchanged), `backend/convex/events.ts`, +> `backend/convex/schema/eventsSchema.ts`, and the ScratchNode e2e specs under `evals/e2e/`. +> Update any stale path references before editing; old paths no longer exist. + +- **2026-06-03 · Claude →** `backend/convex/*#handoff-token`, `apps/web/src/.../ScratchnodePrivateBridge`, + `apps/web/src/App.tsx#events-private-route`, `public/proto/home-v5.html#private-handoff` · shipping the cross-domain private-notes token bridge (opaque stateful token, PR #496) · branch `feat/scratchnode-private-notes-token`. **No collision** — Codex DEFERRED this (see their verification hand-off below: "private-note token bridge … keep @@ -71,20 +80,20 @@ Server Error) for an unknown slug. - **2026-07-17 · Claude → any agent building UI contracts / `.well-known/agent-ui.json`** · The runtime UI-contract substrate ALREADY EXISTS — do not create a parallel `.ui/contract.json`. PR #575 (auto-merge armed) ships: - `docs/design/ui-contract/surfaces/*.contract.json` (schema + `proof/ui-contract/surfaces/*.contract.json` (schema `nodebench-surface-contract-v1`: anchors, computed-geometry invariants, `theme.storageKey` wiring, deep-link-forced states with expect/forbid copy) + - `tests/e2e/ui-contract-runner.spec.ts` (generic runner, one spec for every + `evals/e2e/ui-contract-runner.spec.ts` (generic runner, one spec for every manifest, theme × viewport) + Tier B wiring in `tier-b-preview.yml` (CI-on-drift is DONE). Reversion-proved: wrong `gridTracks` fails exactly the mobile variants. **The open delta for you**: (1) a build-time generator that PROJECTS the repo contracts into a served `public/.well-known/agent-ui.json` — public affordance view only (surfaces, routes, anchors/testids, actions), NOT internal QA clauses - like forbidText; single source of truth stays in `docs/design/ui-contract/surfaces/`, + like forbidText; single source of truth stays in `proof/ui-contract/surfaces/`, the served file is generated, never hand-edited; (2) a `version` bump discipline on the schema const; (3) contracts for the replay page (`/r/:hash`) and mobile - shell. Read `docs/design/ui-contract/README.md` ("Runtime surface contracts") - first. Claim `docs/design/ui-contract/surfaces/*` + `vite.config.ts` (or the + shell. Read `proof/ui-contract/README.md` ("Runtime surface contracts") + first. Claim `proof/ui-contract/surfaces/*` + `vite.config.ts` (or the generator script) in Active claims before starting. **HARD REQUIREMENT — fail-closed hash binding.** This repo has a documented history of prod serving stale bundles while CI reads green (see @@ -95,7 +104,7 @@ Server Error) for an unknown slug. `generatedAt` into `agent-ui.json`, and the manifest MUST tell consumers to cross-check that fingerprint against the actually-served bundle and DISTRUST the contract on mismatch. Detection is not enough; the contract must instruct - fail-closed. Also note: `tests/e2e/ui-contract-runner.spec.ts` accepts + fail-closed. Also note: `evals/e2e/ui-contract-runner.spec.ts` accepts `BASE_URL`, so any independent party can replay the full contract against production — preserve that property (no CI-only assumptions). @@ -183,8 +192,8 @@ Server Error) for an unknown slug. with a copyable `/wiki` URL; wiki sheet has open/copy public actions. - Answer cards: live answer `Share` copies a real addressable URL `/e/:slug#answer-` instead of only showing a toast. - - Verification: `npx vitest run convex/__tests__/scratchnode.publicWikiRead.test.ts`, - `npx playwright test tests/e2e/scratchnode-live-route-honesty.spec.ts --project=chromium --workers=1`, + - Verification: `npx vitest run backend/convex/__tests__/scratchnode.publicWikiRead.test.ts`, + `npx playwright test evals/e2e/scratchnode-live-route-honesty.spec.ts --project=chromium --workers=1`, `npx tsc --noEmit --pretty false`, `npm run build`. - **2026-06-03 - Codex verification after #494** - Current ScratchNode viral loop @@ -319,7 +328,7 @@ Server Error) for an unknown slug. do not expose session ids, private notes, anchors, or tokens in public links. - **Claude** — directory viral slice (`home-v5.html#directory`): flyer cards + "● N inside" presence cue + policy-aware action (open → "Join now"; request → "Request to join" `