You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
25 lines
1.6 KiB
25 lines
1.6 KiB
-- Interactive deep research: scout → propose → approve → dig → answer → report. |
|
-- |
|
-- Boards gain three transient statuses (scouting/awaiting/reporting) and a |
|
-- regeneratable markdown report. Threads gain a 'proposed' status (waiting for |
|
-- user approval), per-thread user guidance, a synthesized markdown answer, and |
|
-- persisted discovery hints (hints used to ride along in-process inside one |
|
-- build job; with proposals dug in a later job they must survive on the row). |
|
-- |
|
-- guidance/answer/hints/report are content fields: encrypted ("v1:..." blobs) |
|
-- on enc boards, plaintext otherwise. answer_depth is numeric bookkeeping and |
|
-- stays plaintext (same policy as depth). |
|
|
|
ALTER TABLE research_boards DROP CONSTRAINT IF EXISTS research_boards_status_check; |
|
ALTER TABLE research_boards ADD CONSTRAINT research_boards_status_check |
|
CHECK (status IN ('new', 'scouting', 'awaiting', 'digging', 'reporting', 'ready', 'failed')); |
|
ALTER TABLE research_boards ADD COLUMN IF NOT EXISTS report TEXT; |
|
ALTER TABLE research_boards ADD COLUMN IF NOT EXISTS report_generated_at TIMESTAMPTZ; |
|
|
|
ALTER TABLE research_threads DROP CONSTRAINT IF EXISTS research_threads_status_check; |
|
ALTER TABLE research_threads ADD CONSTRAINT research_threads_status_check |
|
CHECK (status IN ('proposed', 'active', 'archived')); |
|
ALTER TABLE research_threads ADD COLUMN IF NOT EXISTS guidance TEXT; |
|
ALTER TABLE research_threads ADD COLUMN IF NOT EXISTS answer TEXT; |
|
ALTER TABLE research_threads ADD COLUMN IF NOT EXISTS answer_depth INTEGER NOT NULL DEFAULT 0; |
|
ALTER TABLE research_threads ADD COLUMN IF NOT EXISTS hints JSONB NOT NULL DEFAULT '[]';
|
|
|