shitton of the ai changes

This commit is contained in:
2026-05-01 04:54:11 +03:00
parent d95c37a322
commit 8cff086a8e
194 changed files with 29409 additions and 8841 deletions
+60
View File
@@ -0,0 +1,60 @@
import test from "node:test";
import assert from "node:assert/strict";
const {
DEFAULT_PIPELINE_FALLBACK_POLICIES,
} = await import("../dist/ai/user-request-pipeline/blueprint.js");
const {
decidePipelineFallback,
fallbackReasonFromStageStatus,
resolvePipelineFallbackAction,
} = await import("../dist/ai/user-request-pipeline/fallback-executor.js");
test("fallback executor resolves configured failed action", () => {
assert.equal(
resolvePipelineFallbackAction({
stage: "input_size_gate",
reason: "failed",
policies: DEFAULT_PIPELINE_FALLBACK_POLICIES,
}),
"notify_user",
);
});
test("fallback executor uses default action for missing policy", () => {
assert.equal(
resolvePipelineFallbackAction({
stage: "send_response",
reason: "failed",
policies: [],
}),
"fail_request",
);
assert.equal(
resolvePipelineFallbackAction({
stage: "send_response",
reason: "unavailable",
policies: [],
}),
"continue_without_stage",
);
});
test("fallback decision exposes notify and continuation flags", () => {
const decision = decidePipelineFallback({
stage: "document_rag",
reason: "failed",
policies: DEFAULT_PIPELINE_FALLBACK_POLICIES,
});
assert.equal(decision.action, "notify_user");
assert.equal(decision.shouldNotifyUser, true);
assert.equal(decision.shouldContinue, true);
assert.equal(decision.shouldFailRequest, false);
});
test("fallback reason maps only failed and skipped statuses", () => {
assert.equal(fallbackReasonFromStageStatus("failed"), "failed");
assert.equal(fallbackReasonFromStageStatus("skipped"), "unavailable");
assert.equal(fallbackReasonFromStageStatus("succeeded"), undefined);
});