fix(consult): BUG-945~949 领域截断、思考分片、Pass 4 按模式分流
schema 上限与执行上限解耦;校正思考改分片门;日期观察不删字,保证句与无分钟个人盘退回重写。
This commit is contained in:
@@ -39,7 +39,6 @@ import { createAdminSupabaseClient } from "@/lib/supabase/admin";
|
||||
import { createServerSupabaseClient } from "@/lib/supabase/server";
|
||||
import { streamTextResponse } from "@/lib/stream-text-response";
|
||||
import { streamAgentResponse } from "@/lib/stream-agent-response";
|
||||
import { detectMethodologyBookkeeping } from "@/lib/timing-output-guard";
|
||||
import type { AgentExecutionReceipt, WorkflowReceipt } from "@/lib/consultation-agent-events";
|
||||
import { consultationComposePrompt, consultationContinuePrompt, natalConsultationThinkingPlan, type PublicThinkingSection } from "@/lib/consultation-thinking-plan";
|
||||
import {
|
||||
@@ -62,7 +61,6 @@ import {
|
||||
applyBirthTimeModeToWorkflowContext,
|
||||
ACCEPTED_RANGE_READING_INSTRUCTION,
|
||||
consultationBirthTimeModeSchema,
|
||||
createBirthTimeModeOutputGuard,
|
||||
shouldRunBirthChartWorkflow,
|
||||
shouldRunDeclaredWindowWorkflow,
|
||||
type ConsultationBirthTimeMode,
|
||||
@@ -1004,10 +1002,7 @@ export async function POST(request: Request) {
|
||||
retryForAnswer,
|
||||
continueAfterLength,
|
||||
continueAfterDisconnect: true,
|
||||
transformText: createBirthTimeModeOutputGuard(
|
||||
generalDailyContext ? "general_no_birth_time" : consultationMode,
|
||||
false,
|
||||
),
|
||||
pass4Mode: generalDailyContext ? "general_no_birth_time" : consultationMode,
|
||||
toolStatus: () => "ready",
|
||||
receipt: executionReceipt,
|
||||
headers: { "x-jyotish-birth-time-mode": consultationMode },
|
||||
@@ -1107,7 +1102,7 @@ export async function POST(request: Request) {
|
||||
retryForAnswer,
|
||||
continueAfterLength,
|
||||
continueAfterDisconnect: true,
|
||||
transformText: createBirthTimeModeOutputGuard(consultationMode, false),
|
||||
pass4Mode: consultationMode,
|
||||
toolStatus: () => workflowStatus(state.workflowReceipt?.status),
|
||||
receipt: executionReceipt,
|
||||
headers: { "x-jyotish-birth-time-mode": consultationMode },
|
||||
@@ -1188,10 +1183,10 @@ export async function POST(request: Request) {
|
||||
const interpretFindings = async () => (
|
||||
(state.thinkingPlan ?? []).map((section) => ({ id: section.id }))
|
||||
);
|
||||
const composeAnswer = async () => {
|
||||
const composeAnswer = async (_: readonly { id: string; text?: string }[] = [], retryHint?: string) => {
|
||||
const composed = await agent.stream([
|
||||
...baseMessages,
|
||||
{ role: "user" as const, content: consultationComposePrompt() },
|
||||
{ role: "user" as const, content: `${consultationComposePrompt()}${retryHint ? `\n${retryHint}` : ""}` },
|
||||
], {
|
||||
...streamOptions,
|
||||
maxSteps: AGENT_SLICE_MAX_STEPS,
|
||||
@@ -1230,16 +1225,8 @@ export async function POST(request: Request) {
|
||||
continueAfterLength,
|
||||
interpretFindings,
|
||||
composeAnswer,
|
||||
pass4Violations: (text) => detectMethodologyBookkeeping(text).map((item) => item.kind),
|
||||
pass4Mode: consultationMode,
|
||||
continueAfterDisconnect: true,
|
||||
transformText: (text) => createBirthTimeModeOutputGuard(
|
||||
consultationMode,
|
||||
state.workflowReceipt?.preciseTiming === "allowed",
|
||||
{
|
||||
currentTheme: consultationTheme,
|
||||
minuteSensitiveThemes: state.workflowReceipt?.minuteSensitiveThemes,
|
||||
},
|
||||
)(text),
|
||||
toolStatus: () => workflowStatus(state.workflowReceipt?.status),
|
||||
receipt: executionReceipt,
|
||||
headers: { "x-jyotish-birth-time-mode": consultationMode },
|
||||
@@ -1313,10 +1300,6 @@ export async function POST(request: Request) {
|
||||
: cancel,
|
||||
);
|
||||
return streamTextResponse(result.textStream, {
|
||||
transformText: createBirthTimeModeOutputGuard(
|
||||
generalDailyContext ? "general_no_birth_time" : consultationMode,
|
||||
false,
|
||||
),
|
||||
mode: "mastra",
|
||||
requestId,
|
||||
continueAfterDisconnect: true,
|
||||
@@ -1426,14 +1409,6 @@ export async function POST(request: Request) {
|
||||
: cancel,
|
||||
);
|
||||
return streamTextResponse(result.textStream, {
|
||||
transformText: createBirthTimeModeOutputGuard(
|
||||
consultationMode,
|
||||
workflowReceipt.preciseTiming !== "blocked",
|
||||
{
|
||||
currentTheme: consultationTheme,
|
||||
minuteSensitiveThemes: workflowReceipt.minuteSensitiveThemes,
|
||||
},
|
||||
),
|
||||
mode: "mastra",
|
||||
requestId,
|
||||
continueAfterDisconnect: true,
|
||||
|
||||
Reference in New Issue
Block a user