SKILL.md
readonly只读
name
extension-data-viewer
description
仅供管理员使用的分页查看器,用于查看稳定的罐体状态。当用户请求查看器、仪表盘、调试面板或对后端数据(用户、项目、订单、日志或任何稳定的 Map/Set/Array/VarArray/List/Stack/Queue)进行管理员浏览时使用。通过 `caffeineai-data-viewer` mops 包预装在每个 Caffeine 应用中;本技能解释其功能及如何正确使用。
version
0.1.0
数据查看器
仅供管理员使用的数据检查扩展,适用于 Caffeine AI。
概述
每个 Caffeine 应用都附带了 caffeineai-data-viewer mops 包并启用了 moc --generate-view-queries 标志。结合 actor 中的 include MixinViews(),编译器会自动为每个受支持类型的稳定变量暴露一个仅限控制器的 __<var> 查询:
Map.Map<K, V>—(?K, ?Nat) -> [(K, V)]Set.Set<K>—(?K, ?Nat) -> [K][V],[var V],List.List<V>,Stack.Stack<V>,Queue.Queue<V>—(?Nat, ?Nat) -> [V]
null 游标表示从头开始;null 计数表示返回游标之后的所有内容。每个生成的查询在非控制器调用者时会陷入——它们用于管理仪表盘和调试查看器,而非面向用户的端点。
后端
该包和 include 已集成到模板中。你无需添加或编辑任何内容即可使查看器工作——声明一个受支持类型的稳定变量,__<var> 查询就会自动出现。
import Map "mo:core/Map";
import Principal "mo:core/Principal";
import MixinViews "mo:caffeineai-data-viewer/MixinViews";
actor {
include MixinViews();
let users = Map.empty<Principal, Text>();
// 自动生成:__users : (ko : ?Principal, count : ?Nat) -> [(Principal, Text)] query
};
Lintoko 规则 include-mixin-views(随包提供)会在 actor 主体缺少 include MixinViews(); 时报错。保留该 include——移除它会禁用所有自动生成的查看器。
规则
- 切勿将生成的
__<var>查询用作面向用户端点的替代——它们会在任何非控制器调用者时陷入。公共的列表/搜索/方法仍需正常编写,使用public query func listX(...)。 - 切勿声明名称以
__开头的 actor 成员——这要么会与自动生成的查询冲突,要么会触发保留前缀。 - 纯(不可变)集合(
pure/Map、pure/Set、pure/List、pure/Queue)不受支持。查看器仅设计用于可变集合;在 Caffeine 项目中,纯集合字段访问已是一种弃用的模式。






