extension-data-viewer

extension-data-viewer

仅供管理员使用的分页查看器,用于查看稳定的罐体状态。当用户请求查看器、仪表盘、调试面板或对后端数据(用户、项目、订单、日志或任何稳定的 Map/Set/Array/VarArray/List/Stack/Queue)进行管理员浏览时使用。通过 `caffeineai-data-viewer` mops 包预装在每个 Caffeine 应用中;本技能解释其功能及如何正确使用。

0Star
0Fork
更新于 2026/7/13
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/Mappure/Setpure/Listpure/Queue受支持。查看器仅设计用于可变集合;在 Caffeine 项目中,纯集合字段访问已是一种弃用的模式。