@lokvis/schema 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/asset.d.ts +86 -0
- package/dist/asset.d.ts.map +1 -0
- package/dist/asset.js +8 -0
- package/dist/asset.js.map +1 -0
- package/dist/capability.d.ts +91 -0
- package/dist/capability.d.ts.map +1 -0
- package/dist/capability.js +8 -0
- package/dist/capability.js.map +1 -0
- package/dist/event.d.ts +90 -0
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +7 -0
- package/dist/event.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp.d.ts +43 -0
- package/dist/mcp.d.ts.map +1 -0
- package/dist/mcp.js +11 -0
- package/dist/mcp.js.map +1 -0
- package/dist/plugin.d.ts +87 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +7 -0
- package/dist/plugin.js.map +1 -0
- package/dist/validators.d.ts +393 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +83 -0
- package/dist/validators.js.map +1 -0
- package/dist/workflow.d.ts +138 -0
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +64 -0
- package/dist/workflow.js.map +1 -0
- package/package.json +46 -0
- package/src/asset.ts +88 -0
- package/src/capability.ts +111 -0
- package/src/event.ts +71 -0
- package/src/index.ts +22 -0
- package/src/mcp.ts +45 -0
- package/src/plugin.ts +102 -0
- package/src/validators.ts +94 -0
- package/src/workflow.ts +212 -0
package/dist/asset.d.ts
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis Asset Model
|
|
3
|
+
*
|
|
4
|
+
* 核心设计:Runtime 只操作 AssetId,不直接持有 File 或 Blob。
|
|
5
|
+
* 所有大文件通过 OPFS 引用,避免内存爆炸。
|
|
6
|
+
*/
|
|
7
|
+
/** Asset 唯一标识 */
|
|
8
|
+
export type AssetId = string;
|
|
9
|
+
/** Asset 类型枚举 */
|
|
10
|
+
export type AssetType = 'image' | 'video' | 'audio' | 'pdf' | 'text' | 'data' | 'unknown';
|
|
11
|
+
/** Asset 元数据 */
|
|
12
|
+
export interface AssetMetadata {
|
|
13
|
+
mimeType: string;
|
|
14
|
+
/** 字节数 */
|
|
15
|
+
size: number;
|
|
16
|
+
/** 图像/视频尺寸 */
|
|
17
|
+
dimensions?: {
|
|
18
|
+
width: number;
|
|
19
|
+
height: number;
|
|
20
|
+
};
|
|
21
|
+
/** 视频/音频时长(秒) */
|
|
22
|
+
duration?: number;
|
|
23
|
+
/** PDF 页数 */
|
|
24
|
+
pages?: number;
|
|
25
|
+
/** 文件格式:png, mp4, pdf, mp3... */
|
|
26
|
+
format: string;
|
|
27
|
+
}
|
|
28
|
+
/** Blob 在 OPFS 中的引用句柄 */
|
|
29
|
+
export interface BlobHandle {
|
|
30
|
+
/** OPFS 中的文件路径 */
|
|
31
|
+
path: string;
|
|
32
|
+
/** 字节数 */
|
|
33
|
+
size: number;
|
|
34
|
+
/** MIME 类型 */
|
|
35
|
+
mimeType: string;
|
|
36
|
+
}
|
|
37
|
+
/** 预览图句柄 */
|
|
38
|
+
export interface PreviewHandle {
|
|
39
|
+
/** 缩略图 OPFS 路径 */
|
|
40
|
+
path: string;
|
|
41
|
+
width: number;
|
|
42
|
+
height: number;
|
|
43
|
+
}
|
|
44
|
+
/** 处理历史记录条目 */
|
|
45
|
+
export interface HistoryEntry {
|
|
46
|
+
id: string;
|
|
47
|
+
workflowId: string;
|
|
48
|
+
nodeId: string;
|
|
49
|
+
capability: string;
|
|
50
|
+
params: Record<string, unknown>;
|
|
51
|
+
inputs: AssetId[];
|
|
52
|
+
outputs: AssetId[];
|
|
53
|
+
timestamp: number;
|
|
54
|
+
}
|
|
55
|
+
/** 统一 Asset 抽象 */
|
|
56
|
+
export interface Asset {
|
|
57
|
+
id: AssetId;
|
|
58
|
+
type: AssetType;
|
|
59
|
+
metadata: AssetMetadata;
|
|
60
|
+
/** OPFS 中的引用,不直接持有内存 */
|
|
61
|
+
blob: BlobHandle;
|
|
62
|
+
/** 缩略图(可选) */
|
|
63
|
+
preview?: PreviewHandle;
|
|
64
|
+
/** 处理历史 */
|
|
65
|
+
history: HistoryEntry[];
|
|
66
|
+
/** 用户标签 */
|
|
67
|
+
tags: string[];
|
|
68
|
+
createdAt: number;
|
|
69
|
+
updatedAt: number;
|
|
70
|
+
}
|
|
71
|
+
/** 资产导入来源 */
|
|
72
|
+
export type AssetSource = {
|
|
73
|
+
kind: 'file';
|
|
74
|
+
file: File;
|
|
75
|
+
} | {
|
|
76
|
+
kind: 'blob';
|
|
77
|
+
blob: Blob;
|
|
78
|
+
name: string;
|
|
79
|
+
} | {
|
|
80
|
+
kind: 'url';
|
|
81
|
+
url: string;
|
|
82
|
+
} | {
|
|
83
|
+
kind: 'opfs';
|
|
84
|
+
path: string;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=asset.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.d.ts","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iBAAiB;AACjB,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,iBAAiB;AACjB,MAAM,MAAM,SAAS,GACjB,OAAO,GACP,OAAO,GACP,OAAO,GACP,KAAK,GACL,MAAM,GACN,MAAM,GACN,SAAS,CAAC;AAEd,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,UAAU,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,iBAAiB;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yBAAyB;AACzB,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU;IACV,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,YAAY;AACZ,MAAM,WAAW,aAAa;IAC5B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,eAAe;AACf,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,OAAO,EAAE,OAAO,EAAE,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,kBAAkB;AAClB,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;IACxB,wBAAwB;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,cAAc;IACd,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW;IACX,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,WAAW;IACX,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,aAAa;AACb,MAAM,MAAM,WAAW,GACnB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAC5B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC"}
|
package/dist/asset.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset.js","sourceRoot":"","sources":["../src/asset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis Capability Model
|
|
3
|
+
*
|
|
4
|
+
* Runtime 永远不知道 FFmpeg,只知道 Capability。
|
|
5
|
+
* Capability 由 Plugin 注册,由 Engine 实现。
|
|
6
|
+
*/
|
|
7
|
+
import type { AssetType } from './asset.js';
|
|
8
|
+
/** 能力名称采用点分命名:`<domain>.<action>`,如 `image.resize` */
|
|
9
|
+
export type CapabilityName = string;
|
|
10
|
+
/** 能力参数类型 */
|
|
11
|
+
export type CapabilityParamType = 'number' | 'string' | 'boolean' | 'enum' | 'color' | 'file' | 'array' | 'object';
|
|
12
|
+
/** 能力参数定义 */
|
|
13
|
+
export interface CapabilityParam {
|
|
14
|
+
name: string;
|
|
15
|
+
type: CapabilityParamType;
|
|
16
|
+
description?: string;
|
|
17
|
+
required?: boolean;
|
|
18
|
+
default?: unknown;
|
|
19
|
+
min?: number;
|
|
20
|
+
max?: number;
|
|
21
|
+
/** type === 'enum' 时的可选值 */
|
|
22
|
+
values?: string[];
|
|
23
|
+
/** type === 'array' 时的元素类型 */
|
|
24
|
+
items?: CapabilityParamType;
|
|
25
|
+
}
|
|
26
|
+
/** 性能预估等级 */
|
|
27
|
+
export type PerformanceLevel = 'fast' | 'medium' | 'slow';
|
|
28
|
+
/**
|
|
29
|
+
* 引擎选择策略(由 CapabilityRegistry 在无显式 preferredEngine 时使用):
|
|
30
|
+
* - `'first'`:按注册顺序取第一个(默认,确定性高,保留旧行为)
|
|
31
|
+
* - `'fastest'`:按性能等级排序取最快(fast > medium > slow,同档按注册顺序)
|
|
32
|
+
* - `'balanced'`:优先取与能力声明 performance 匹配的实现;无匹配则退化为 fastest
|
|
33
|
+
*/
|
|
34
|
+
export type EngineSelectionStrategy = 'first' | 'fastest' | 'balanced';
|
|
35
|
+
/** 能力声明(由 Plugin 提供) */
|
|
36
|
+
export interface Capability {
|
|
37
|
+
/** 能力名,如 `image.resize` */
|
|
38
|
+
name: CapabilityName;
|
|
39
|
+
description: string;
|
|
40
|
+
/** 接受的输入 Asset 类型 */
|
|
41
|
+
inputTypes: AssetType[];
|
|
42
|
+
/** 产出的输出 Asset 类型 */
|
|
43
|
+
outputTypes: AssetType[];
|
|
44
|
+
/** 参数 Schema */
|
|
45
|
+
params: CapabilityParam[];
|
|
46
|
+
/** 性能预估,用于 UI 提示与调度优化 */
|
|
47
|
+
performance: PerformanceLevel;
|
|
48
|
+
/** 是否支持批量处理(一次处理多个 Asset) */
|
|
49
|
+
batchable?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* MCP 暴露配置(可选,见 docs/AI生态冲击调整方案.md §7.1):
|
|
52
|
+
* - `'public'`(默认):暴露给 MCP server,可被 AI 客户端调用
|
|
53
|
+
* - `'private'`:不暴露(如内部能力、危险操作)
|
|
54
|
+
* - `'batch-only'`:仅在 batch 模式暴露(避免单文件误用)
|
|
55
|
+
*/
|
|
56
|
+
mcpExposure?: 'public' | 'private' | 'batch-only';
|
|
57
|
+
/**
|
|
58
|
+
* MCP tool 名称覆盖(可选)。
|
|
59
|
+
* 默认为 `lokvis_${name.replace(/\./g, '_')}`,如 `image.resize` → `lokvis_image_resize`。
|
|
60
|
+
* 显式指定时用于更友好的命名(如 `lokvis_compress_image`)。
|
|
61
|
+
*/
|
|
62
|
+
mcpToolName?: string;
|
|
63
|
+
}
|
|
64
|
+
/** 能力实现(由 Plugin 注册到 Runtime) */
|
|
65
|
+
export interface CapabilityImplementation {
|
|
66
|
+
/** 对应的 Capability 名 */
|
|
67
|
+
capability: CapabilityName;
|
|
68
|
+
/** 实现该能力的引擎名 */
|
|
69
|
+
engine: string;
|
|
70
|
+
/**
|
|
71
|
+
* 该引擎的性能等级(可选)。缺省时使用能力声明的 performance。
|
|
72
|
+
* 用于 EngineSelectionStrategy('fastest'/'balanced')排序选择。
|
|
73
|
+
*/
|
|
74
|
+
performance?: PerformanceLevel;
|
|
75
|
+
/** 实际执行函数 */
|
|
76
|
+
execute: (inputs: import('./asset.js').Asset[], params: Record<string, unknown>, context: ExecutionContext) => Promise<import('./asset.js').Asset[]>;
|
|
77
|
+
}
|
|
78
|
+
/** 能力执行上下文 */
|
|
79
|
+
export interface ExecutionContext {
|
|
80
|
+
/** 当前 Workflow ID */
|
|
81
|
+
workflowId: string;
|
|
82
|
+
/** 当前 Node ID */
|
|
83
|
+
nodeId: string;
|
|
84
|
+
/** 取消信号 */
|
|
85
|
+
signal: AbortSignal;
|
|
86
|
+
/** 进度回调(0-1) */
|
|
87
|
+
onProgress?: (progress: number, message?: string) => void;
|
|
88
|
+
/** 日志函数 */
|
|
89
|
+
log: (level: 'info' | 'warn' | 'error', message: string) => void;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=capability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.d.ts","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,sDAAsD;AACtD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC;AAEpC,aAAa;AACb,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,MAAM,GACN,OAAO,GACP,MAAM,GACN,OAAO,GACP,QAAQ,CAAC;AAEb,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,mBAAmB,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,mBAAmB,CAAC;CAC7B;AAED,aAAa;AACb,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEvE,wBAAwB;AACxB,MAAM,WAAW,UAAU;IACzB,2BAA2B;IAC3B,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB;IACrB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,qBAAqB;IACrB,WAAW,EAAE,SAAS,EAAE,CAAC;IACzB,gBAAgB;IAChB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,yBAAyB;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;IAClD;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,wBAAwB;IACvC,uBAAuB;IACvB,UAAU,EAAE,cAAc,CAAC;IAC3B,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,aAAa;IACb,OAAO,EAAE,CACP,MAAM,EAAE,OAAO,YAAY,EAAE,KAAK,EAAE,EACpC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,OAAO,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;CAC5C;AAED,cAAc;AACd,MAAM,WAAW,gBAAgB;IAC/B,qBAAqB;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,gBAAgB;IAChB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1D,WAAW;IACX,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capability.js","sourceRoot":"","sources":["../src/capability.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|
package/dist/event.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis Event Bus Types
|
|
3
|
+
*
|
|
4
|
+
* 所有操作发出标准事件,Analytics/Undo/AI/Plugin 都监听事件,无需侵入核心逻辑。
|
|
5
|
+
*/
|
|
6
|
+
import type { Asset, AssetId, AssetMetadata } from './asset.js';
|
|
7
|
+
import type { Workflow, WorkflowResult } from './workflow.js';
|
|
8
|
+
import type { HistoryEntry } from './asset.js';
|
|
9
|
+
/** Lokvis 标准事件类型联合 */
|
|
10
|
+
export type LokvisEvent = {
|
|
11
|
+
type: 'asset:imported';
|
|
12
|
+
assetId: AssetId;
|
|
13
|
+
metadata: AssetMetadata;
|
|
14
|
+
} | {
|
|
15
|
+
type: 'asset:removed';
|
|
16
|
+
assetId: AssetId;
|
|
17
|
+
} | {
|
|
18
|
+
type: 'workflow:started';
|
|
19
|
+
workflowId: string;
|
|
20
|
+
workflow: Workflow;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'workflow:paused';
|
|
23
|
+
workflowId: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'workflow:resumed';
|
|
26
|
+
workflowId: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'workflow:cancelled';
|
|
29
|
+
workflowId: string;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'node:started';
|
|
32
|
+
workflowId: string;
|
|
33
|
+
nodeId: string;
|
|
34
|
+
inputs: Asset[];
|
|
35
|
+
} | {
|
|
36
|
+
type: 'node:finished';
|
|
37
|
+
workflowId: string;
|
|
38
|
+
nodeId: string;
|
|
39
|
+
capability: string;
|
|
40
|
+
params: Record<string, unknown>;
|
|
41
|
+
outputs: Asset[];
|
|
42
|
+
duration: number;
|
|
43
|
+
} | {
|
|
44
|
+
type: 'node:failed';
|
|
45
|
+
workflowId: string;
|
|
46
|
+
nodeId: string;
|
|
47
|
+
error: Error;
|
|
48
|
+
} | {
|
|
49
|
+
type: 'workflow:completed';
|
|
50
|
+
workflowId: string;
|
|
51
|
+
result: WorkflowResult;
|
|
52
|
+
} | {
|
|
53
|
+
type: 'export:completed';
|
|
54
|
+
assetId: AssetId;
|
|
55
|
+
format: string;
|
|
56
|
+
size: number;
|
|
57
|
+
} | {
|
|
58
|
+
type: 'history:changed';
|
|
59
|
+
workflowId: string;
|
|
60
|
+
entries: HistoryEntry[];
|
|
61
|
+
} | {
|
|
62
|
+
type: 'capability:registered';
|
|
63
|
+
capability: string;
|
|
64
|
+
engine: string;
|
|
65
|
+
} | {
|
|
66
|
+
type: 'plugin:loaded';
|
|
67
|
+
name: string;
|
|
68
|
+
version: string;
|
|
69
|
+
};
|
|
70
|
+
/** 所有事件类型字面量 */
|
|
71
|
+
export type LokvisEventType = LokvisEvent['type'];
|
|
72
|
+
/** 事件处理器函数 */
|
|
73
|
+
export type EventHandler<T extends LokvisEvent> = (event: T) => void;
|
|
74
|
+
/** 事件总线接口 */
|
|
75
|
+
export interface EventBus {
|
|
76
|
+
/**
|
|
77
|
+
* 订阅事件
|
|
78
|
+
* @returns 取消订阅函数
|
|
79
|
+
*/
|
|
80
|
+
on<T extends LokvisEventType>(type: T, handler: (event: Extract<LokvisEvent, {
|
|
81
|
+
type: T;
|
|
82
|
+
}>) => void): () => void;
|
|
83
|
+
/** 订阅所有事件(用于日志、分析) */
|
|
84
|
+
onAny(handler: (event: LokvisEvent) => void): () => void;
|
|
85
|
+
/** 发出事件 */
|
|
86
|
+
emit(event: LokvisEvent): void;
|
|
87
|
+
/** 清除所有订阅 */
|
|
88
|
+
clear(): void;
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"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"}
|
package/dist/event.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../src/event.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @lokvis/schema
|
|
3
|
+
*
|
|
4
|
+
* Lokvis Schema - Workflow / Asset / Plugin / Event 类型定义与校验器。
|
|
5
|
+
* 这是整个项目的稳定核心,变化最慢,严格 semver,无 Breaking Change。
|
|
6
|
+
*/
|
|
7
|
+
export * from './asset.js';
|
|
8
|
+
export * from './capability.js';
|
|
9
|
+
export * from './workflow.js';
|
|
10
|
+
export * from './event.js';
|
|
11
|
+
export * from './plugin.js';
|
|
12
|
+
export * from './mcp.js';
|
|
13
|
+
export * from './validators.js';
|
|
14
|
+
export declare const SCHEMA_VERSION: "1.0.0";
|
|
15
|
+
export declare const RUNTIME_MIN_VERSION: "0.1.0";
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAE5B,cAAc,UAAU,CAAC;AAGzB,cAAc,iBAAiB,CAAC;AAGhC,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAC/C,eAAO,MAAM,mBAAmB,EAAG,OAAgB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @lokvis/schema
|
|
3
|
+
*
|
|
4
|
+
* Lokvis Schema - Workflow / Asset / Plugin / Event 类型定义与校验器。
|
|
5
|
+
* 这是整个项目的稳定核心,变化最慢,严格 semver,无 Breaking Change。
|
|
6
|
+
*/
|
|
7
|
+
// 核心类型
|
|
8
|
+
export * from './asset.js';
|
|
9
|
+
export * from './capability.js';
|
|
10
|
+
export * from './workflow.js';
|
|
11
|
+
export * from './event.js';
|
|
12
|
+
export * from './plugin.js';
|
|
13
|
+
// MCP manifest 类型(见 docs/AI生态冲击调整方案.md §6.1)
|
|
14
|
+
export * from './mcp.js';
|
|
15
|
+
// Zod 校验器
|
|
16
|
+
export * from './validators.js';
|
|
17
|
+
// 版本信息
|
|
18
|
+
export const SCHEMA_VERSION = '1.0.0';
|
|
19
|
+
export const RUNTIME_MIN_VERSION = '0.1.0';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO;AACP,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,6CAA6C;AAC7C,cAAc,UAAU,CAAC;AAEzB,UAAU;AACV,cAAc,iBAAiB,CAAC;AAEhC,OAAO;AACP,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,OAAgB,CAAC"}
|
package/dist/mcp.d.ts
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis MCP 类型定义
|
|
3
|
+
*
|
|
4
|
+
* 把 Lokvis Runtime 的能力包装为 MCP server 时使用的 manifest 类型。
|
|
5
|
+
* 由 @lokvis/runtime 实现 toMcpManifest(),@lokvis/mcp-server 消费。
|
|
6
|
+
*
|
|
7
|
+
* 类型定义在 schema 包(而非 sdk/runtime)是为了避免
|
|
8
|
+
* runtime → sdk 的循环依赖:runtime 和 sdk 都从 @lokvis/schema 引入。
|
|
9
|
+
*/
|
|
10
|
+
/** 单个 MCP tool 的描述(不启动 server,仅描述可用能力) */
|
|
11
|
+
export interface McpToolManifest {
|
|
12
|
+
/** tool 名称,约定为 `lokvis_${capability.replace(/\./g, '_')}` */
|
|
13
|
+
name: string;
|
|
14
|
+
/** tool 描述,供 AI 客户端理解用途 */
|
|
15
|
+
description: string;
|
|
16
|
+
/** 输入参数 JSON Schema */
|
|
17
|
+
inputSchema: object;
|
|
18
|
+
/** 依赖的 Lokvis capability 名 */
|
|
19
|
+
capabilities: string[];
|
|
20
|
+
}
|
|
21
|
+
/** 单个 MCP resource 的描述 */
|
|
22
|
+
export interface McpResourceManifest {
|
|
23
|
+
/** resource URI,如 `lokvis://capabilities` */
|
|
24
|
+
uri: string;
|
|
25
|
+
/** resource 名称(UI 显示用) */
|
|
26
|
+
name: string;
|
|
27
|
+
/** resource 描述 */
|
|
28
|
+
description: string;
|
|
29
|
+
/** MIME 类型 */
|
|
30
|
+
mimeType: string;
|
|
31
|
+
}
|
|
32
|
+
/** MCP server manifest:Runtime 当前可被 MCP 暴露的能力概览 */
|
|
33
|
+
export interface McpManifest {
|
|
34
|
+
/** MCP server 名称,固定为 `lokvis` */
|
|
35
|
+
serverName: string;
|
|
36
|
+
/** Runtime 版本 */
|
|
37
|
+
version: string;
|
|
38
|
+
/** 暴露的 tools 列表 */
|
|
39
|
+
tools: McpToolManifest[];
|
|
40
|
+
/** 暴露的 resources 列表 */
|
|
41
|
+
resources: McpResourceManifest[];
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,0BAA0B;AAC1B,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB;IACnB,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,uBAAuB;IACvB,SAAS,EAAE,mBAAmB,EAAE,CAAC;CAClC"}
|
package/dist/mcp.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis MCP 类型定义
|
|
3
|
+
*
|
|
4
|
+
* 把 Lokvis Runtime 的能力包装为 MCP server 时使用的 manifest 类型。
|
|
5
|
+
* 由 @lokvis/runtime 实现 toMcpManifest(),@lokvis/mcp-server 消费。
|
|
6
|
+
*
|
|
7
|
+
* 类型定义在 schema 包(而非 sdk/runtime)是为了避免
|
|
8
|
+
* runtime → sdk 的循环依赖:runtime 和 sdk 都从 @lokvis/schema 引入。
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lokvis Plugin Schema
|
|
3
|
+
*
|
|
4
|
+
* Plugin 是能力的载体。Plugin 通过 PluginContext 注册 Capability 到 Runtime。
|
|
5
|
+
*/
|
|
6
|
+
import type { Capability, CapabilityImplementation } from './capability.js';
|
|
7
|
+
/** Plugin 权限声明 */
|
|
8
|
+
export type PluginPermission = 'asset:read' | 'asset:write' | 'network:none' | 'network:limited' | 'network:full' | 'filesystem:opfs' | 'filesystem:local';
|
|
9
|
+
/** Plugin Manifest(package.json 中的 lokvis 字段或独立 manifest.json) */
|
|
10
|
+
export interface PluginManifest {
|
|
11
|
+
name: string;
|
|
12
|
+
version: string;
|
|
13
|
+
description: string;
|
|
14
|
+
author: string;
|
|
15
|
+
license: string;
|
|
16
|
+
main: string;
|
|
17
|
+
icon?: string;
|
|
18
|
+
/** 声明使用的能力 */
|
|
19
|
+
capabilities: string[];
|
|
20
|
+
/** 兼容的 Runtime 版本 */
|
|
21
|
+
engines: {
|
|
22
|
+
'lokvis-runtime': string;
|
|
23
|
+
};
|
|
24
|
+
/** 权限声明 */
|
|
25
|
+
permissions: PluginPermission[];
|
|
26
|
+
}
|
|
27
|
+
/** Plugin 配置(definePlugin 的参数) */
|
|
28
|
+
export interface PluginConfig {
|
|
29
|
+
name: string;
|
|
30
|
+
version: string;
|
|
31
|
+
description?: string;
|
|
32
|
+
/** 声明能力(Capability 定义) */
|
|
33
|
+
capabilities: Capability[];
|
|
34
|
+
/** 使用的引擎名 */
|
|
35
|
+
engine?: string;
|
|
36
|
+
/** 权限声明 */
|
|
37
|
+
permissions?: PluginPermission[];
|
|
38
|
+
}
|
|
39
|
+
/** Panel 定义(UI 扩展点) */
|
|
40
|
+
export interface PanelDefinition {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
/** Panel 位置 */
|
|
44
|
+
location: 'sidebar' | 'inspector' | 'toolbar' | 'modal';
|
|
45
|
+
/** 渲染组件标识(由 UI 层解析) */
|
|
46
|
+
component: string;
|
|
47
|
+
/** 显示条件 */
|
|
48
|
+
show?: (context: {
|
|
49
|
+
selectedAssets: string[];
|
|
50
|
+
}) => boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Plugin 上下文(Plugin 能访问的全部 API)
|
|
54
|
+
*
|
|
55
|
+
* Plugin 只能看到受限的 Runtime API,看不到 React/Redux/Cloud。
|
|
56
|
+
* 通过 runtime 读写 Asset,通过 registerCapability 注册能力实现。
|
|
57
|
+
*
|
|
58
|
+
* 注意:Plugin SDK 已定位为浏览器内嵌入的兼容层(见
|
|
59
|
+
* docs/AI生态冲击调整方案.md §4)。若目标是让 AI 客户端调用本地能力,
|
|
60
|
+
* 推荐使用 @lokvis/mcp-server(MCP 标准),而非 Plugin SDK。
|
|
61
|
+
*/
|
|
62
|
+
export interface PluginContext {
|
|
63
|
+
/** Runtime 受限 API */
|
|
64
|
+
runtime: {
|
|
65
|
+
/** 获取资产元数据 */
|
|
66
|
+
getAsset: (id: string) => Promise<import('./asset.js').Asset>;
|
|
67
|
+
/** 导入文件为资产,返回 AssetId */
|
|
68
|
+
importAsset: (file: File | Blob) => Promise<string>;
|
|
69
|
+
/** 读取资产的实际 Blob 数据(用于处理) */
|
|
70
|
+
getAssetBlob: (asset: import('./asset.js').Asset) => Promise<Blob>;
|
|
71
|
+
/** 从 Blob 创建新资产(能力产出物) */
|
|
72
|
+
createAsset: (blob: Blob, metadata: import('./asset.js').AssetMetadata, type: import('./asset.js').AssetType) => Promise<import('./asset.js').Asset>;
|
|
73
|
+
/** 列出所有已注册能力 */
|
|
74
|
+
listCapabilities: () => Promise<import('./capability.js').Capability[]>;
|
|
75
|
+
};
|
|
76
|
+
/** 事件总线 */
|
|
77
|
+
eventBus: import('./event.js').EventBus;
|
|
78
|
+
/** 注册能力实现 */
|
|
79
|
+
registerCapability(impl: CapabilityImplementation): void;
|
|
80
|
+
/** 注册 UI Panel */
|
|
81
|
+
registerPanel(panel: PanelDefinition): void;
|
|
82
|
+
/** 日志 */
|
|
83
|
+
log(level: 'info' | 'warn' | 'error', message: string): void;
|
|
84
|
+
}
|
|
85
|
+
/** definePlugin 返回的安装函数 */
|
|
86
|
+
export type PluginInstaller = (ctx: PluginContext) => void | Promise<void>;
|
|
87
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|