At this level
com.suibari.nagi · 96- com.suibari.nagi.appLinks record プロフィールカードに並べる、任意の Atmosphere アプリへの連携宣言リスト。所有者本人が curate し、どの collection のどのフィールドを表示するかを定義する。公開レコード。
- com.suibari.nagi.appviewAccess permission-set
- com.suibari.nagi.bluemoji record Marks a blue.moji.collection.item record created by Nagi. Uses the same record key as the referenced Bluemoji.
- com.suibari.nagi.cardGet record 全肯定カードを引いたことの控え。**権威ではない。** ドローの結果を決めるのは AppView で、このレコードは「引いた」という申告にすぎず、card_draws / card_instances と突き合わせて一致しないものは索引しない。ユーザーの repo に置くのは、リアクションの subject が実在の PDS レコードを要求するため(本人の repo なら通知の宛先もそのまま本人になる)。rkey は "{drawDate}-{source}"、記念日は "{drawDate}-anniv-{slot}"。
- com.suibari.nagi.channel record
- com.suibari.nagi.createEmojiGeneration procedure 絵文字の生成を依頼する。プロンプトを1つ書くだけで、botたんが文字か絵かを読み取って候補を描く。候補は1枚ずつ描かれ、終わると通知が届く。未完了の依頼は1人1件まで。要認証。
- com.suibari.nagi.createKossoriPost procedure こっそり投稿を作成する。本文は PDS レコードにせず AppView にのみ保存し、著者本人と botたん以外には返さない。URI は著者 DID を含まない AppView 発行の不透明なものになる。画像・リンクカード・チャンネル所属は扱わない。
- com.suibari.nagi.createReport procedure Nagi の投稿(botたんの投稿を含む)や、投稿に付いたリアクションを運営に通報する、またはフィードバックを送る。内容は運営の Discord にだけ届き、通報された側には知らされない。
- com.suibari.nagi.createSsoTicket procedure 姉妹アプリ(botたんのお部屋など)へサインイン済みのまま移動するための、短命・単回使用の署名付きチケットを発行する。チケットは「この利用者は指定の DID である」という主張のみを含み、アクセストークンや権限は一切含まない。
- com.suibari.nagi.deleteAccountData procedure
- com.suibari.nagi.deleteBookmark procedure
- com.suibari.nagi.deleteBookmarkFolder procedure
- com.suibari.nagi.deleteDraft procedure
- com.suibari.nagi.deleteKossoriPost procedure こっそり投稿を削除する。PDS に正本が無いので、この操作で本文は完全に消える。著者本人のみ実行できる。
- com.suibari.nagi.deletePushInstallation procedure
- com.suibari.nagi.deletePushSubscription procedure
- com.suibari.nagi.donateCards procedure カードをおすそわけボードに置き、Ƶ を受け取る。手元に3枚を残し、ゼンカツでお休み中の在庫には手を付けない。mode=all は置けるぶんをすべて置く。置いたカードは取り下げられない。要認証。
- com.suibari.nagi.drawCard procedure 全肯定カードを1枚引く。my Nagiの通常枠と他ユーザーへのリアクション枠を1日各1回利用できる(JST 4:00 が日付境界)。同じ枠を既に引いている場合は、そのカードをそのまま返す(冪等)。抽選はサーバ側で行う。source=anniversary は抽選ではなく、その日が記念日の人へ未受領ぶんを一括で配る(同じ記念日は1年に1枚)。
- com.suibari.nagi.drawGuestCard procedure 未サインイン端末が今日の全肯定カードを1枚引く。同じ端末秘密・同じ日付では同じカードを返す。JST 4:00 が日付境界。
- com.suibari.nagi.ensureRecord procedure 本人のPDSにある現在レコードを取得し、Nagi AppViewへ即時反映する。
- com.suibari.nagi.generatePostAssist procedure 投稿を書いている本人へ、書きかけの具体的な良さを肯定するか、未入力・削除時に発想を促すひとことを生成する。書きかけの本文は生成にだけ使い、保存しない。
- com.suibari.nagi.generateTrilinesAssist procedure 3行日記の「botたんに相談」。本人の指定期間(日記の日付の0時から今まで)の Nagi 投稿から、空いている行に入れる候補を生成する。入力済みの行は生成の手がかりにだけ使い、保存しない。
- com.suibari.nagi.getAffirmation query
- com.suibari.nagi.getAppIcon query アプリの Web サイト URL を受け、ページの <link rel=icon> 等を解析して favicon の絶対URLを返す。連携設定時にアイコンを1回解決して appLinks レコードへ保存するために使う。
- com.suibari.nagi.getBookmarkFolders query
- com.suibari.nagi.getBookmarkStates procedure
- com.suibari.nagi.getBookmarks query
- com.suibari.nagi.getCardBoard query おすそわけボード。図鑑のカードごとにボードに「ある/ない」と、自分が置ける枚数・取れるかを返す。在庫の枚数と提供者は返さない。AAR はボードに無くても botたんの分が常にあり、その額で並ぶ。Ƶ の残高も返す。はじめて開いたときに Ƶ を1回だけ配る。要認証。
- com.suibari.nagi.getCardNews query 全肯定カードのニュース。R以上のドローと、ゼンカツ!のハイライトを時系列で混ぜて返す。ゼンカツを全件流すとニュースの約8割がゼンカツになり、見せたいレアドローが埋もれるため、ハイライトだけを載せる。公開情報なので未認証でも読める。
- com.suibari.nagi.getCards query 指定ユーザーの全肯定カードコレクション。未所持のカードも定義だけ返す(コレクション表示のため)。所持状況は公開情報。自分自身を指定したときだけ drawStatus(本日引けるか)を含む。
- com.suibari.nagi.getChannel query
- com.suibari.nagi.getChannelTimeline query
- com.suibari.nagi.getChannels query
- com.suibari.nagi.getChronicle query 自分年表。Nagi にやってきた日・botたんと出会った日・記念日カード・「はじめて」の記録・日記から抜いた出来事・そのころのニュースを、1本の時系列で返す。日記と同じく**本人だけが読む**ので、actor が認証した DID と一致しなければ 403(件数も日付も返さない)。
- com.suibari.nagi.getCommunityAffirmations query
- com.suibari.nagi.getDraft query
- com.suibari.nagi.getDrafts query
- com.suibari.nagi.getEmoji query Resolve a blue.moji.collection.item by AT-URI, indexing it on demand when it is not yet known.
- com.suibari.nagi.getEmojiGenerations query 自分の絵文字生成を新しい順に返す。最新の結果1件と、描いている途中の依頼1件まで(新しい結果が出ると前の結果は消える)。候補は透過 PNG の data URL で、1日で消える。要認証。
- com.suibari.nagi.getHomeTimeline query
- com.suibari.nagi.getLinkMetadata query
- com.suibari.nagi.getLinkThumbnail query
- com.suibari.nagi.getMutes query 自分がミュートしているユーザーとハッシュタグの一覧。ミュートは非公開情報なので、認証した本人の分だけを返す。
- com.suibari.nagi.getMyNagi query
- com.suibari.nagi.getMyNewsSubmissions query 認証した本人の最近のニュース審査依頼だけを返す。
- com.suibari.nagi.getNewsItem query
- com.suibari.nagi.getNewsQuotes query ニュースを引用した投稿(みんなのコメント)を新しい順に返す。可視性は共有タイムラインと同じ。
- com.suibari.nagi.getNewsSubmissionPreview query 公開記事URLから、ユーザー追加ニュース用の編集不可メタデータを取得する。
- com.suibari.nagi.getNotifications query
- com.suibari.nagi.getPositiveNews query
- com.suibari.nagi.getPreferences query 端末をまたいで同期する本人の設定(既読位置、お気に入り絵文字、フィードタブ、投稿・翻訳言語、コンテンツ表示、最後のブックマークフォルダ)を返す。他ユーザーからは参照できない。
- com.suibari.nagi.getPrivateList query
- com.suibari.nagi.getProfile query
- com.suibari.nagi.getProfileWebsite query
- com.suibari.nagi.getRadioHistory query 認証した本人だけが取得できるbotたんラジオ履歴。AppViewにのみ保存する。
- com.suibari.nagi.getRadioTrack query 認証した本人の現在のbotたんラジオ曲と未読状態。
- com.suibari.nagi.getSimilarNews query ニュースのパーマリンクに出す「似ているニュース」。基準記事の埋め込みに近い承認済みニュースを返す。
- com.suibari.nagi.getThread query
- com.suibari.nagi.getTimeline query
- com.suibari.nagi.getUnreadCount query
- com.suibari.nagi.getZenkatsu query ゼンカツ!の、ある1日のお題と全回答。回答は新着順(indexedAt 降順)。記録は公開情報なので未認証でも読める。認証した本人のぶんだけ viewer(提出済みか、今日出せる札)が付く。
- com.suibari.nagi.getZenkatsuDeck query レコード。自分がこれまでに成立させたコンボと、6種類のトロフィーの受賞履歴を返す。コンボは隠し要素なので、**まだ出していないコンボの中身は返さない**(総数と、枚数・世界で発見済みかどうか・発見済みなら謎かけだけを返す)。要認証。
- com.suibari.nagi.listIndexableBlogs query
- com.suibari.nagi.listIndexableNews query
- com.suibari.nagi.markRadioSeen procedure 本人が画面へ表示した最新のラジオ枠をAppViewで既読にする。
- com.suibari.nagi.news record
- com.suibari.nagi.post record 画像と動画を1投稿に混ぜるための embed。app.bsky.embed.gallery と同じく型付き item の union 配列で持つ。現状は画像4枚・動画1本まで。順序はレコードに残すが、ビューは画像→動画の順で返す。画像だけ・動画だけの投稿は #images / #video を使う。
- com.suibari.nagi.profile record
- com.suibari.nagi.putBookmark procedure
- com.suibari.nagi.putBookmarkFolder procedure
- com.suibari.nagi.putCommunityAffirmationDismissals procedure
- com.suibari.nagi.putDraft procedure
- com.suibari.nagi.putPreferences procedure 同期対象の本人設定を書き込む。既読位置は単調マージ、配列・言語・コンテンツ表示設定・最後のブックマークフォルダは updatedAt による後勝ち。各項目は省略でき、送った分だけを更新する。
- com.suibari.nagi.radio record botたんラジオの1回を公開してよいという本人の宣言。ポストはこれを引用する。曲とDJコメントはレコードに持たず、AppView が本人の放送履歴から引く。rkey は slotKey と同じ。
- com.suibari.nagi.reaction record Reference to a blue.moji.collection.item record. Formats are intentionally not carried here: the AppView resolves them from its own index of the source item, which is the trust anchor.
- com.suibari.nagi.refreshPushSubscription procedure
- com.suibari.nagi.registerPushSubscription procedure
- com.suibari.nagi.requestNewsReview procedure 本人のPDSに作成したニュースレコードを受け付け、その場で掲載する。botたんのコメントは後から付く。
- com.suibari.nagi.resetZenkatsu procedure **開発専用。** 今日の自分のゼンカツ提出を消して、もう一度出せるようにする。ゼンカツは1日1回なので、そのままでは総評や演出を1日1度しか確かめられない。1日1回のロックを環境変数で外すのではなく「消して出し直す」形にしているのは、所持・クールダウン・当日判定・採点・コンボ・総評という本物の経路を毎回まるごと通すため。AppView は開発モードでないときルート自体を登録しない。
- com.suibari.nagi.resolveLexicon query NSID を受け、publish 済み Lexicon のスキーマ定義を解決して返す。DNS TXT 解決を伴うためサーバ側で実行する。未解決なら resolved=false。
- com.suibari.nagi.richtext defs
- com.suibari.nagi.searchActors query
- com.suibari.nagi.searchChannels query
- com.suibari.nagi.searchEmojis query
- com.suibari.nagi.searchNews query
- com.suibari.nagi.searchPosts query
- com.suibari.nagi.searchTags query 投稿欄の #タグ 入力候補。共有タイムラインに出る投稿のハッシュタグを前方一致で、投稿数の多い順に返す。集計は数分キャッシュされる。
- com.suibari.nagi.setChannelSubscription procedure
- com.suibari.nagi.setMute procedure ユーザーまたはハッシュタグのミュートを設定・解除する。ミュートは AppView にのみ保存され、他ユーザーからは参照できない。
- com.suibari.nagi.setPostMood procedure 感情グラフの点(自分の投稿の気分)を本人が直す。valence を省くと LLM の採点に戻す。直せるのはいまグラフに出ている点だけで、中立と判定された投稿は対象外。
- com.suibari.nagi.setPrivateListMember procedure
- com.suibari.nagi.takeBoardCard procedure おすそわけボードから、まだ持っていないカードを1枚、Ƶ を払って受け取る。早い者勝ち。AAR はボードに無ければ botたんの分を受け取る。提供者は枚数で重み付けしたランダムで選ばれ、カードに「〜からもらった」が付く。要認証。
- com.suibari.nagi.translatePost procedure
- com.suibari.nagi.translatePosts procedure
- com.suibari.nagi.updateSeen procedure
- com.suibari.nagi.zenkatsu record ゼンカツ!の提出。その日のお題に、手持ちの全肯定カード1〜3枚で答える。rkey は themeDate("2026-09-19")なので、repo 側でも1日1本に限られる。所持していない札・クールダウン中の札・当日以外の日付を書いても、AppView が取り込み時に照合して索引しない(ドローと違い、提出は既に所持している札を参照するだけなので照合先がある)。