fix(consultation): 外网证据按盘+日期缓存,超时取消前台任务
BUG-727:同日 VedAstro 快照零等待,跨日先用旧的并后台刷新;join 超时必须 cancel,budget 不超过 2×join。BUG-728:western_evidence_packet 无读取点,默认不再进咨询响应。jyotish_api_server.py 未增长(11334→11291)。
This commit is contained in:
@@ -676,6 +676,7 @@ export function createConsultationTools(ctx: ConsultationAgentContext) {
|
||||
signal: context.abortSignal ?? ctx.abortSignal,
|
||||
plan: domainPlan,
|
||||
requestId: ctx.requestId,
|
||||
entrypoint: ctx.entrypoint,
|
||||
});
|
||||
const guarded = applyBirthTimeModeToWorkflowContext(workflow, ctx.consultationMode, {
|
||||
birthTimeSource: ctx.serverChart.truth.birthTimeSource,
|
||||
|
||||
@@ -125,7 +125,13 @@ export function consultationWorkflowFailureCode(error: unknown): ConsultationWor
|
||||
|
||||
export async function runConsultationWorkflow(
|
||||
input: ConsultationInput,
|
||||
options?: { foreground?: boolean; signal?: AbortSignal; plan?: ConsultationPlan; requestId?: string },
|
||||
options?: {
|
||||
foreground?: boolean;
|
||||
signal?: AbortSignal;
|
||||
plan?: ConsultationPlan;
|
||||
requestId?: string;
|
||||
entrypoint?: string;
|
||||
},
|
||||
) {
|
||||
const { entryMode, question, theme, ...workflowInput } = input;
|
||||
const plan = options?.plan ?? createConsultationPlan({ userIntent: question, theme });
|
||||
@@ -139,6 +145,7 @@ export async function runConsultationWorkflow(
|
||||
...workflowInput,
|
||||
// Correlates this call with the API access log when a run fails.
|
||||
...(options?.requestId ? { request_id: options.requestId } : {}),
|
||||
...(options?.entrypoint ? { entrypoint: options.entrypoint } : {}),
|
||||
entry_mode: entryMode,
|
||||
question: workflowRequest.question,
|
||||
question_text: workflowRequest.question,
|
||||
|
||||
@@ -177,6 +177,19 @@ test("validates and emits non-sensitive workflow and execution receipts", () =>
|
||||
assert.match(route, /streamAgentResponse/);
|
||||
});
|
||||
|
||||
test("consultationWorkflowResponseSchema still parses without western_evidence_packet", () => {
|
||||
const schema = workflow.slice(
|
||||
workflow.indexOf("export const consultationWorkflowResponseSchema"),
|
||||
workflow.indexOf("function record("),
|
||||
);
|
||||
assert.match(schema, /success: z\.boolean\(\)/);
|
||||
assert.match(schema, /chart: z\.record\(z\.unknown\(\)\)/);
|
||||
assert.match(schema, /routing: z\.record\(z\.unknown\(\)\)/);
|
||||
assert.match(schema, /consumer_context:/);
|
||||
assert.match(schema, /\)\.passthrough\(\);/);
|
||||
assert.doesNotMatch(schema, /western_evidence_packet/);
|
||||
});
|
||||
|
||||
test("carries commercial technique truth into the model contract", () => {
|
||||
assert.match(workflow, /technique_truth/);
|
||||
assert.match(mastra, /deterministic_claims_forbidden_for/);
|
||||
|
||||
Reference in New Issue
Block a user