SuperAPI AI 工具集

workspace-api

编程与开发

查看项目

更新于 10-15 21:38

技能介绍

用途:该技能面向 Epicenter 工作区定义,涵盖表与 KV 访问、内联动作注册、附件组合、协作设置与工作区连接。

主要能力:使用 defineTable() 或 defineKv() 定义表或 KV 存储;为已有表定义添加版本或迁移;读写与观察表或 KV 数据;用 defineMutation 或 defineQuery 创建动作;用 createWorkspace 组合实时文档并配合 attach* 原语(持久化、同步、物化器);用 createDisposableCache(builder) 添加按行或扇出文档;围绕工作区附加持久化、协作或物化器;用 connectWorkspace() 编写服务端 Bun 脚本。

使用方式:列使用 TypeBox schema,优先 @epicenter/field 的 field.* 构建器(field.string、field.number、field.boolean、field.select、field.json、field.datetime)及 @epicenter/workspace 的 nullable 包装;用 InferTableRow<typeof tableDefinition> 在同一模块派生行类型;KV 用 defineKv(schema, defaultValue),defaultValue 为工厂 () => Static<S>;表 id 与字符串外键使用品牌类型加同址生成器,生成器用 generateId<X>();同构动作直接放在 create<App>Workspace() 内 actions: defineActions({ ... });用 createWorkspace({ id, tables, kv }) 构造,返回 { ydoc, tables, kv, [Symbol.dispose] };仅三个物化器(attachBunSqliteMaterializer、attachTursoMaterializer、attachMarkdownMaterializer)接收该 bundle,持久化、日志与同步原语接收 workspace.ydoc。

限制与注意:_v 由库管理,不得声明为列、写入或读取;单版本表不暴露版本面,多版本表仅在 migrate 函数内以 ({ value, version }) 暴露;工作区动作的 defineQuery/defineMutation 工厂不是 Whispering 的 $lib/rpc 适配器,不要混用输入 schema 规则;本地动作调用直接看到 handler 形状,远程分发将原始值与失败包装为 Promise<Result<T, DispatchError>>;工作区 schema 与内联动作保持同构,client.ts 保持运行时特定并置于 workspace/ 文件夹外;当行为依赖 Yjs 事务、共享类型、更新编码、文档生命周期或冲突语义时,应先用上游源码或官方文档验证,DeepWiki 仅作定位。

适用场景:定义表或 KV、添加迁移、读写观察数据、创建动作、组合实时文档、附加持久化与协作、编写 Bun 连接脚本。缺失事实:具体安装命令、收费与平台信息暂未提供。