feat: enhance local knowledge retrieval
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
import { randomUUID } from 'node:crypto'
|
||||
import { DatabaseSync } from 'node:sqlite'
|
||||
import { expertCreateSchema } from '../../shared/assistant-contracts'
|
||||
import {
|
||||
expertCreateSchema,
|
||||
normalizeInteractiveWorkMode
|
||||
} from '../../shared/assistant-contracts'
|
||||
import type {
|
||||
AssistantArtifact,
|
||||
AssistantExpert,
|
||||
@@ -17,6 +20,7 @@ import type {
|
||||
HeartbeatCreateInput,
|
||||
HeartbeatSummaryOutput,
|
||||
HeartbeatUpdateInput,
|
||||
LegacyWorkMode,
|
||||
MemoryCreateInput,
|
||||
ModelUsageCallInput,
|
||||
ProjectChannel,
|
||||
@@ -70,7 +74,7 @@ type ProjectRow = {
|
||||
name: string
|
||||
description: string
|
||||
root_path: string
|
||||
default_work_mode: ProjectCreateInput['defaultWorkMode']
|
||||
default_work_mode: LegacyWorkMode
|
||||
runtime_selection_json: string | null
|
||||
kind: AssistantProject['kind']
|
||||
channel: ProjectChannel | null
|
||||
@@ -363,7 +367,9 @@ function toProject(row: ProjectRow): AssistantProject {
|
||||
name: row.name,
|
||||
description: row.description,
|
||||
rootPath: row.root_path,
|
||||
defaultWorkMode: row.default_work_mode,
|
||||
defaultWorkMode: normalizeInteractiveWorkMode(
|
||||
row.default_work_mode
|
||||
),
|
||||
runtimeSelection:
|
||||
row.kind === 'channel'
|
||||
? parseRuntimeSelection(row.runtime_selection_json) ?? {
|
||||
@@ -487,7 +493,7 @@ function toSchedule(row: ScheduleRow): AssistantSchedule {
|
||||
const template = JSON.parse(row.task_template_json) as {
|
||||
title: string
|
||||
prompt: string
|
||||
workMode: AssistantSchedule['workMode']
|
||||
workMode: LegacyWorkMode
|
||||
}
|
||||
const recurrence = JSON.parse(row.recurrence_json) as {
|
||||
type: AssistantSchedule['recurrence']
|
||||
@@ -497,7 +503,7 @@ function toSchedule(row: ScheduleRow): AssistantSchedule {
|
||||
projectId: row.project_id ?? undefined,
|
||||
title: template.title,
|
||||
prompt: template.prompt,
|
||||
workMode: template.workMode,
|
||||
workMode: 'ask',
|
||||
recurrence: recurrence.type,
|
||||
nextRunAt: row.next_run_at,
|
||||
enabled: row.enabled === 1,
|
||||
@@ -2392,7 +2398,7 @@ export class AssistantDatabase {
|
||||
routingMode?: AssistantTask['routingMode']
|
||||
title: string
|
||||
instructions: string
|
||||
workMode: 'ask' | 'plan' | 'execute'
|
||||
workMode: 'ask' | 'execute'
|
||||
origin?: AssistantTask['origin']
|
||||
status?: 'queued' | 'running'
|
||||
visible?: boolean
|
||||
@@ -3808,7 +3814,7 @@ export class AssistantDatabase {
|
||||
instructions, origin, status, priority, work_mode,
|
||||
progress, created_at, started_at, completed_at, error)
|
||||
VALUES (?, ?, NULL, NULL, ?, ?, 'assistant', 'paused', 0,
|
||||
'plan', NULL, ?, NULL, NULL, NULL)`
|
||||
'ask', NULL, ?, NULL, NULL, NULL)`
|
||||
)
|
||||
for (const task of output.followUpTasks) {
|
||||
const taskId = randomUUID()
|
||||
@@ -4298,7 +4304,7 @@ export class AssistantDatabase {
|
||||
description TEXT NOT NULL DEFAULT '',
|
||||
root_path TEXT NOT NULL DEFAULT '',
|
||||
default_work_mode TEXT NOT NULL
|
||||
CHECK(default_work_mode IN ('ask', 'plan', 'execute')),
|
||||
CHECK(default_work_mode IN ('ask', 'execute')),
|
||||
runtime_selection_json TEXT,
|
||||
status TEXT NOT NULL CHECK(status IN ('active', 'archived')),
|
||||
created_at TEXT NOT NULL,
|
||||
@@ -4309,7 +4315,7 @@ export class AssistantDatabase {
|
||||
project_id TEXT REFERENCES projects(id) ON DELETE SET NULL,
|
||||
runtime_selection_json TEXT,
|
||||
work_mode TEXT NOT NULL DEFAULT 'ask'
|
||||
CHECK(work_mode IN ('ask', 'plan', 'execute')),
|
||||
CHECK(work_mode IN ('ask', 'execute')),
|
||||
title TEXT NOT NULL,
|
||||
status TEXT NOT NULL DEFAULT 'active'
|
||||
CHECK(status IN ('active', 'archived')),
|
||||
@@ -4343,7 +4349,7 @@ export class AssistantDatabase {
|
||||
'completed', 'failed', 'cancelled', 'interrupted')),
|
||||
priority INTEGER NOT NULL DEFAULT 0,
|
||||
work_mode TEXT NOT NULL DEFAULT 'execute'
|
||||
CHECK(work_mode IN ('ask', 'plan', 'execute')),
|
||||
CHECK(work_mode IN ('ask', 'execute')),
|
||||
progress REAL,
|
||||
created_at TEXT NOT NULL,
|
||||
started_at TEXT,
|
||||
|
||||
Reference in New Issue
Block a user