opencode-session-turns 0.1.9 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gui-experimental.cjs +1 -1
- package/package.json +1 -1
- package/src/gui.tsx +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("solid-js/web"),q=require("@opencode/plugin/gui"),i=require("solid-js");var zt=a.template("<div class=sr-status>"),Ft=a.template('<span class="sr-title sr-progress">跳转中'),Ut=a.template("<div class=sr-rail><div class=sr-head><button type=button class=sr-close>×</button></div><div class=sr-list>"),Gt=a.template("<span class=sr-title>会话轮次"),Ht=a.template("<div class=sr-note>"),Wt=a.template("<button type=button class=sr-turn><span class=sr-text><span class=sr-num>#</span><span class=sr-time></span></span><span class=sr-dash>");const et="
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const a=require("solid-js/web"),q=require("@opencode/plugin/gui"),i=require("solid-js");var zt=a.template("<div class=sr-status>"),Ft=a.template('<span class="sr-title sr-progress">跳转中'),Ut=a.template("<div class=sr-rail><div class=sr-head><button type=button class=sr-close>×</button></div><div class=sr-list>"),Gt=a.template("<span class=sr-title>会话轮次"),Ht=a.template("<div class=sr-note>"),Wt=a.template("<button type=button class=sr-turn><span class=sr-text><span class=sr-num>#</span><span class=sr-time></span></span><span class=sr-dash>");const et="v15",ot="message-",Ct="session-turns:diag",at="session-turns:open",Vt=40,Kt=200,Yt=50,Zt=30,j=45e3,Xt=12e3,Qt=5e3,te=9e3,ee=220,ne=800;let Lt=0,it="",lt="",ct="";const At=s=>{const n=String(s?.text??"").split(`
|
|
2
2
|
`).map(p=>p.trim()).find(p=>p.length>0);if(n)return n;const d=s?.files?.length??0;return d>0?`[附件 ×${d}]`:"(空消息)"},Tt=s=>String(s).padStart(2,"0"),re=s=>{const n=new Date(s??0);return`${Tt(n.getHours())}:${Tt(n.getMinutes())}`},Mt=s=>new Promise(n=>setTimeout(n,s)),dt=()=>document.querySelector('[data-slot="session-timeline-scroll"] > .scroll-view__viewport')??document.querySelector('[data-slot="session-timeline-scroll"] [data-scrollable]')??(()=>{let n=document.querySelector("[data-message-id]")?.parentElement;for(;n;){const d=getComputedStyle(n);if(/(auto|scroll)/.test(d.overflowY)&&n.scrollHeight>n.clientHeight+1)return n;n=n.parentElement}})(),T=s=>document.getElementById(`${ot}${s}`)??[...document.querySelectorAll("[data-message-id]")].find(n=>n.getAttribute("data-message-id")===s),nt=s=>{const n=dt(),d=[...document.querySelectorAll("[data-message-id]")],p=d[0]?.getAttribute("data-message-id")??"",$=ct?` · 目标 ${T(ct)?"在":"不在"} DOM`:"",S=p?` · 行ID ${p.slice(0,20)}`:"";let M="(空)";try{M=s.router.path()||"(空)"}catch{}return`轮次 ${Lt} · 容器 ${n?"OK":"缺失"} · DOM ${d.length} 行${$}${S} · 路由 ${M} · hash ${window.location.hash||"(空)"}${lt?` · ${lt}`:""}${it?` · ${it}`:""}`},se=s=>{const n=s.getBoundingClientRect().top;let d=n;for(const p of s.querySelectorAll(".sticky, [data-session-title]")){if(!(p instanceof HTMLElement)||getComputedStyle(p).position!=="sticky"&&!p.hasAttribute("data-session-title"))continue;const S=p.getBoundingClientRect();S.height!==0&&(S.top>n+4||(d=Math.max(d,S.bottom)))}return d},rt=s=>{try{const n=dt();if(!n||!s.isConnected)return;const d=s.querySelector('[data-slot="user-message-text"]')??s,p=se(n),$=d.getBoundingClientRect().top-(p+18);Math.abs($)>2&&(n.scrollTop+=$),lt=`inset ${Math.round(p)} · delta ${Math.round($)}`}catch{}},st=s=>{rt(s),setTimeout(()=>rt(s),450),setTimeout(()=>rt(s),1e3)},oe=s=>{let n="";try{n=s.router.path()||""}catch{}return n.startsWith("/")?n:""},ae=s=>{const n=document.createElement("a");n.setAttribute("href",s),n.setAttribute("replace",""),n.setAttribute("noscroll",""),n.style.display="none",document.body.appendChild(n);try{n.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,button:0,view:window}))}finally{n.remove()}},ie=`
|
|
3
3
|
.sr-rail {
|
|
4
4
|
position: fixed;
|
package/package.json
CHANGED
package/src/gui.tsx
CHANGED
|
@@ -6,7 +6,7 @@ import { Portal } from "solid-js/web"
|
|
|
6
6
|
// constants / helpers
|
|
7
7
|
// ---------------------------------------------------------------------------
|
|
8
8
|
|
|
9
|
-
const VERSION = "
|
|
9
|
+
const VERSION = "v15"
|
|
10
10
|
const HASH_PREFIX = "message-"
|
|
11
11
|
const DIAG_EVENT = "session-turns:diag"
|
|
12
12
|
const OPEN_EVENT = "session-turns:open"
|