2627 lines
132 KiB
Markdown
2627 lines
132 KiB
Markdown
# 1CLLMARCH Fact Check And Stabilization Plan
|
||
|
||
Updated at: 2026-04-11
|
||
Source baseline: `docs/TECH/1CLLMARCH.md`
|
||
|
||
## 1. Purpose
|
||
|
||
This document fixes the current factual state of the codebase against `1CLLMARCH` and records a production-focused stabilization plan that preserves:
|
||
|
||
1. existing MCP routes;
|
||
2. manual routing and guard logic;
|
||
3. GUI manual markup + autorun operational loop.
|
||
|
||
## 2. Executive Reality Check
|
||
|
||
Current state is **not MVP** and also **not stable production**.
|
||
It is an advanced prototype with strong observability and eval tooling, but with architectural coupling and quality bottlenecks.
|
||
|
||
Approximate readiness against target architecture: **55/100**.
|
||
|
||
## 3. Verified Facts (Code + Runtime)
|
||
|
||
1. Strong engineering layers already exist:
|
||
- requirement extraction, coverage, grounding checks;
|
||
- rich debug payload and session trace;
|
||
- investigation state/followup continuity;
|
||
- manual annotation schema and post-analysis queues;
|
||
- async eval run + live history APIs.
|
||
2. Main production blockers:
|
||
- orchestration monolith and coupling in `assistantService.ts`;
|
||
- deterministic/template-heavy final answer construction;
|
||
- large lexical heuristic surface for intent routing;
|
||
- temporal policy inconsistency (date handling differs by lane/path);
|
||
- hidden fallback behavior around historical snapshot assumptions.
|
||
3. Quality metrics from latest Stage1 runs confirm weak user value:
|
||
- low retrieval differentiation;
|
||
- high generic explanation rate;
|
||
- low accountant actionability;
|
||
- zero mechanism specificity.
|
||
|
||
## 4. Gap Vs `1CLLMARCH`
|
||
|
||
### 4.1 Already aligned (partially or strongly)
|
||
|
||
1. Structured normalization contracts and validator loops.
|
||
2. Coverage and grounding artifacts (with different naming than target).
|
||
3. Conversation state persistence.
|
||
4. Operational diagnostics and report generation.
|
||
|
||
### 4.2 Not aligned enough for stable prod
|
||
|
||
1. Role separation (Interpreter/Planner/Critic/Answer) is incomplete and strongly coupled.
|
||
2. Final user answer quality is constrained by deterministic template synthesis.
|
||
3. Unified contract for analysis date/time scope is missing across all lanes.
|
||
4. Result classes from target (`FULLY_ANSWERED`, `BLOCKED_BY_*`, etc.) are not normalized as one contract.
|
||
5. Reason-code taxonomy exists but is fragmented across modules.
|
||
|
||
## 5. Stabilization Plan (No Route Breakage)
|
||
|
||
## Stage 1 (P0): Unified Analysis Context + Temporal Hardening
|
||
|
||
Goal:
|
||
1. Introduce unified `analysis_context` contract.
|
||
2. Propagate it through eval -> assistant -> runtime lanes.
|
||
3. Remove hidden hardcoded period fallback in live MCP plan generation.
|
||
4. Keep backward compatibility (`period_hint` still supported).
|
||
|
||
Acceptance:
|
||
1. If analysis date is set, runtime uses it explicitly in both deep/address paths.
|
||
2. If analysis date is absent, runtime no longer silently injects fixed historical date in live-plan fallback.
|
||
3. Existing APIs and manual workflows remain operational.
|
||
|
||
Implemented in current pass:
|
||
1. Added unified `analysis_context` contract to request context (`as_of_date`, `period_from`, `period_to`, `snapshot_mode`, `source`).
|
||
2. Added compatibility bridge: legacy `period_hint` is still accepted and normalized into `analysis_context`.
|
||
3. Propagated analysis context through eval flows into assistant runtime.
|
||
4. Applied analysis context in temporal guard with explicit precedence over implicit snapshot lock.
|
||
5. Removed hidden hardcoded live-plan fallback period by switching to:
|
||
- explicit analysis period/date when provided;
|
||
- query-derived period when present;
|
||
- generic live probe when period is absent.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted runtime tests passed:
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Status: **Completed**
|
||
|
||
## Stage 2 (P1): Orchestrator Decomposition (Behavior-Preserving Refactor)
|
||
|
||
Goal:
|
||
1. Split monolith into explicit modules:
|
||
- QueryFrame builder
|
||
- Execution planner
|
||
- Evidence assembler
|
||
- Coverage critic
|
||
- Answer package builder
|
||
2. Preserve current behavior under compatibility adapter.
|
||
|
||
Acceptance:
|
||
1. No MCP route regressions.
|
||
2. Existing tests and autorun loop remain green.
|
||
|
||
Implemented in current pass (Phase 2.1):
|
||
1. Added new orchestration contract module:
|
||
- `assistant_query_frame_v1`
|
||
- `assistant_execution_plan_v1`
|
||
- `assistant_evidence_bundle_v1`
|
||
- `assistant_coverage_contract_v1`
|
||
- outcome classifier (`FULLY_ANSWERED`, `PARTIALLY_ANSWERED`, `BLOCKED_*`, `MISROUTED`, `FAILED_TO_BIND_ENTITIES`)
|
||
2. Integrated contracts into deep-lane runtime without route/answer behavior changes:
|
||
- debug payload now includes `assistant_outcome_class_v1`;
|
||
- debug payload and event logs now include `assistant_orchestration_contracts_v1`.
|
||
3. Added unit regression tests:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted tests passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.2):
|
||
1. Added runtime orchestration adapter for the deep lane:
|
||
- `assistantOrchestrationRuntimeAdapter.ts`
|
||
- unified pipeline call for `requirements -> coverage -> grounding` with stable interfaces.
|
||
2. Integrated adapter into `assistantService` main deep-lane flow (behavior-preserving):
|
||
- existing extraction/coverage/grounding logic preserved;
|
||
- execution now routed through one orchestration boundary.
|
||
3. Added adapter unit tests:
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted tests passed:
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.3):
|
||
1. Extracted answer package builder (`answer_structure_v11`) from `assistantService` into dedicated module:
|
||
- `assistantAnswerPackageBuilder.ts`
|
||
2. Rewired deep-lane answer structure assembly to use the new module without contract changes.
|
||
3. Added focused unit tests for answer package behavior:
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 test pack passed:
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.4):
|
||
1. Extracted coverage/grounding pipeline into dedicated module:
|
||
- `assistantCoverageGrounding.ts`
|
||
- moved requirement extraction, coverage resolution, and grounding checks under one reusable boundary.
|
||
2. Rewired `assistantService` to use extracted coverage/grounding module via compatibility wrappers (behavior-preserving).
|
||
3. Added focused regression tests:
|
||
- `assistantCoverageGrounding.test.ts`
|
||
4. Stabilized deterministic Stage 2 regression environment for followup continuity checks:
|
||
- fixed accidental false-positive token in grounding test fixture;
|
||
- fixed env isolation in `assistantWave10SettlementCorrectiveRegression.test.ts` by explicitly controlling `FEATURE_ASSISTANT_ADDRESS_QUERY_V1`.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.5):
|
||
1. Extracted query-planning helpers from `assistantService` into dedicated module:
|
||
- `assistantQueryPlanning.ts`
|
||
- moved `fragmentTextById`, execution-plan builder, and debug-routes builder under one reusable boundary.
|
||
2. Rewired `assistantService` to use extracted query-planning module (behavior-preserving wrapper integration).
|
||
3. Added focused unit tests for query-planning behavior:
|
||
- `assistantQueryPlanning.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.6):
|
||
1. Extracted evidence-bundle assembly from `assistantService` into dedicated module:
|
||
- `assistantEvidenceBundleAssembler.ts`
|
||
- centralized:
|
||
- `assistant_evidence_bundle_v1` contract assembly;
|
||
- debug `retrieval_status` projection from normalized retrieval results.
|
||
2. Rewired `assistantService` to use assembler output for both:
|
||
- `assistant_orchestration_contracts_v1.evidence_bundle`;
|
||
- debug payload `retrieval_status`.
|
||
3. Added focused unit tests:
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.7):
|
||
1. Extracted deep-lane debug payload assembly from `assistantService` into dedicated module:
|
||
- `assistantDebugPayloadAssembler.ts`
|
||
2. Rewired `assistantService` to build `debug` via assembler (behavior-preserving):
|
||
- keeps all existing fields, guard audits, orchestration contracts and optional sections.
|
||
3. Added focused unit tests:
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.8):
|
||
1. Extracted deep-lane processed log payload assembly from `assistantService` into dedicated module:
|
||
- `assistantMessageLogAssembler.ts`
|
||
2. Rewired `assistantService` to build `assistant_message_processed.details` via assembler (behavior-preserving).
|
||
3. Added focused unit tests:
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.9):
|
||
1. Extracted orchestration-contract bundle assembly from `assistantService` into dedicated module:
|
||
- `assistantContractsBundleAssembler.ts`
|
||
2. Rewired `assistantService` to consume bundled contracts/outcome class from assembler (behavior-preserving):
|
||
- `query_frame`, `execution_plan`, `evidence_bundle`, `coverage`, `outcome_class`.
|
||
3. Added focused unit tests:
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.10):
|
||
1. Extracted deep response envelope assembly from `assistantService` into dedicated module:
|
||
- `assistantDeepResponseAssembler.ts`
|
||
- centralized:
|
||
- safe final assistant text cleanup (debug tail stripping);
|
||
- `answer_structure_v11` selection/building policy;
|
||
- assistant conversation item construction.
|
||
2. Rewired `assistantService` to consume deep response assembler (behavior-preserving).
|
||
3. Added focused unit tests:
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 + safety regressions passed:
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.11):
|
||
1. Added top-level deep turn packager to compose extracted Stage 2 modules behind one boundary:
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- centralizes orchestration of:
|
||
- evidence bundle assembly;
|
||
- contracts/outcome class assembly;
|
||
- deep answer artifacts;
|
||
- debug payload;
|
||
- assistant conversation item;
|
||
- processed log details.
|
||
2. Rewired deep-lane `assistantService` flow to use `assembleAssistantDeepTurnPackaging(...)` (behavior-preserving):
|
||
- replaced duplicated per-artifact assembly block with single orchestrator call;
|
||
- preserved investigation-state update and existing response/event contract.
|
||
3. Added focused unit test:
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.12):
|
||
1. Extracted deep-turn input normalization/defaulting from `assistantService` into dedicated module:
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- centralized normalization of:
|
||
- `followupStateUsage` default (`null` when absent);
|
||
- composition defaults (`problem_*` fields, `answer_structure_v11`);
|
||
- `problem_unit_ids_used` array normalization.
|
||
2. Rewired `assistantService` to build deep-turn input via:
|
||
- `buildAssistantDeepTurnPackagingInput(...)`
|
||
- followed by existing `assembleAssistantDeepTurnPackaging(...)` call (behavior-preserving).
|
||
3. Added focused unit tests:
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.13):
|
||
1. Extracted investigation-state update/persist runtime block from `assistantService` into dedicated adapter:
|
||
- `assistantInvestigationStateRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantInvestigationStateSnapshot(...)`
|
||
- `persistAssistantInvestigationStateSnapshot(...)`
|
||
2. Rewired `assistantService` to consume new adapter (behavior-preserving):
|
||
- same `investigation_state` snapshot semantics;
|
||
- same `FEATURE_ASSISTANT_INVESTIGATION_STATE_V1` gating;
|
||
- same session persistence call path.
|
||
3. Added focused unit tests:
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.14):
|
||
1. Extracted deep-lane assistant post-turn commit/persist/log block from `assistantService` into dedicated adapter:
|
||
- `assistantTurnCommitRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `commitAssistantTurnAndLog(...)`
|
||
2. Rewired `assistantService` deep-lane to use new adapter (behavior-preserving):
|
||
- same append-to-session semantics;
|
||
- same session persistence behavior when session exists;
|
||
- same `assistant_message_processed` log envelope and event type.
|
||
3. Added focused unit tests:
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.15):
|
||
1. Extracted deep-lane pre-packaging context assembly from `assistantService` into dedicated module:
|
||
- `assistantDeepTurnPrePackagingContext.ts`
|
||
- centralized:
|
||
- dropped intent segments extraction;
|
||
- analysis context projection for contracts;
|
||
- debug route projection;
|
||
- resolved execution state projection;
|
||
- safe assistant reply base sanitization.
|
||
2. Rewired `assistantService` deep-lane to consume `buildAssistantDeepTurnPrePackagingContext(...)` (behavior-preserving).
|
||
3. Added focused unit tests:
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.16):
|
||
1. Extracted deep-lane success response envelope assembly from `assistantService` into dedicated builder:
|
||
- `assistantDeepTurnResponseBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnSuccessResponse(...)`
|
||
2. Rewired `assistantService` deep-lane to return response via new builder (behavior-preserving).
|
||
3. Added focused unit tests:
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.17):
|
||
1. Extracted deep-lane composition assembly from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnComposition(...)`
|
||
2. Centralized composition-time derivations (behavior-preserving):
|
||
- `focusDomainHint` from followup usage + investigation state;
|
||
- `questionTypeClass` via `resolveQuestionType(...)`;
|
||
- period presence signals from company anchors/normalization payload;
|
||
- downstream `composeAssistantAnswer(...)` call wiring.
|
||
3. Rewired `assistantService` deep-lane to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.18):
|
||
1. Extracted deep-lane guard runtime pipeline from `assistantService` into dedicated adapter:
|
||
- `assistantDeepTurnGuardRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `applyAssistantDeepTurnRetrievalGuards(...)`
|
||
- `applyAssistantDeepTurnGroundingEligibility(...)`
|
||
2. Centralized and isolated runtime sequence (behavior-preserving):
|
||
- polarity guard on retrieval results;
|
||
- targeted evidence acquisition;
|
||
- evidence admissibility gate;
|
||
- grounded-answer eligibility evaluation + grounding status overlay.
|
||
3. Rewired `assistantService` deep-lane to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.19):
|
||
1. Extracted deep-lane retrieval execution loop from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `executeAssistantDeepTurnRetrievalPlan(...)`
|
||
2. Centralized retrieval runtime behavior (behavior-preserving):
|
||
- skipped/no-route call record generation;
|
||
- sequential route execution with temporal hint propagation;
|
||
- raw result capture;
|
||
- failed-route fallback normalization with stable error envelope.
|
||
3. Rewired `assistantService` deep-lane to consume retrieval adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.20):
|
||
1. Extracted deep-lane execution-plan assembly/enforcement from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnExecutionPlan(...)`
|
||
2. Centralized planning runtime sequence (behavior-preserving):
|
||
- requirement extraction by fragment;
|
||
- execution plan build from route summary;
|
||
- RBP route-plan enforcement;
|
||
- FA route-plan enforcement;
|
||
- temporal hint overlay;
|
||
- polarity hint overlay.
|
||
3. Rewired `assistantService` deep-lane to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.21):
|
||
1. Extracted deep-lane pre-guard runtime context assembly from `assistantService` into dedicated adapter:
|
||
- `assistantDeepTurnContextRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnRuntimeContext(...)`
|
||
2. Centralized context runtime sequence (behavior-preserving):
|
||
- company anchors resolution;
|
||
- initial business-scope alignment;
|
||
- P0 domain inference + domain whitelist gating for guard focus;
|
||
- temporal guard resolution with runtime analysis context;
|
||
- domain polarity guard resolution;
|
||
- claim-bound anchors resolution;
|
||
- live business-scope resolution with followup flag;
|
||
- normalized live temporal hint projection.
|
||
3. Rewired `assistantService` deep-lane to consume context adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.22):
|
||
1. Extracted deep-lane post-retrieval grounding runtime orchestration from `assistantService` into dedicated adapter:
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnGroundingRuntime(...)`
|
||
2. Centralized grounding/runtime sequence (behavior-preserving):
|
||
- RBP live-route audit projection;
|
||
- FA live-route audit projection;
|
||
- coverage+grounding pipeline execution;
|
||
- grounded-answer eligibility overlay on base grounding check.
|
||
3. Rewired `assistantService` deep-lane to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.23):
|
||
1. Extracted deep-lane packaging orchestration block from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnPackagingRuntime(...)`
|
||
2. Centralized packaging/runtime sequence (behavior-preserving):
|
||
- pre-packaging context assembly;
|
||
- investigation-state snapshot build/persist;
|
||
- deep-turn packaging input assembly;
|
||
- deep-turn packaging output projection (`safeAssistantReply`, debug payload, assistant item, processed log details).
|
||
3. Rewired `assistantService` deep-lane to consume packaging runtime adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.24):
|
||
1. Extracted deep-lane finalization/response tail from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `finalizeAssistantDeepTurn(...)`
|
||
2. Centralized finalization runtime sequence (behavior-preserving):
|
||
- assistant turn commit + processed-event logging;
|
||
- deep-turn API success response assembly from committed conversation state.
|
||
3. Rewired `assistantService` deep-lane to consume finalization adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 assembler/adapter pack passed:
|
||
- `assistantOrchestrationContracts.test.ts`
|
||
- `assistantOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAnswerPackageBuilder.test.ts`
|
||
- `assistantCoverageGrounding.test.ts`
|
||
- `assistantQueryPlanning.test.ts`
|
||
- `assistantEvidenceBundleAssembler.test.ts`
|
||
- `assistantDebugPayloadAssembler.test.ts`
|
||
- `assistantMessageLogAssembler.test.ts`
|
||
- `assistantContractsBundleAssembler.test.ts`
|
||
- `assistantDeepResponseAssembler.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnInputBuilder.test.ts`
|
||
- `assistantInvestigationStateRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPrePackagingContext.test.ts`
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGuardRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.25):
|
||
1. Extracted address-lane finalization/response tail from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressTurnFinalizeRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `finalizeAssistantAddressTurn(...)`
|
||
2. Centralized address finalization runtime sequence (behavior-preserving):
|
||
- assistant item creation for address lane;
|
||
- structured `assistant_message_address` processed-event payload build;
|
||
- turn commit/persist/log via shared commit runtime adapter;
|
||
- API success response assembly from committed conversation state.
|
||
3. Rewired `assistantService` address-lane finalize path to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantAddressTurnFinalizeRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted Stage 2 adapter/finalization pack passed:
|
||
- `assistantAddressTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantTurnCommitRuntimeAdapter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.26):
|
||
1. Extracted living-chat finalization/response tail from `assistantService` into dedicated runtime adapter:
|
||
- `assistantLivingChatTurnFinalizeRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `finalizeAssistantLivingChatTurn(...)`
|
||
2. Centralized living-chat finalization runtime sequence (behavior-preserving):
|
||
- assistant item creation for chat lane;
|
||
- structured `assistant_message_chat` processed-event payload build;
|
||
- turn commit/persist/log via shared commit runtime adapter;
|
||
- API success response assembly from committed conversation state.
|
||
3. Rewired `assistantService` `tryHandleLivingChat(...)` finalize path to consume adapter output (behavior-preserving).
|
||
4. Added focused unit tests:
|
||
- `assistantLivingChatTurnFinalizeRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep finalize pack passed:
|
||
- `assistantLivingChatTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantAddressTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
3. Additional safety regressions passed:
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantMcpRuntimeBridge.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.27):
|
||
1. Extracted living-chat runtime orchestration branch from `assistantService` into dedicated runtime adapter:
|
||
- `assistantLivingChatRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantLivingChatRuntime(...)`
|
||
2. Centralized living-chat runtime branch sequence (behavior-preserving):
|
||
- deterministic capability + safety refusal branch;
|
||
- deterministic data-scope contract branch (with live probe projection);
|
||
- deterministic organization-boundary and scope-selection branches;
|
||
- deterministic operational-boundary and capability-contract branches;
|
||
- LLM chat branch with script-guard + grounding-guard post-processing.
|
||
3. Rewired `assistantService` `tryHandleLivingChat(...)` to consume runtime adapter output and keep existing chat finalization adapter path unchanged.
|
||
4. Added focused unit tests:
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/chat followup pack passed:
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.28):
|
||
1. Extracted address-lane retry orchestration branch from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressLaneRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressLaneRuntime(...)`
|
||
2. Centralized address retry/runtime branch sequence (behavior-preserving):
|
||
- contextual-first execution when followup context is preferred;
|
||
- primary execution without followup context;
|
||
- optional contextual fallback when context exists but is not preferred;
|
||
- retry with raw user message for retryable limited results;
|
||
- deterministic fallback to pending limited result when retry does not improve outcome.
|
||
3. Rewired `assistantService` address lane execution path to consume retry adapter output and preserve existing address finalization contract.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address followup pack passed:
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.29):
|
||
1. Extracted address orchestration bootstrap block from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressOrchestrationRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantAddressOrchestrationRuntime(...)`
|
||
2. Centralized address orchestration bootstrap sequence (behavior-preserving):
|
||
- LLM predecompose stage or deterministic fallback contract when feature is disabled;
|
||
- effective address input message resolution;
|
||
- followup carryover context resolution;
|
||
- orchestration/tool-gate decision resolution;
|
||
- dialog continuation contract projection into runtime meta;
|
||
- living mode decision projection for chat fallback.
|
||
3. Rewired `assistantService` address pre-lane bootstrap path to consume orchestration runtime adapter output.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address followup pack passed:
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.30):
|
||
1. Extracted address tool-gate skip branch from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressToolGateRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressToolGateRuntime(...)`
|
||
2. Centralized tool-gate skip/runtime sequence (behavior-preserving):
|
||
- deterministic early noop when `runAddressLane=true`;
|
||
- structured `assistant_address_tool_gate_skip` logging payload projection;
|
||
- conditional living-chat fallback invocation when mode is `chat`.
|
||
3. Rewired `assistantService` to consume tool-gate runtime adapter output and preserve existing early-return contract for handled chat fallback.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address followup pack passed:
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.31):
|
||
1. Extracted deep-lane followup binding + normalize bootstrap block from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnNormalizationRuntime(...)`
|
||
2. Centralized deep normalization bootstrap sequence (behavior-preserving):
|
||
- followup state binding projection when feature flags are enabled;
|
||
- deterministic fallback to raw user question when followup binding is disabled/unavailable;
|
||
- normalize request payload assembly and normalizer invocation.
|
||
3. Rewired `assistantService` deep-lane bootstrap to consume normalization runtime adapter output.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.32):
|
||
1. Extracted deep-lane context/plan/retrieval/guard/grounding/composition orchestration block from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnAnalysisRuntime(...)`
|
||
2. Centralized deep analysis sequence wiring (behavior-preserving):
|
||
- runtime context stage output propagation;
|
||
- execution-plan, retrieval, guard and grounding stage chaining;
|
||
- composition stage input projection from grounded retrieval output.
|
||
3. Rewired `assistantService` deep-lane middle pipeline to consume analysis runtime adapter output while preserving existing packaging/finalization contracts.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.33):
|
||
1. Extracted deep-lane response tail (packaging + finalize) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnResponseRuntime(...)`
|
||
2. Centralized deep response-tail sequence (behavior-preserving):
|
||
- packaging runtime invocation with full debug/contract payload projection;
|
||
- deep finalization invocation with packaged reply/debug artifacts;
|
||
- single response projection back to caller.
|
||
3. Rewired `assistantService` deep-lane tail to consume response runtime adapter output.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.34):
|
||
1. Extracted top-level address branch orchestration from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressRuntime(...)`
|
||
2. Centralized full address-branch control flow (behavior-preserving):
|
||
- address bootstrap orchestration stage;
|
||
- tool-gate skip/chat fallback stage;
|
||
- lane execution/retry stage with analysis-date hint propagation;
|
||
- address finalize stage projection with retry audit merge.
|
||
3. Rewired `assistantService` address branch to a single runtime adapter invocation and preserved `addressRuntimeMetaForDeep` propagation contract.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.35):
|
||
1. Extracted address-lane response-tail (debug enrichment + finalize projection) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressLaneResponseRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressLaneResponseRuntime(...)`
|
||
2. Centralized address response-tail sequence (behavior-preserving):
|
||
- reply sanitization and structured address debug payload assembly;
|
||
- followup-offer projection + known/active organization debug enrichment;
|
||
- address turn finalization through existing finalize adapter contract.
|
||
3. Rewired `assistantService` `finalizeAddressLaneResponse(...)` closure to consume response runtime adapter output.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.36):
|
||
1. Extracted living-chat handler branch (`tryHandleLivingChat`) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantLivingChatHandlerRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `tryHandleAssistantLivingChatRuntime(...)`
|
||
2. Centralized living-chat handler sequence (behavior-preserving):
|
||
- living-chat runtime invocation (deterministic/LLM guard chain);
|
||
- chat finalization invocation for `assistant_message_chat` response path;
|
||
- warn-log fallback path for runtime failures.
|
||
3. Rewired `assistantService` `tryHandleLivingChat(...)` closure to consume handler runtime adapter output.
|
||
4. Added focused unit tests:
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantAddressToolGateRuntimeAdapter.test.ts`
|
||
- `assistantAddressOrchestrationRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneRuntimeAdapter.test.ts`
|
||
- `assistantAddressFollowupContext.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.37):
|
||
1. Extracted living-chat LLM call/build block from `assistantService` into dedicated runtime adapter:
|
||
- `assistantLivingChatLlmRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantLivingChatLlmRuntime(...)`
|
||
2. Centralized living LLM execution sequence (behavior-preserving):
|
||
- context window assembly from session history;
|
||
- canon excerpt loading and prompt composition;
|
||
- model/token selection with guard clamp;
|
||
- output sanitization with stable fallback.
|
||
3. Rewired `assistantService` `tryHandleLivingChat(...)` closure to consume the new LLM runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.38):
|
||
1. Internalized living-chat prompt/context builders into `assistantLivingChatLlmRuntimeAdapter`:
|
||
- removed external builder dependencies from runtime input contract;
|
||
- centralized compacting + clipping + context/prompt projection directly in adapter.
|
||
2. Simplified `assistantService` living LLM call wiring:
|
||
- removed `buildLivingChatContextWindow` / `buildLivingChatPrompt` injection from `executeLlmChat`.
|
||
3. Updated focused tests for adapter-owned prompt assembly:
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts` now verifies context carryover and user-message prompt shape.
|
||
4. Applied cleanup inside `assistantService` after the wiring simplification:
|
||
- removed dead local living prompt/context helper functions.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.39):
|
||
1. Extracted user-turn bootstrap sequence from `assistantService` into dedicated runtime adapter:
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantUserTurnBootstrapRuntime(...)`
|
||
2. Centralized user-turn bootstrap flow (behavior-preserving):
|
||
- session ensure + user message normalization/repair;
|
||
- user item append + session persistence;
|
||
- runtime analysis context projection.
|
||
3. Rewired `assistantService.handleMessage(...)` to consume bootstrap runtime output and preserve downstream `questionId` contract usage.
|
||
4. Added focused unit tests:
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.40):
|
||
1. Extracted address-lane attempt bridge (`runAddressLaneAttempt`) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressLaneAttemptRuntime(...)`
|
||
2. Centralized address-lane attempt handoff logic (behavior-preserving):
|
||
- organization-scoped followup context merge;
|
||
- fallback to plain lane attempt when scoped context is unavailable;
|
||
- strict propagation of analysis-date hint into `addressQueryService.tryHandle(...)`.
|
||
3. Rewired `assistantService` to consume lane-attempt runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.41):
|
||
1. Extracted living-chat attempt bridge (`tryHandleLivingChat`) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantLivingChatAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantLivingChatAttemptRuntime(...)`
|
||
2. Centralized living-chat attempt handoff logic (behavior-preserving):
|
||
- delegated handler invocation (`tryHandleAssistantLivingChatRuntime(...)`);
|
||
- delegated LLM call bridge (`runAssistantLivingChatLlmRuntime(...)`) behind unified `executeLlmChat` contract;
|
||
- preserved all guard, scope and session finalization hooks.
|
||
3. Rewired `assistantService` to consume living-chat attempt runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.42):
|
||
1. Extracted address-lane response attempt bridge (`finalizeAddressLaneResponse`) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantAddressLaneResponseAttemptRuntime(...)`
|
||
2. Centralized address-lane response handoff logic (behavior-preserving):
|
||
- delegated response runtime invocation (`runAssistantAddressLaneResponseRuntime(...)`);
|
||
- preserved followup-offer/debug payload and session finalization contract wiring.
|
||
3. Rewired `assistantService` to consume address-lane response attempt runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.43):
|
||
1. Extracted deep-analysis bridge (`deepTurnAnalysisRuntime` wiring) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnAnalysisAttemptRuntime(...)`
|
||
2. Centralized deep-analysis handoff logic (behavior-preserving):
|
||
- context/plan/retrieval/guard/grounding/composition chain wiring moved behind a single runtime boundary;
|
||
- preserved feature flags and all existing local helper hooks (`extractRequirements`, route enforcement, coverage/grounding evaluators, audits).
|
||
3. Rewired `assistantService` to consume deep-analysis attempt runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.44):
|
||
1. Extracted deep-response bridge (`deepTurnResponseRuntime` wiring) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnResponseAttemptRuntime(...)`
|
||
2. Centralized deep-response handoff logic (behavior-preserving):
|
||
- mapping from deep-analysis runtime output into response/packaging/finalization runtime contract moved behind a single runtime boundary;
|
||
- preserved existing debug/state persistence hooks and session finalization callbacks.
|
||
3. Rewired `assistantService` to consume deep-response attempt runtime adapter.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.45):
|
||
1. Extracted full deep-turn chain (`normalization -> analysis -> response`) from `assistantService` into dedicated runtime adapter:
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantDeepTurnAttemptRuntime(...)`
|
||
2. Centralized deep-turn orchestration handoff (behavior-preserving):
|
||
- unified composition over existing attempt adapters (`Normalization`, `Analysis`, `Response`);
|
||
- preserved followup binding, runtime context propagation, response finalization hooks and investigation-state persistence callbacks.
|
||
3. Rewired `assistantService` to consume a single deep-turn runtime adapter call.
|
||
4. Added focused unit tests:
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.46):
|
||
1. Activated full address-turn attempt runtime boundary inside `assistantService`:
|
||
- rewired address handling call-site to `runAssistantAddressAttemptRuntime(...)`;
|
||
- removed local inline closures for lane-attempt, lane-response, and living-chat handoff wiring from `handleMessage`.
|
||
2. Finalized and type-hardened address attempt adapter contract:
|
||
- `assistantAddressAttemptRuntimeAdapter.ts`
|
||
- aligned `logEvent` and `messageIdFactory` contract typing to runtime expectations.
|
||
3. Added focused unit tests:
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.47):
|
||
1. Extracted top-level assistant turn orchestration (`bootstrap -> address attempt -> deep attempt`) into dedicated runtime adapter:
|
||
- `assistantTurnAttemptRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `runAssistantTurnAttemptRuntime(...)`
|
||
2. Rewired `assistantService.handleMessage` to use single top-level turn runtime boundary (behavior-preserving):
|
||
- user-turn bootstrap remains delegated to `assistantUserTurnBootstrapRuntime`;
|
||
- address and deep attempt runtimes remain unchanged, but orchestration/early-return logic moved out of service body.
|
||
3. Added focused unit tests:
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.48):
|
||
1. Extracted turn-level runtime input assembly from `assistantService` into dedicated builder module:
|
||
- `assistantTurnRuntimeInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantUserTurnBootstrapRuntimeInput(...)`
|
||
- `buildAssistantAddressAttemptRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnAttemptRuntimeInput(...)`
|
||
2. Rewired `assistantService.handleMessage` to consume builder outputs (behavior-preserving):
|
||
- moved bulky dependency mapping for bootstrap/address/deep attempts out of service body;
|
||
- preserved existing runtime adapters and route behavior.
|
||
3. Added focused unit tests:
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.49):
|
||
1. Extracted turn runtime dependency factory from `assistantService` into dedicated adapter:
|
||
- `assistantTurnRuntimeDepsAdapter.ts`
|
||
- introduced:
|
||
- `buildAssistantTurnRuntimeDeps(...)`
|
||
2. Rewired `assistantService.handleMessage` to construct runtime deps via adapter (behavior-preserving):
|
||
- service-level wrappers for `sessions`, `sessionLogger`, `normalizerService`, `dataLayer`, `addressQueryService` moved under deps-adapter boundary;
|
||
- flags/defaults/helpers remain unchanged semantically and are passed as structured groups (`flags`, `defaults`, `helpers`).
|
||
3. Added focused unit tests:
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.50):
|
||
1. Extracted organization-scope runtime logic from `assistantService` into dedicated adapter:
|
||
- `assistantOrganizationScopeRuntimeAdapter.ts`
|
||
- introduced:
|
||
- `resolveSessionOrganizationScopeContextRuntime(...)`
|
||
- `mergeFollowupContextWithOrganizationScopeRuntime(...)`
|
||
2. Rewired `assistantService` scope helpers to delegate through the adapter (behavior-preserving):
|
||
- `resolveSessionOrganizationScopeContext(...)` now uses runtime adapter with existing extraction/scoring/sanitization helpers;
|
||
- `mergeFollowupContextWithOrganizationScope(...)` now uses runtime adapter while preserving existing normalization/toNonEmpty semantics.
|
||
3. Added focused unit tests:
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantUserTurnBootstrapRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatLlmRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.51):
|
||
1. Extracted living-chat attempt input assembly from `assistantAddressAttemptRuntimeAdapter` into dedicated builder:
|
||
- `assistantLivingChatAttemptInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantLivingChatAttemptRuntimeInput(...)`
|
||
2. Rewired `assistantAddressAttemptRuntimeAdapter` to consume the new builder (behavior-preserving):
|
||
- moved inline living-chat payload mapping (including `traceIdFactory` derivation and scope/meta wiring) behind a single input-builder boundary.
|
||
3. Added focused unit tests:
|
||
- `assistantLivingChatAttemptInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantLivingChatAttemptInputBuilder.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.52 + 2.53 + 2.54 + 2.55):
|
||
1. Removed remaining inline address-lane response input assembly from `assistantAddressAttemptRuntimeAdapter`:
|
||
- rewired `finalizeAddressLaneResponse` to `buildAssistantAddressLaneResponseAttemptRuntimeInput(...)`.
|
||
2. Added dedicated lane-attempt input builder and rewired adapter call-site:
|
||
- `assistantAddressLaneAttemptInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantAddressLaneAttemptRuntimeInput(...)`
|
||
3. Added dedicated address-runtime input builder and rewired final runtime invocation:
|
||
- `assistantAddressRuntimeInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantAddressRuntimeInput(...)`
|
||
4. Added focused builder tests:
|
||
- `assistantAddressLaneResponseAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneAttemptInputBuilder.test.ts`
|
||
- `assistantAddressRuntimeInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressLaneResponseAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneAttemptInputBuilder.test.ts`
|
||
- `assistantAddressRuntimeInputBuilder.test.ts`
|
||
- `assistantLivingChatAttemptInputBuilder.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.56 + 2.57 + 2.58 + 2.59 + 2.60):
|
||
1. Extracted deep-turn attempt input assembly into dedicated builder:
|
||
- `assistantDeepTurnAttemptInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnNormalizationRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnAnalysisAttemptRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnResponseAttemptRuntimeInput(...)`
|
||
2. Rewired `assistantDeepTurnAttemptRuntimeAdapter` to consume deep-turn attempt builder outputs (behavior-preserving):
|
||
- removed inline normalization/analysis/response attempt payload mapping from adapter body.
|
||
3. Extracted deep-turn response runtime input mapping into dedicated builder:
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnResponseRuntimeInput(...)`
|
||
4. Rewired `assistantDeepTurnResponseAttemptRuntimeAdapter` to consume response runtime input builder (behavior-preserving):
|
||
- moved deep-analysis -> response-runtime field projection behind a single builder boundary.
|
||
5. Extracted deep-turn analysis-attempt stage input wiring into dedicated builder:
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantDeepTurnAnalysisRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnContextRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnExecutionPlanRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnRetrievalRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnGuardRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnGroundingRuntimeInput(...)`
|
||
- `buildAssistantDeepTurnCompositionRuntimeInput(...)`
|
||
6. Rewired `assistantDeepTurnAnalysisAttemptRuntimeAdapter` to build `runAssistantDeepTurnAnalysisRuntime(...)` contract via builder (behavior-preserving).
|
||
7. Added focused builder tests:
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneResponseAttemptInputBuilder.test.ts`
|
||
- `assistantAddressRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.61 + 2.62 + 2.63 + 2.64):
|
||
1. Added dedicated runtime input builder for address lane response runtime:
|
||
- `assistantAddressLaneResponseRuntimeInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantAddressLaneResponseRuntimeInput(...)`
|
||
2. Rewired `assistantAddressLaneResponseAttemptRuntimeAdapter` to consume the new builder (behavior-preserving):
|
||
- removed inline mapping from attempt input to response runtime input.
|
||
3. Added dedicated runtime input builders for living-chat attempt orchestration:
|
||
- `assistantLivingChatAttemptRuntimeInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantLivingChatLlmRuntimeInput(...)`
|
||
- `buildAssistantLivingChatHandlerRuntimeInput(...)`
|
||
4. Rewired `assistantLivingChatAttemptRuntimeAdapter` to consume living-chat runtime input builders (behavior-preserving):
|
||
- `buildExecuteLlmChat(...)` now delegates llm payload assembly via builder;
|
||
- top-level living-chat handler invocation now uses builder payload.
|
||
5. Added focused builder tests:
|
||
- `assistantAddressLaneResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeInputBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantAddressLaneResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeInputBuilder.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.65 + 2.66 + 2.67 + 2.68):
|
||
1. Added dedicated turn-attempt input builder:
|
||
- `assistantTurnAttemptInputBuilder.ts`
|
||
- introduced:
|
||
- `buildAssistantTurnAttemptAddressRuntimeInput(...)`
|
||
- `buildAssistantTurnAttemptDeepRuntimeInput(...)`
|
||
2. Rewired `assistantTurnAttemptRuntimeAdapter` to consume turn-attempt builder outputs (behavior-preserving):
|
||
- removed inline payload assembly for `runAddressAttemptRuntime(...)` and `runDeepTurnAttemptRuntime(...)`.
|
||
3. Added dedicated query-options builder for address lane attempt:
|
||
- `assistantAddressLaneAttemptQueryOptionsBuilder.ts`
|
||
- introduced:
|
||
- `resolveAssistantAddressLaneAttemptFollowupContext(...)`
|
||
- `buildAssistantAddressLaneAttemptQueryOptions(...)`
|
||
4. Rewired `assistantAddressLaneAttemptRuntimeAdapter` to consume query-options builder (behavior-preserving):
|
||
- moved followup-context extraction and options branching behind builder helpers.
|
||
5. Added focused builder tests:
|
||
- `assistantTurnAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneAttemptQueryOptionsBuilder.test.ts`
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted living/address/deep followup pack passed:
|
||
- `assistantTurnAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneAttemptQueryOptionsBuilder.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneAttemptInputBuilder.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeInputBuilder.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantOrganizationScopeRuntimeAdapter.test.ts`
|
||
- `assistantWave10SettlementCorrectiveRegression.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.69 + 2.70 + 2.71 + 2.72):
|
||
1. Finalized strict deps typing in turn runtime input builder:
|
||
- `assistantTurnRuntimeInputBuilder.ts`
|
||
- completed generic `AssistantTurnRuntimeBuilderDeps<ResponseType>` wiring through address/deep runtime input contracts;
|
||
- removed residual weak casts from builder field projection.
|
||
2. Hardened turn runtime deps adapter contracts:
|
||
- `assistantTurnRuntimeDepsAdapter.ts`
|
||
- typed sessions/normalizer/data-layer/address-query/chat/log inputs directly from `AssistantTurnRuntimeBuilderDeps` contract slices;
|
||
- removed `unknown`/`any` wrappers from adapter mapping while preserving compatible handler signatures for optional args.
|
||
3. Preserved behavior of turn orchestration chain under stricter typing:
|
||
- bootstrap -> address attempt -> deep attempt flow remains unchanged at runtime.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted turn/deps regression pack passed:
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.73 + 2.74 + 2.75 + 2.76):
|
||
1. Removed remaining unsafe casts in address->living-chat bridge:
|
||
- `assistantAddressAttemptRuntimeAdapter.ts`
|
||
- replaced `mergeKnownOrganizations` dependency type with living-chat compatible contract;
|
||
- removed `as any` cast for `mergeKnownOrganizations` and removed final object cast to `RunAssistantLivingChatAttemptRuntimeInput`.
|
||
2. Added explicit mode-decision normalization before living-chat runtime handoff:
|
||
- mapped untyped `modeDecision` to typed `{ mode: string | null; reason: string | null }` contract.
|
||
3. Preserved behavior of address lane + living-chat fallback under stricter typing:
|
||
- runtime flow unchanged, only contract hardening.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted address/living/turn regression pack passed:
|
||
- `assistantAddressAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatAttemptRuntimeAdapter.test.ts`
|
||
- `assistantLivingChatHandlerRuntimeAdapter.test.ts`
|
||
- `assistantTurnRuntimeInputBuilder.test.ts`
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts`
|
||
- `assistantTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.77 + 2.78 + 2.79 + 2.80):
|
||
1. Removed unsafe casts from address lane response runtime finalization path:
|
||
- `assistantAddressLaneResponseRuntimeAdapter.ts`
|
||
- introduced explicit normalization for:
|
||
- `replyType` (fallback-safe);
|
||
- `carryoverMeta` extraction from followup context;
|
||
- `llmPreDecomposeMeta` sparse contract mapping;
|
||
- address debug payload handoff into finalize stage.
|
||
2. Hardened deep response runtime bridge to packaging stage:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- replaced `as any` payload handoff with typed normalizers for:
|
||
- execution plan;
|
||
- runtime analysis context;
|
||
- business scope resolution;
|
||
- record/audit buckets;
|
||
- address-runtime meta.
|
||
3. Updated deep response runtime input builder to pass typed composition contract directly:
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.ts`
|
||
- removed composition cast in analysis->response mapping.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted response/address/deep pack passed:
|
||
- `assistantAddressLaneResponseRuntimeAdapter.test.ts`
|
||
- `assistantAddressLaneResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.81 + 2.82 + 2.83 + 2.84):
|
||
1. Removed remaining unsafe casts from deep analysis-attempt input builder:
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.ts`
|
||
- added typed adapters/normalizers for:
|
||
- temporal/polarity/claim-bound resolver bridges;
|
||
- focus-domain narrowing for guard pipeline;
|
||
- company-anchor and primary-period normalization;
|
||
- runtime callback mapping (`context -> plan -> retrieval -> guard -> grounding -> composition`) without `as any`.
|
||
2. Hardened deep analysis runtime contracts:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.ts`
|
||
- replaced broad unknown execution-plan/guard/grounding signatures with concrete typed contracts (`AssistantExecutionPlanItem`, guard and grounding slices).
|
||
3. Hardened deep context contracts for guard chain compatibility:
|
||
- `assistantDeepTurnContextRuntimeAdapter.ts`
|
||
- aligned temporal/polarity/claim-bound outputs with concrete audits;
|
||
- aligned `liveTemporalHint` with retrieval runtime contract.
|
||
4. Removed remaining unsafe casts from grounding and composition runtime adapters:
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.ts`
|
||
- replaced generic cast-based defaults with typed defaults and normalized company-anchor handoff into answer composer.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep analysis/grounding/composition pack passed:
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.85 + 2.86 + 2.87 + 2.88):
|
||
1. Removed the final `as any` from backend source deep-turn packaging path:
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- switched assistant-item debug handoff to strongly typed payload contract.
|
||
2. Hardened debug payload contract at assembly boundary:
|
||
- `assistantDebugPayloadAssembler.ts`
|
||
- `buildDeepAnalysisDebugPayload(...)` now returns `AssistantDebugPayload` contract.
|
||
3. Propagated typed debug payload through deep-turn runtime chain:
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.ts`
|
||
- aligned `debug` field contracts to `AssistantDebugPayload` and fixed generic runtime callback typing so `ResponseType` remains preserved end-to-end.
|
||
4. Preserved behavior:
|
||
- no runtime logic change; only contract tightening for debug payload propagation and generic signature alignment.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep packaging/response chain pack passed:
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.89 + 2.90 + 2.91 + 2.92):
|
||
1. Hardened deep-turn response envelope contract:
|
||
- `assistantDeepTurnResponseBuilder.ts`
|
||
- removed weak `debug` union (`AssistantDebugPayload | Record<string, unknown>`);
|
||
- response builder now accepts and propagates `AssistantDebugPayload` strictly.
|
||
2. Hardened deep-turn finalize runtime contract:
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.ts`
|
||
- aligned finalize input to strict `AssistantDebugPayload` for `debug`.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; only stricter contract enforcement for debug payload type at finalize/response boundary.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep finalize/response pack passed:
|
||
- `assistantDeepTurnResponseBuilder.test.ts`
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.93 + 2.94 + 2.95 + 2.96):
|
||
1. Introduced shared followup-usage contract and helper:
|
||
- `assistantFollowupUsage.ts`
|
||
- added:
|
||
- `AssistantFollowupUsage`
|
||
- `isAssistantFollowupApplied(...)`
|
||
2. Replaced weak `unknown` followup usage contracts across deep-turn chain:
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAttemptInputBuilder.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.ts`
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
3. Removed inline followup casts:
|
||
- switched `Boolean((... as { applied?: unknown })?.applied)` style checks to shared helper usage.
|
||
4. Preserved behavior:
|
||
- no logic changes, only contract normalization and reuse of a single applied-check helper.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep followup chain pack passed:
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnContextRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.97 + 2.98 + 2.99 + 2.100):
|
||
1. Tightened deep-turn response runtime input contracts for analysis context and address meta:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- `runtimeAnalysisContext` now typed with explicit fields and optional `snapshot_mode`;
|
||
- `addressRuntimeMetaForDeep` now typed via packaging contract.
|
||
2. Propagated the tightened types through deep response attempt chain:
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.ts`
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; only type alignment for response attempt inputs.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep response attempt pack passed:
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAttemptInputBuilder.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.101 + 2.102 + 2.103 + 2.104):
|
||
1. Tightened company-anchors and business-scope contracts in deep analysis runtime:
|
||
- `assistantDeepTurnContextRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.ts`
|
||
- `companyAnchors` now typed as `CompanyAnchorSet | null`;
|
||
- `businessScopeResolution` now typed as `AssistantBusinessScopeResolution`.
|
||
2. Aligned composition runtime input to accept typed anchors:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.ts`
|
||
- `runCompositionRuntime` now expects `CompanyAnchorSet | null`.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep analysis pack passed:
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.105 + 2.106 + 2.107 + 2.108):
|
||
1. Hardened raw retrieval normalization without changing output:
|
||
- `retrievalResultNormalizer.ts`
|
||
- added `normalizeRawRetrievalResult(...)` to avoid unsafe raw casting;
|
||
- added `normalizeNumberRecord(...)` to replace `Record<string, number>` casts for lifecycle distributions.
|
||
2. Preserved behavior:
|
||
- no logic changes; only safer normalization of raw payload shapes.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted retrieval normalization pack passed:
|
||
- `retrievalResultEvidenceEnrichment.test.ts`
|
||
- `retrievalProblemUnitDualPayload.test.ts`
|
||
- `retrievalLifecycleRuntimeRollout.test.ts`
|
||
- `retrievalGraphRuntimeDualPayload.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.109 + 2.110 + 2.111 + 2.112):
|
||
1. Tightened plan-audit and live-route audit typing for deep grounding:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.ts`
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.ts`
|
||
- `rbpPlanAudit` / `faPlanAudit` now use `Record<string, unknown> | null` contract;
|
||
- live route audits now typed to `RbpLiveRouteAuditDebug | null` / `FaLiveRouteAuditDebug | null`;
|
||
- grounded eligibility guard now typed to `GroundedAnswerEligibilityGuardDebug`.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep grounding pack passed:
|
||
- `assistantDeepTurnGroundingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.113 + 2.114 + 2.115 + 2.116):
|
||
1. Tightened temporal/polarity guard typing in deep plan runtime:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.ts`
|
||
- `temporalGuard` now typed to `TemporalGuardAudit`;
|
||
- `domainPolarityGuardInitial` now typed to `DomainPolarityGuardAudit`.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep plan pack passed:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnAnalysisAttemptRuntimeAdapter.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.117 + 2.118 + 2.119 + 2.120):
|
||
1. Tightened audit typing along deep response/packaging chain:
|
||
- `assistantDebugPayloadAssembler.ts`
|
||
- `assistantMessageLogAssembler.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- audit contracts now use concrete types:
|
||
- `TemporalGuardAudit`, `DomainPolarityGuardAudit`, `ClaimBoundAnchorAudit`,
|
||
`TargetedEvidenceAcquisitionAudit`, `EvidenceAdmissibilityAudit`,
|
||
`GroundedAnswerEligibilityAudit`,
|
||
`RbpLiveRouteAuditDebug | null`, `FaLiveRouteAuditDebug | null`.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep response/packaging pack passed:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnResponseAttemptRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.121 + 2.122 + 2.123 + 2.124):
|
||
1. Tightened retrieval call/raw types across deep response chain:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- `assistantMessageLogAssembler.ts`
|
||
- `assistantEvidenceBundleAssembler.ts`
|
||
- `assistantOrchestrationContracts.ts`
|
||
- introduced `AssistantRetrievalRawResult` and typed `AssistantRetrievalRawResultRecord`;
|
||
- retrieval calls now use `AssistantRetrievalCallRecord[]` end-to-end.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; only stronger typing and safe raw normalization.
|
||
|
||
Validation:
|
||
1. `npm run build` passed.
|
||
2. Targeted deep retrieval/response pack passed:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.test.ts`
|
||
- `assistantDeepTurnPackaging.test.ts`
|
||
|
||
Implemented in current pass (Phase 2.125 + 2.126 + 2.127 + 2.128):
|
||
1. Tightened deep turn execution state + fallback metadata typing:
|
||
- `assistantDeepTurnPrePackagingContext.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- `assistantDeepTurnNormalizationRuntimeAdapter.ts`
|
||
- added `AssistantExecutionStateRecord` + `AssistantAddressRuntimeMetaForDeep`;
|
||
- `fallback_type` now `AssistantFallbackType`;
|
||
- `problem_answer_mode` now `AssistantProblemAnswerMode`;
|
||
- `problem_unit_ids_used` now `string[]`;
|
||
- `investigationStateSnapshot` now `InvestigationStateWithProblemUnits | null`.
|
||
2. Aligned debug/log payload typing with contracts:
|
||
- `assistantDebugPayloadAssembler.ts`
|
||
- `assistantMessageLogAssembler.ts`
|
||
- `assistantOrchestrationContractsV1` and `outcomeClassV1` now typed;
|
||
- `answerStructureV11` now typed.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.129 + 2.130 + 2.131 + 2.132):
|
||
1. Typified debug route structures end-to-end:
|
||
- `assistantQueryPlanning.ts`
|
||
- `assistantDeepTurnPrePackagingContext.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnInputBuilder.ts`
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- `assistantDebugPayloadAssembler.ts`
|
||
- `assistantMessageLogAssembler.ts`
|
||
- introduced `AssistantDebugRouteRecord` union (legacy vs deterministic debug routes);
|
||
- `routes` now typed in `AssistantDebugPayload`.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.133):
|
||
1. Tightened deep retrieval runtime input:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.ts`
|
||
- `executeRouteRuntime` now returns `AssistantRetrievalRawResult` (explicit union).
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.134 + 2.135):
|
||
1. Typed live-route plan audit contract:
|
||
- `assistantDeepTurnPlanRuntimeAdapter.ts`
|
||
- introduced `AssistantLiveRoutePlanAudit` for plan enforcement audits.
|
||
2. Typed deep analysis log payload plumbing:
|
||
- `assistantMessageLogAssembler.ts`
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- `assistantDeepTurnPackagingRuntimeAdapter.ts`
|
||
- `assistantDeepTurnFinalizeRuntimeAdapter.ts`
|
||
- introduced `DeepAnalysisLogDetails` alias and used it end-to-end.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.136):
|
||
1. Tightened business-scope resolution contract shape:
|
||
- `assistantDeepTurnContextRuntimeAdapter.ts`
|
||
- removed index-signature `unknown` on business scope resolution;
|
||
- `resolveBusinessScopeFromLiveContext` now uses `AssistantBusinessScopeResolution` explicitly.
|
||
2. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.137 + 2.138):
|
||
1. Tightened company anchor normalization input types:
|
||
- `assistantDeepTurnCompositionRuntimeAdapter.ts`
|
||
- `toStringArray` now accepts `string[] | null | undefined`;
|
||
- company anchor normalization now consumes `Partial<CompanyAnchorSet>`.
|
||
2. Narrowed response runtime normalizers:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- runtime analysis context and business scope normalizers now take typed inputs.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.139 + 2.140):
|
||
1. Tightened analysis attempt builder normalizers:
|
||
- `assistantDeepTurnAnalysisAttemptInputBuilder.ts`
|
||
- removed `unknown` from anchor/period helpers; now `Partial<CompanyAnchorSet>` + typed primary period.
|
||
2. Narrowed response runtime normalization helpers:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- execution plan normalization now consumes typed `AssistantExecutionPlanItem[]`;
|
||
- helper signatures no longer accept `unknown` where input is already typed.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.141 + 2.142 + 2.143 + 2.144):
|
||
1. Tightened attempt input defaults:
|
||
- `assistantDeepTurnAttemptInputBuilder.ts`
|
||
- response attempt default type is now `AssistantMessageResponsePayload`.
|
||
2. Tightened retrieval raw result typing:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.ts`
|
||
- introduced `AssistantRetrievalRawResultLike` + list item union.
|
||
3. Tightened deep packaging normalization:
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- normalized fragments extracted without `Record<string, unknown>` cast.
|
||
4. Simplified response runtime normalizers:
|
||
- `assistantDeepTurnResponseRuntimeAdapter.ts`
|
||
- removed `toRecordObject` casts and normalized from typed inputs.
|
||
5. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Implemented in current pass (Phase 2.145 + 2.146):
|
||
1. Tightened retrieval raw result field shapes:
|
||
- `assistantDeepTurnRetrievalRuntimeAdapter.ts`
|
||
- introduced `AssistantRetrievalFieldValue` / `AssistantRetrievalRecord`;
|
||
- removed `unknown` from raw result record types.
|
||
2. Tightened normalized fragment extraction:
|
||
- `assistantDeepTurnPackaging.ts`
|
||
- normalized fragments now typed to `NormalizedQueryV2*` fragments.
|
||
3. Preserved behavior:
|
||
- no runtime logic changes; type alignment only.
|
||
|
||
Validation:
|
||
1. Not run in this pass (type-only changes).
|
||
|
||
Status: **Completed (Phase 2.1–2.146)**
|
||
|
||
### Stage 2 Completion Report (Summary)
|
||
1. Orchestration monolith decomposed into explicit modules:
|
||
- QueryFrame, ExecutionPlan, EvidenceBundle, Coverage/Grounding, Answer package, Debug payload, Log details.
|
||
2. Deep lane now uses stable contracts end-to-end:
|
||
- `assistant_orchestration_contracts_v1`, `assistant_evidence_bundle_v1`, `assistant_coverage_contract_v1`.
|
||
3. Audit & trace coverage standardized:
|
||
- temporal/polarity/claim/evidence guards, live-route audits, followup usage, outcome class.
|
||
4. Type hardening complete across deep chain:
|
||
- normalized payloads, execution plan, retrieval calls/raw, debug routes, runtime meta, investigation state.
|
||
5. Behavior preserved throughout refactor (no route/answer regressions by design).
|
||
|
||
### Stage 2 Closure Audit (2026-04-11)
|
||
1. Fixed runtime-critical context loss in `assistantTurnRuntimeDepsAdapter.ts`:
|
||
- unbound session store/logger/normalizer methods caused `TypeError` at `assistantSessionStore.ensureSession(...)` and mass `500` responses in API tests.
|
||
2. Added safe method wrappers in deps adapter:
|
||
- `ensureSession`, `appendItem`, `getSession`, `persistSession`, `setInvestigationState`, `normalize`.
|
||
3. Added regression guard:
|
||
- `assistantTurnRuntimeDepsAdapter.test.ts` now includes a stateful instance-context test to prevent `this` loss regressions.
|
||
4. Validation gates (fact):
|
||
- `npm run build` passed.
|
||
- Combined Stage 2 regression validation passed: `37` files / `95` tests (deep-turn adapters/builders/packaging, orchestration contracts/runtime, MCP bridge, followup continuity, wave10 corrective regression).
|
||
5. Scope note:
|
||
- Full backend suite still has red tests in Stage 3/4 probes and long-running acceptance packs; this is tracked under Stage 3 backlog and is not a Stage 2 blocker.
|
||
|
||
### Stage 2 Remaining Risks (Known)
|
||
1. Final answer quality still template-heavy and brittle.
|
||
2. Lexical routing pressure remains high (dictionary overfitting risk).
|
||
3. Deterministic guards still compensate for weak semantic parsing.
|
||
|
||
## Stage 3 (P2): Hybrid Semantic Layer (LLM + Deterministic Guards)
|
||
|
||
Goal:
|
||
1. Use LLM for semantic extraction/decomposition in strict schema.
|
||
2. Keep deterministic guardrails as verifier, not primary “brain”.
|
||
3. Reduce dictionary overfitting and false route drifts.
|
||
|
||
Plan (Stage 3):
|
||
1. **Schema-first semantic extraction**
|
||
- Strict JSON schema for: entities, time scope, intent, ambiguity, success criteria.
|
||
- Hard validation + retry/repair loop.
|
||
2. **LLM decomposition with guardrails**
|
||
- Decomposition produces executable plan candidates.
|
||
- Deterministic guards validate: domain polarity, temporal window, claim-bound anchors.
|
||
3. **Evidence-first reasoning**
|
||
- LLM only summarizes from evidence bundle, never invents facts.
|
||
4. **Context binding**
|
||
- Carryover only via typed followup state, not free-text memory.
|
||
5. **Quality gates**
|
||
- Coverage critic threshold before final answer.
|
||
- Reason-code taxonomy normalized.
|
||
|
||
Implemented in current pass (Stage 3.1 kick-off):
|
||
1. Added strict semantic extraction contract for address predecompose:
|
||
- `address_semantic_extraction_contract_v1` built from `source_message + canonical_message + predecompose contract`.
|
||
- Captures: extraction snapshot, guard hints, quality, validity, apply-canonical recommendation, reason codes.
|
||
2. Added semantic guard integration in predecompose runtime:
|
||
- New rejection path for low-value/unsafe canonical rewrites (`normalized_fragment_rejected_semantic_guard`).
|
||
- Fallback preference updated: deterministic fallback can win over LLM canonical when semantic contract rejects rewrite.
|
||
3. Added semantic arbitration integration in tool-gate:
|
||
- `resolveAddressToolGateDecision(...)` now honors `apply_canonical_recommended`.
|
||
- New skip reason: `llm_predecompose_semantic_guard_rejected`.
|
||
4. Extended runtime/debug observability:
|
||
- semantic contract propagated through address tool-gate, deep debug payload, and living chat debug payload.
|
||
- orchestration contract now includes semantic guard fields (`semantic_contract_valid`, `semantic_apply_canonical_recommended`, `semantic_reason_codes`).
|
||
5. Added focused regression tests:
|
||
- `assistantSemanticExtractionContract.test.ts` (new)
|
||
- Existing router/chat regressions revalidated (`assistantLivingRouter.test.ts`, `assistantLivingChatMode.test.ts`).
|
||
|
||
Implemented in current pass (Stage 3.2 semantic route arbitration):
|
||
1. Extended orchestration fallback arbitration with semantic hints:
|
||
- `resolveAssistantOrchestrationDecision(...)` now evaluates semantic extraction hints (`guard_hints`, `extraction`) in addition to lexical flags.
|
||
- Added followup-aware override path so unsupported aggregate carryover queries can still be redirected to deep-analysis lane.
|
||
2. Reduced false route stickiness in followup turns:
|
||
- Aggregate/unsupported questions with stale followup context no longer remain in address lane by default.
|
||
- Supported intents (for example `list_open_contracts`) remain protected from accidental deep fallback unless strict deep-investigation cue is detected.
|
||
3. Extended orchestration debug contract:
|
||
- Added `semantic_route_arbitration` block (`supported_address_intent_detected`, `semantic_deep_investigation_hint_detected`, `semantic_aggregate_shape_detected`, `followup_semantic_override_to_deep_allowed`).
|
||
4. Added/updated regression coverage for real failures:
|
||
- `assistantLivingRouter.test.ts` now includes followup-carryover aggregate scenario (`какие обороты ... за 2020 год`) and validates deep fallback.
|
||
- Existing list-open-contracts guard scenario remains green (`Покажи незакрытые договоры ...` stays in address lane).
|
||
5. Validation snapshot:
|
||
- Stage 3 focused suite: `10` files / `76` tests passed.
|
||
- Type build: `npm --prefix llm_normalizer/backend run build` passed.
|
||
|
||
Implemented in current pass (Stage 3.3 soft-refusal + anti-template limited replies):
|
||
1. Reworked address-lane limited reply composer from fixed template to contextual soft-refusal:
|
||
- Added deterministic phrasing variants (stable, non-random) to reduce repeated boilerplate.
|
||
- Kept concise "Коротко" structure while replacing hard repeated wording.
|
||
2. Added context-aware explanation and recovery offers for limited responses:
|
||
- Response now injects request scope hints when available (organization, as-of date, period window).
|
||
- Added "Что могу сделать сейчас" with nearest supported scenarios (documents/payments by anchor, open contracts/tails, account-balance drilldown).
|
||
- Added weak-anchor suppression for user-facing hints to avoid low-value auto-substitutions in suggestions.
|
||
3. Improved unsupported aggregate handling UX:
|
||
- For aggregate/ranking style queries, reply now proposes evidence-first path (collect factual base -> continue in extended analysis) instead of hard static fallback phrase.
|
||
4. Improved missing-anchor UX:
|
||
- Missing anchor tokens are normalized to user-facing terms (e.g., `counterparty_or_contract` -> "контрагент или договор").
|
||
- Added concrete reformulation hint for underspecified anchor cases.
|
||
5. Regression updates:
|
||
- Updated `addressQueryRuntimeM23.test.ts` soft out-of-scope assertion to validate contextual soft-refusal structure.
|
||
6. Validation snapshot:
|
||
- Extended regression pack: `11` files / `344` tests passed.
|
||
- Type build: `npm --prefix llm_normalizer/backend run build` passed.
|
||
|
||
Implemented in current pass (Stage 3.4 deep/living soft-refusal boundary widening):
|
||
1. Extended boundary fallback trigger in policy composer:
|
||
- `shouldUseBoundaryFallbackReply(...)` now supports `broad_partial` mode when domain coverage is weak/unconfirmed.
|
||
- Added domain-aware gate (`focus_domain == null` or `focusDomainGroundingBlocked`) + weak-evidence envelope checks.
|
||
2. Reduced template leakage for off-domain partial replies:
|
||
- Cases with weak partial support but no confirmed domain grounding now return soft-refusal boundary reply instead of rigid `Коротко/Что сломано/...` template blocks.
|
||
3. Improved boundary fallback UX:
|
||
- Added deterministic heading variants to reduce repetitive wording.
|
||
- Added quick actionable line (`Что могу сделать сейчас`) sourced from nearest supported capability set.
|
||
4. Added targeted regression coverage:
|
||
- Rewrote/normalized `assistantBoundaryFallbackReply.test.ts` in UTF-8 and added case for `broad_partial + weak evidence + uncovered domain`.
|
||
5. Validation snapshot:
|
||
- Stage 3 focused suite (+boundary): `12` files / `348` tests passed.
|
||
- Type build: `npm --prefix llm_normalizer/backend run build` passed.
|
||
|
||
Implemented in current pass (Stage 3.5 evidence-first soft policy reply):
|
||
1. Added soft policy renderer for weak deep-policy envelopes:
|
||
- For weak `broad_partial` and clarification/no-grounded envelopes, final user reply now uses concise non-sectional soft format (`Коротко`, `Что уже проверено`, `Что пока не доказано`, `Что могу сделать сейчас`).
|
||
- Prevents repeated rigid section template in weak-evidence responses while preserving actionable next steps.
|
||
2. Added explicit policy gate for soft rendering:
|
||
- `shouldUseSoftPolicyReply(...)` evaluates mode + coverage gaps + weak evidence signals (`broad_query_detected`, `minimum_evidence_failed`, low confidence, critical limitation reason codes).
|
||
- Keeps structured sectioned renderer for strong grounded envelopes.
|
||
3. Preserved strong answer path:
|
||
- `focused_grounded` / high-confidence cases continue to use structured policy layout with explicit sections.
|
||
4. Added regression coverage:
|
||
- New `assistantSoftPolicyReply.test.ts`:
|
||
- weak broad-partial -> soft non-template reply;
|
||
- strong grounded -> structured sectioned reply.
|
||
5. Validation snapshot:
|
||
- Stage 3 focused suite (+soft policy): `13` files / `350` tests passed.
|
||
- Type build: `npm --prefix llm_normalizer/backend run build` passed.
|
||
|
||
Implemented in current pass (Stage 3.6 route arbitration hardening + followup isolation):
|
||
1. Isolated standalone address topics from stale followup carryover:
|
||
- Added standalone-topic detector (`hasStandaloneAddressTopicSignal`) and applied it in followup signal/carryover gates.
|
||
- Explicit standalone requests with their own anchor (`date/account/object`) no longer inherit previous address followup context by default.
|
||
2. Hardened orchestration for real regression cases:
|
||
- Added explicit open-contract lookup signal guard (`hasOpenContractsAddressSignal`) to keep `list_open_contracts` style requests in address lane even with stale deep context.
|
||
- Extended aggregate fallback arbitration so stale followup context cannot pin standalone aggregate queries in address lane (`aggregate_analytics_signal_fallback_to_deep` remains allowed).
|
||
3. Improved data-scope slang detection resilience:
|
||
- Added direct slang lead detection for queries like `по каким конторам можем общаться` / `какая база подрублена`.
|
||
- Preserved deterministic chat/data-scope routing despite aggressive predecompose rewrites.
|
||
4. Reduced limited-reply template repetition:
|
||
- Reworked unsupported/aggregate limited phrasing in `composeLimitedReply(...)` to softer non-rigid variants.
|
||
- Suppressed redundant `Сигнал запроса` line for unsupported aggregate envelopes.
|
||
5. Reduced dictionary overfitting pressure in filter extraction:
|
||
- Shrunk `COUNTERPARTY_TOKEN_NOISE` to compact core stopwords.
|
||
- Added pattern-based filler/slang/profanity detector (`isCounterpartyFillerToken`) instead of expanding static token lists.
|
||
6. Validation snapshot:
|
||
- Targeted regression pack: `4` files / `318` tests passed (`assistantLivingRouter`, `assistantLivingChatMode`, `addressQueryRuntimeM23`, `assistantSoftPolicyReply`).
|
||
- Type build: `npm --prefix llm_normalizer/backend run build` passed.
|
||
|
||
Implemented in current pass (Stage 3.7 real-run regression hardening, 2026-04-11):
|
||
1. Added a dedicated regression pack from real failing runs:
|
||
- New test file:
|
||
- `llm_normalizer/backend/tests/assistantWave17RunRegression20260411.test.ts`
|
||
2. Covered two production run cohorts directly:
|
||
- `assistant-stage1-aXaATwBpP6` (2026-04-11 14:59 local run family)
|
||
- `assistant-stage1-RAvQiKIFKX` (2026-04-11 17:51 local run family)
|
||
3. Locked critical route/answer protections from these runs:
|
||
- data-heavy prompts remain in address lane (no accidental chat drift);
|
||
- short follow-up style prompts (`без воды?`, `и коротко?`, `прям сейчас?`) stay in deep fallback when predecompose is unsupported (no generic chat fallback);
|
||
- slang data-scope wording (`по каким конторам можем общаться?`) remains in chat meta/data-scope mode;
|
||
- open-contract request with stale deep follow-up context keeps address lane priority;
|
||
- unsupported aggregate answers use soft-refusal structure and no longer rely on old rigid phrase (`Сейчас этот тип вопроса вне поддерживаемого контура адресного режима...`).
|
||
4. Validation snapshot:
|
||
- New regression file: `1` file / `5` tests passed.
|
||
- Extended focused suite: `6` files / `66` tests passed (`assistantWave17RunRegression20260411`, `assistantLivingRouter`, `assistantLivingChatMode`, `assistantSoftPolicyReply`, `assistantBoundaryFallbackReply`, `assistantAnswerPolicyV11`).
|
||
|
||
Implemented in current pass (Stage 3.8 manual-comment wave hardening, 2026-04-11):
|
||
1. Added manual-comment regression pack based on unresolved GUI annotations:
|
||
- New test file:
|
||
- `llm_normalizer/backend/tests/assistantWave18ManualCommentsRegression.test.ts`
|
||
- Scope:
|
||
- 18 unresolved manual comments from:
|
||
- `assistant-stage1-UMKkFYfg2L`
|
||
- `assistant-stage1-ywEyJgFkC4`
|
||
- `assistant-stage1-ZL97weIIRG`
|
||
2. Hardened intent recognition for weakly-structured real phrasing in address lane:
|
||
- `llm_normalizer/backend/src/services/addressIntentResolver.ts`
|
||
- Improvements:
|
||
- supplier-tail wording (`не закрывают счета`, `больше месяца`) now maps to supported payables/open-items intent;
|
||
- receivables latency wording (`не платят несколько месяцев`, payment-vs-shipment imbalance, negative saldo risk) now maps to supported receivables intent;
|
||
- stuck advances wording (`зависшие авансы`, `пора закрыть`, `перепривязать`, `списывать`) now maps to settlement-gap/open-contracts intent.
|
||
3. Hardened orchestration tool-gate against false capability drift on data requests:
|
||
- `llm_normalizer/backend/src/services/assistantService.ts`
|
||
- Improvements:
|
||
- retrieval-action/object detection expanded for imperative finance requests (`проверь` + `аванс/отгруз/долг` objects);
|
||
- tool-gate now uses both raw and repaired message variants for classifier/intent signals to avoid false negatives from over-repair.
|
||
4. Updated reason-code expectations in route regressions after new intent-signal source:
|
||
- `llm_normalizer/backend/tests/assistantWave17RunRegression20260411.test.ts`
|
||
- `llm_normalizer/backend/tests/assistantLivingRouter.test.ts`
|
||
5. Validation snapshot:
|
||
- Focused regression pack: `4` files / `58` tests passed:
|
||
- `assistantWave17RunRegression20260411.test.ts`
|
||
- `assistantWave18ManualCommentsRegression.test.ts`
|
||
- `assistantLivingRouter.test.ts`
|
||
- `assistantLivingChatMode.test.ts`
|
||
- Build validation:
|
||
- `npm run build` (backend) passed.
|
||
|
||
Implemented in current pass (Stage 3.9 anti-template risk-lane stabilization, 2026-04-11):
|
||
1. Removed hard `missing_anchor` gate for broad open-items scans:
|
||
- `llm_normalizer/backend/src/services/addressQueryService.ts`
|
||
- `open_items_by_counterparty_or_contract` can now run as a broad risk scan without mandatory counterparty/contract anchor.
|
||
2. Stopped wrong-domain leakage in risk intents:
|
||
- `llm_normalizer/backend/src/services/addressRecipeCatalog.ts`
|
||
- switched to strict account scope for:
|
||
- `list_payables_counterparties` (`60/76`)
|
||
- `list_receivables_counterparties` (`62/76`)
|
||
- `list_open_contracts` (`60/62/76`)
|
||
3. Added future-date guard for risk replies:
|
||
- `llm_normalizer/backend/src/services/addressQueryService.ts`
|
||
- rows far beyond analysis/reference date (e.g., synthetic `2030-*`) are excluded from factual reply assembly for risk intents.
|
||
4. Expanded anchor-recovery behavior for risk lanes:
|
||
- when initial slice has raw rows but zero rows after strict account scope, runtime can auto-expand live limit for recovery (instead of silent fallback to irrelevant rows).
|
||
5. Reworked factual composer for risk intents to reduce repeated templates:
|
||
- `llm_normalizer/backend/src/services/address_runtime/composeStage.ts`
|
||
- for payables/receivables/open-items/open-contracts now builds counterparty risk ranking (sum + ops + last period) before raw row fallback.
|
||
6. Regression updates:
|
||
- `llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts`
|
||
- updated open-items no-anchor expectation to match new broad-scan contract;
|
||
- added checks for strict scope and anti-leak behavior in receivables/open-contract intents.
|
||
7. Validation snapshot:
|
||
- `npm.cmd run test -- --run tests/addressQueryRuntimeM23.test.ts` -> `271 passed`
|
||
- `npm.cmd run test -- --run tests/addressQueryRuntimeM23.test.ts tests/assistantWave17RunRegression20260411.test.ts` -> `274 passed`
|
||
- `npm run build` (backend) passed.
|
||
|
||
Implemented in current pass (Stage 3.10 debt-lifecycle routing for reviewer comment AUTO-004, 2026-04-11):
|
||
1. Added explicit intent arbitration for debt-longevity customer phrasing:
|
||
- `llm_normalizer/backend/src/services/addressIntentResolver.ts`
|
||
- New signal `hasCounterpartyDebtLongevitySignal(...)` routes queries like
|
||
`Сколько заказчиков ... долгожителями по задолженностям` to
|
||
`counterparty_activity_lifecycle` instead of `open_items_by_counterparty_or_contract`.
|
||
2. Prevented open-items override for this class of queries:
|
||
- Open-items branch now skips debt-longevity customer wording, preserving lifecycle route.
|
||
3. Expanded lifecycle recipe to support year-based ranking:
|
||
- `llm_normalizer/backend/src/services/addressRecipeCatalog.ts`
|
||
- `COUNTERPARTY_ACTIVITY_LIFECYCLE_QUERY_TEMPLATE` now includes yearly aggregate marker
|
||
`CP_CUSTOMER_ACTIVITY_YEAR` (counterparty x year).
|
||
4. Reworked lifecycle composer for debt-longevity question style:
|
||
- `llm_normalizer/backend/src/services/address_runtime/composeStage.ts`
|
||
- Added deterministic top-10 output by:
|
||
- number of active years,
|
||
- operation frequency,
|
||
- period span;
|
||
- Response now explicitly provides `лет в базе` and year list.
|
||
5. Added regression coverage:
|
||
- `llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts`
|
||
- new checks for:
|
||
- resolver mapping of debt-longevity wording to lifecycle intent;
|
||
- address runtime route + recipe selection;
|
||
- factual reply contains top ranking by years.
|
||
6. Validation snapshot:
|
||
- `npm.cmd run test -- --run tests/addressQueryRuntimeM23.test.ts` -> `274 passed`
|
||
- `npm.cmd run test -- --run tests/assistantWave17RunRegression20260411.test.ts tests/assistantLivingRouter.test.ts tests/assistantLivingChatMode.test.ts` -> `55 passed`
|
||
- `npm run build` (backend) passed.
|
||
|
||
Implemented in current pass (Stage 3.11 unresolved manual-comment routing hardening, 2026-04-11):
|
||
1. Expanded semantic routing for overdue receivables and settlement-gap phrasing from unresolved reviewer cases:
|
||
- `llm_normalizer/backend/src/services/addressIntentResolver.ts`
|
||
- Added overdue-deadline cue support (`сроки ... прошли`) for non-payment receivables wording.
|
||
- Added settlement-gap signals for:
|
||
- payments without settlement closure (`оплаты без закрытия взаиморасчетов`);
|
||
- shipments without closing docs (`отгрузки без документов для закрытия`);
|
||
- closing without supporting docs (`закрытие счетов без подтверждающих документов`).
|
||
2. Locked new routing with regression coverage:
|
||
- `llm_normalizer/backend/tests/addressQueryRuntimeM23.test.ts`
|
||
- Added resolver + runtime checks for the exact unresolved wave wording above.
|
||
3. Stabilized Wave18 regression harness against annotation-state drift:
|
||
- `llm_normalizer/backend/tests/assistantWave18ManualCommentsRegression.test.ts`
|
||
- Removed brittle hard dependency on `resolved=false` for all fixed keys.
|
||
- Kept live runtime assertions on unresolved subset and increased explicit timeout for integration path.
|
||
4. Validation snapshot:
|
||
- Stage 3 focused suite:
|
||
- `tests/addressQueryRuntimeM23.test.ts`
|
||
- `tests/assistantWave18ManualCommentsRegression.test.ts`
|
||
- `tests/assistantWave17RunRegression20260411.test.ts`
|
||
- `tests/assistantLivingRouter.test.ts`
|
||
- `tests/assistantLivingChatMode.test.ts`
|
||
- `tests/assistantSoftPolicyReply.test.ts`
|
||
- `tests/assistantBoundaryFallbackReply.test.ts`
|
||
- `tests/assistantAnswerPolicyV11.test.ts`
|
||
- `tests/assistantSemanticExtractionContract.test.ts`
|
||
- Result: `9 files / 354 tests passed`.
|
||
- `npm run build` (backend) passed.
|
||
|
||
Acceptance (Stage 3):
|
||
1. LLM outputs strictly validated schema for extraction/decomposition (no free-form).
|
||
2. Deterministic guards can block or downgrade answers when evidence insufficient.
|
||
3. False route drifts and generic responses reduced in regression packs.
|
||
4. Manual markup shows increase in “correct/grounded” labels.
|
||
|
||
Status: In validation (functional gates green; manual re-markup trend confirmation pending)
|
||
|
||
## Stage 4 (P2): Human-Centric Answer Layer
|
||
|
||
Goal:
|
||
1. Move final user response to contract-driven answer package with:
|
||
- direct answer;
|
||
- what was checked;
|
||
- what was found;
|
||
- what remains unproven;
|
||
- best next step.
|
||
2. Keep claim-to-evidence binding strict.
|
||
|
||
Status: Planned
|
||
|
||
## Stage 5 (P3): Quality Loop Driven By GUI Markup
|
||
|
||
Goal:
|
||
1. Drive backlog from `manual_case_decision` queues.
|
||
2. Build targeted regression packs from real failed comments.
|
||
3. Track trend by reason-code clusters.
|
||
|
||
Status: Planned
|
||
|
||
## 6. Non-Negotiable Constraints
|
||
|
||
1. Do not break MCP route interfaces.
|
||
2. Do not remove manual logic without compatible replacement.
|
||
3. Preserve UTF-8 (without BOM) for all source/doc files.
|
||
4. Keep manual markup and autorun API contract stable.
|