Ivan's Blog
返回项目索引设备控制

Tuckmark

它的价值不在标签打印本身,而在于把一个很容易散落到脚本、驱动和桌面小工具里的场景,重新包装成 agent-native 的控制工作面。

Control PlaneWorkflow ToolingTypeScriptDevice Ops
Tuckmark 项目海报
Tuckmark 项目界面与功能概览

标签打印工作区

Tuckmark 是一个面向标签打印场景的 agent-native 工作区。它把打印机发现、模板渲染、预览、结构化输入和打印产物放进同一套领域模型,再通过 CLI、MCP、HTTP 与 Web 提供不同入口。

模板、批量输入、预览和设备能力在同一工作区中提供给人工操作和自动化流程。

模板输入契约

模板不只是一个预览字符串。它带有固定的 package schema、变量和版本信息,渲染、批量输入、预览和打印都围绕同一份结构化数据工作。模板版本发生冲突时,系统会先要求处理冲突,不把旧模板静默覆盖成自动化流程刚生成的版本。

这让 Agent 可以生成 proposal,却不能直接改变用户正在使用的打印工作区。模板补全、确认和最终写入仍然经过 DEVD 的确定性检查,打印产物也能回到对应模板和输入批次。

运行时归档

模板、物料和打印记录需要长期可追溯,归档是运行时状态,不删除数据库记录。工作区默认隐藏已归档对象,恢复后可重新参与模板选择或库存流程,并保留版本和关联关系。

Agent import 的 proposal 被拒绝、过期或冲突时,系统保留输入和审计上下文;只有确认后的修改进入正式库存。

Detonger 设备适配

Tuckmark 位于工作流和设备适配之间。detonger 作为独立的 Rust 子项目负责通过 BLE/GATT 与 DeTong / Detonger P2 通信,完成协议编码、预览、扫描和位图打印;Tuckmark 负责把这些能力接入更高层的模板、库存和运行时边界。

打印机协议只位于 Detonger 子项目,Web、CLI 和 Agent 流程使用上层打印产物。设备适配可以单独验证。

Agent proposal 与确定性写入

Tuckmark 不解析私有订单文件,也不在产品内部托管 LLM。外部 Agent 可以根据已经授权的材料生成 tuckmark.agent-import.v1 proposal,Tuckmark 再把它交给 DEVD 进行模板补全、用户确认和确定性写入。

新物料和库存补货被明确分开:前者创建物料、标签绑定和入库调整,后者只写入已有物料的入库调整。版本检查、冲突处理和事务提交由 DEVD 负责,避免自动化流程直接绕过用户确认修改库存。

打印运行路径

浏览器直接打印路径在支持 Web Bluetooth 的安全上下文中完成本地渲染、编码和发送;服务 API 打印路径则由 Web 请求本地运行时服务,再由服务端和 detonger 控制设备。

两条路径共享打印产物语义,运行时依赖分别管理。静态浏览器模式保持独立;本地服务路径明确表达设备、权限和能力门禁。