refactor: 清理未使用代码并添加未来功能标记
Some checks failed
CI / Rust Check (push) Has been cancelled
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled

style: 统一代码格式和注释风格

docs: 更新多个功能文档的完整度和状态

feat(runtime): 添加路径验证工具支持

fix(pipeline): 改进条件判断和变量解析逻辑

test(types): 为ID类型添加全面测试用例

chore: 更新依赖项和Cargo.lock文件

perf(mcp): 优化MCP协议传输和错误处理
This commit is contained in:
iven
2026-03-25 21:55:12 +08:00
parent aa6a9cbd84
commit bf6d81f9c6
109 changed files with 12271 additions and 815 deletions

View File

@@ -0,0 +1,174 @@
/**
* OpenViking Client - Semantic Memory Operations
*
* Client for interacting with OpenViking CLI sidecar.
* Provides semantic search, resource management, and knowledge base operations.
*/
import { invoke } from '@tauri-apps/api/core';
// === Types ===
export interface VikingStatus {
available: boolean;
version?: string;
dataDir?: string;
error?: string;
}
export interface VikingResource {
uri: string;
name: string;
resourceType: string;
size?: number;
modifiedAt?: string;
}
export interface VikingFindResult {
uri: string;
score: number;
content: string;
level: string;
overview?: string;
}
export interface VikingGrepResult {
uri: string;
line: number;
content: string;
matchStart: number;
matchEnd: number;
}
export interface VikingAddResult {
uri: string;
status: string;
}
// === Client Functions ===
/**
* Check if OpenViking CLI is available
*/
export async function getVikingStatus(): Promise<VikingStatus> {
return invoke<VikingStatus>('viking_status');
}
/**
* Add a resource to OpenViking from file
*/
export async function addVikingResource(
uri: string,
content: string
): Promise<VikingAddResult> {
return invoke<VikingAddResult>('viking_add', { uri, content });
}
/**
* Add a resource with inline content
*/
export async function addVikingResourceInline(
uri: string,
content: string
): Promise<VikingAddResult> {
return invoke<VikingAddResult>('viking_add_inline', { uri, content });
}
/**
* Find resources by semantic search
*/
export async function findVikingResources(
query: string,
scope?: string,
limit?: number
): Promise<VikingFindResult[]> {
return invoke<VikingFindResult[]>('viking_find', { query, scope, limit });
}
/**
* Grep resources by pattern
*/
export async function grepVikingResources(
pattern: string,
uri?: string,
caseSensitive?: boolean,
limit?: number
): Promise<VikingGrepResult[]> {
return invoke<VikingGrepResult[]>('viking_grep', {
pattern,
uri,
caseSensitive,
limit,
});
}
/**
* List resources at a path
*/
export async function listVikingResources(path: string): Promise<VikingResource[]> {
return invoke<VikingResource[]>('viking_ls', { path });
}
/**
* Read resource content
*/
export async function readVikingResource(
uri: string,
level?: string
): Promise<string> {
return invoke<string>('viking_read', { uri, level });
}
/**
* Remove a resource
*/
export async function removeVikingResource(uri: string): Promise<void> {
return invoke<void>('viking_remove', { uri });
}
/**
* Get resource tree
*/
export async function getVikingTree(
path: string,
depth?: number
): Promise<Record<string, unknown>> {
return invoke<Record<string, unknown>>('viking_tree', { path, depth });
}
// === Server Functions ===
export interface VikingServerStatus {
running: boolean;
port?: number;
pid?: number;
error?: string;
}
/**
* Get Viking server status
*/
export async function getVikingServerStatus(): Promise<VikingServerStatus> {
return invoke<VikingServerStatus>('viking_server_status');
}
/**
* Start Viking server
*/
export async function startVikingServer(): Promise<void> {
return invoke<void>('viking_server_start');
}
/**
* Stop Viking server
*/
export async function stopVikingServer(): Promise<void> {
return invoke<void>('viking_server_stop');
}
/**
* Restart Viking server
*/
export async function restartVikingServer(): Promise<void> {
return invoke<void>('viking_server_restart');
}