@lokvis/runtime 0.2.2 → 0.4.1

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.
Files changed (125) hide show
  1. package/dist/asset-store.d.ts +13 -0
  2. package/dist/asset-store.d.ts.map +1 -1
  3. package/dist/asset-store.js +15 -2
  4. package/dist/asset-store.js.map +1 -1
  5. package/dist/batch-processor.d.ts +32 -161
  6. package/dist/batch-processor.d.ts.map +1 -1
  7. package/dist/batch-processor.js +107 -333
  8. package/dist/batch-processor.js.map +1 -1
  9. package/dist/batch-progress.d.ts +94 -0
  10. package/dist/batch-progress.d.ts.map +1 -0
  11. package/dist/batch-progress.js +128 -0
  12. package/dist/batch-progress.js.map +1 -0
  13. package/dist/batch-scheduler.d.ts +70 -0
  14. package/dist/batch-scheduler.d.ts.map +1 -0
  15. package/dist/batch-scheduler.js +147 -0
  16. package/dist/batch-scheduler.js.map +1 -0
  17. package/dist/browser-detect.d.ts +115 -0
  18. package/dist/browser-detect.d.ts.map +1 -0
  19. package/dist/browser-detect.js +160 -0
  20. package/dist/browser-detect.js.map +1 -0
  21. package/dist/concurrency-controller.d.ts +31 -0
  22. package/dist/concurrency-controller.d.ts.map +1 -0
  23. package/dist/concurrency-controller.js +33 -0
  24. package/dist/concurrency-controller.js.map +1 -0
  25. package/dist/errors.d.ts +51 -0
  26. package/dist/errors.d.ts.map +1 -0
  27. package/dist/errors.js +74 -0
  28. package/dist/errors.js.map +1 -0
  29. package/dist/executor.d.ts +9 -0
  30. package/dist/executor.d.ts.map +1 -1
  31. package/dist/executor.js +87 -48
  32. package/dist/executor.js.map +1 -1
  33. package/dist/history.d.ts.map +1 -1
  34. package/dist/history.js +3 -2
  35. package/dist/history.js.map +1 -1
  36. package/dist/idb-asset-store.d.ts.map +1 -1
  37. package/dist/idb-asset-store.js +6 -1
  38. package/dist/idb-asset-store.js.map +1 -1
  39. package/dist/index.d.ts +17 -15
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +20 -15
  42. package/dist/index.js.map +1 -1
  43. package/dist/managers/asset-manager.d.ts +114 -0
  44. package/dist/managers/asset-manager.d.ts.map +1 -0
  45. package/dist/managers/asset-manager.js +238 -0
  46. package/dist/managers/asset-manager.js.map +1 -0
  47. package/dist/managers/history-manager.d.ts +100 -0
  48. package/dist/managers/history-manager.d.ts.map +1 -0
  49. package/dist/managers/history-manager.js +296 -0
  50. package/dist/managers/history-manager.js.map +1 -0
  51. package/dist/managers/mcp-manifest-builder.d.ts +18 -0
  52. package/dist/managers/mcp-manifest-builder.d.ts.map +1 -0
  53. package/dist/managers/mcp-manifest-builder.js +99 -0
  54. package/dist/managers/mcp-manifest-builder.js.map +1 -0
  55. package/dist/managers/quota-manager.d.ts +42 -0
  56. package/dist/managers/quota-manager.d.ts.map +1 -0
  57. package/dist/managers/quota-manager.js +126 -0
  58. package/dist/managers/quota-manager.js.map +1 -0
  59. package/dist/managers/workflow-coordinator.d.ts +62 -0
  60. package/dist/managers/workflow-coordinator.d.ts.map +1 -0
  61. package/dist/managers/workflow-coordinator.js +125 -0
  62. package/dist/managers/workflow-coordinator.js.map +1 -0
  63. package/dist/opfs-asset-store.d.ts.map +1 -1
  64. package/dist/opfs-asset-store.js +12 -2
  65. package/dist/opfs-asset-store.js.map +1 -1
  66. package/dist/plugin-context.d.ts +35 -0
  67. package/dist/plugin-context.d.ts.map +1 -0
  68. package/dist/plugin-context.js +62 -0
  69. package/dist/plugin-context.js.map +1 -0
  70. package/dist/plugin-permissions.d.ts +99 -0
  71. package/dist/plugin-permissions.d.ts.map +1 -0
  72. package/dist/plugin-permissions.js +205 -0
  73. package/dist/plugin-permissions.js.map +1 -0
  74. package/dist/runtime-impl.d.ts +116 -0
  75. package/dist/runtime-impl.d.ts.map +1 -0
  76. package/dist/runtime-impl.js +270 -0
  77. package/dist/runtime-impl.js.map +1 -0
  78. package/dist/runtime.d.ts +10 -233
  79. package/dist/runtime.d.ts.map +1 -1
  80. package/dist/runtime.js +12 -978
  81. package/dist/runtime.js.map +1 -1
  82. package/dist/test-utils/fakes.d.ts +35 -0
  83. package/dist/test-utils/fakes.d.ts.map +1 -0
  84. package/dist/test-utils/fakes.js +60 -0
  85. package/dist/test-utils/fakes.js.map +1 -0
  86. package/dist/types.d.ts +113 -1
  87. package/dist/types.d.ts.map +1 -1
  88. package/dist/worker-host.d.ts.map +1 -1
  89. package/dist/worker-host.js +32 -9
  90. package/dist/worker-host.js.map +1 -1
  91. package/dist/worker-protocol.d.ts +30 -0
  92. package/dist/worker-protocol.d.ts.map +1 -1
  93. package/dist/worker-protocol.js +24 -0
  94. package/dist/worker-protocol.js.map +1 -1
  95. package/package.json +2 -2
  96. package/src/asset-store.ts +32 -2
  97. package/src/batch-processor.ts +133 -510
  98. package/src/batch-progress.ts +228 -0
  99. package/src/batch-scheduler.ts +209 -0
  100. package/src/browser-detect.ts +221 -0
  101. package/src/concurrency-controller.ts +52 -0
  102. package/src/errors.ts +82 -0
  103. package/src/executor.ts +106 -55
  104. package/src/history.ts +3 -2
  105. package/src/idb-asset-store.ts +7 -1
  106. package/src/index.ts +50 -15
  107. package/src/managers/asset-manager.ts +259 -0
  108. package/src/managers/history-manager.ts +327 -0
  109. package/src/managers/mcp-manifest-builder.ts +108 -0
  110. package/src/managers/quota-manager.ts +149 -0
  111. package/src/managers/workflow-coordinator.ts +158 -0
  112. package/src/opfs-asset-store.ts +16 -2
  113. package/src/plugin-context.ts +87 -0
  114. package/src/plugin-permissions.ts +228 -0
  115. package/src/runtime-impl.ts +298 -0
  116. package/src/runtime.ts +16 -1116
  117. package/src/test-utils/fakes.ts +72 -0
  118. package/src/types.ts +116 -0
  119. package/src/worker-host.ts +35 -7
  120. package/src/worker-protocol.ts +47 -0
  121. package/dist/workflow-builder.d.ts +0 -124
  122. package/dist/workflow-builder.d.ts.map +0 -1
  123. package/dist/workflow-builder.js +0 -240
  124. package/dist/workflow-builder.js.map +0 -1
  125. package/src/workflow-builder.ts +0 -303
package/dist/runtime.d.ts CHANGED
@@ -1,238 +1,15 @@
1
1
  /**
2
- * Lokvis Runtime Implementation
2
+ * Lokvis Runtime 入口(Facade,W1.7)
3
3
  *
4
- * Runtime 是整个系统的"浏览器操作系统",唯一职责:Input Run → Output。
5
- */
6
- import type { Asset, AssetId, AssetSource, Capability, ExifData, HistoryEntry, McpManifest, MetadataReader } from '@lokvis/schema';
7
- import type { Workflow, WorkflowResult } from '@lokvis/schema';
8
- import type { LokvisRuntime, PluginInstallEntry, RuntimeConfig, RuntimeStatus, ToMcpManifestOptions } from './types.js';
9
- import type { EventBus } from '@lokvis/schema';
10
- import { type AssetStore } from './asset-store.js';
11
- import { CapabilityRegistry } from './capability-registry.js';
12
- import { BatchProcessor } from './batch-processor.js';
13
- import { MemoryGuard } from './memory-guard.js';
14
- export declare const RUNTIME_VERSION = "0.1.0";
15
- /** 存储配额超限时抛出(W2.9) */
16
- export declare class QuotaExceededError extends Error {
17
- readonly usage: number;
18
- readonly delta: number;
19
- readonly quota: number;
20
- constructor(usage: number, delta: number, quota: number);
21
- }
22
- /** Runtime 实现类 */
23
- export declare class LokvisRuntimeImpl implements LokvisRuntime {
24
- readonly version = "0.1.0";
25
- readonly eventBus: EventBus;
26
- private config;
27
- private _status;
28
- /**
29
- * AssetStore 实例。类型为 QuotaAwareAssetStore —— 由 wrapAssetStoreWithQuota
30
- * 返回(在构造函数中无条件包裹,即使是注入的 assetStore 也会被包装以提供配额校验)。
31
- * 保留 _getQuotaUsage 内部 API 供 getStorageUsage O(1) 读取 usage。
32
- * 注:外部注入的 assetStore 在 wrapAssetStoreWithQuota 中同样被包装,
33
- * 因此所有路径下 this.assetStore 都是 QuotaAwareAssetStore。
34
- */
35
- private assetStore;
36
- private capabilityRegistry;
37
- private executor;
38
- private memoryGuard;
39
- private batchProcessor;
40
- /**
41
- * 每个工作流独立的 HistoryStack。
42
- * W7.2 起,栈快照(entries + cursor)连同 initialInputs / currentOutputs
43
- * 通过 historyStore 持久化到 IndexedDB,刷新后可恢复。
44
- */
45
- private historyStacks;
46
- /** 记录每个工作流的初始输入 AssetId(undo 回到初始时使用) */
47
- private initialInputsMap;
48
- /** 记录每个工作流当前的输出 AssetId(undo/redo 后切换"当前") */
49
- private currentOutputsMap;
50
- /**
51
- * 历史持久化存储(W7.2)。undefined 时退化为仅内存历史(刷新后丢失)。
52
- * 由 createRuntime 在 enableIndexedDB 时自动创建,或通过 config 注入。
53
- */
54
- private historyStore;
55
- /**
56
- * 加载持久化历史快照期间的守卫标志。
57
- * restore() 会触发 onChanged → persistHistory,此时跳过写回,
58
- * 避免把刚读出的数据又重复写入(冗余 IO + 潜在覆盖竞态)。
59
- */
60
- private isLoadingHistory;
61
- /**
62
- * 加载期间被 onChanged 标记为"dirty"的工作流 ID 集合(W7.2 review 修复)。
63
- *
64
- * 原实现:isLoadingHistory 期间所有 persistHistory 调用直接 return,
65
- * 若加载期间有其他来源(run / undo / 外部事件)触发 onChanged,
66
- * 这些变更会被永久丢弃(加载结束后不会重发 persist)。
67
- *
68
- * 现策略:加载期间被跳过的 persistHistory 把 workflowId 加入此 Set,
69
- * loadPersistedHistory 结束后逐个补 persist,确保不丢变更。
70
- * (restore() 自身触发的 onChanged 也加入,但其内容与刚读出的相同,
71
- * 补 persist 仅多一次等价写回,幂等无害。)
72
- */
73
- private dirtyDuringLoad;
74
- /**
75
- * 元数据读取器注册表(W7.3/7.4 长期方案:MetadataReader 依赖反转)。
76
- *
77
- * Plugin(plugin-image)通过 PluginContext.registerMetadataReader 注册
78
- * 查询函数(如 'image.read-exif'),Runtime 持有引用并按名调用。
79
- * 解决了 readExif(Blob→ExifData)不符合 Engine 层 Blob↔Blob 纯函数约束、
80
- * 也不符合 CapabilityImplementation Asset[]→Asset[] 契约的问题。
81
- * UI 经 runtime.readAssetExif 间接调用,不直接依赖 plugin/engine。
82
- */
83
- private metadataReaders;
84
- /**
85
- * 注册元数据读取器(由 PluginContext.registerMetadataReader 转发)。
86
- * 下划线前缀表示内部 API,不暴露在 LokvisRuntime 公开接口。
87
- */
88
- _registerMetadataReader(name: string, reader: MetadataReader): void;
89
- constructor(config?: RuntimeConfig);
90
- get status(): RuntimeStatus;
91
- get isPro(): boolean;
92
- get batch(): BatchProcessor;
93
- run(workflow: Workflow, inputs: AssetId[] | Asset[], options?: import('./types.js').RunOptions): Promise<WorkflowResult>;
94
- cancel(workflowId: string): Promise<void>;
95
- pause(workflowId: string): Promise<void>;
96
- resume(workflowId: string): Promise<void>;
97
- /**
98
- * 销毁指定工作流的运行时状态(W2.8 内存治理)。
99
- *
100
- * 调用时机:
101
- * - ui-react 卸载 Workspace 组件时
102
- * - 用户主动关闭工作流标签页时
103
- *
104
- * 行为:
105
- * - 调用 stack.reset() 触发 onEvict → assetStore.remove 回收历史 outputs 资产
106
- * - 从 historyStacks / initialInputsMap / currentOutputsMap 三 Map 中删除 entry
107
- * - 调用 executor.cancel 取消运行中的执行(若有)
108
- *
109
- * 修复 review 报告:原实现无清理入口,Workflow 组件卸载后 Map 中残留 entry,
110
- * 长会话累积导致内存与 OPFS 空间双泄漏。
111
- */
112
- disposeWorkflow(workflowId: string): Promise<void>;
113
- history(workflowId: string): Promise<HistoryEntry[]>;
114
- getHistoryState(workflowId: string): Promise<{
115
- entries: HistoryEntry[];
116
- cursor: number;
117
- }>;
118
- undo(workflowId: string): Promise<void>;
119
- redo(workflowId: string): Promise<void>;
120
- jumpTo(workflowId: string, index: number): Promise<void>;
121
- importAsset(source: AssetSource): Promise<AssetId>;
122
- getAsset(id: AssetId): Promise<Asset>;
123
- exportAsset(id: AssetId, format?: string): Promise<Blob>;
124
- /**
125
- * 读取 image 资产的 EXIF 元数据(W7.3/7.4 长期方案:MetadataReader 依赖反转)。
126
- *
127
- * Runtime 持有 plugin-image 通过 ctx.registerMetadataReader('image.read-exif', fn)
128
- * 注册的 reader 引用,按名调用。reader 内部调 readExifFromBlob(exifr)。
129
- * Plugin 未安装时优雅降级返回 null(不抛错)。
130
- *
131
- * 架构决策:readExif 是 Blob→ExifData 查询,不符合 Engine 层 Blob↔Blob 纯函数
132
- * 约束,也不符合 Capability Asset[]→Asset[] 契约,故走 MetadataReader 机制,
133
- * 不进 engine-image、不走 Capability execute。
134
- */
135
- readAssetExif(id: AssetId): Promise<ExifData | null>;
136
- removeAsset(id: AssetId): Promise<void>;
137
- listAssets(): Promise<Asset[]>;
138
- getStorageUsage(): Promise<{
139
- usage: number;
140
- quota: number;
141
- }>;
142
- capabilities(): Promise<Capability[]>;
143
- hasCapability(name: string): Promise<boolean>;
144
- /**
145
- * 生成 MCP server manifest(不启动 server,仅描述当前可被 MCP 暴露的能力)。
146
- * - `mcpExposure='private'`:任何模式都不暴露
147
- * - `mcpExposure='batch-only'`:仅在 `options.batchMode=true` 时暴露
148
- * (避免单文件误用)
149
- * - 其余(默认 'public'):总是暴露
150
- * - tool 名取 capability.mcpToolName 或 `lokvis_${name.replace(/\./g, '_')}`
151
- * - resource 固定为 capabilities 与 workflows 两个清单
152
- */
153
- toMcpManifest(options?: ToMcpManifestOptions): McpManifest;
154
- /**
155
- * 在本 Runtime 上安装一个插件(实现 LokvisRuntime.installPlugin 接口)。
156
- *
157
- * 步骤:
158
- * 1. 注册能力声明(plugin.config.capabilities → CapabilityRegistry)
159
- * 2. 构造受限 PluginContext(只暴露受限 Runtime API + 注册器 + 日志)
160
- * 3. 调用 plugin.install(ctx),让插件注册 CapabilityImplementation
161
- * 4. 发射 `plugin:loaded` 事件
162
- *
163
- * 不吞错:plugin.install 抛出的错误原样上抛,由 SDK 包成 PluginLoadError。
164
- *
165
- * 此前 SDK 通过 `instanceof LokvisRuntimeImpl` + `_getAssetStore()` /
166
- * `_getCapabilityRegistry()` 反向访问内部依赖,现改为公共接口调用,
167
- * SDK 不再依赖具体实现类。
168
- */
169
- installPlugin(plugin: PluginInstallEntry): Promise<void>;
170
- /** 获取 AssetStore(仅测试用,SDK 通过 installPlugin 间接访问) */
171
- _getAssetStore(): AssetStore;
172
- /** 获取 CapabilityRegistry(仅测试用,SDK 通过 installPlugin 间接访问) */
173
- _getCapabilityRegistry(): CapabilityRegistry;
174
- /**
175
- * 获取 MemoryGuard(内部用,供集成测试驱动内存压力验证 BatchProcessor 收缩)。
176
- */
177
- _getMemoryGuard(): MemoryGuard;
178
- /** 获取工作流当前输出 AssetId(undo/redo 后的"当前"状态,内部用) */
179
- _getCurrentOutputs(workflowId: string): AssetId[];
180
- /** 获取工作流当前输出 AssetId(公开 API,供 UI / MCP 查询) */
181
- getCurrentOutputs(workflowId: string): Promise<AssetId[]>;
182
- /**
183
- * LRU 上限清理:historyStacks 超过 MAX_CONCURRENT_WORKFLOW_STACKS 时
184
- * 按 FIFO 删除最旧 stack(reset 触发 onEvict → assetStore.remove 回收资产)。
185
- *
186
- * Map 的迭代顺序是插入顺序(ES2015+ 规范),所以第一个 entry 即最旧。
187
- * 注意:当前 run() 的工作流尚未插入 Map(getOrCreateHistoryStack 才会插入),
188
- * 所以这里清理不会误删当前工作流。
189
- */
190
- private enforceHistoryStacksLimit;
191
- /** 获取或创建工作流对应的 HistoryStack */
192
- private getOrCreateHistoryStack;
193
- /** 将输入归一化为 AssetId[](run() 入参可为 AssetId[] 或 Asset[]) */
194
- private collectInputAssetIds;
195
- /** 监听 node:finished 事件,自动 append 到对应工作流的 HistoryStack */
196
- private recordHistoryFromNodeEvent;
197
- /**
198
- * 把指定工作流的当前历史状态快照写入 historyStore。
199
- *
200
- * 时序修复:currentOutputs 从 stack snapshot 派生(cursor === -1 用
201
- * initialInputs,否则用 entries[cursor].outputs),而非读 currentOutputsMap。
202
- * 原因:onChanged 在 undo/redo/jumpTo/run 内部同步触发时,map 尚未更新,
203
- * 会读到旧值(例如 run 后 append 触发 onChanged,但 currentOutputsMap 在
204
- * append 返回后才 set)。
205
- *
206
- * 竞态安全:多个 fire-and-forget save 的 IDB readwrite 事务由 IndexedDB
207
- * 引擎按发起顺序串行化(同 object store 不重叠),无需应用层加链。
208
- *
209
- * - entries 为空时改为 delete,避免残留空记录(reset/clear 后自然清理)
210
- * - 加载期间(isLoadingHistory=true)跳过写回,但把 workflowId 加入
211
- * dirtyDuringLoad,loadPersistedHistory 结束后补 persist(避免丢变更)
212
- */
213
- private persistHistory;
214
- /**
215
- * 从 historyStore 预加载所有持久化的历史快照,恢复到内存。
216
- *
217
- * 由 createRuntime 工厂在构造完 impl 后调用一次。加载期间置 isLoadingHistory
218
- * 守卫,使 restore() 触发的 onChanged → persistHistory 跳过冗余写回;
219
- * 但被跳过的 workflowId 记入 dirtyDuringLoad,加载结束后补 persist,
220
- * 避免加载期间其他来源(run / undo / 外部事件)的变更被永久丢弃。
221
- *
222
- * 注意:restore 会 emit history:changed 事件,但此时 UI 尚未订阅
223
- * (runtime-slice.init 在 createRuntime resolve 后才订阅),故无副作用。
224
- *
225
- * 非 LokvisRuntime 接口的一部分,仅为 impl 的初始化钩子(工厂调用)。
226
- */
227
- loadPersistedHistory(): Promise<void>;
228
- }
229
- /**
230
- * 创建 Runtime 实例(W2.8 + W2.9)。
231
- *
232
- * 默认通过 createAssetStore 工厂按 OPFS → IndexedDB → Memory 降级创建 AssetStore,
233
- * 并用配额校验包裹。也可通过 config.assetStore 注入自定义 store。
4
+ * 本文件仅 re-export runtime-impl.ts 的实现类与工厂,保持外部导入路径
5
+ * (`@lokvis/runtime` / `'../runtime.js'`)不变。实现细节见 runtime-impl.ts。
234
6
  *
235
- * 注:此函数为 async(工厂需异步探测环境)。SDK 的 createLokvis 已是 async。
7
+ * Re-export 列表:
8
+ * - `LokvisRuntimeImpl` — Runtime 实现类(测试 / SDK 通过此名构造)
9
+ * - `createRuntime` — 异步工厂(按 OPFS → IDB → Memory 降级创建 store)
10
+ * - `RUNTIME_VERSION` — 版本常量(写入 manifest.version)
11
+ * - `QuotaExceededError` — 配额超限错误类型(SDK / 集成代码从此入口导入)
236
12
  */
237
- export declare function createRuntime(config?: RuntimeConfig): Promise<LokvisRuntime>;
13
+ export { LokvisRuntimeImpl, createRuntime, RUNTIME_VERSION, } from './runtime-impl.js';
14
+ export { QuotaExceededError } from './managers/quota-manager.js';
238
15
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAI3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC"}