feat: port holistic node refinement contract
This commit is contained in:
@@ -36,7 +36,6 @@ export interface Node {
|
||||
notes?: string; // Deprecated legacy field - do not write
|
||||
link?: string;
|
||||
event_date?: string | null; // When the thing actually happened (ISO 8601)
|
||||
dimensions: string[]; // Flexible dimensions replacing type + stage + segment + tags
|
||||
embedding?: Buffer; // Node-level embedding (BLOB data)
|
||||
chunk?: string; // Deprecated legacy field - do not write
|
||||
metadata?: CanonicalNodeMetadata | null; // Flexible metadata storage with canonical contract
|
||||
@@ -97,7 +96,6 @@ export interface EdgeContext {
|
||||
|
||||
// New NodeFilters interface replacing rigid ItemFilters
|
||||
export interface NodeFilters {
|
||||
dimensions?: string[]; // Filter by dimensions (replaces stage/type filtering)
|
||||
contextId?: number;
|
||||
search?: string; // Text search in title/content
|
||||
searchMode?: 'standard' | 'hybrid'; // standard = FTS/LIKE, hybrid = add node-vector retrieval
|
||||
@@ -105,7 +103,6 @@ export interface NodeFilters {
|
||||
limit?: number;
|
||||
offset?: number;
|
||||
sortBy?: 'updated' | 'edges' | 'created' | 'event_date'; // Sort by updated_at, edge count, created_at, or event_date
|
||||
dimensionsMatch?: 'any' | 'all'; // 'any' = OR (default), 'all' = AND
|
||||
createdAfter?: string; // ISO date (YYYY-MM-DD) — nodes created on or after
|
||||
createdBefore?: string; // ISO date (YYYY-MM-DD) — nodes created before
|
||||
eventAfter?: string; // ISO date (YYYY-MM-DD) — nodes with event_date on or after
|
||||
@@ -151,12 +148,3 @@ export interface DatabaseError {
|
||||
code?: string;
|
||||
details?: any;
|
||||
}
|
||||
|
||||
// Dimension interface for dimension management
|
||||
export interface Dimension {
|
||||
name: string;
|
||||
description?: string | null;
|
||||
icon?: string | null;
|
||||
is_priority: boolean;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
export interface SkillMeta {
|
||||
name: string;
|
||||
description: string;
|
||||
immutable: boolean;
|
||||
}
|
||||
|
||||
export interface Skill extends SkillMeta {
|
||||
content: string;
|
||||
}
|
||||
|
||||
export interface FocusedSkill {
|
||||
name: string;
|
||||
description: string;
|
||||
content: string;
|
||||
}
|
||||
+2
-11
@@ -1,9 +1,9 @@
|
||||
// View system types
|
||||
|
||||
export type ViewType = 'focus' | 'list' | 'kanban' | 'grid';
|
||||
export type ViewType = 'focus' | 'list' | 'grid' | 'table' | 'map';
|
||||
|
||||
export interface ViewFilter {
|
||||
dimension: string;
|
||||
context: string;
|
||||
operator: 'includes' | 'excludes';
|
||||
}
|
||||
|
||||
@@ -12,18 +12,10 @@ export interface ViewSort {
|
||||
direction: 'asc' | 'desc';
|
||||
}
|
||||
|
||||
export interface KanbanColumn {
|
||||
id: string;
|
||||
dimension: string;
|
||||
order: number;
|
||||
}
|
||||
|
||||
export interface ViewConfig {
|
||||
filters: ViewFilter[];
|
||||
filterLogic: 'and' | 'or';
|
||||
sort: ViewSort;
|
||||
// Kanban-specific
|
||||
columns?: KanbanColumn[];
|
||||
}
|
||||
|
||||
export interface SavedView {
|
||||
@@ -41,5 +33,4 @@ export const DEFAULT_VIEW_CONFIG: ViewConfig = {
|
||||
filters: [],
|
||||
filterLogic: 'and',
|
||||
sort: { field: 'updated_at', direction: 'desc' },
|
||||
columns: []
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user