extension-data-viewer

extension-data-viewer

僅限管理員的分頁檢視器,用於查看穩定的容器狀態。當使用者要求檢視器、儀表板、除錯面板或管理員瀏覽後端資料(使用者、項目、訂單、日誌或任何穩定的 Map/Set/Array/VarArray/List/Stack/Queue)時使用。透過 `caffeineai-data-viewer` mops 套件預先安裝在每個 Caffeine 應用程式中;此技能說明其功能及如何正確持續使用。

0星標
0分支
更新於 2026/7/13
SKILL.md
readonlyread-only
name
extension-data-viewer
description

僅限管理員的分頁檢視器,用於查看穩定的容器狀態。當使用者要求檢視器、儀表板、除錯面板或管理員瀏覽後端資料(使用者、項目、訂單、日誌或任何穩定的 Map/Set/Array/VarArray/List/Stack/Queue)時使用。透過 `caffeineai-data-viewer` mops 套件預先安裝在每個 Caffeine 應用程式中;此技能說明其功能及如何正確持續使用。

version
0.1.0

Data Viewer

僅限管理員的資料檢視擴充功能,適用於 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 專案中已是已棄用的模式。