Files
hunjing/design/devices.html
T
2026-09-21 11:19:07 +08:00

134 lines
17 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="zh-CN" data-theme="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>器谱 · 设备与感知 — 魂镜 Hunjing</title>
<link rel="stylesheet" href="assets/app.css?v=10">
</head>
<body>
<svg style="display:none" aria-hidden="true"><symbol id="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"/></symbol><symbol id="i-home" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M9 22V12h6v10"/></symbol><symbol id="i-branch" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="6" y1="3" x2="6" y2="15"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/><path d="M18 9a9 9 0 0 1-9 9"/></symbol><symbol id="i-user" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></symbol><symbol id="i-book" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></symbol><symbol id="i-layers" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></symbol><symbol id="i-kanban" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 3h4v18H5z"/><path d="M10 3h4v12h-4z"/><path d="M15 3h4v8h-4z"/></symbol><symbol id="i-package" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></symbol><symbol id="i-users" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></symbol><symbol id="i-route" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="19" r="3"/><circle cx="18" cy="5" r="3"/><path d="M12 19h4.5a3.5 3.5 0 0 0 0-7h-9a3.5 3.5 0 0 1 0-7H12"/></symbol><symbol id="i-globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></symbol><symbol id="i-bag" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><line x1="3" y1="6" x2="21" y2="6"/><path d="M16 10a4 4 0 0 1-8 0"/></symbol><symbol id="i-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></symbol><symbol id="i-monitor" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></symbol><symbol id="i-sliders" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></symbol><symbol id="i-eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></symbol><symbol id="i-mic" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z"/><path d="M19 10v2a7 7 0 0 1-14 0v-2"/><line x1="12" y1="19" x2="12" y2="23"/></symbol><symbol id="i-camera" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></symbol><symbol id="i-pin" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></symbol><symbol id="i-bell" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></symbol><symbol id="i-file" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></symbol><symbol id="i-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></symbol><symbol id="i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></symbol><symbol id="i-chevrons" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="11 17 6 12 11 7"/><polyline points="18 17 13 12 18 7"/></symbol>
</svg>
<div class="app">
<aside class="sidebar">
<div class="brand">
<div class="brand__mark" aria-hidden="true"></div>
<div class="brand__text">
<div class="brand__name">魂镜</div>
<div class="brand__sub">Hunjing</div>
</div>
</div>
<nav class="side-nav" aria-label="主导航"><div class="nav-group"><div class="nav-group__title">常用</div><a class="nav-item" href="home.html"><svg><use href="#i-home"/></svg><span class="cn">镜庭</span><span class="nav-plain">首页</span></a><a class="nav-item" href="conversation.html"><svg><use href="#i-branch"/></svg><span class="cn">镜树</span><span class="nav-plain">对话</span></a><a class="nav-item" href="characters.html"><svg><use href="#i-user"/></svg><span class="cn">镜生</span><span class="nav-plain">角色</span></a><a class="nav-item" href="memory.html"><svg><use href="#i-book"/></svg><span class="cn">息壤</span><span class="nav-plain">记忆</span></a><a class="nav-item" href="avatar.html"><svg><use href="#i-layers"/></svg><span class="cn">形仪</span><span class="nav-plain">形象</span></a></div><div class="nav-group"><div class="nav-group__title">创造</div><a class="nav-item" href="agent-workspace.html"><svg><use href="#i-kanban"/></svg><span class="cn">天工阁</span><span class="nav-plain">任务</span></a><a class="nav-item" href="plugins.html"><svg><use href="#i-package"/></svg><span class="cn">百工坊</span><span class="nav-plain">插件</span></a><a class="nav-item" href="collaboration.html"><svg><use href="#i-users"/></svg><span class="cn">同契台</span><span class="nav-plain">协作</span></a><a class="nav-item" href="model-gateway.html"><svg><use href="#i-route"/></svg><span class="cn">神识阁</span><span class="nav-plain">模型</span></a></div><div class="nav-group"><div class="nav-group__title">世界</div><a class="nav-item" href="community.html"><svg><use href="#i-globe"/></svg><span class="cn">雅集</span><span class="nav-plain">社区</span></a><a class="nav-item" href="marketplace.html"><svg><use href="#i-bag"/></svg><span class="cn">云市</span><span class="nav-plain">市场</span></a></div><div class="nav-group"><div class="nav-group__title">治理与账户</div><a class="nav-item" href="governance.html"><svg><use href="#i-shield"/></svg><span class="cn">司命台</span><span class="nav-plain">治理</span></a><a class="nav-item is-active" aria-current="page" href="devices.html"><svg><use href="#i-monitor"/></svg><span class="cn">器谱</span><span class="nav-plain">设备</span></a><a class="nav-item" href="settings.html"><svg><use href="#i-sliders"/></svg><span class="cn">设置</span><span class="nav-plain">账户</span></a></div></nav>
<div class="side-foot">
<button class="icon-btn side-fold-btn" data-sidebar-fold aria-label="收起侧栏" title="收起 / 展开侧栏(记忆偏好)"><svg><use href="#i-chevrons"/></svg></button>
<span class="avatar avatar--sm avatar--user">舟</span>
<span style="font-size:12.5px">云舟</span>
<button class="icon-btn" data-theme-toggle style="margin-left:auto" aria-label="切换到月白主题"><svg><use href="#i-moon"/></svg></button>
</div>
</aside>
<main class="main">
<header class="topbar">
<div class="crumbs"><span class="cn">器谱</span><span class="crumbs__sep">·</span><span class="here">设备与感知</span></div>
<div class="topbar__spacer"></div>
<span class="prototype-tag">静态原型 · 待审查</span>
<button class="icon-btn" data-theme-toggle aria-label="切换到月白主题"><svg><use href="#i-moon"/></svg></button>
</header>
<div class="content">
<div class="realm-banner" role="note">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
设备能力同时受系统权限与授契约束;采集有持续指示,可即时暂停或撤销。离线缓存加密,不创建独立角色副本。
</div>
<section class="section">
<div class="section__head"><span class="cn">形器<span class="cn__plain">登记设备</span></span></div>
<div class="card" style="padding:6px 18px">
<div class="list-row">
<svg style="width:18px;height:18px;color:var(--text-3)"><use href="#i-monitor"/></svg>
<div class="list-row__body"><div class="list-row__title">MacBook Pro · Tauri 桌面</div><div class="list-row__sub">macOS · 当前设备</div></div>
<span class="badge badge--ok" style="font-size:11px"><span class="badge__dot"></span>在线</span>
</div>
<div class="list-row">
<svg style="width:18px;height:18px;color:var(--text-3)"><use href="#i-monitor"/></svg>
<div class="list-row__body"><div class="list-row__title">iPhone · 移动端</div><div class="list-row__sub">iOS · 实时语音常用设备</div></div>
<span class="badge badge--ok" style="font-size:11px"><span class="badge__dot"></span>在线</span>
</div>
<div class="list-row">
<svg style="width:18px;height:18px;color:var(--text-3)"><use href="#i-globe"/></svg>
<div class="list-row__body"><div class="list-row__title">Web 浏览器 · Safari</div><div class="list-row__sub">昨天活跃 · 仅文件读写授权</div></div>
<span class="badge badge--muted" style="font-size:11px"><span class="badge__dot"></span>离线</span>
</div>
</div>
</section>
<section class="section">
<div class="section__head"><span class="cn">授契<span class="cn__plain">设备能力授权</span></span><button class="btn btn--ghost btn--sm" style="margin-left:auto">全部撤销</button></div>
<div class="card" style="padding:6px 18px">
<div class="grant-row">
<span class="grant-row__cap"><svg><use href="#i-mic"/></svg>闻声 · 麦克风</span>
<div><div style="font-size:13px">青梧 · 实时语音</div><div class="grant-row__meta">iPhone · 仅通话期间 · 采集指示常显</div></div>
<button class="btn btn--ghost btn--sm">撤销</button>
</div>
<div class="grant-row">
<span class="grant-row__cap"><svg><use href="#i-file"/></svg>文件读写</span>
<div><div style="font-size:13px">青梧 · 书斋归档</div><div class="grant-row__meta">MacBook · 仅 ~/BookRoom/ 目录 · 长期(可随时撤销)</div></div>
<button class="btn btn--ghost btn--sm">撤销</button>
</div>
<div class="grant-row">
<span class="grant-row__cap"><svg><use href="#i-bell"/></svg>通知</span>
<div><div style="font-size:13px">叩心提醒通道</div><div class="grant-row__meta">iPhone · 静默时段 22:00–08:00 · 频率 ≤ 1 条/日</div></div>
<button class="btn btn--ghost btn--sm">撤销</button>
</div>
<div class="grant-row" style="opacity:.6">
<span class="grant-row__cap"><svg><use href="#i-camera"/></svg>观影 · 摄像头</span>
<div><div style="font-size:13px">未授权</div><div class="grant-row__meta">任何角色请求摄像头时将单独请命</div></div>
<span style="font-size:11.5px;color:var(--text-3)">—</span>
</div>
<div class="grant-row" style="opacity:.6">
<span class="grant-row__cap"><svg><use href="#i-pin"/></svg>问路 · 位置</span>
<div><div style="font-size:13px">未授权(上次通感已结束)</div><div class="grant-row__meta">通感默认 10 分钟 · 精度 1km · 结束即失效</div></div>
<span style="font-size:11.5px;color:var(--text-3)">—</span>
</div>
</div>
</section>
<div class="two-col">
<section class="section card" style="border-color:color-mix(in srgb,var(--accent) 40%,transparent)">
<div class="card__head"><span class="cn" style="color:var(--accent-strong)">通感进行中<span class="cn__plain">限时设备感知</span></span><span style="margin-left:auto;font-size:12px;color:var(--text-3)" class="mono">剩 8 分钟</span></div>
<p style="font-size:13px;color:var(--text-2);margin-bottom:10px">青梧 · 问路(位置 · 精度 1km)· 用于「找一家安静的茶馆」。采集指示常显,位置不写入长期记忆,会话结束即丢弃。</p>
<div class="progress" style="margin-bottom:12px"><div class="progress__bar" style="width:20%"></div></div>
<div style="display:flex;gap:10px">
<button class="btn btn--outline btn--sm">暂停</button>
<button class="btn btn--danger btn--sm">立即结束并撤销</button>
</div>
</section>
<section class="section">
<div class="block approval">
<div class="approval__head">
<span class="approval__seal" aria-hidden="true">命</span>
<div>
<div class="approval__title"><span class="cn">请命 · 观屏</span><span class="cn__plain">屏幕读取授权</span></div>
<div style="font-size:11.5px;color:var(--text-3)">来自镜树「书房整理」· 限此一次</div>
</div>
</div>
<div class="approval__body">
<p style="font-size:14px;color:var(--text-1)">允许青梧在未来 10 分钟读取当前屏幕?</p>
<div class="fact"><span class="fact__k">用途</span><span class="fact__v">识别书桌照片中的书目并归档</span></div>
<div class="fact"><span class="fact__k">数据</span><span class="fact__v">仅屏幕内容 · 不截屏存储 · 不写入长期记忆</span></div>
</div>
<div class="approval__acts">
<button class="btn btn--cinnabar" aria-label="确认决定:允许本次观屏">允许(本次,10 分钟)</button>
<button class="btn btn--outline">拒绝</button>
</div>
</div>
</section>
</div>
</div>
</main>
</div>
<script src="assets/app.js?v=3"></script>
</body>
</html>