@pi-harness/pi-harness 0.1.78 → 0.1.79

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.
Files changed (39) hide show
  1. package/apps/web/dist/assets/de-CFef28fQ.js +1 -0
  2. package/apps/web/dist/assets/en-Ebm89ExI.js +1 -0
  3. package/apps/web/dist/assets/es-Ct5yWh15.js +1 -0
  4. package/apps/web/dist/assets/fr-Ce0H9Gsj.js +1 -0
  5. package/apps/web/dist/assets/index-DnwVYrAg.js +29 -0
  6. package/apps/web/dist/assets/ja-Dw_rGz1H.js +1 -0
  7. package/apps/web/dist/assets/ko-VWpHlxC5.js +1 -0
  8. package/apps/web/dist/assets/pt-BR-Ca1B1HBY.js +1 -0
  9. package/apps/web/dist/assets/ru-DeWNs5Qn.js +1 -0
  10. package/apps/web/dist/assets/zh-TW-CLGMD-Bd.js +1 -0
  11. package/apps/web/dist/index.html +1 -1
  12. package/apps/web/package.json +1 -1
  13. package/node_modules/@pi-harness/api-gateway/dist/index.d.ts.map +1 -1
  14. package/node_modules/@pi-harness/api-gateway/dist/index.js +58 -25
  15. package/node_modules/@pi-harness/api-gateway/dist/index.js.map +1 -1
  16. package/node_modules/@pi-harness/api-gateway/package.json +1 -1
  17. package/node_modules/@pi-harness/cli/package.json +1 -1
  18. package/node_modules/@pi-harness/host-webserver/package.json +1 -1
  19. package/node_modules/@pi-harness/web-app/package.json +1 -1
  20. package/package.json +6 -6
  21. package/packages/api-gateway/dist/index.d.ts.map +1 -1
  22. package/packages/api-gateway/dist/index.js +58 -25
  23. package/packages/api-gateway/dist/index.js.map +1 -1
  24. package/packages/api-gateway/package.json +1 -1
  25. package/packages/api-gateway/src/index.ts +61 -37
  26. package/packages/api-gateway/test/index.test.ts +61 -15
  27. package/packages/bundle-web-app/package.json +1 -1
  28. package/packages/cli/package.json +1 -1
  29. package/packages/host-webserver/package.json +1 -1
  30. package/apps/web/dist/assets/de-DE5QngKz.js +0 -1
  31. package/apps/web/dist/assets/en-0VnFnWov.js +0 -1
  32. package/apps/web/dist/assets/es-2x2p4Xma.js +0 -1
  33. package/apps/web/dist/assets/fr-CsKnE6-H.js +0 -1
  34. package/apps/web/dist/assets/index-B0Lgl-Gu.js +0 -29
  35. package/apps/web/dist/assets/ja-BKIzuLVx.js +0 -1
  36. package/apps/web/dist/assets/ko-Bcml0Avl.js +0 -1
  37. package/apps/web/dist/assets/pt-BR-BFKTWEIq.js +0 -1
  38. package/apps/web/dist/assets/ru-Dy8CAvNL.js +0 -1
  39. package/apps/web/dist/assets/zh-TW-cqQtCqxU.js +0 -1
@@ -0,0 +1 @@
1
+ var e=`已提交系統`,t=`未提交系統`,n=`一次全部送出`,r=`上一頁`,i=`上下文`,a=`上下文與顯示`,o=`上下文佔用`,s=`上下文診斷`,c=`上下文預算`,l=`下一步`,u=`下一頁`,d=`不會在瀏覽器顯示`,f=`無法使用`,p=`不執行`,m=`專注`,h=`嚴重`,g=`個事件`,_=`暫時性網路錯誤時自動重試請求`,v=`主題`,y=`事件`,b=`事件詳情`,x=`互動`,S=`交接給`,C=`產出`,w=`產生者`,T=`今天`,E=`從不信任`,D=`從預設清單隱藏`,O=`程式碼審查`,k=`token 數未知`,A=`任務`,j=`任務看板`,M=`任務結束提醒外掛`,N=`休息`,P=`工作階段`,F=`工作階段書籤`,I=`工作階段交接`,L=`工作階段資訊變更`,R=`工作階段內信箱備註`,z=`工作階段切換失敗`,B=`工作階段切換完成`,V=`工作階段切換已取消`,H=`工作階段清單`,U=`工作階段壓縮`,W=`工作階段召回`,G=`工作階段回復`,K=`工作階段地圖`,q=`工作階段比對`,J=`工作階段匯出`,Y=`工作階段工具`,X=`工作階段搜尋`,Z=`工作階段操作`,Q=`工作階段標籤`,$=`工作階段統計`,ee=`工作階段檢視`,te=`工作階段資源已重新載入`,ne=`工作階段資源重新載入失敗`,re=`工作階段資源重新載入已取消`,ie=`傳輸方式`,ae=`作者`,oe=`使用初始狀態`,se=`側欄概覽`,ce=`儲存名稱`,le=`儲存原始碼`,ue=`儲存點`,de=`保留`,fe=`修復並測試`,pe=`候選`,me=`候選圖片`,he=`停止`,ge=`停用外掛`,_e=`允許算繪模型回應中的圖片`,ve=`允許回傳`,ye=`全域搜尋`,be=`全部`,xe=`全部影響`,Se=`全部復原`,Ce=`共用`,we=`關鍵決策`,Te=`關鍵檔案`,Ee=`關閉`,De=`關閉事件詳情`,Oe=`關閉全域搜尋`,ke=`關閉工作區選擇`,Ae=`關閉檔案差異`,je=`關閉新增供應商`,Me=`關閉詳情`,Ne=`其他`,Pe=`其他外掛面板`,Fe=`內容`,Ie=`內建元件`,Le=`寫入工作階段`,Re=`寫入失敗`,ze=`寫入已取消`,Be=`寫入已完成`,Ve=`分支`,He=`分析目前儲存庫並給出根本原因`,Ue=`分類`,We=`建立分支`,Ge=`刪除`,Ke=`刪除工作階段`,qe=`重新整理清單`,Je=`加入註解`,Ye=`載入中`,Xe=`助理`,Ze=`協作`,Qe=`協作成員`,$e=`通訊協定`,et=`單一檔案上限`,tt=`佔用`,nt=`解除安裝`,rt=`解除安裝外掛`,it=`歷史壓縮`,at=`壓縮`,ot=`壓縮中`,st=`壓縮失敗`,ct=`壓縮已取消`,lt=`壓縮已完成`,ut=`壓縮開始`,dt=`壓縮開銷`,ft=`壓縮狀態資料無效`,pt=`壓縮結束`,mt=`壓縮進度`,ht=`原生直傳`,gt=`發現錯誤風險`,_t=`傳送中`,vt=`傳送匿名安裝與版本統計`,yt=`傳送失敗`,bt=`傳送訊息`,xt=`取消`,St=`取消註解`,Ct=`變更關卡`,wt=`只顯示可展開的思考摘要`,Tt=`唯讀檢查未提交的變更`,Et=`可回復的輪次`,Dt=`可執行任務`,Ot=`選用`,kt=`選用,未安裝`,At=`可設定`,jt=`右側工作階段`,Mt=`右側新增`,Nt=`名稱`,Pt=`向右查看更多分類`,Ft=`向左查看更多分類`,It=`啟動時隱藏版本與更新提示`,Lt=`啟用外掛`,Rt=`指令`,zt=`指令自動完成`,Bt=`指令面板`,Vt=`國際化`,Ht=`圖片`,Ut=`圖片壓縮`,Wt=`在訊息中顯示模型快取診斷`,Gt=`基準`,Kt=`基準鍵`,qt=`宣告`,Jt=`複製上下文並開啟副本`,Yt=`複製工作階段`,Xt=`複核`,Zt=`複核風險內容的預設策略`,Qt=`外部相依`,$t=`失敗`,en=`一律信任`,tn=`安全`,nn=`安全稽核`,rn=`安全執行`,an=`安全模式`,on=`安全防護`,sn=`安裝`,cn=`安裝外掛`,ln=`安裝遙測`,un=`安靜啟動`,dn=`完成`,fn=`完成後算繪`,pn=`官方`,mn=`官方外掛`,hn=`定位問題`,gn=`即時上下文`,_n=`即時詳情`,vn=`即時面板`,yn=`實作修復並執行相關測試`,bn=`實驗性`,xn=`審查`,Sn=`審查變更`,Cn=`對話`,wn=`匯入工作階段`,Tn=`匯入工作階段檔案`,En=`匯入失敗`,Dn=`匯入已取消`,On=`匯出失敗`,kn=`匯出已取消`,An=`匯出目前工作階段`,jn=`尚未建立計畫`,Mn=`尚未掃描`,Nn=`尚未清理`,Pn=`尚未要求`,Fn=`尚未要求壓縮`,In=`工作區`,Ln=`工作區唯讀`,Rn=`工作區導覽`,zn=`工作區文字檢索`,Bn=`工作區搜尋結果`,Vn=`工作區目錄樹節點`,Hn=`工作區檢索`,Un=`工作區概覽`,Wn=`工作目錄`,Gn=`工具`,Kn=`工具通訊協定`,qn=`尚未查詢工具`,Jn=`工具呼叫`,Yn=`工具回傳`,Xn=`工具進度`,Zn=`工具錯誤`,Qn=`工程診斷`,$n=`左側工作階段`,er=`左側刪除`,tr=`已中斷`,nr=`已從磁碟重新載入`,rr=`已儲存`,ir=`已儲存原始碼`,ar=`已停用`,or=`已關閉`,sr=`已刪除`,cr=`已載入`,lr=`已壓縮`,ur=`已取消`,dr=`已啟用`,fr=`已啟用的供應商`,pr=`已回復`,mr=`已釘選`,hr=`已安裝`,gr=`已安裝外掛分類`,_r=`已完成`,vr=`已導覽`,yr=`已開啟`,br=`已還原狀態`,xr=`已擷取螢幕畫面`,Sr=`已掃描`,Cr=`已排入佇列`,wr=`已註冊`,Tr=`已新增`,Er=`已點擊`,Dr=`已產生技能`,Or=`已覆寫`,kr=`已讀`,Ar=`已讀取`,jr=`已回傳不可信任的文字`,Mr=`已連線`,Nr=`已送達`,Pr=`已設定`,Fr=`已驗證`,Ir=`建議`,Lr=`開始一個工作階段`,Rr=`開心`,zr=`封存`,Br=`封存工作階段`,Vr=`目前`,Hr=`目前的上下文`,Ur=`目前的工作階段`,Wr=`目前工作階段的書籤`,Gr=`目前工作階段的操作`,Kr=`目前佔用`,qr=`目前工作區`,Jr=`目前外掛`,Yr=`目前狀態`,Xr=`目前執行階段`,Zr=`目前執行階段還沒有註冊任何指令`,Qr=`影響範圍`,$r=`等待下一次模型回應`,ei=`待辦`,ti=`待傳送的註解`,ni=`待複核`,ri=`待規劃`,ii=`待驗收`,ai=`快速鍵`,oi=`思考`,si=`思考層級`,ci=`思考層級變更`,li=`總發現`,ui=`還原儲存點`,di=`成員`,fi=`成本帳本`,pi=`開啟工作階段樹`,mi=`開啟目錄`,hi=`開啟詳情`,gi=`執行中`,_i=`擴充點`,vi=`掃描失敗`,yi=`掃描已取消`,bi=`掃描檔案`,xi=`掃描範圍或結果預覽已截斷`,Si=`註解上下文`,Ci=`註解備註`,wi=`技能`,Ti=`技能封裝`,Ei=`技能目錄`,Di=`技能隔離`,Oi=`擔心`,ki=`拉取模型`,Ai=`拒絕回傳`,ji=`依影響範圍篩選`,Mi=`依輪次`,Ni=`排行榜`,Pi=`端點位址`,Fi=`介面模擬`,Ii=`接近上下文上限時自動整理歷史訊息`,Li=`控制命令列介面與訊息算繪行為`,Ri=`控制思考內容與自動壓縮`,zi=`控制快取提示與匿名資料回報`,Bi=`提交訊息`,Vi=`提交這些變更`,Hi=`供應商`,Ui=`供應商名稱`,Wi=`提示範本`,Gi=`提示詞庫`,Ki=`提示詞防護`,qi=`外掛`,Ji=`外掛體檢`,Yi=`外掛資訊`,Xi=`外掛分類`,Zi=`外掛探索`,Qi=`外掛市集`,$i=`外掛開發`,ea=`外掛目錄`,ta=`外掛詳情`,na=`外掛面板`,ra=`插入斜線並列出指令`,ia=`搜尋工作階段`,aa=`搜尋指令`,oa=`搜尋已安裝的外掛`,sa=`搜尋外掛`,ca=`復原全部變更`,la=`資料庫`,ua=`資料異常`,da=`資料來源`,fa=`檔案`,pa=`檔案上下文`,ma=`檔案差異`,ha=`檔案自動完成`,ga=`檔案詳情`,_a=`文件`,va=`文件產生`,ya=`新工作階段`,ba=`新工作階段啟動時使用的模型與思考層級`,xa=`新增`,Sa=`新增工作階段`,Ca=`新檔案`,wa=`沒有描述`,Ta=`無法安全檢查`,Ea=`沒有輸出`,Da=`時間`,Oa=`時間未知`,ka=`昨天`,Aa=`顯示名稱`,ja=`顯示圖片`,Ma=`顯示已封存的工作階段`,Na=`顯示快取未命中`,Pa=`目前沒有`,Fa=`目前沒有可用的模型`,Ia=`目前沒有已儲存的工作階段`,La=`目前沒有描述`,Ra=`目前沒有模型`,za=`更早`,Ba=`最近的上下文事件`,Va=`最近的動作`,Ha=`最近一次壓縮`,Ua=`最近的指令`,Wa=`最近的匯入請求`,Ga=`最近一次匯出`,Ka=`最近一次擷取`,qa=`最近一次復原`,Ja=`最近的操作`,Ya=`最近的記錄`,Xa=`最近產生的提問上下文`,Za=`最近的膠囊`,Qa=`最近附加`,$a=`最近的風險摘要`,eo=`有效素材`,to=`服務狀態`,no=`未決`,ro=`未決約束`,io=`未載入`,ao=`未啟動`,oo=`未命中檢查規則`,so=`未命中偵測規則`,co=`未命中規則`,lo=`未命名`,uo=`未命名的書籤`,fo=`未命名的任務`,po=`未命名的工作階段`,mo=`未命名的技能`,ho=`未命名的提示詞`,go=`未命名的伺服器`,_o=`未命名的符號`,vo=`未命名的節點`,yo=`未命名的輪次`,bo=`未回答`,xo=`未釘選`,So=`未持久化`,Co=`未檢查`,wo=`未偵測到`,To=`未偵測到憑證`,Eo=`未註冊`,Do=`未知`,Oo=`未知的儲存庫`,ko=`未知的切換狀態`,Ao=`未知的工作區`,jo=`未知的外掛`,Mo=`未知的檔案`,No=`未知的錯誤`,Po=`未知的鍵`,Fo=`未達到掃描或預覽上限`,Io=`未設定`,Lo=`未讀`,Ro=`未讀訊息`,zo=`未回傳原文`,Bo=`未連線`,Vo=`未送達`,Ho=`未選擇工作區`,Uo=`未選擇模型`,Wo=`未設定`,Go=`本機關係圖`,Ko=`本機瀏覽器未連線`,qo=`本機遙測服務不傳送事件`,Jo=`本次工作階段的變更`,Yo=`本次開啟後還沒有事件`,Xo=`本次執行已回報用量`,Zo=`權限原則`,Qo=`則訊息`,$o=`來源`,es=`架構地圖`,ts=`查看原始錯誤`,ns=`查看差異`,rs=`查看執行設定`,is=`查詢中`,as=`查詢失敗`,os=`驗證模型`,ss=`桌面夥伴`,cs=`桌面通知`,ls=`檢查中`,us=`檢查失敗`,ds=`模組檢索`,fs=`模型`,ps=`模型尚未設定憑證`,ms=`模型驗證`,hs=`模型預設值`,gs=`模型思考中`,_s=`模型生成中`,vs=`工具執行中`,ys=`等待模型`,bs=`即時更新已中斷`,xs=`正在連線即時更新`,Ss=`模型暫時無活動`,Cs=`剛剛有新活動`,ws=`正在寫入`,Ts=`正在切換工作階段`,Es=`正在壓縮`,Ds=`正在傳送`,Os=`正在產生`,ks=`正在盤點視覺素材`,As=`正在讀取圖片中繼資料`,js=`正在讀取視覺內容`,Ms=`正在重新載入工作階段資源`,Ns=`步驟`,Ps=`每次詢問`,Fs=`永久刪除`,Is=`永久刪除本機紀錄`,Ls=`沙箱`,Rs=`沒有符合項目`,zs=`串流算繪`,Bs=`流程圖`,Vs=`測試`,Hs=`測試連線`,Us=`瀏覽器工作階段`,Ws=`訊息`,Gs=`訊息完成`,Ks=`訊息開始`,qs=`訊息更新`,Js=`訊息組成`,Ys=`訊息佇列與網路傳輸行為`,Xs=`新增註解`,Zs=`新增供應商`,Qs=`新增自訂供應商`,$s=`清理`,ec=`清理中`,tc=`清理失敗`,nc=`清空`,rc=`原始碼`,ic=`點擊移除註解`,ac=`未顯示的父工作階段`,oc=`版本`,sc=`版本衝突`,cc=`版本控制`,lc=`生態雷達`,uc=`產生失敗`,dc=`產生已取消`,fc=`使用者`,pc=`由目前執行階段註冊`,mc=`由執行階段提供`,hc=`介面`,gc=`介面語言`,_c=`目錄掃描`,vc=`目標`,yc=`目標鍵`,bc=`知識圖譜`,xc=`知識庫`,Sc=`知道了`,Cc=`確認解除安裝`,wc=`確認解除安裝外掛`,Tc=`確認復原`,Ec=`確認模式`,Dc=`社群`,Oc=`社群排行榜`,kc=`社群外掛`,Ac=`等待圖片`,jc=`等待工作區掃描`,Mc=`等待目前回合結束`,Nc=`等待目前執行結束`,Pc=`等待查詢`,Fc=`等待檢查`,Ic=`等待產生`,Lc=`等待重新啟動`,Rc=`等待重新載入`,zc=`等待驗證`,Bc=`管理方式`,Vc=`類型`,Hc=`系統`,Uc=`累計`,Wc=`約束`,Gc=`元件`,Kc=`終端機與導覽`,qc=`經過的外掛`,Jc=`結構化介面`,Yc=`快取命中`,Xc=`網頁擷取`,Zc=`網頁搜尋`,Qc=`置頂`,$c=`耗時`,el=`連網研究`,tl=`彙總後的失敗紀錄`,nl=`能量`,rl=`自動`,il=`自動壓縮上下文`,al=`自動壓縮已停用`,ol=`自動壓縮已啟用`,sl=`自動重試`,cl=`節點`,ll=`草稿已產生`,ul=`表單`,dl=`視覺`,fl=`視覺檢查失敗`,pl=`視覺檢查完成`,ml=`視覺檢查已取消`,hl=`視覺素材`,gl=`視覺素材檢查失敗`,_l=`視覺素材檢查完成`,vl=`視覺素材檢查已取消`,yl=`角色交接`,bl=`解釋程式碼`,xl=`解釋目前檔案的關鍵邏輯`,Sl=`警告`,Cl=`計畫執行`,wl=`授權條款`,Tl=`設定`,El=`設定一個容易辨識的名稱`,Dl=`設定分類`,Ol=`診斷與隱私`,kl=`詳情`,Al=`請求保留`,jl=`讀取中`,Ml=`資源`,Nl=`逾時`,Pl=`追蹤路徑`,Fl=`跟隨供應商`,Il=`跟隨執行階段`,Ll=`跨工作階段記憶`,Rl=`軌跡`,zl=`軌跡存在違規`,Bl=`軌跡錨定`,Vl=`輪次開始`,Hl=`輪次結束`,Ul=`輸入指令名稱或描述`,Wl=`輸出`,Gl=`輸出結尾`,Kl=`執行中`,ql=`執行就緒`,Jl=`執行已錨定`,Yl=`執行開始`,Xl=`執行階段`,Zl=`執行階段外掛`,Ql=`執行階段狀態與快速鍵`,$l=`執行階段狀態與設定`,eu=`執行階段邊界檢查`,tu=`執行階段設定`,nu=`執行狀態`,ru=`執行原則`,iu=`執行結束`,au=`執行設定`,ou=`進行中`,su=`違規`,cu=`違規項目`,lu=`連線正常`,uu=`選取的片段`,du=`選擇`,fu=`選擇工作區`,pu=`選擇目前的工作階段`,mu=`選擇這個工作階段要使用的工作區`,hu=`逐筆傳送`,gu=`一般`,_u=`通過`,vu=`遙測攔截`,yu=`設定識別碼`,bu=`設定驗證`,xu=`重新啟動後生效`,Su=`重新命名`,Cu=`重新命名工作階段`,wu=`重播`,Tu=`重試`,Eu=`重試結束`,Du=`重新載入`,Ou=`錯誤`,ku=`關卡失敗`,Au=`關卡有警告`,ju=`關卡通過`,Mu=`問題`,Nu=`佇列變更`,Pu=`阻塞`,Fu=`阻斷次數`,Iu=`隨執行階段載入`,Lu=`隱藏已封存的工作階段`,Ru=`隱藏思考內文`,zu=`需複核`,Bu=`需要人工複核`,Vu=`需要關注`,Hu=`面板明細已截斷`,Uu=`專案信任原則`,Wu=`預算`,Gu=`預覽失敗`,Ku=`預覽已取消`,qu=`驗收條件`,Ju=`驗證失敗`,Yu=`驗證已取消`,Xu=`驗證逾時`,Zu=`驗證通過`,Qu=`高風險`,$u=`取消置頂`,ed=`還原`,td=`還原工作階段`,nd=`從置頂區域移除`,rd=`固定在工作階段清單頂端`,id=`還原到預設清單`,ad={"Better Sidebar 面板数据异常":`Better Sidebar 面板資料異常`,"Git 状态读取失败。":`無法讀取 Git 狀態。`,"Git 状态读取超时;请提高 gitTimeoutMs 或缩小工作区。":`讀取 Git 狀態逾時;請提高 gitTimeoutMs 或縮小工作區。`,"Git 返回了无法安全解析的状态。":`Git 傳回了無法安全解析的狀態。`,"Git 输出超过安全上限;请缩小工作区。":`Git 輸出超過安全上限;請縮小工作區。`,"当前工作区不在 Git 仓库中。":`目前工作區不在 Git 儲存庫中。`,"未找到 Git 可执行文件。":`找不到 Git 可執行檔。`,"上次成功结果(非本次审阅)":`上次成功結果(非本次審閱)`,已提交系统:e,未提交系统:t,"提交成功不代表通知已显示或已读;请检查系统通知设置。":`提交成功不代表通知已顯示或已讀;請檢查系統通知設定。`,"本页匹配 {v0} 个会话":`本頁符合 {v0} 個工作階段`,"还有未扫描的会话。即使本页没有匹配,也可使用相同查询和 nextCursor 继续搜索。":`還有未掃描的工作階段。即使本頁沒有符合項目,也可使用相同查詢和 nextCursor 繼續搜尋。`,"目录扫描已结束;跳过的文件和省略的预览不代表已完整检查。":`目錄掃描已結束;略過的檔案和省略的預覽不代表已完整檢查。`,"告警自插件加载以来累计,跨会话保留;只读审计,不会阻止工具执行。":`告警自外掛載入以來累計,跨工作階段保留;唯讀稽核,不會阻止工具執行。`," / {limit} 上限":` / {limit} 上限`," profile patch 写入未配置,apply 会被拒绝。":` profile patch 寫入未設定,apply 會被拒絕。`," · 不完整":` · 不完整`," · 已归档":` · 已封存`," · 已置顶":` · 已置頂`," · 已请求停止 {count} 次":` · 已要求停止 {count} 次`," · 当前":` · 目前`," · 当前会话":` · 目前工作階段`," 部分结果因发现、扫描或展示上限被截断。":` 部分結果因探索、掃描或顯示上限而截斷。`," 部分结果因扫描、候选或显示上限被截断。":` 部分結果因掃描、候選或顯示上限而截斷。`,"${v0} 当日增量":"${v0} 當日增量","Agent 可调用 architecture_map 生成当前工作区架构图。":`Agent 可呼叫 architecture_map 產生目前工作區的架構圖。`,"Agent 可调用 canvas_draw 生成流程图源码。":`Agent 可呼叫 canvas_draw 產生流程圖原始碼。`,"Agent 可调用 image_compress,写入前必须 confirm=true。":`Agent 可呼叫 image_compress,寫入前必須 confirm=true。`,"Agent 可调用 plan_create 创建执行计划。":`Agent 可呼叫 plan_create 建立執行計畫。`,"Agent 可调用 plugin_search 搜索 npm Registry。":`Agent 可呼叫 plugin_search 搜尋 npm Registry。`,"Agent 可调用 plugin_stars_search 拉取并筛选社区排行榜。":`Agent 可呼叫 plugin_stars_search 擷取並篩選社群排行榜。`,"Agent 可调用 workspace_search 检索当前工作区。":`Agent 可呼叫 workspace_search 檢索目前工作區。`,"Browser Fetch 面板数据异常":`Browser Fetch 面板資料異常`,"Browser Session 面板数据异常":`Browser Session 面板資料異常`,"Chrome DevTools Protocol · 显示 {v0}/{v1} 个可调试页面":`Chrome DevTools Protocol · 顯示 {v0}/{v1} 個可偵錯頁面`,"Cleaner 面板数据异常":`Cleaner 面板資料異常`,"Memory 面板数据异常":`Memory 面板資料異常`,"Workspace Search 面板数据异常":`Workspace Search 面板資料異常`,"Workspace Navigator 面板数据异常":`Workspace Navigator 面板資料異常`,"Docker Sandbox 面板数据异常":`Docker Sandbox 面板資料異常`,"EveryAPI 认证未注入当前进程":`EveryAPI 憑證未注入目前處理程序`,"Follow-up 消息":`Follow-up 訊息`,"Fork 关系":`Fork 關係`,"Git 状态":`Git 狀態`,"Git 胶囊库存":`Git 膠囊庫存`,"Git 超时:{v0} ms":`Git 逾時:{v0} ms`,"GitHub Pi Harness 生态":`GitHub Pi Harness 生態`,"MCP 控制台":`MCP 主控台`,"MCP 服务器":`MCP 伺服器`,"MCP 状态":`MCP 狀態`,"Mermaid 流程图":`Mermaid 流程圖`,"Mermaid 渲染":`Mermaid 算繪`,"Mirage 虚拟终端":`Mirage 虛擬終端機`,"ModLens 证据":`ModLens 證據`,"PNG 无损压缩":`PNG 無損壓縮`,"Plugin Stars 面板数据异常":`Plugin Stars 面板資料異常`,"Prompt Library 面板数据异常":`Prompt Library 面板資料異常`,"README 面板数据无效,暂不展示生成或写入结果。":`README 面板資料無效,暫不顯示產生或寫入結果。`,"SDK 成本":`SDK 成本`,"SQL Lens 面板数据异常":`SQL Lens 面板資料異常`,"Taskboard 面板数据异常":`Taskboard 面板資料異常`,"Skill 安全":`Skill 安全`,"Steering 消息":`Steering 訊息`,"YAML 语法有效。":`YAML 語法有效。`,"agent 目录":`agent 目錄`,"git_snapshot 捕获当前 unstaged tracked 改动;git_restore 会反向应用该 patch。staged 与未跟踪文件不包含在内,恢复必须传入 confirm=true。":`git_snapshot 會擷取目前未暫存的已追蹤變更;git_restore 會反向套用該 patch。已暫存與未追蹤的檔案不包含在內,還原必須傳入 confirm=true。`,"npm scripts 会执行当前项目定义的代码;仅在可信 workspace 中使用。Test Harness 不是沙箱,也不会把脚本输出当作用户授权。":`npm scripts 會執行目前專案定義的程式碼;僅在可信任的 workspace 中使用。Test Harness 不是沙箱,也不會把腳本輸出當成使用者授權。`,"npm 更新时间":`npm 更新時間`,"npm 质量分":`npm 品質分數`,"settings.json 源码":`settings.json 原始碼`,"{count} 个变更":`{count} 個變更`,"{count} 个文件":`{count} 個檔案`,"{count} 个模型已刷新":`{count} 個模型已重新整理`,"{count} 变更":`{count} 變更`,"{count} 条消息":`{count} 則訊息`,"{count} 组声明约束无法离线判定。":`{count} 組宣告約束無法離線判定。`,"{files} 个文件 · {additions} 个新增文件 · {deletions} 个删除文件":`{files} 個檔案 · {additions} 個新增檔案 · {deletions} 個刪除檔案`,"{provider} API key 状态":`{provider} API key 狀態`,"{provider} 提供商 ID":`{provider} 供應商 ID`,"{session} · {count} 条消息":`{session} · {count} 則訊息`,"{slug} · {files} 个参考文件":`{slug} · {files} 個參考檔案`,"{v0} / 24 个标签 · {v1} 次存储写入":`{v0} / 24 個分頁 · {v1} 次儲存寫入`,"{v0} · {v1} 个风险项":`{v0} · {v1} 個風險項目`,"{v0} · {v1} 项":`{v0} · {v1} 項`,"{v0} → {v1},节省 {v2} bytes":`{v0} → {v1},節省 {v2} bytes`,"{v0} 个":`{v0} 個`,"{v0} 个 MCP 工具":`{v0} 個 MCP 工具`,"{v0} 个 argv 参数":`{v0} 個 argv 參數`,"{v0} 个书签":`{v0} 個書籤`,"{v0} 个事件":`{v0} 個事件`,"{v0} 个仓库":`{v0} 個儲存庫`,"{v0} 个仓库 · {v1} 个来源":`{v0} 個儲存庫 · {v1} 個來源`,"{v0} 个会话":`{v0} 個工作階段`,"{v0} 个分支":`{v0} 個分支`,"{v0} 个匹配":`{v0} 個相符項`,"{v0} 个已审核条目 · 推荐排序":`{v0} 個已審核項目 · 推薦排序`,"{v0} 个已选择":`{v0} 個已選取`,"{v0} 个插件":`{v0} 個外掛`,"{v0} 个文本段 · {v1} bytes":`{v0} 個文字段落 · {v1} bytes`,"{v0} 个模型":`{v0} 個模型`,"{v0} 个结果":`{v0} 個結果`,"{v0} 个脚本 · {v1} 个运行时插件":`{v0} 個腳本 · {v1} 個執行階段外掛`,"{v0} 个节点":`{v0} 個節點`,"{v0} 事件":`{v0} 事件`,"{v0} 可能为空或显示上次结果。":`{v0} 可能為空或顯示上次結果。`,"{v0} 工具":`{v0} 工具`,"{v0} 提示":`{v0} 提示`,"{v0} 文件":`{v0} 檔案`,"{v0} 日账本":`{v0} 日帳本`,"{v0} 条":`{v0} 筆`,"{v0} 条匹配消息 · 返回 {v1} 条预览":`{v0} 則相符訊息 · 回傳 {v1} 則預覽`,"{v0} 条消息":`{v0} 則訊息`,"{v0} 条消息{v1} {v2}":`{v0} 則訊息{v1} {v2}`,"{v0} 次":`{v0} 次`,"{v0} 次扫描":`{v0} 次掃描`,"{v0} 消息":`{v0} 訊息`,"{v0} 节点 · {v1} 关系":`{v0} 節點 · {v1} 關係`,"{v0} 节点 · {v1} 连线":`{v0} 節點 · {v1} 連線`,"{v0} 资源":`{v0} 資源`,"{v0} 路由":`{v0} 路由`,"{v0} 项":`{v0} 項`,"← 已安装插件":`← 已安裝外掛`,"← 插件市场":`← 外掛市集`,"← 返回会话":`← 返回工作階段`,"⌘K 命令 · ⌘, 设置 · ⌃C 中断":`⌘K 指令 · ⌘, 設定 · ⌃C 中斷`,"⌘↵ 发送 · ⌘K 命令 · ⌃C 中断":`⌘↵ 送出 · ⌘K 指令 · ⌃C 中斷`,一次发送全部:n,上一页:r,上下文:i,"上下文 token 未知":`上下文 token 未知`,上下文与显示:a,上下文占用:o,"上下文状态不可用。":`上下文狀態無法取得。`,"上下文状态正常。":`上下文狀態正常。`,上下文诊断:s,上下文预算:c,"上限 32 MiB":`上限 32 MiB`,下一步:l,下一页:u,不会在浏览器显示:d,不可用:f,不执行:p,"不读取或保存事件属性。此服务不拦截网络,也不阻止其他事件监听器。":`不讀取或儲存事件屬性。此服務不攔截網路,也不阻擋其他事件監聽器。`,专注:m,"丢弃 {v0} 次 · 总线观察 {v1} 次":`捨棄 {v0} 次 · 匯流排觀察 {v1} 次`,"两个会话的文本消息在对应位置存在差异。":`兩個工作階段的文字訊息在對應位置存在差異。`,"两个会话的文本消息投影一致;未比较图片、工具调用参数及元数据。":`兩個工作階段的文字訊息投影一致;未比較圖片、工具呼叫參數及中繼資料。`,严重:h,个事件:g,"个文件 ·":`個檔案 ·`,临时网络错误时自动重试请求:_,主题:v,"主题数据无效,未应用颜色。":`主題資料無效,未套用顏色。`,"书签以标签追加到 Pi 原生会话记录,不修改已有消息;内存会话不会落盘。":`書籤以標籤附加到 Pi 原生工作階段記錄,不修改既有訊息;記憶體工作階段不會寫入磁碟。`,事件:y,"事件名已截断。":`事件名稱已截斷。`,"事件名:{names}":`事件名稱:{names}`,事件详情:b,互动:x,交接给:S,产出:C,产生者:w,"仅保存风险摘要和计数,不保存命令、路径或凭据原文;风险等级仅供审计,HOL Guard 不会阻止任何工具执行。":`僅儲存風險摘要與計數,不儲存指令、路徑或憑證原文;風險等級僅供稽核,HOL Guard 不會阻止任何工具執行。`,"仅在当前 workspace 内本地读取图片头部,不上传图片、不调用外部视觉服务;这里展示的是元数据,不是完整图像解码结果。":`僅在目前 workspace 內本機讀取圖片標頭,不上傳圖片、不呼叫外部視覺服務;這裡顯示的是中繼資料,不是完整的圖片解碼結果。`,"仅展示部分结果,可缩小查询范围;GitHub 可能返回不完整结果。":`僅顯示部分結果,可縮小查詢範圍;GitHub 可能回傳不完整的結果。`,"仅扫描前 256 KiB":`僅掃描前 256 KiB`,"仅显示部分匹配结果,请缩小查询范围。":`僅顯示部分相符結果,請縮小查詢範圍。`,"仅检查相对 HEAD 的已跟踪改动;不含未跟踪文件,也不执行测试。显示 {v0}/{v1} 个风险项。":`僅檢查相對 HEAD 的已追蹤變更;不含未追蹤檔案,也不執行測試。顯示 {v0}/{v1} 個風險項目。`,"仅清理 agent 数据目录中的 .patch 胶囊,必须显式 confirm=true。":`僅清理 agent 資料目錄中的 .patch 膠囊,必須明確傳入 confirm=true。`,"仅渲染结构化文本、徽标和进度块;HTML 与脚本按普通文本显示。":`僅算繪結構化文字、標章與進度區塊;HTML 與指令碼以純文字顯示。`,"仅记录运行时报告的实际成本,不内置或猜测模型价格。":`僅記錄執行階段回報的實際成本,不內建或猜測模型價格。`,今天:T,"今日(UTC)":`今日(UTC)`,"从 Finder 选择一个新的工作目录":`從 Finder 選擇新的工作目錄`,从不信任:E,从默认列表隐藏:D,代码审查:O,令牌数未知:k,任务:A,任务看板:j,任务结束提醒插件:M,休息:N,"优先级 {v0}":`優先順序 {v0}`,会话:P,"会话 {v0} · 目录 {v1} · 文件 {v2}":`工作階段 {v0} · 目錄 {v1} · 檔案 {v2}`,会话书签:F,会话交接:I,会话信息变更:L,会话内邮箱备注:R,会话切换失败:z,会话切换完成:B,会话切换已取消:V,会话列表:H,会话压缩:U,会话召回:W,会话回退:G,会话地图:K,会话对比:q,会话导出:J,会话工具:Y,会话搜索:X,会话操作:Z,"会话操作 {name}":`工作階段操作 {name}`,会话标签:Q,"会话累计 ${v0}":"工作階段累計 ${v0}",会话统计:$,"会话统计数据无效,已停止展示指标,避免把损坏数据误报为健康状态。":`工作階段統計資料無效,已停止顯示指標,避免把損毀資料誤報為健康狀態。`,会话视图:ee,会话资源已重载:te,会话资源重载失败:ne,会话资源重载已取消:re,"会话:":`工作階段:`,传输方式:ie,作者:ae,"你有一个 Pi Harness 插件?":`你有 Pi Harness 外掛嗎?`,"使用 mcp_list_tools 发现 stdio 工具。":`使用 mcp_list_tools 探索 stdio 工具。`,使用初始状态:oe,"使用配置默认主题。":`使用設定的預設主題。`,"例如 gpt-4o":`例如 gpt-4o`,"例如 openrouter":`例如 openrouter`,"依赖声明与本地安装一致。":`相依宣告與本機安裝一致。`,"依赖循环:{v0}":`相依循環:{v0}`,"依赖步骤 {v0}":`相依步驟 {v0}`,"依赖:{v0}":`相依:{v0}`,侧栏概览:se,"保存 Mermaid 设置…":`儲存 Mermaid 設定…`,"保存传输方式…":`儲存傳輸方式…`,"保存信任策略…":`儲存信任原則…`,"保存压缩设置…":`儲存壓縮設定…`,保存名称:ce,"保存启动设置…":`儲存啟動設定…`,"保存图片设置…":`儲存圖片設定…`,"保存快捷键设置…":`儲存快速鍵設定…`,"保存思考级别…":`儲存思考層級…`,"保存提供商…":`儲存供應商…`,"保存显示设置…":`儲存顯示設定…`,"保存模型…":`儲存模型…`,保存源码:le,"保存源码…":`儲存原始碼…`,保存点:ue,"保存诊断设置…":`儲存診斷設定…`,"保存跟进策略…":`儲存跟進原則…`,"保存重试设置…":`儲存重試設定…`,"保存队列策略…":`儲存佇列原則…`,"保存隐私设置…":`儲存隱私設定…`,"保护器错误:{v0}":`防護器錯誤:{v0}`,保留:de,修复并测试:fe,"修改本地扩展后调用 plugin_dev_reload":`修改本機擴充後呼叫 plugin_dev_reload`,候选:pe,候选图片:me,停止:he,"停止当前运行(⌃C)":`停止目前執行(⌃C)`,"停用 {plugin}":`停用 {plugin}`,停用插件:ge,允许模型响应中的图片渲染:_e,允许返回:ve,"先调用 mirage_doctor 检查 CLI,再调用 mirage_execute。":`請先呼叫 mirage_doctor 檢查 CLI,再呼叫 mirage_execute。`,"先选择工作区,再描述要做的改动":`請先選擇工作區,再描述要做的變更`,全局搜索:ye,全部:be,"全部 {count} 条":`全部 {count} 筆`,"全部 {v0}":`全部 {v0}`,全部影响:xe,全部撤销:Se,"共 {v0} 个模板,数据跟随当前会话。":`共 {v0} 個範本,資料跟隨目前工作階段。`,共享:Ce,"关系 ≤ {v0}":`關係 ≤ {v0}`,关键决策:we,关键文件:Te,"关键词 {v0} · 上限 {v1}":`關鍵字 {v0} · 上限 {v1}`,关闭:Ee,关闭事件详情:De,关闭全局搜索:Oe,关闭工作区选择:ke,关闭文件差异:Ae,关闭添加提供商:je,关闭详情:Me,其他:Ne,其他插件面板:Pe,内容:Fe,"内置插件由运行时管理,不能启用或停用。":`內建外掛由執行階段管理,無法啟用或停用。`,内置组件:Ie,写入会话:Le,写入失败:Re,写入已取消:ze,写入已完成:Be,"写入需要 confirm=true,覆盖已有 README 还需要 overwrite=true。":`寫入需要 confirm=true,覆寫既有 README 還需要 overwrite=true。`,分支:Ve,分析当前仓库并给出根因:He,分类:Ue,"列表已按安全上限截断,仅展示最近 {v0} 条有效记录。":`清單已依安全上限截斷,僅顯示最近 {v0} 筆有效紀錄。`,"列:":`欄:`,创建分支:We,删除:Ge,删除会话:Ke,"刷新中…":`重新整理中…`,刷新列表:qe,"前 {v0} / 共 {v1}":`前 {v0} / 共 {v1}`,"前置任务:":`前置任務:`,加入批注:Je,加载中:Ye,"加载工作区…":`載入工作區…`,助手:Xe,协作:Ze,协作成员:Qe,协议:$e,单文件上限:et,"单胶囊:{v0} B":`單一膠囊:{v0} B`,占用:tt,卸载:nt,"卸载中…":`解除安裝中…`,卸载插件:rt,"卸载插件?":`要解除安裝外掛嗎?`,历史压缩:it,压缩:at,压缩中:ot,"压缩后 token 暂不可估算 · 上下文窗口 {v0}":`壓縮後 token 暫時無法估算 · 上下文視窗 {v0}`,压缩失败:st,压缩已取消:ct,压缩已完成:lt,压缩开始:ut,压缩开销:dt,压缩状态数据无效:ft,压缩结束:pt,压缩进展:mt,"原因上限 {v0} 字符":`原因上限 {v0} 字元`,"原因:{v0}":`原因:{v0}`,"原始 JSON":`原始 JSON`,原生直传:ht,"双击 Escape":`連按兩次 Escape`,"发现 {count} 个语法错误。":`發現 {count} 個語法錯誤。`,发现错误风险:gt,"发现需要人工确认的安全风险。":`發現需要人工確認的安全風險。`,发送中:_t,发送匿名安装和版本统计:vt,发送失败:yt,发送消息:bt,"发送消息(⌘↵)":`傳送訊息(⌘↵)`,取消:xt,取消批注:St,变更门禁:Ct,"只在本机提交,不会回显":`只在本機送出,不會回顯`,"只搜索持久化日志中的用户和助手文本,包含历史分支;不含图片、思考或工具输出。以下为最近一次搜索,最多显示 8 个会话。":`只搜尋持久化記錄中的使用者與助理文字,包含歷史分支;不含圖片、思考或工具輸出。以下為最近一次搜尋,最多顯示 8 個工作階段。`,"只改控制台自己的文字,你和模型对话用什么语言仍然由你决定。":`只變更主控台本身的文字,你和模型對話使用哪種語言仍由你決定。`,只显示可展开的思考摘要:wt,"只有从插件市场安装的插件才能卸载。":`只有從外掛市集安裝的外掛才能解除安裝。`,"只读 Registry 搜索":`唯讀的 Registry 搜尋`,"只读展示当前已加载资源,最多显示 8 个技能和 6 个 MCP 状态;不激活技能或启动服务器。读取技能采用启发式检查,不保证内容安全。":`唯讀顯示目前已載入的資源,最多顯示 8 個技能與 6 個 MCP 狀態;不會啟用技能或啟動伺服器。讀取技能採用啟發式檢查,不保證內容安全。`,只读检查未提交变更:Tt,"只读检查,不修改、不构建被检仓库。":`唯讀檢查,不修改也不建置被檢查的儲存庫。`,可回退轮次:Et,可执行任务:Dt,"可让 Agent 调用 theme_set 切换预设。":`可讓 Agent 呼叫 theme_set 切換預設集。`,"可让 Agent 调用 trajectory_anchor_check 审计当前执行轨迹。":`可讓 Agent 呼叫 trajectory_anchor_check 稽核目前的執行軌跡。`,可选:Ot,"可选依赖未安装({v0}):{v1}":`選用相依未安裝({v0}):{v1}`,可选缺席:kt,可配置:At,右侧会话:jt,"右侧差异预览(最多显示 4 条)":`右側差異預覽(最多顯示 4 則)`,右侧新增:Mt,名称:Nt,向右查看更多分类:Pt,向左查看更多分类:Ft,启动时隐藏版本和更新提示:It,"启用 {plugin}":`啟用 {plugin}`,启用插件:Lt,"告警阈值 {v0}%":`警示門檻 {v0}%`,命令:Rt,"命令 · 会话 · 文件":`指令 · 工作階段 · 檔案`,命令补全:zt,命令面板:Bt,"响应上限 {v0} KiB · 请求超时 {v1} 秒":`回應上限 {v0} KiB · 請求逾時 {v1} 秒`,"响应正文已达到抓取上限。":`回應內容已達到擷取上限。`,国际化:Vt,图片:Ht,图片压缩:Ut,"图片问题(显示 {v0} 条)":`圖片問題(顯示 {v0} 筆)`,"在 entries 目录新增一个元数据文件,附测试和 README 后提交 PR;审核通过后会出现在这里。":`在 entries 目錄新增一個中繼資料檔案,附上測試與 README 後送出 PR;審核通過後就會出現在這裡。`,在消息中显示模型缓存诊断:Wt,基准:Gt,基准键:Kt,声明:qt,"声明:{v0}":`宣告:{v0}`,"处理中…":`處理中…`,"备注(可选)":`備註(選填)`,"复制 JSON":`複製 JSON`,复制上下文并打开副本:Jt,复制会话:Yt,复核:Xt,复核风险内容的默认策略:Zt,"复用 run_project_tests 和 review_changes,不重复实现测试或审查逻辑。":`沿用 run_project_tests 與 review_changes,不重複實作測試或審查邏輯。`,外部依赖:Qt,"大消息阈值 {v0}B":`大型訊息門檻 {v0}B`,失败:$t,始终信任:en,安全:tn,安全审计:nn,安全执行:rn,安全模式:an,安全防护:on,安装:sn,"安装、启用与卸载":`安裝、啟用與解除安裝`,"安装中…":`安裝中…`,"安装后会写入当前运行 profile。":`安裝後會寫入目前執行的 profile。`,"安装失败:{v0}":`安裝失敗:{v0}`,安装插件:cn,安装遥测:ln,安静启动:un,完成:dn,完成后渲染:fn,"完整 JSON 配置,可编辑未知字段;保存前会校验语法。":`完整的 JSON 設定,可編輯未知欄位;儲存前會驗證語法。`,官方:pn,"官方 Mirage CLI":`官方 Mirage CLI`,"官方 · {scope}":`官方 · {scope}`,"官方与社区 · 已审核目录":`官方與社群 · 已審核目錄`,官方插件:mn,定位问题:hn,实时上下文:gn,实时详情:_n,实时面板:vn,实现修复并运行相关测试:yn,实验性:bn,审查:xn,审查改动:Sn,"容量 {v0} / {v1}":`容量 {v0} / {v1}`,对话:Cn,导入会话:wn,导入会话文件:Tn,导入失败:En,导入已取消:Dn,导出失败:On,导出已取消:kn,导出当前会话:An,"导出调用开始时的会话文本快照,不包含图片、思考块和工具调用参数。文件写入该会话工作区内的 .md 路径,覆盖需要显式确认,权限为 0600。":`匯出呼叫當下的工作階段文字快照,不包含圖片、思考區塊和工具呼叫參數。檔案寫入該工作階段工作區內的 .md 路徑,權限為 0600,覆寫需要明確確認。`,"将从运行配置中移除,之后可以从插件市场重新安装。":`將從執行設定中移除,之後可以從外掛市集重新安裝。`,"将永久删除 {count} 个会话及其本地记录,此操作不可撤销。":`將永久刪除 {count} 個工作階段及其本機紀錄,此操作無法復原。`,"将永久删除这个会话及其本地记录,此操作不可撤销。":`將永久刪除這個工作階段及其本機紀錄,此操作無法復原。`,"尚未保存 tracked diff。":`尚未儲存已追蹤的 diff。`,"尚未保存记忆。Agent 可调用 memory_set 明确写入。":`尚未儲存記憶。Agent 可呼叫 memory_set 明確寫入。`,"尚未创建任务。Agent 可调用 taskboard_create 创建带稳定编号的任务。":`尚未建立任務。Agent 可呼叫 taskboard_create 建立帶穩定編號的任務。`,"尚未创建保存点。修改配置或插件代码前,让 Agent 调用 undo_savepoint 的 save 操作。":`尚未建立儲存點。修改設定或外掛程式碼前,請讓 Agent 呼叫 undo_savepoint 的 save 操作。`,尚未创建计划:jn,"尚未执行命令。Agent 可调用 auto_mode_exec。":`尚未執行指令。Agent 可呼叫 auto_mode_exec。`,尚未扫描:Mn,"尚未扫描。":`尚未掃描。`,"尚未扫描任何内容。用户消息和工具输出会自动扫描,Agent 也可调用 prompt_guard_scan 检查不可信文本。":`尚未掃描任何內容。使用者訊息與工具輸出會自動掃描,Agent 也可呼叫 prompt_guard_scan 檢查不可信任的文字。`,"尚未搜索插件。Agent 可调用 plugin_radar_search 从 GitHub 发现 Pi Harness 插件。":`尚未搜尋外掛程式。Agent 可呼叫 plugin_radar_search 從 GitHub 探索 Pi Harness 外掛程式。`,"尚未收到工具调用。Agent 可调用 hol_guard_scan 预检命令或文本。":`尚未收到工具呼叫。Agent 可呼叫 hol_guard_scan 預先檢查指令或文字。`,"尚未收到遥测事件。":`尚未收到遙測事件。`,"尚未收集批注。Agent 可调用 annotation_manage 的 add 操作记录回复片段。":`尚未收集註解。Agent 可呼叫 annotation_manage 的 add 操作記錄回覆片段。`,"尚未检查插件。Agent 可调用 plugin_check 执行 check、scan 或 schema。":`尚未檢查外掛。Agent 可呼叫 plugin_check 執行 check、scan 或 schema。`,尚未清理:Nn,"尚未记录图记忆。Agent 可调用 graph_memory_record 创建任务、技能或事件节点。":`尚未記錄圖記憶。Agent 可呼叫 graph_memory_record 建立任務、技能或事件節點。`,"尚未记录已完成会话。Agent 可调用 cost_report 的 refresh 操作写入账本。":`尚未記錄已完成的工作階段。Agent 可呼叫 cost_report 的 refresh 操作寫入帳本。`,尚未请求:Pn,尚未请求压缩:Fn,"尚未连接 MCP 服务器":`尚未連線 MCP 伺服器`,"展示上限 {v0} 条":`顯示上限 {v0} 筆`,工作区:In,工作区只读:Ln,"工作区可写(已确认)":`工作區可寫入(已確認)`,工作区导航:Rn,工作区文本检索:zn,工作区搜索结果:Bn,"工作区 Git 变更":`工作區 Git 變更`,工作区目录树节点:Vn,工作区检索:Hn,工作区概览:Un,"工作区没有未提交改动。":`工作區沒有未提交的變更。`,"工作区:":`工作區:`,工作目录:Wn,工具:Gn,工具协议:Kn,工具尚未查询:qn,工具调用:Jn,"工具调用 / 结果":`工具呼叫 / 結果`,工具返回:Yn,工具进展:Xn,工具错误:Zn,工程诊断:Qn,左侧会话:$n,左侧删除:er,已中断:tr,已从磁盘重载:nr,已保存:rr,已保存源码:ir,已停用:ar,已关闭:or,已删:sr,已加载:cr,"已加载 {v0} 个入口,本次查询匹配 {v1} 个,扫描 {v2} 个,面板显示 {v3} 个;风险等级仅供审计,不会禁用 Skill,也不证明内容安全。":`已載入 {v0} 個入口,本次查詢相符 {v1} 個,掃描 {v2} 個,面板顯示 {v3} 個;風險等級僅供稽核,不會停用 Skill,也不證明內容安全。`,"已加载,仅允许显式调用":`已載入,僅允許明確呼叫`,已压缩:lr,已取消:ur,已启用:dr,已启用提供商:fr,"已启用提供商 · /api/providers":`已啟用的供應商 · /api/providers`,已回退:pr,已固定:mr,"已复用本地 Browser Fetch":`已重用本機 Browser Fetch`,已安装:hr,已安装插件分类:gr,"已安装,重启后生效":`已安裝,重新啟動後生效`,已完成:_r,已导航:vr,已开启:yr,已恢复状态:br,已截图:xr,已扫描:Sr,"已扫描 {scanned}/{available} 个会话文件,界面显示 {shown}/{unread} 个;只读扫描,不会修改会话。{note}":`已掃描 {scanned}/{available} 個工作階段檔案,介面顯示 {shown}/{unread} 個;唯讀掃描,不會修改工作階段。{note}`,"已扫描 {v0} 个文件,跳过 {v1} 个;{v2}。跳过的文件不计入匹配结果。":`已掃描 {v0} 個檔案,跳過 {v1} 個;{v2}。跳過的檔案不計入相符結果。`,"已扫描 {v0} 个目录条目 · 读取 {v1} bytes":`已掃描 {v0} 個目錄項目 · 讀取 {v1} bytes`,"已扫描 {v0} 个目录条目 · 深度上限 {v1} · 节点上限 {v2}":`已掃描 {v0} 個目錄項目 · 深度上限 {v1} · 節點上限 {v2}`,"已扫描内容未命中当前检测规则,不代表没有风险。":`已掃描的內容未命中目前的偵測規則,不代表沒有風險。`,"已扫描范围内没有匹配的用户或助手文本。":`已掃描範圍內沒有相符的使用者或助理文字。`,已排队:Cr,"已搜索 {v0} 个文件,跳过 {v1} 个;显示 {v2} / {v3} 条已收集匹配。":`已搜尋 {v0} 個檔案,跳過 {v1} 個;顯示 {v2} / {v3} 筆已收集的相符結果。`,"已有插件操作正在进行,请等它完成后重试。":`已有外掛操作正在進行,請等它完成後再試。`,"已检查当前分支 {v0} 个条目;后端保留 {v1} 个候选,界面显示 {v2} 个。 {v3}":`已檢查目前分支 {v0} 個項目;後端保留 {v1} 個候選,介面顯示 {v2} 個。 {v3}`,已注册:wr,"已淘汰 {v0} 条旧记录":`已淘汰 {v0} 筆舊紀錄`,已添加:Tr,已点击:Er,已生成技能:Dr,已覆盖:Or,"已请求分支摘要;该选项可能调用模型并产生费用。":`已要求分支摘要;此選項可能呼叫模型並產生費用。`,已读:kr,已读取:Ar,已返回不可信文本:jr,"已返回全部列出的会话。":`已回傳所有列出的工作階段。`,已连接:Mr,已送达:Nr,已配置:Pr,"已配置搜索 API key":`已設定搜尋 API key`,已验证:Fr,建议:Ir,开始一个工作会话:Lr,开心:Rr,"异常面板数据已按固定安全边界丢弃或截断。":`異常的面板資料已依固定安全邊界捨棄或截斷。`,归档:zr,归档会话:Br,"归档后会从默认列表隐藏,之后仍可在会话工具中恢复。":`封存後會從預設清單隱藏,之後仍可在工作階段工具中還原。`,当前:Vr,"当前 API 未提供修改接口":`目前的 API 未提供修改介面`,"当前 API 未提供重放接口":`目前的 API 未提供重播介面`,当前上下文:Hr,当前会话:Ur,当前会话书签:Wr,"当前会话尚未扫描,请运行 session_recall_unread。":`目前工作階段尚未掃描,請執行 session_recall_unread。`,当前会话操作:Gr,"当前会话还没有可回退的用户轮次。":`目前工作階段還沒有可回復的使用者輪次。`,"当前会话:":`目前工作階段:`,当前占用:Kr,当前工作区:qr,"当前工作区任务:":`目前工作區任務:`,"当前工作区还没有可投影的持久化会话。":`目前工作區還沒有可投影的持久化工作階段。`,当前插件:Jr,"当前本机会话中的插件运行状态。":`目前本機工作階段中的外掛執行狀態。`,"当前模型未提供上下文窗口。":`目前的模型未提供上下文視窗。`,"当前没有 MCP 服务器快照。":`目前沒有 MCP 伺服器快照。`,"当前没有可清理的 Git 胶囊。":`目前沒有可清理的 Git 膠囊。`,"当前没有撤销胶囊。先产生 unstaged tracked 改动,再让 Agent 调用 git_snapshot。":`目前沒有復原膠囊。請先產生未暫存的已追蹤變更,再讓 Agent 呼叫 git_snapshot。`,当前状态:Yr,"当前目录为空。":`目前目錄是空的。`,当前运行时:Xr,"当前运行时不支持修改插件配置:请用带 profile 的方式启动 Pi Harness 后重试。":`目前執行階段不支援修改外掛設定:請以帶 profile 的方式啟動 Pi Harness 後重試。`,"当前运行时不支持安装插件:请用带 profile 的方式启动 Pi Harness 后重试。":`目前執行階段不支援安裝外掛:請以帶 profile 的方式啟動 Pi Harness 後重試。`,"当前运行时没有加载 Skill。":`目前執行階段沒有載入 Skill。`,当前运行时还没有注册任何命令:Zr,影响范围:Qr,待下一次模型响应:$r,待办:ei,待发送批注:ti,待复核:ni,待规划:ri,待验收:ii,快捷键:ai,思考:oi,"思考中…":`思考中…`,思考级别:si,思考级别变更:ci,总发现:li,"总文本上限 {v0} 字符":`總文字上限 {v0} 字元`,"恢复会覆盖快照内文件,要求 confirm=true,不删除新增文件。列表为受限扫描结果,仅显示前 6 项;标为不完整的快照不能代表整个工作区。":`還原會覆寫快照內的檔案,需要 confirm=true,且不會刪除之後新增的檔案。清單為受限掃描結果,僅顯示前 6 項;標示為不完整的快照無法代表整個工作區。`,恢复保存点:ui,"恢复扫描 {v0} / {v1}":`還原掃描 {v0} / {v1}`,成员:di,成本账本:fi,"或选择已有 worktree":`或選擇既有的 worktree`,"截图元数据:{v0} · {v1} bytes":`螢幕擷取中繼資料:{v0} · {v1} bytes`,"截止 {v0}":`截至 {v0}`,打开会话树:pi,打开目录:mi,打开详情:hi,"执行 colleague_handoff 后显示角色交接包。":`執行 colleague_handoff 後顯示角色交接包。`,"执行 session_compare 后显示两个会话的差异。":`執行 session_compare 後顯示兩個工作階段的差異。`,"执行 skill_inject 后显示隔离结果。":`執行 skill_inject 後顯示隔離結果。`,"执行 workspace_tree 后显示工作区结构。":`執行 workspace_tree 後顯示工作區結構。`,执行中:gi,"执行中…":`執行中…`,"执行目录:":`執行目錄:`,扩展点:_i,"扫描 {v0} / {v1} 条消息{v2}":`掃描 {v0} / {v1} 則訊息{v2}`,"扫描 {v0} 个源码文件,跳过依赖和构建目录。":`掃描 {v0} 個原始碼檔案,略過相依與建置目錄。`,扫描失败:vi,扫描已取消:yi,"扫描或显示不完整:跳过 {v0} 个文件/目录,{v1} 行未检查通用凭据赋值;明细最多 200 项。":`掃描或顯示不完整:跳過 {v0} 個檔案/目錄,{v1} 行未檢查通用憑證指派;明細最多 200 項。`,扫描文件:bi,扫描范围或结果预览已截断:xi,"扫描达到节点上限,架构图可能不完整。":`掃描達到節點上限,架構圖可能不完整。`,"批注 ×{v0}":`註解 ×{v0}`,批注上下文:Si,批注备注:Ci,"批注按编号累积;生成上下文不会改写原会话消息。":`註解依編號累積;產生上下文不會改寫原本的工作階段訊息。`,技能:wi,技能打包:Ti,技能目录:Ei,技能隔离:Di,"报告不完整,无法确认依赖状态。":`報告不完整,無法確認相依狀態。`,担心:Oi,拉取模型:ki,拒绝返回:Ai,"持久化 {v0} / {v1}":`持久化 {v0} / {v1}`,"按 SDK 已报告用量请求停止;单次请求仍可能超额,不代表账单上限。":`依 SDK 已回報的用量請求停止;單次請求仍可能超額,並非帳單上限。`,"按 Star 排序的 Topic 匹配仓库,尚未验证插件可安装性;不会安装或执行仓库代码。":`依 Star 排序的 Topic 相符儲存庫,尚未驗證外掛程式可安裝性;不會安裝或執行儲存庫程式碼。`,按影响范围筛选:ji,"按日志位置比较去除首尾空白的非空文本消息。差异列表每侧保留 40 条,每条预览最多 4,000 字符。":`依記錄位置比較去除前後空白的非空白文字訊息。差異清單每側保留 40 筆,每筆預覽最多 4,000 個字元。`,按轮次:Mi,排行榜:Ni,接口地址:Pi,接口模拟:Fi,接近上下文上限时自动整理历史消息:Ii,"接近上下文上限时自动整理历史消息,可在运行配置中修改":`接近上下文上限時自動整理歷史訊息,可在執行設定中修改`,控制命令行界面和消息渲染行为:Li,控制思考内容和自动压缩:Ri,控制缓存提示和匿名数据上报:zi,"描述要做的改动,⌘↵ 发送;@ 引用文件":`描述要做的變更,⌘↵ 送出;@ 引用檔案`,"描述要做的改动,⌘↵ 发送;@ 引用文件,/ 调用命令":`描述要做的變更,⌘↵ 送出;@ 引用檔案,/ 呼叫指令`,提交说明:Bi,提交这些改动:Vi,提供商:Hi,"提供商 ID":`供應商 ID`,"提供商 {count}":`供應商 {count}`,提供商名称:Ui,提示模板:Wi,提示词库:Gi,提示词防护:Ki,插件:qi,"插件 · {count} 个":`外掛 · {count} 個`,插件体检:Ji,"插件保留在运行配置中,但当前处于停用状态。":`外掛保留在執行設定中,但目前處於停用狀態。`,插件信息:Yi,插件分类:Xi,插件发现:Zi,"插件已安装但还没加载,重启 Pi Harness 后才能停用或启用":`外掛已安裝但尚未載入,重新啟動 Pi Harness 後才能停用或啟用`,插件市场:Qi,"插件市场里没有这个插件,它可能已经下架,请刷新页面。":`外掛市集裡沒有這個外掛,它可能已經下架,請重新整理頁面。`,插件开发:$i,插件目录:ea,插件详情:ta,插件面板:na,"插件,已安装 {count} 个":`外掛,已安裝 {count} 個`,插入斜杠并列出命令:ra,搜索会话:ia,"搜索会话 · ⌘K 命令":`搜尋工作階段 · ⌘K 指令`,"搜索会话、文件和命令":`搜尋工作階段、檔案與指令`,"搜索名称、包名、影响范围…":`搜尋名稱、套件名稱、影響範圍…`,"搜索名称、包名或能力…":`搜尋名稱、套件名稱或能力…`,搜索命令:aa,"搜索命令、会话或文件":`搜尋指令、工作階段或檔案`,搜索已安装插件:oa,搜索插件:sa,"搜索结果不完整或没有可用来源。":`搜尋結果不完整或沒有可用的來源。`,"搜索词会发送到 Firecrawl;页面读取{v0}。":`搜尋詞會傳送到 Firecrawl;頁面讀取{v0}。`,撤销全部改动:ca,"操作失败:{v0}":`操作失敗:{v0}`,"改动已写入 profile(~/.pi-harness/profiles/<profile>/cordis.yml)。控制台无法自行重启,请回到启动 Pi Harness 的终端按 Ctrl-C,再用原来的命令重新启动;在那之前这次改动不会生效,刚安装的插件也不会出现在「已安装」列表里。":`變更已寫入 profile(~/.pi-harness/profiles/<profile>/cordis.yml)。主控台無法自行重新啟動,請回到啟動 Pi Harness 的終端機按 Ctrl-C,再用原本的指令重新啟動;在那之前這次變更不會生效,剛安裝的外掛也不會出現在「已安裝」清單裡。`,"改配置 ⌘,":`變更設定 ⌘,`,数据库:la,数据异常:ua,数据来源:da,"数据来源:Pi 原生 JSONL 会话;Agent 可调用 synapse_session_map 刷新。节点展示 {v0} / {v1};{v2} 当前工作区:{v3}。面板最多显示 8 个节点和 5 条关系。":`資料來源:Pi 原生 JSONL 工作階段;Agent 可呼叫 synapse_session_map 重新整理。節點顯示 {v0} / {v1};{v2} 目前工作區:{v3}。面板最多顯示 8 個節點與 5 條關係。`,"消息元数据未扫描(文件超过 4 MiB)":`未掃描訊息中繼資料(檔案超過 4 MiB)`,"{v0} 个会话的消息元数据未扫描,因为文件超过 4 MiB。":`因檔案超過 4 MiB,未掃描 {v0} 個工作階段的訊息中繼資料。`,"{v0} 个会话在扫描期间发生变化或无法读取,未显示。":`{v0} 個工作階段在掃描期間發生變更或無法讀取,因此未顯示。`,文件:fa,"文件 ≤ {v0} B":`檔案 ≤ {v0} B`,文件上下文:pa,文件差异:ma,文件补全:ha,文件详情:ga,文档:_a,文档生成:va,新会话:ya,新会话启动时使用的模型和思考级别:ba,新增:xa,新建会话:Sa,新文件:Ca,无描述:wa,无法安全检查:Ta,无输出:Ea,时间:Da,时间未知:Oa,"明细超过上限,结果已截断;总数仍包含全部检查结果。":`明細超過上限,結果已截斷;總數仍包含全部檢查結果。`,昨天:ka,"显示 {v0} / {v1} 个变更":`顯示 {v0} / {v1} 個變更`,"显示 {v0} / 保留 {v1} 条":`顯示 {v0} / 保留 {v1} 筆`,"显示 {v0}/{v1}":`顯示 {v0}/{v1}`,"显示前 {v0} 条;共有 {v1} 个变更。":`顯示前 {v0} 筆;共有 {v1} 個變更。`,显示名称:Aa,显示图片:ja,显示归档会话:Ma,显示缓存未命中:Na,暂无:Pa,"暂无 Skill 扫描结果,可让 Agent 调用 skill_guard_scan。":`目前沒有 Skill 掃描結果,可讓 Agent 呼叫 skill_guard_scan。`,"暂无上下文事件。":`目前沒有上下文事件。`,"暂无协作角色。":`目前沒有協作角色。`,暂无可用模型:Fa,"暂无失败记录。":`目前沒有失敗紀錄。`,暂无已保存会话:Ia,暂无描述:La,"暂无插件条目。":`目前沒有外掛項目。`,"暂无日志输出。":`目前沒有記錄輸出。`,暂无模型:Ra,"暂无轨迹事件。":`目前沒有軌跡事件。`,"暂无邮箱备注。":`目前沒有信箱備註。`,"更新 {v0}":`更新 {v0}`,"更新于 {v0}":`更新於 {v0}`,更早:za,"更早事件已按浏览器显示上限省略。":`更早的事件已依瀏覽器顯示上限省略。`,"最多 {v0} bytes":`最多 {v0} bytes`,"最多 {v0} 块":`最多 {v0} 塊`,"最多 {v0} 条":`最多 {v0} 筆`,"最多 {v0} 条消息":`最多 {v0} 則訊息`,"最多保留 100 个事件名,界面显示前 8 个;":`最多保留 100 個事件名稱,介面顯示前 8 個;`,"最近 {scanned} / {total} 条":`最近 {scanned} / {total} 筆`,"最近一次校验{v0}。{v1}":`最近一次檢核{v0}。{v1}`,"最近一次:{v0}":`最近一次:{v0}`,最近上下文事件:Ba,"最近任务 {v0} / {v1}":`最近的任務 {v0} / {v1}`,"最近会话 {v0} / {v1}":`最近的工作階段 {v0} / {v1}`,"最近关系 {v0} / {v1}":`最近的關係 {v0} / {v1}`,"最近写入错误:{v0}":`最近的寫入錯誤:{v0}`,"最近写入:{v0}":`最近寫入:{v0}`,最近动作:Va,最近压缩:Ha,最近命令:Ua,"最近完成扫描的查询:":`最近完成掃描的查詢:`,最近导入请求:Wa,最近导出:Ga,最近捕获:Ka,"最近搜索:{v0}":`最近搜尋:{v0}`,最近撤销:qa,最近操作:Ja,最近日志:Ya,最近生成的提问上下文:Xa,最近胶囊:Za,"最近节点 {v0} / {v1}":`最近的節點 {v0} / {v1}`,"最近请求:{v0}":`最近的請求:{v0}`,"最近调用:{call}":`最近呼叫:{call}`,"最近选择:{v0}":`最近選擇:{v0}`,"最近错误:{v0}":`最近的錯誤:{v0}`,最近附加:Qa,最近风险摘要:$a,有效素材:eo,服务状态:to,未决:no,未决约束:ro,未加载:io,"未发现有效的受支持图片。":`未發現有效且支援的圖片。`,未启动:ao,"未启用绝对 Token 上限。":`未啟用絕對 Token 上限。`,未命中检查规则:oo,未命中检测规则:so,未命中规则:co,"未命中规则不代表安全;review 默认不返回原文,blocked 始终拒绝。文本标记不是执行沙箱,也不会自动激活 Skill。":`未命中規則不代表安全;review 預設不回傳原文,blocked 一律拒絕。文字標記不是執行沙箱,也不會自動啟用 Skill。`,未命名:lo,"未命名 Skill":`未命名的 Skill`,未命名书签:uo,未命名任务:fo,未命名会话:po,未命名技能:mo,未命名提示词:ho,未命名服务器:go,未命名符号:_o,未命名节点:vo,未命名轮次:yo,未回答:bo,未固定:xo,"未找到匹配的 Pi Harness 仓库。":`找不到相符的 Pi Harness 儲存庫。`,未持久化:So,未检查:Co,未检测到:wo,未检测到认证:To,未注册:Eo,未知:Do,未知仓库:Oo,未知切换状态:ko,未知工作区:Ao,未知插件:jo,未知文件:Mo,未知错误:No,未知键:Po,未触及扫描或预览上限:Fo,未设置:Io,未读:Lo,未读消息:Ro,未返回原文:zo,未连接:Bo,未送达:Vo,未选择工作区:Ho,未选择模型:Uo,未配置:Wo,"未配置 vault":`未設定 vault`,"未配置搜索 API key":`未設定搜尋 API key`,本地关系图:Go,"本地只读扫描 · 上限 {v0} 项":`本機唯讀掃描 · 上限 {v0} 項`,"本地安装存在 {count} 组声明约束冲突。":`本機安裝存在 {count} 組宣告約束衝突。`,本地浏览器未连接:Ko,本地遥测服务不发送事件:qo,本次会话改动:Jo,本次打开后还没有事件:Yo,"本次扫描范围内未命中规则,不代表安全。":`本次掃描範圍內未命中規則,不代表安全。`,本次运行已报告用量:Xo,权限策略:Zo,条消息:Qo,来源:$o,"来源:{v0}":`來源:{v0}`,"来源:{v0} · 仅展示公开仓库信息,不会自动安装。":`來源:{v0} · 僅顯示公開儲存庫資訊,不會自動安裝。`,架构地图:es,"查看 {path} 的差异":`查看 {path} 的差異`,"查看 {plugin} 详情":`查看 {plugin} 詳情`,"查看 {v0} 个模型":`查看 {v0} 個模型`,查看原始错误:ts,查看差异:ns,"查看源码 ↗":`查看原始碼 ↗`,"查看详情 →":`查看詳情 →`,"查看贡献规范 ↗":`查看貢獻規範 ↗`,查看运行配置:rs,查询中:is,查询失败:as,"查询工作区:":`查詢工作區:`,"查询:{v0}":`查詢:{v0}`,"查询:{v0} · 路径:{v1}":`查詢:{v0} · 路徑:{v1}`,校验模型:os,"根据真实 Pi 会话事件自动反应,也可让 Agent 调用 pet_react 进行互动。":`依真實的 Pi 工作階段事件自動反應,也可讓 Agent 呼叫 pet_react 進行互動。`,"格式 v{v0}":`格式 v{v0}`,桌面伙伴:ss,桌面通知:cs,检查中:ls,检查失败:us,"检查清单:{v0} 项":`檢查清單:{v0} 項`,"概览包含截断的结果,显示数量与总数见上方。":`概覽包含被截斷的結果,顯示數量與總數見上方。`,模块检索:ds,模型:fs,"模型 ID":`模型 ID`,"模型列表只显示当前会话和已配置提供商。":`模型清單只顯示目前工作階段與已設定的供應商。`,模型尚未配置认证:ps,模型校验:ms,模型默认值:hs,模型思考中:gs,模型生成中:_s,工具执行中:vs,等待模型:ys,"Pi runtime 不可达":`Pi runtime 無法連線`,实时更新已断开:bs,"实时更新中断,正在重连":`即時更新中斷,正在重新連線`,正在连接实时更新:xs,模型暂时静默:Ss,"模型暂时静默 · {seconds} 秒无新活动":`模型暫時無活動 · {seconds} 秒沒有新活動`,刚刚有新活动:Cs,"{seconds} 秒前有新活动":`{seconds} 秒前有新活動`,"已运行 {time}":`已執行 {time}`,正在写入:ws,正在切换会话:Ts,正在压缩:Es,正在发送:Ds,"正在扫描未回答的会话…":`正在掃描未回覆的工作階段…`,正在生成:Os,"正在生成…":`正在產生…`,正在盘点视觉素材:ks,"正在读取 git worktree":`正在讀取 git worktree`,"正在读取 git worktree…":`正在讀取 git worktree…`,"正在读取 {path} 的差异":`正在讀取 {path} 的差異`,正在读取图片元数据:As,"正在读取插件详情…":`正在讀取外掛詳情…`,正在读取视觉内容:js,"正在读取运行时配置…":`正在讀取執行階段設定…`,"正在连接 Pi runtime…":`正在連線 Pi runtime…`,正在重载会话资源:Ms,"正文 {v0} 字符":`內文 {v0} 字元`,步骤:Ns,"每日预算(UTC)":`每日預算(UTC)`,每次询问:Ps,永久删除:Fs,永久删除本地记录:Is,沙箱:Ls,"没有以未回答用户消息结束的会话。":`沒有以未回答的使用者訊息結尾的工作階段。`,"没有匹配当前搜索与分类条件的已安装插件。":`沒有符合目前搜尋與分類條件的已安裝外掛。`,"没有匹配的命令、会话或文件。":`沒有符合的指令、工作階段或檔案。`,"没有匹配的命令。":`沒有符合的指令。`,"没有匹配的插件。":`沒有符合的外掛。`,没有匹配项:Rs,"没有可显示的差异(工作区可能已更新)。":`沒有可顯示的差異(工作區可能已更新)。`,"没有可调试的浏览器页面。":`沒有可偵錯的瀏覽器頁面。`,"没有找到匹配内容。":`找不到符合的內容。`,"没有找到匹配插件。":`找不到符合的外掛。`,"没有找到匹配的模块符号。":`找不到符合的模組符號。`,"没有找到匹配的社区插件。":`找不到符合的社群外掛。`,"没有找到这个已安装插件,它可能已被移除。":`找不到這個已安裝的外掛,它可能已被移除。`,"没有找到这个市场插件,它可能已下架。":`找不到這個市集外掛,它可能已下架。`,"没有返回校验理由。":`沒有回傳驗證理由。`,"注册 OpenAI 兼容接口,凭据只提交到本机 Pi runtime。":`註冊 OpenAI 相容介面,憑證只會送到本機的 Pi runtime。`,流式渲染:zs,流程图:Bs,测试:Vs,"测试 exit":`測試 exit`,"测试中…":`測試中…`,测试连接:Hs,浏览器会话:Us,消息:Ws,"消息与用量累计整份日志(含历史分支及压缩),不等于当前上下文;成本为 SDK 报告值,不是账单。":`訊息與用量累計整份記錄(含歷史分支及壓縮),不等於目前的內容脈絡;成本為 SDK 回報值,不是帳單。`,消息完成:Gs,消息开始:Ks,消息更新:qs,消息组成:Js,消息队列和网络传输行为:Ys,"添加中…":`新增中…`,添加批注:Xs,添加提供商:Zs,添加自定义提供商:Qs,清理:$s,清理中:ec,清理失败:tc,清空:nc,源码:rc,点击移除批注:ic,父会话未显示:ac,版本:oc,版本冲突:sc,版本控制:cc,生态雷达:lc,生成失败:uc,生成已取消:dc,用户:fc,"由 /api/files 提供":`由 /api/files 提供`,"由 CLI Notifier 提供,具体目标在插件配置中管理":`由 CLI Notifier 提供,具體目標在外掛設定中管理`,"由已启用插件提供的实时状态。":`由已啟用外掛提供的即時狀態。`,"由当前运行时加载但已停用。":`由目前執行階段載入但已停用。`,"由当前运行时加载并启用,能力与 hook 已注册。":`由目前執行階段載入並啟用,能力與 hook 已註冊。`,由当前运行时注册:pc,由运行时提供:mc,界面:hc,界面语言:gc,"目录 {v0} 个,文件 {v1} 个;跳过依赖和构建目录。":`目錄 {v0} 個,檔案 {v1} 個;略過相依與建置目錄。`,目录扫描:_c,"目录树已截断;面板显示 {v0} / {v1} 个已收集节点。":`目錄樹已截斷;面板顯示 {v0} / {v1} 個已收集節點。`,"目录树结果不完整:已达到发现、深度、节点或序列化上限。":`目錄樹結果不完整:已達到探索、深度、節點或序列化上限。`,"Git 结果不完整:显示 {v0} / {v1} 个变更。":`Git 結果不完整:顯示 {v0} / {v1} 個變更。`,"目录结果或字段已截断,计数包含未展示条目。":`目錄結果或欄位已截斷,計數包含未顯示的項目。`,目标:vc,目标键:yc,知识图谱:bc,知识库:xc,知道了:Sc,确认卸载:Cc,确认卸载插件:wc,确认撤销:Tc,确认模式:Ec,社区:Dc,社区排行榜:Oc,社区插件:kc,"第 {v0} 行 · {v1}":`第 {v0} 行 · {v1}`,"第 {v0} 页":`第 {v0} 頁`,"等待 Agent 空闲":`等待 Agent 閒置`,"等待 Agent 运行":`等待 Agent 執行`,等待图片:Ac,等待工作区扫描:jc,等待当前轮结束:Mc,等待当前运行结束:Nc,等待查询:Pc,等待检查:Fc,等待生成:Ic,"等待真实事件…":`等待真實事件…`,等待重启:Lc,等待重载:Rc,等待验证:zc,管理方式:Bc,类型:Vc,系统:Hc,累计:Uc,"累计 token":`累計 token`,约束:Wc,"约束 {v0} 条":`約束 {v0} 筆`,"纯文本模型会启动外部 ModLens 引擎,可能使用网络和 provider 配额并产生费用。视觉证据是不可信数据,不构成指令或用户授权。":`純文字模型會啟動外部的 ModLens 引擎,可能使用網路與 provider 配額並產生費用。視覺證據是不可信任的資料,不構成指令或使用者授權。`,组件:Gc,终端与导航:Kc,"终端控制字符已清理。":`終端機控制字元已清除。`,经过的插件:qc,结构化界面:Jc,"结构预算 {v0} 节点 / 深度 {v1}":`結構預算 {v0} 節點 / 深度 {v1}`,"结果上限 {v0}":`結果上限 {v0}`,"结果不完整:已达到扫描、读取或结果上限,存在跳过文件,或匹配片段已裁剪。":`結果不完整:已達到掃描、讀取或結果上限,有跳過的檔案,或相符片段已裁切。`,"结果已截断,未显示的父会话不代表文件丢失。":`結果已截斷,未顯示的父工作階段不代表檔案遺失。`,"给这个会话一个容易识别的名称。":`給這個工作階段一個容易辨識的名稱。`,"缓存写入 {v0}":`快取寫入 {v0}`,缓存命中:Yc,"缓存读取 {v0}":`快取讀取 {v0}`,"缺失 {missing} 个,额外 {extra} 个。":`缺少 {missing} 個,多出 {extra} 個。`,"缺失 {missing}、无效 {invalid}:{names}":`缺少 {missing}、無效 {invalid}:{names}`,"缺失 · {count}":`缺少 · {count}`,网页抓取:Xc,网页搜索:Zc,置顶:Qc,耗时:$c,"耗时 {v0} ms":`耗時 {v0} ms`,联网研究:el,聚合后的失败记录:tl,能量:nl,自动:rl,自动压缩上下文:il,自动压缩已停用:al,自动压缩已启用:ol,自动重试:sl,节点:cl,"节点 ≤ {v0}":`節點 ≤ {v0}`,草稿已生成:ll,"虚拟工作区:{v0}":`虛擬工作區:{v0}`,表单:ul,"被动审计:不会阻断模型或工具执行。超出扫描上限的内容需要另行检查。":`被動稽核:不會阻擋模型或工具執行。超出掃描上限的內容需要另行檢查。`,"观测 {v0} 次":`觀測 {v0} 次`,视觉:dl,视觉检查失败:fl,视觉检查完成:pl,视觉检查已取消:ml,视觉素材:hl,视觉素材检查失败:gl,视觉素材检查完成:_l,视觉素材检查已取消:vl,角色交接:yl,解释代码:bl,解释当前文件的关键逻辑:xl,警告:Sl,计划执行:Cl,"让 Agent 调用 vision_catalog 盘点工作区图片,或调用 vision_image_info 检查单张图片。":`讓 Agent 呼叫 vision_catalog 盤點工作區圖片,或呼叫 vision_image_info 檢查單張圖片。`,"让 Agent 调用 vision_inspect,并提供工作区内的图片路径。":`讓 Agent 呼叫 vision_inspect,並提供工作區內的圖片路徑。`,许可证:wl,设置:Tl,设置一个容易识别的名称:El,设置分类:Dl,"证据按不可信数据处理,输入有长度上限;模型返回非结构化结果时显示 unknown。":`證據會以不可信任的資料處理,輸入有長度上限;模型回傳非結構化結果時顯示 unknown。`,诊断与隐私:Ol,"诊断预览已截断,完整计数保留在摘要中。":`診斷預覽已截斷,完整計數保留在摘要中。`,详情:kl,"语言包键完全一致。":`語言包的鍵完全一致。`,"请使用 remote-debugging-port 启动 Chrome。{v0}":`請使用 remote-debugging-port 啟動 Chrome。{v0}`,"请在设置 → 提供商中配置 API key,然后重试。":`請在設定 → 供應商中設定 API key,然後重試。`,请求保留:Al,"请求失败(HTTP {status}):请确认 Pi Harness 仍在运行,然后重试。":`請求失敗(HTTP {status}):請確認 Pi Harness 仍在執行,然後重試。`,"请用 everyapi use pi-harness 启动,或设置 EVERYAPI_RELAY_KEY 后重启。":`請用 everyapi use pi-harness 啟動,或設定 EVERYAPI_RELAY_KEY 後重新啟動。`,"读取 MCP 运行状态;工具列表通过 mcp_panel 的 tools 操作查询,健康建议通过 health 操作查看。":`讀取 MCP 執行狀態;工具清單透過 mcp_panel 的 tools 操作查詢,健康建議透過 health 操作查看。`,读取中:jl,"读取中…":`讀取中…`,资源:Ml,"资源诊断:{v0} 条":`資源診斷:{v0} 筆`,超时:Nl,"超时 {v0} ms":`逾時 {v0} ms`,"超限/不可测":`超過上限/無法量測`,跟踪路径:Pl,跟随提供商:Fl,跟随运行时:Il,跨会话记忆:Ll,轨迹:Rl,"轨迹只记录控制台连上之后发生的事件,这条会话已有的 {count} 条消息请看「对话」。":`軌跡只記錄主控台連上之後發生的事件,這個工作階段既有的 {count} 則訊息請看「對話」。`,轨迹存在违规:zl,轨迹锚定:Bl,轮次开始:Vl,轮次结束:Hl,"输入 {v0}":`輸入 {v0}`,输入命令名称或描述:Ul,"输入查询后显示匹配的历史会话。":`輸入查詢後顯示符合的歷史工作階段。`,"输入符号名后显示模块检索结果。":`輸入符號名稱後顯示模組檢索結果。`,输出:Wl,"输出 {v0}":`輸出 {v0}`,"输出只保留最后 12 KiB。":`輸出只保留最後 12 KiB。`,输出末尾:Gl,"输出目录:项目 .pi/skills/<name>,包含 SKILL.md 和原始参考文件。":`輸出目錄:專案的 .pi/skills/<name>,包含 SKILL.md 與原始參考檔案。`,"运行 security_audit 后显示脱敏结果。":`執行 security_audit 後顯示去識別化的結果。`,运行中:Kl,"运行中 · Pi agent":`執行中 · Pi agent`,运行就绪:ql,运行已锚定:Jl,运行开始:Yl,运行时:Xl,运行时插件:Zl,"运行时没有接受这次请求,请重试或查看错误详情。":`執行階段沒有接受這次請求,請重試或查看錯誤詳情。`,"运行时没有注册提供商。":`執行階段沒有註冊供應商。`,运行时状态与快捷键:Ql,运行时状态与配置:$l,运行时边界检查:eu,运行时配置:tu,运行状态:nu,运行策略:ru,运行结束:iu,运行配置:au,"运行配置里没有这个插件,它可能已被移除,请刷新页面。":`執行設定裡沒有這個外掛,它可能已被移除,請重新整理頁面。`,"近 30 天下载量":`近 30 天下載量`,"还没有任务。可让 Agent 使用 team_task 创建。":`還沒有任務。可讓 Agent 使用 team_task 建立。`,"还没有保存的提示词。可让 Agent 调用 prompt_library 保存模板。":`還沒有已儲存的提示詞。可讓 Agent 呼叫 prompt_library 儲存範本。`,"还没有加载任何命令。命令由 pi 扩展注册:把扩展放进 ~/.pi/agent/extensions(或已信任工作区的 .pi/extensions)后重启 Pi Harness。":`還沒有載入任何指令。指令由 pi 擴充註冊:把擴充放進 ~/.pi/agent/extensions(或已信任工作區的 .pi/extensions)後重新啟動 Pi Harness。`,"还没有发送通知。":`還沒有傳送通知。`,"还没有同步笔记。":`還沒有同步筆記。`,"还没有安装可管理的插件。去插件市场安装一个吧。":`還沒有安裝可管理的外掛。去外掛市集安裝一個吧。`,"还没有审查当前改动。可让 Agent 调用 review_changes。":`還沒有審查目前的變更。可讓 Agent 呼叫 review_changes。`,"还没有导出当前会话。":`還沒有匯出目前的工作階段。`,"还没有执行发布门禁。可让 Agent 调用 verify_change_gate。":`還沒有執行發布關卡。可讓 Agent 呼叫 verify_change_gate。`,"还没有执行回退操作。":`還沒有執行回復操作。`,"还没有执行模型校验。":`還沒有執行模型驗證。`,"还没有执行验证脚本。可让 Agent 调用 run_project_tests。":`還沒有執行驗證腳本。可讓 Agent 呼叫 run_project_tests。`,"还没有抓取网页。默认阻止本地和私有网络目标。":`還沒有擷取網頁。預設會阻擋本機與私有網路目標。`,"还没有查询数据库。可让 Agent 调用 sql_readonly。":`還沒有查詢資料庫。可讓 Agent 呼叫 sql_readonly。`,"还没有标记重要节点。":`還沒有標記重要節點。`,"还没有校验 YAML。可让 Agent 调用 yaml_validate。":`還沒有驗證 YAML。可讓 Agent 呼叫 yaml_validate。`,"还没有检查语言包。可让 Agent 调用 i18n_check。":`還沒有檢查語言包。可讓 Agent 呼叫 i18n_check。`,"还没有沙箱运行。仅使用本地镜像,默认无网络、工作区只读。":`還沒有沙箱執行。僅使用本機映像檔,預設無網路、工作區唯讀。`,"还没有生成 README 草稿。让 Agent 调用 readme_report 先检查内容。":`還沒有產生 README 草稿。請讓 Agent 呼叫 readme_report 先檢查內容。`,"还没有生成技能。可让 Agent 调用 skill_pack_create。":`還沒有產生技能。可讓 Agent 呼叫 skill_pack_create。`,"还没有结构化卡片。可让 Agent 调用 genui_render。":`還沒有結構化卡片。可讓 Agent 呼叫 genui_render。`,"还没有联网搜索。可让 Agent 调用 web_search;单页读取使用 read_page。":`還沒有連網搜尋。可讓 Agent 呼叫 web_search;單頁讀取請使用 read_page。`,"还没有附加文件。可使用 @file 或让 Agent 调用 file_context。":`還沒有附加檔案。可使用 @file 或讓 Agent 呼叫 file_context。`,"这个插件已经安装过了,可以在「已安装」列表里管理它。":`這個外掛已經安裝過了,可以在「已安裝」清單裡管理它。`,"这个插件暂未提供实时面板。":`這個外掛暫未提供即時面板。`,"这会丢弃当前工作区的全部未提交改动,此操作不可恢复。":`這會捨棄目前工作區的全部未提交變更,此操作無法復原。`,"这是当前 Pi 会话的协作账本,不会启动其他 Agent、创建进程或向外部发送消息。":`這是目前 Pi 工作階段的協作帳本,不會啟動其他 Agent、建立處理程序或向外部傳送訊息。`,进行中:ou,违规:su,违规项:cu,"连接当前工作区,直接让 Pi agent 读取、修改并验证代码。":`連接目前工作區,直接讓 Pi agent 讀取、修改並驗證程式碼。`,连接正常:lu,选中片段:uu,选择:du,"选择会话 {name}":`選擇工作階段 {name}`,选择工作区:fu,选择当前会话:pu,"选择轨迹中的事件查看原始数据。":`選擇軌跡中的事件查看原始資料。`,选择这个会话要使用的工作区:mu,逐条发送:hu,通用:gu,通过:_u,"通过 session_tab_manage 管理标签。activate 在当前轮结束后切换真实会话;移除标签不会删除会话文件。":`透過 session_tab_manage 管理分頁。activate 會在目前回合結束後切換實際工作階段;移除分頁不會刪除工作階段檔案。`,遥测拦截:vu,"部分建议因浏览器显示上限被省略。":`部分建議因瀏覽器顯示上限而省略。`,"部分数据刷新失败:":`部分資料重新整理失敗:`,"配置即代码,改完重载":`設定即程式碼,改完重新載入`,配置标识:yu,配置校验:bu,"配置读取失败:{v0}":`讀取設定失敗:{v0}`,重启后生效:xu,重命名:Su,重命名会话:Cu,重放:wu,重试:Tu,重试结束:Eu,重载:Du,"重载中…":`重新載入中…`,错误:Ou,"错误上限 {v0} 字符":`錯誤上限 {v0} 字元`,门禁失败:ku,门禁有警告:Au,门禁通过:ju,问题:Mu,"阈值 {v0}%":`門檻 {v0}%`,队列变更:Nu,阻塞:Pu,阻断次数:Fu,"附件标记 {v0} 个":`附件標記 {v0} 個`,随运行时加载:Iu,隐藏归档会话:Lu,隐藏思考正文:Ru,需复核:zu,需要人工复核:Bu,需要关注:Vu,"需要关注上下文风险。":`需要關注上下文風險。`,"需要启用 Browser Fetch":`需要啟用 Browser Fetch`,"需要配置榜单来源 sourceUrl,尚未连接 Pi Harness 排行榜。":`需要設定榜單來源 sourceUrl,尚未連線 Pi Harness 排行榜。`,"非 Git 工作区":`非 Git 工作區`,"面板仅显示受限预览;完整清单请使用对应 MCP 列表工具。":`面板僅顯示受限的預覽;完整清單請使用對應的 MCP 列表工具。`,"面板仅显示有界键列表;完整结果保留在工具调用详情中。":`面板僅顯示有界的鍵清單;完整結果保留在工具呼叫詳情中。`,"面板仅显示有界预览。":`面板僅顯示有界的預覽。`,"面板内容已按安全显示上限截断。":`面板內容已依安全顯示上限截斷。`,"面板或扫描结果已按固定安全上限截断;计数与警告会保留可见。":`面板或掃描結果已依固定安全上限截斷;計數與警告會保留可見。`,"面板按固定安全上限展示;完整计数保留在上方。":`面板依固定安全上限顯示;完整計數保留在上方。`,"面板数据不完整或不一致。":`面板資料不完整或不一致。`,"面板数据不完整或不可信,未显示语言包统计。":`面板資料不完整或不可信任,未顯示語言包統計。`,"面板数据不完整或不可信,请重新加载后再执行清理。":`面板資料不完整或不可信任,請重新載入後再執行清理。`,"面板数据不完整或不可信,请重新加载后再抓取。":`面板資料不完整或不可信任,請重新載入後再擷取。`,"面板数据不完整或不可信,请重新加载后再查询。":`面板資料不完整或不可信任,請重新載入後再查詢。`,"面板数据不完整或不可信,请重新加载后再运行。":`面板資料不完整或不可信任,請重新載入後再執行。`,"面板数据不完整或不可信,请重新加载排行榜。":`面板資料不完整或不可信任,請重新載入排行榜。`,"面板数据不完整或不可信,请重新连接后再试。":`面板資料不完整或不可信任,請重新連線後再試。`,"面板数据不完整或已按固定安全上限调整。":`面板資料不完整或已依固定安全上限調整。`,面板明细已截断:Hu,"面板显示 {v0} / {v1} 个条目;清理工具仍按完整的有界库存执行。":`面板顯示 {v0} / {v1} 個項目;清理工具仍會依完整的有界庫存執行。`,"面板显示 {v0} / {v1} 行;已迭代 {v2} 行,行、列或单元格展示已截断。这不是匹配总行数。":`面板顯示 {v0} / {v1} 列;已迭代 {v2} 列,列、欄或儲存格顯示已截斷。這不是相符的總列數。`,"面板正文预览已截断。":`面板內文預覽已截斷。`,项目可信策略:Uu,预算:Wu,"预览不会创建目标会话,也不会修改源会话。运行中的导入先排队,当前轮结束后追加到会话,后续模型轮可见;排队不代表已保存。":`預覽不會建立目標工作階段,也不會修改來源工作階段。執行中的匯入會先排隊,於目前回合結束後附加到工作階段,後續模型回合可見;排隊不代表已儲存。`,预览失败:Gu,预览已取消:Ku,"额外 · {count}":`額外 · {count}`,"验收 {v0} 条":`驗收 {v0} 筆`,验收条件:qu,验证失败:Ju,验证已取消:Yu,验证超时:Xu,验证通过:Zu,高风险:Qu,"高风险,需处理":`高風險,需處理`,"(已截断)":`(已截斷)`,"+ 新建会话":`+ 新增工作階段`,"/ 命令":`/ 指令`,取消置顶:$u,恢复:ed,恢复会话:td,从置顶区域移除:nd,固定在会话列表顶部:rd,恢复到默认列表:id};export{ad as default,n as 一次发送全部,r as 上一页,i as 上下文,a as 上下文与显示,o as 上下文占用,s as 上下文诊断,c as 上下文预算,l as 下一步,u as 下一页,d as 不会在浏览器显示,f as 不可用,p as 不执行,m as 专注,h as 严重,g as 个事件,_ as 临时网络错误时自动重试请求,v as 主题,y as 事件,b as 事件详情,x as 互动,S as 交接给,C as 产出,w as 产生者,T as 今天,E as 从不信任,nd as 从置顶区域移除,D as 从默认列表隐藏,O as 代码审查,k as 令牌数未知,A as 任务,j as 任务看板,M as 任务结束提醒插件,N as 休息,P as 会话,F as 会话书签,I as 会话交接,L as 会话信息变更,R as 会话内邮箱备注,z as 会话切换失败,B as 会话切换完成,V as 会话切换已取消,H as 会话列表,U as 会话压缩,W as 会话召回,G as 会话回退,K as 会话地图,q as 会话对比,J as 会话导出,Y as 会话工具,X as 会话搜索,Z as 会话操作,Q as 会话标签,$ as 会话统计,ee as 会话视图,te as 会话资源已重载,ne as 会话资源重载失败,re as 会话资源重载已取消,ie as 传输方式,ae as 作者,oe as 使用初始状态,se as 侧栏概览,ce as 保存名称,le as 保存源码,ue as 保存点,de as 保留,fe as 修复并测试,pe as 候选,me as 候选图片,he as 停止,ge as 停用插件,_e as 允许模型响应中的图片渲染,ve as 允许返回,ye as 全局搜索,be as 全部,xe as 全部影响,Se as 全部撤销,Ce as 共享,we as 关键决策,Te as 关键文件,Ee as 关闭,De as 关闭事件详情,Oe as 关闭全局搜索,ke as 关闭工作区选择,Ae as 关闭文件差异,je as 关闭添加提供商,Me as 关闭详情,Ne as 其他,Pe as 其他插件面板,Fe as 内容,Ie as 内置组件,Le as 写入会话,Re as 写入失败,ze as 写入已取消,Be as 写入已完成,Ve as 分支,He as 分析当前仓库并给出根因,Ue as 分类,Cs as 刚刚有新活动,We as 创建分支,Ge as 删除,Ke as 删除会话,qe as 刷新列表,Je as 加入批注,Ye as 加载中,Xe as 助手,Ze as 协作,Qe as 协作成员,$e as 协议,et as 单文件上限,tt as 占用,nt as 卸载,rt as 卸载插件,it as 历史压缩,at as 压缩,ot as 压缩中,st as 压缩失败,ct as 压缩已取消,lt as 压缩已完成,ut as 压缩开始,dt as 压缩开销,ft as 压缩状态数据无效,pt as 压缩结束,mt as 压缩进展,ht as 原生直传,gt as 发现错误风险,_t as 发送中,vt as 发送匿名安装和版本统计,yt as 发送失败,bt as 发送消息,xt as 取消,St as 取消批注,$u as 取消置顶,Ct as 变更门禁,wt as 只显示可展开的思考摘要,Tt as 只读检查未提交变更,Et as 可回退轮次,Dt as 可执行任务,Ot as 可选,kt as 可选缺席,At as 可配置,jt as 右侧会话,Mt as 右侧新增,Nt as 名称,Pt as 向右查看更多分类,Ft as 向左查看更多分类,It as 启动时隐藏版本和更新提示,Lt as 启用插件,Rt as 命令,zt as 命令补全,Bt as 命令面板,rd as 固定在会话列表顶部,Vt as 国际化,Ht as 图片,Ut as 图片压缩,Wt as 在消息中显示模型缓存诊断,Gt as 基准,Kt as 基准键,qt as 声明,Jt as 复制上下文并打开副本,Yt as 复制会话,Xt as 复核,Zt as 复核风险内容的默认策略,Qt as 外部依赖,$t as 失败,en as 始终信任,tn as 安全,nn as 安全审计,rn as 安全执行,an as 安全模式,on as 安全防护,sn as 安装,cn as 安装插件,ln as 安装遥测,un as 安静启动,dn as 完成,fn as 完成后渲染,pn as 官方,mn as 官方插件,hn as 定位问题,gn as 实时上下文,bs as 实时更新已断开,_n as 实时详情,vn as 实时面板,yn as 实现修复并运行相关测试,bn as 实验性,xn as 审查,Sn as 审查改动,Cn as 对话,wn as 导入会话,Tn as 导入会话文件,En as 导入失败,Dn as 导入已取消,On as 导出失败,kn as 导出已取消,An as 导出当前会话,jn as 尚未创建计划,Mn as 尚未扫描,Nn as 尚未清理,Pn as 尚未请求,Fn as 尚未请求压缩,In as 工作区,Ln as 工作区只读,Rn as 工作区导航,Bn as 工作区搜索结果,zn as 工作区文本检索,Hn as 工作区检索,Un as 工作区概览,Vn as 工作区目录树节点,Wn as 工作目录,Gn as 工具,Kn as 工具协议,qn as 工具尚未查询,vs as 工具执行中,Jn as 工具调用,Yn as 工具返回,Xn as 工具进展,Zn as 工具错误,Qn as 工程诊断,$n as 左侧会话,er as 左侧删除,tr as 已中断,nr as 已从磁盘重载,rr as 已保存,ir as 已保存源码,ar as 已停用,or as 已关闭,sr as 已删,cr as 已加载,lr as 已压缩,ur as 已取消,dr as 已启用,fr as 已启用提供商,pr as 已回退,mr as 已固定,hr as 已安装,gr as 已安装插件分类,_r as 已完成,vr as 已导航,yr as 已开启,br as 已恢复状态,xr as 已截图,Sr as 已扫描,Cr as 已排队,e as 已提交系统,wr as 已注册,Tr as 已添加,Er as 已点击,Dr as 已生成技能,Or as 已覆盖,kr as 已读,Ar as 已读取,jr as 已返回不可信文本,Mr as 已连接,Nr as 已送达,Pr as 已配置,Fr as 已验证,Ir as 建议,Lr as 开始一个工作会话,Rr as 开心,zr as 归档,Br as 归档会话,Vr as 当前,Hr as 当前上下文,Ur as 当前会话,Wr as 当前会话书签,Gr as 当前会话操作,Kr as 当前占用,qr as 当前工作区,Jr as 当前插件,Yr as 当前状态,Xr as 当前运行时,Zr as 当前运行时还没有注册任何命令,Qr as 影响范围,$r as 待下一次模型响应,ei as 待办,ti as 待发送批注,ni as 待复核,ri as 待规划,ii as 待验收,ai as 快捷键,oi as 思考,si as 思考级别,ci as 思考级别变更,li as 总发现,ed as 恢复,td as 恢复会话,ui as 恢复保存点,id as 恢复到默认列表,di as 成员,fi as 成本账本,pi as 打开会话树,mi as 打开目录,hi as 打开详情,gi as 执行中,_i as 扩展点,vi as 扫描失败,yi as 扫描已取消,bi as 扫描文件,xi as 扫描范围或结果预览已截断,Si as 批注上下文,Ci as 批注备注,wi as 技能,Ti as 技能打包,Ei as 技能目录,Di as 技能隔离,Oi as 担心,ki as 拉取模型,Ai as 拒绝返回,ji as 按影响范围筛选,Mi as 按轮次,Ni as 排行榜,Pi as 接口地址,Fi as 接口模拟,Ii as 接近上下文上限时自动整理历史消息,Li as 控制命令行界面和消息渲染行为,Ri as 控制思考内容和自动压缩,zi as 控制缓存提示和匿名数据上报,Bi as 提交说明,Vi as 提交这些改动,Hi as 提供商,Ui as 提供商名称,Wi as 提示模板,Gi as 提示词库,Ki as 提示词防护,qi as 插件,Ji as 插件体检,Yi as 插件信息,Xi as 插件分类,Zi as 插件发现,Qi as 插件市场,$i as 插件开发,ea as 插件目录,ta as 插件详情,na as 插件面板,ra as 插入斜杠并列出命令,ia as 搜索会话,aa as 搜索命令,oa as 搜索已安装插件,sa as 搜索插件,ca as 撤销全部改动,la as 数据库,ua as 数据异常,da as 数据来源,fa as 文件,pa as 文件上下文,ma as 文件差异,ha as 文件补全,ga as 文件详情,_a as 文档,va as 文档生成,ya as 新会话,ba as 新会话启动时使用的模型和思考级别,xa as 新增,Sa as 新建会话,Ca as 新文件,wa as 无描述,Ta as 无法安全检查,Ea as 无输出,Da as 时间,Oa as 时间未知,ka as 昨天,Aa as 显示名称,ja as 显示图片,Ma as 显示归档会话,Na as 显示缓存未命中,Pa as 暂无,Fa as 暂无可用模型,Ia as 暂无已保存会话,La as 暂无描述,Ra as 暂无模型,za as 更早,Ba as 最近上下文事件,Va as 最近动作,Ha as 最近压缩,Ua as 最近命令,Wa as 最近导入请求,Ga as 最近导出,Ka as 最近捕获,qa as 最近撤销,Ja as 最近操作,Ya as 最近日志,Xa as 最近生成的提问上下文,Za as 最近胶囊,Qa as 最近附加,$a as 最近风险摘要,eo as 有效素材,to as 服务状态,no as 未决,ro as 未决约束,io as 未加载,ao as 未启动,oo as 未命中检查规则,so as 未命中检测规则,co as 未命中规则,lo as 未命名,uo as 未命名书签,fo as 未命名任务,po as 未命名会话,mo as 未命名技能,ho as 未命名提示词,go as 未命名服务器,_o as 未命名符号,vo as 未命名节点,yo as 未命名轮次,bo as 未回答,xo as 未固定,So as 未持久化,t as 未提交系统,Co as 未检查,wo as 未检测到,To as 未检测到认证,Eo as 未注册,Do as 未知,Oo as 未知仓库,ko as 未知切换状态,Ao as 未知工作区,jo as 未知插件,Mo as 未知文件,No as 未知错误,Po as 未知键,Fo as 未触及扫描或预览上限,Io as 未设置,Lo as 未读,Ro as 未读消息,zo as 未返回原文,Bo as 未连接,Vo as 未送达,Ho as 未选择工作区,Uo as 未选择模型,Wo as 未配置,Go as 本地关系图,Ko as 本地浏览器未连接,qo as 本地遥测服务不发送事件,Jo as 本次会话改动,Yo as 本次打开后还没有事件,Xo as 本次运行已报告用量,Zo as 权限策略,Qo as 条消息,$o as 来源,es as 架构地图,ts as 查看原始错误,ns as 查看差异,rs as 查看运行配置,is as 查询中,as as 查询失败,os as 校验模型,ss as 桌面伙伴,cs as 桌面通知,ls as 检查中,us as 检查失败,ds as 模块检索,fs as 模型,ps as 模型尚未配置认证,gs as 模型思考中,Ss as 模型暂时静默,ms as 模型校验,_s as 模型生成中,hs as 模型默认值,ws as 正在写入,Ts as 正在切换会话,Es as 正在压缩,Ds as 正在发送,Os as 正在生成,ks as 正在盘点视觉素材,As as 正在读取图片元数据,js as 正在读取视觉内容,xs as 正在连接实时更新,Ms as 正在重载会话资源,Ns as 步骤,Ps as 每次询问,Fs as 永久删除,Is as 永久删除本地记录,Ls as 沙箱,Rs as 没有匹配项,zs as 流式渲染,Bs as 流程图,Vs as 测试,Hs as 测试连接,Us as 浏览器会话,Ws as 消息,Gs as 消息完成,Ks as 消息开始,qs as 消息更新,Js as 消息组成,Ys as 消息队列和网络传输行为,Xs as 添加批注,Zs as 添加提供商,Qs as 添加自定义提供商,$s as 清理,ec as 清理中,tc as 清理失败,nc as 清空,rc as 源码,ic as 点击移除批注,ac as 父会话未显示,oc as 版本,sc as 版本冲突,cc as 版本控制,lc as 生态雷达,uc as 生成失败,dc as 生成已取消,fc as 用户,pc as 由当前运行时注册,mc as 由运行时提供,hc as 界面,gc as 界面语言,_c as 目录扫描,vc as 目标,yc as 目标键,bc as 知识图谱,xc as 知识库,Sc as 知道了,Cc as 确认卸载,wc as 确认卸载插件,Tc as 确认撤销,Ec as 确认模式,Dc as 社区,Oc as 社区排行榜,kc as 社区插件,Ac as 等待图片,jc as 等待工作区扫描,Mc as 等待当前轮结束,Nc as 等待当前运行结束,Pc as 等待查询,Fc as 等待检查,ys as 等待模型,Ic as 等待生成,Lc as 等待重启,Rc as 等待重载,zc as 等待验证,Bc as 管理方式,Vc as 类型,Hc as 系统,Uc as 累计,Wc as 约束,Gc as 组件,Kc as 终端与导航,qc as 经过的插件,Jc as 结构化界面,Yc as 缓存命中,Xc as 网页抓取,Zc as 网页搜索,Qc as 置顶,$c as 耗时,el as 联网研究,tl as 聚合后的失败记录,nl as 能量,rl as 自动,il as 自动压缩上下文,al as 自动压缩已停用,ol as 自动压缩已启用,sl as 自动重试,cl as 节点,ll as 草稿已生成,ul as 表单,dl as 视觉,fl as 视觉检查失败,pl as 视觉检查完成,ml as 视觉检查已取消,hl as 视觉素材,gl as 视觉素材检查失败,_l as 视觉素材检查完成,vl as 视觉素材检查已取消,yl as 角色交接,bl as 解释代码,xl as 解释当前文件的关键逻辑,Sl as 警告,Cl as 计划执行,wl as 许可证,Tl as 设置,El as 设置一个容易识别的名称,Dl as 设置分类,Ol as 诊断与隐私,kl as 详情,Al as 请求保留,jl as 读取中,Ml as 资源,Nl as 超时,Pl as 跟踪路径,Fl as 跟随提供商,Il as 跟随运行时,Ll as 跨会话记忆,Rl as 轨迹,zl as 轨迹存在违规,Bl as 轨迹锚定,Vl as 轮次开始,Hl as 轮次结束,Ul as 输入命令名称或描述,Wl as 输出,Gl as 输出末尾,Kl as 运行中,ql as 运行就绪,Jl as 运行已锚定,Yl as 运行开始,Xl as 运行时,Zl as 运行时插件,Ql as 运行时状态与快捷键,$l as 运行时状态与配置,eu as 运行时边界检查,tu as 运行时配置,nu as 运行状态,ru as 运行策略,iu as 运行结束,au as 运行配置,ou as 进行中,su as 违规,cu as 违规项,lu as 连接正常,uu as 选中片段,du as 选择,fu as 选择工作区,pu as 选择当前会话,mu as 选择这个会话要使用的工作区,hu as 逐条发送,gu as 通用,_u as 通过,vu as 遥测拦截,yu as 配置标识,bu as 配置校验,xu as 重启后生效,Su as 重命名,Cu as 重命名会话,wu as 重放,Tu as 重试,Eu as 重试结束,Du as 重载,Ou as 错误,ku as 门禁失败,Au as 门禁有警告,ju as 门禁通过,Mu as 问题,Nu as 队列变更,Pu as 阻塞,Fu as 阻断次数,Iu as 随运行时加载,Lu as 隐藏归档会话,Ru as 隐藏思考正文,zu as 需复核,Bu as 需要人工复核,Vu as 需要关注,Hu as 面板明细已截断,Uu as 项目可信策略,Wu as 预算,Gu as 预览失败,Ku as 预览已取消,qu as 验收条件,Ju as 验证失败,Yu as 验证已取消,Xu as 验证超时,Zu as 验证通过,Qu as 高风险};
@@ -15,7 +15,7 @@
15
15
  <link rel="apple-touch-icon" href="/icons/app/apple-touch-icon-180.png" sizes="180x180" />
16
16
  <link rel="manifest" href="/manifest.webmanifest" />
17
17
  <title>Pi Harness / Control Room</title>
18
- <script type="module" crossorigin src="/assets/index-B0Lgl-Gu.js"></script>
18
+ <script type="module" crossorigin src="/assets/index-DnwVYrAg.js"></script>
19
19
  <link rel="modulepreload" crossorigin href="/assets/react-vendor-BxoMtjVy.js">
20
20
  <link rel="modulepreload" crossorigin href="/assets/markdown-vendor-DUdMWn0M.js">
21
21
  <link rel="stylesheet" crossorigin href="/assets/index-DlUBh7Ct.css">
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-harness/web",
3
- "version": "0.1.78",
3
+ "version": "0.1.79",
4
4
  "private": true,
5
5
  "description": "Browser application entry for Pi Harness",
6
6
  "type": "module",
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBAmzBlC,OAAO;;AAHxB,wBAw9CE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;;;;mBAi2BlC,OAAO;;AAHxB,wBAi8CE"}
@@ -1,4 +1,5 @@
1
1
  import { execFile } from "node:child_process";
2
+ import { existsSync, writeFileSync } from "node:fs";
2
3
  import { mkdir, mkdtemp, readFile, realpath, rename, rm, stat, unlink, writeFile } from "node:fs/promises";
3
4
  import { basename, dirname, isAbsolute, join, posix, relative, resolve, sep } from "node:path";
4
5
  import { tmpdir } from "node:os";
@@ -102,6 +103,33 @@ function createStatus(services, events, runActivity) {
102
103
  ...(currentRun === undefined ? {} : { run: currentRun }),
103
104
  };
104
105
  }
106
+ async function createSessionSnapshot(services, events, logger, messages = services.runtime.session.messages) {
107
+ const session = services.runtime.session;
108
+ const manager = session.sessionManager;
109
+ let metadata;
110
+ let metadataAvailable = true;
111
+ if (session.sessionFile) {
112
+ try {
113
+ metadata = (await readSessionMetadataLocked(manager, logger))[session.sessionFile];
114
+ }
115
+ catch (error) {
116
+ // Session metadata is an enhancement, not the conversation itself. A
117
+ // permissions or transient filesystem failure must not make a completed
118
+ // session switch look failed after the runtime already changed.
119
+ metadataAvailable = false;
120
+ logger.warn(`Unable to read current session metadata: ${errorText(error)}`);
121
+ }
122
+ }
123
+ return {
124
+ sessionId: session.sessionId,
125
+ sessionFile: session.sessionFile,
126
+ name: typeof manager?.getSessionName === "function" ? (manager.getSessionName() ?? undefined) : undefined,
127
+ messages,
128
+ entries: typeof manager?.getEntries === "function" ? manager.getEntries() : [],
129
+ events,
130
+ ...(metadataAvailable ? { archived: metadata?.archived === true, pinned: metadata?.pinned === true } : {}),
131
+ };
132
+ }
105
133
  function activeCwd(services) {
106
134
  const runtimeCwd = services.runtime.sessionRuntime?.cwd;
107
135
  return typeof runtimeCwd === "string" && runtimeCwd.length > 0 ? runtimeCwd : services.launch.cwd;
@@ -211,6 +239,21 @@ function sessionPathInDirectory(path, manager) {
211
239
  const relativePath = relative(root, target);
212
240
  return relativePath !== "" && !escapesRoot(relativePath) && target.endsWith(".jsonl");
213
241
  }
242
+ function persistSessionBeforeFirstAssistant(manager) {
243
+ const path = manager.getSessionFile();
244
+ if (!path || existsSync(path))
245
+ return;
246
+ const header = manager.getHeader();
247
+ if (!header)
248
+ throw new Error("Current session is missing its header");
249
+ // Pi intentionally defers creating a JSONL file until the first assistant
250
+ // response. A user-assigned name is durable work too: persist the current
251
+ // tree now, then reopen the same path so Pi knows subsequent entries can be
252
+ // appended instead of trying to create the file again on first response.
253
+ const source = [header, ...manager.getEntries()].map((entry) => JSON.stringify(entry)).join("\n") + "\n";
254
+ writeFileSync(path, source, { encoding: "utf8", flag: "wx" });
255
+ manager.setSessionFile(path);
256
+ }
214
257
  const webSessionUi = {
215
258
  select: (_title, options) => Promise.resolve(options[0]),
216
259
  confirm: () => Promise.resolve(true),
@@ -1712,17 +1755,13 @@ export default {
1712
1755
  });
1713
1756
  const disposeSession = services.webServer.register({
1714
1757
  path: "/api/session",
1715
- handler(_request, response) {
1716
- const session = services.runtime.session;
1717
- const sessionManager = session.sessionManager;
1718
- sendJson(response, 200, jsonSafe({
1719
- sessionId: session.sessionId,
1720
- sessionFile: session.sessionFile,
1721
- name: typeof sessionManager?.getSessionName === "function" ? (sessionManager.getSessionName() ?? undefined) : undefined,
1722
- messages: session.messages,
1723
- entries: typeof sessionManager?.getEntries === "function" ? sessionManager.getEntries() : [],
1724
- events,
1725
- }));
1758
+ async handler(_request, response) {
1759
+ try {
1760
+ sendJson(response, 200, jsonSafe(await createSessionSnapshot(services, events, context.logger)));
1761
+ }
1762
+ catch (error) {
1763
+ sendJson(response, 500, { error: errorText(error) });
1764
+ }
1726
1765
  },
1727
1766
  });
1728
1767
  const disposeNewSession = services.webServer.register({
@@ -1781,12 +1820,7 @@ export default {
1781
1820
  const session = services.runtime.session;
1782
1821
  for (const client of eventClients)
1783
1822
  writeSse(client, { type: "session", sessionId: session.sessionId, events: [] });
1784
- sendJson(response, 200, jsonSafe({
1785
- sessionId: session.sessionId,
1786
- sessionFile: session.sessionFile,
1787
- messages: services.runtime.sessionRuntime ? session.messages : [],
1788
- events: [],
1789
- }));
1823
+ sendJson(response, 200, jsonSafe(await createSessionSnapshot(services, [], context.logger, services.runtime.sessionRuntime ? undefined : [])));
1790
1824
  }
1791
1825
  catch (error) {
1792
1826
  sendJson(response, 500, { error: errorText(error) });
@@ -1834,12 +1868,7 @@ export default {
1834
1868
  events.length = 0;
1835
1869
  for (const client of eventClients)
1836
1870
  writeSse(client, { type: "session", sessionId: services.runtime.session.sessionId, events: [] });
1837
- sendJson(response, 200, jsonSafe({
1838
- sessionId: services.runtime.session.sessionId,
1839
- sessionFile: services.runtime.session.sessionFile,
1840
- messages: services.runtime.session.messages,
1841
- events: [],
1842
- }));
1871
+ sendJson(response, 200, jsonSafe(await createSessionSnapshot(services, [], context.logger)));
1843
1872
  }
1844
1873
  catch (error) {
1845
1874
  sendJson(response, 400, { error: errorText(error) });
@@ -1866,10 +1895,14 @@ export default {
1866
1895
  sendJson(response, 400, { error: "Session name must be at most 120 characters" });
1867
1896
  return;
1868
1897
  }
1869
- if (path === services.runtime.session.sessionFile && typeof manager.appendSessionInfo === "function")
1898
+ if (path === services.runtime.session.sessionFile && typeof manager.appendSessionInfo === "function") {
1870
1899
  manager.appendSessionInfo(name);
1871
- else
1900
+ if (name)
1901
+ persistSessionBeforeFirstAssistant(manager);
1902
+ }
1903
+ else {
1872
1904
  SessionManager.open(path, manager.getSessionDir()).appendSessionInfo(name);
1905
+ }
1873
1906
  sendJson(response, 200, { path, name: name || undefined });
1874
1907
  }
1875
1908
  catch (error) {