Add premium My Case MVP
This commit is contained in:
+28
-1
@@ -3,6 +3,8 @@ declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../includes/bootstrap.php';
|
||||
require_once __DIR__ . '/../includes/DeepResearchAgent.php';
|
||||
require_once __DIR__ . '/../includes/CaseResults.php';
|
||||
require_once __DIR__ . '/../includes/ToolModels.php';
|
||||
|
||||
dbnToolsRequireMethod('POST');
|
||||
dbnToolsRequireAuth();
|
||||
@@ -59,7 +61,7 @@ try {
|
||||
$seedQuery = trim((string)($input['query'] ?? ''));
|
||||
$pastedText = trim((string)($input['paste_text'] ?? ''));
|
||||
$sliceInput = $input['slices'] ?? [];
|
||||
$engine = (string)($input['engine'] ?? 'azure_mini');
|
||||
$engine = ToolModels::engineForUser($ftUid, (string)($input['engine'] ?? 'azure_mini'));
|
||||
$controls = is_array($input['controls'] ?? null) ? $input['controls'] : [];
|
||||
$advocateRole = trim((string)($input['advocate_role'] ?? ''));
|
||||
if (mb_strlen($advocateRole, 'UTF-8') > 200) {
|
||||
@@ -115,6 +117,16 @@ try {
|
||||
'upload_count' => count($uploadedFiles),
|
||||
]);
|
||||
|
||||
// Optional: append user's case-context chunks to pasted_text so the agent sees them.
|
||||
$useMyCase = !empty($input['use_my_case']);
|
||||
if ($useMyCase) {
|
||||
$retrievalQuery = $seedQuery !== '' ? $seedQuery : mb_substr($pastedText, 0, 2000, 'UTF-8');
|
||||
$caseBlock = dbnToolsCaseContext(true, $retrievalQuery, 5);
|
||||
if ($caseBlock !== '') {
|
||||
$pastedText = ($pastedText === '') ? $caseBlock : ($pastedText . "\n\n" . $caseBlock);
|
||||
}
|
||||
}
|
||||
|
||||
$result = (new DbnDeepResearchAgent())->run(
|
||||
$seedQuery,
|
||||
$pastedText,
|
||||
@@ -144,6 +156,21 @@ try {
|
||||
'advocate_role' => $advocateRole !== '' ? $advocateRole : null,
|
||||
]);
|
||||
|
||||
if ($ftUid > 0) {
|
||||
$toolSlug = $advocateRole !== '' ? 'advocate' : 'deep-research';
|
||||
$ownerId = CaseStore::caseResolveClientId($ftUid);
|
||||
$resultId = CaseResults::save($ftUid, $ownerId, $toolSlug, $input, $result, [
|
||||
'used_case_context' => $useMyCase ? 1 : 0,
|
||||
'case_doc_ids' => dbnToolsLastCaseDocIds(),
|
||||
'model' => $result['trace_metadata']['deployment'] ?? $engine,
|
||||
'latency_ms' => $result['latency_ms'],
|
||||
'credits_charged' => FreeTier::cost($toolSlug),
|
||||
]);
|
||||
if ($resultId > 0) {
|
||||
$result['result_id'] = $resultId;
|
||||
}
|
||||
}
|
||||
|
||||
$emit('final', ['result' => $result]);
|
||||
|
||||
} catch (DbnToolsHttpException $e) {
|
||||
|
||||
Reference in New Issue
Block a user