forge-openclaw-plugin 0.2.107 → 0.2.108
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/assets/{activity-page-Dv6X5ZCV.js → activity-page-DWHZ8_sJ.js} +1 -1
- package/dist/assets/{ai-surface-workspace-CutiG6uS.js → ai-surface-workspace-DPygfyhc.js} +1 -1
- package/dist/assets/{atlas-panel-jgMRyaHn.js → atlas-panel-D261RUQF.js} +1 -1
- package/dist/assets/{calendar-page-q7Nm5E2U.js → calendar-page-BQbJkdPF.js} +1 -1
- package/dist/assets/{calendar-rules-DPFsfiRl.js → calendar-rules-BoFsuvZ8.js} +1 -1
- package/dist/assets/{calendar-week-toolbar-nVhgB-0s.js → calendar-week-toolbar-LetevPI7.js} +1 -1
- package/dist/assets/{companion-sync-lab-page-CJ8UTij8.js → companion-sync-lab-page-Bid-4B8W.js} +1 -1
- package/dist/assets/{daily-metrics-dashboard-CiJkkkd1.js → daily-metrics-dashboard-CqnGJNeI.js} +1 -1
- package/dist/assets/{entity-note-count-link-RzBB6ujx.js → entity-note-count-link-VMURwBMi.js} +1 -1
- package/dist/assets/{entity-notes-surface-Djz50HvD.js → entity-notes-surface-DGXcyNzo.js} +1 -1
- package/dist/assets/{execution-board-CtPhI-58.js → execution-board-BGf6zZqJ.js} +1 -1
- package/dist/assets/{faceted-token-search-DEC6ANa9.js → faceted-token-search-CAsZrhZ4.js} +1 -1
- package/dist/assets/{flagship-signal-deck-CtHC3mql.js → flagship-signal-deck-DJsq3jn2.js} +1 -1
- package/dist/assets/{floating-action-menu-CKQRhff9.js → floating-action-menu-B3tQStUN.js} +1 -1
- package/dist/assets/{goal-detail-page-CF5fNQeR.js → goal-detail-page-DBs-9wpk.js} +1 -1
- package/dist/assets/{goals-page-fsY8NzGB.js → goals-page-CPmhjsG-.js} +1 -1
- package/dist/assets/{habits-page-COoGz4kj.js → habits-page-DkW8zT6_.js} +1 -1
- package/dist/assets/index-BhkubYaC.js +19 -0
- package/dist/assets/{insight-flow-dialog-DtX_5W7g.js → insight-flow-dialog-BvgRjkPi.js} +1 -1
- package/dist/assets/{insights-page-cBd74ObU.js → insights-page-Dtij6pm5.js} +1 -1
- package/dist/assets/{kanban-page-CYav9THw.js → kanban-page-R1x5hUU-.js} +1 -1
- package/dist/assets/{knowledge-graph-page-D2A-W1jE.js → knowledge-graph-page-BRBB5Vvz.js} +1 -1
- package/dist/assets/{life-force-page-CACGlNhq.js → life-force-page-DGPWKM9I.js} +1 -1
- package/dist/assets/{life-force-workspace-BJ4N1I78.js → life-force-workspace-DoRIQoU_.js} +1 -1
- package/dist/assets/{metric-tile-CMadwnGz.js → metric-tile-NJiFcFxW.js} +1 -1
- package/dist/assets/{movement-page-D5VqFd2q.js → movement-page-Dk8aV737.js} +1 -1
- package/dist/assets/{note-markdown-BzK2Qlgr.js → note-markdown-CZHjJDve.js} +1 -1
- package/dist/assets/{note-tags-input-CZzqJMLc.js → note-tags-input-DFpxZHPg.js} +1 -1
- package/dist/assets/{notes-page-D3Hsh90C.js → notes-page-r3kymlqg.js} +1 -1
- package/dist/assets/{open-in-graph-button-BFPKfyK3.js → open-in-graph-button-B_XHtHZD.js} +1 -1
- package/dist/assets/{orbit-map-CnyfSmOG.js → orbit-map-C_xy4kYC.js} +1 -1
- package/dist/assets/{overview-page-CXdWrOV1.js → overview-page-Dwg4uYe9.js} +1 -1
- package/dist/assets/{page-hero-ffKzgyW3.js → page-hero-DzEsy8i5.js} +1 -1
- package/dist/assets/{pill-cluster-C2D0h3lx.js → pill-cluster-DcBUeEMT.js} +1 -1
- package/dist/assets/{preference-entity-handoff-button-Dj3V6VxL.js → preference-entity-handoff-button-BX2n07ob.js} +1 -1
- package/dist/assets/{preferences-page-Jo8Gw386.js → preferences-page-BSnwiWBt.js} +1 -1
- package/dist/assets/{project-collections-qSqp90HN.js → project-collections-BR6YdlCZ.js} +1 -1
- package/dist/assets/{project-detail-page-BifhiLQX.js → project-detail-page-DeYshcCb.js} +1 -1
- package/dist/assets/{project-management-hierarchy-page-DZ_9klIc.js → project-management-hierarchy-page-Bhdt79Ea.js} +1 -1
- package/dist/assets/{project-management-section-nav-BImLCVvf.js → project-management-section-nav-DnXuWUfe.js} +1 -1
- package/dist/assets/{projects-page-ptcx6H38.js → projects-page-BA9W0ZPk.js} +1 -1
- package/dist/assets/{psyche-behaviors-page-BDwXyDta.js → psyche-behaviors-page-DpTj53GI.js} +1 -1
- package/dist/assets/{psyche-flashcards-page-DL1BP1jX.js → psyche-flashcards-page-CV58hAJA.js} +1 -1
- package/dist/assets/{psyche-goal-map-page-ovcpisx1.js → psyche-goal-map-page-C07CALFg.js} +1 -1
- package/dist/assets/{psyche-graph-EP5GL612.js → psyche-graph-CP7mxfMP.js} +1 -1
- package/dist/assets/{psyche-metrics-page-Bcu813Rg.js → psyche-metrics-page-CY8e9R0D.js} +1 -1
- package/dist/assets/{psyche-mode-guide-page-C0g27Xpt.js → psyche-mode-guide-page-DYt6AmHl.js} +1 -1
- package/dist/assets/{psyche-modes-page-BjKjX5MR.js → psyche-modes-page-Dd77kTtJ.js} +1 -1
- package/dist/assets/{psyche-page-F4tF2W70.js → psyche-page-DNXZjIKp.js} +1 -1
- package/dist/assets/{psyche-patterns-page-B-14hukK.js → psyche-patterns-page-DxGzpeT5.js} +1 -1
- package/dist/assets/{psyche-questionnaire-builder-page-BdXmoHvK.js → psyche-questionnaire-builder-page-5EQctRHO.js} +1 -1
- package/dist/assets/{psyche-questionnaire-detail-page-Cu5uwlJu.js → psyche-questionnaire-detail-page-W8nhUGAc.js} +1 -1
- package/dist/assets/{psyche-questionnaire-run-detail-page-C3R4PClg.js → psyche-questionnaire-run-detail-page-DVwzSuqg.js} +1 -1
- package/dist/assets/{psyche-questionnaire-run-page-Div3iDdt.js → psyche-questionnaire-run-page-BHResQgL.js} +1 -1
- package/dist/assets/{psyche-questionnaires-page-DpqAPQCp.js → psyche-questionnaires-page-DFTOXpyp.js} +1 -1
- package/dist/assets/{psyche-report-detail-page-BvWVDKP3.js → psyche-report-detail-page-BqDE_tf7.js} +1 -1
- package/dist/assets/{psyche-reports-page-BrbWUlAq.js → psyche-reports-page-B75pDz0l.js} +1 -1
- package/dist/assets/{psyche-schemas-beliefs-page-DYKvAtSD.js → psyche-schemas-beliefs-page-BjSO4tYL.js} +1 -1
- package/dist/assets/{psyche-screen-time-page-CAOKCyQw.js → psyche-screen-time-page-B7lKf1g7.js} +1 -1
- package/dist/assets/{psyche-self-observation-page-F0MVA0UH.js → psyche-self-observation-page-C6RMThwc.js} +1 -1
- package/dist/assets/{psyche-values-page-DyvX-d0o.js → psyche-values-page-1O158mIJ.js} +1 -1
- package/dist/assets/{report-chain-fields-CeC1cJFS.js → report-chain-fields-CyJ_VFY5.js} +1 -1
- package/dist/assets/{rewards-page-C2loyODo.js → rewards-page-sPlDYuVo.js} +1 -1
- package/dist/assets/{scheduling-rules-editor-D40AC2jR.js → scheduling-rules-editor-DGgcBs1W.js} +1 -1
- package/dist/assets/{schema-badge-FY7818qB.js → schema-badge-Do-YvNHm.js} +1 -1
- package/dist/assets/{select-menu-DJsCG6rM.js → select-menu-CAM7rMdO.js} +1 -1
- package/dist/assets/{settings-agents-page-BFkJ5AAD.js → settings-agents-page-BsZY71kz.js} +1 -1
- package/dist/assets/{settings-bin-page-D3-Ab-iA.js → settings-bin-page-kB3jtHo_.js} +1 -1
- package/dist/assets/{settings-calendar-page-ly_mSTAD.js → settings-calendar-page-C-IGNk3_.js} +1 -1
- package/dist/assets/{settings-data-page-D7QOqNf-.js → settings-data-page-CFGSL9g3.js} +1 -1
- package/dist/assets/{settings-logs-page-Ca87HEUx.js → settings-logs-page-C7e9FIN_.js} +1 -1
- package/dist/assets/{settings-mobile-page-D0jejZot.js → settings-mobile-page-DzKeZQDM.js} +1 -1
- package/dist/assets/{settings-models-page-DPDsZjSc.js → settings-models-page-dFhaOV3E.js} +1 -1
- package/dist/assets/{settings-page-1cArlSPM.js → settings-page-C0fSyYUx.js} +1 -1
- package/dist/assets/{settings-rewards-page-Db4BV1DC.js → settings-rewards-page-D-LuZHhv.js} +1 -1
- package/dist/assets/{settings-section-nav-DP9o4peU.js → settings-section-nav-kFFQSJEe.js} +1 -1
- package/dist/assets/{settings-users-page-BHFyDSsd.js → settings-users-page-CX797HPB.js} +1 -1
- package/dist/assets/{settings-wiki-page-BNaiupBm.js → settings-wiki-page-CWLAvcsf.js} +1 -1
- package/dist/assets/{sleep-page-BmOPF0yD.js → sleep-page-QgBkKyk_.js} +1 -1
- package/dist/assets/{sports-page-BldIiclr.js → sports-page-C8tLMl7V.js} +1 -1
- package/dist/assets/{strategies-page-CaTN99qj.js → strategies-page-CGgh-KXu.js} +1 -1
- package/dist/assets/{strategy-detail-page-DsgFTd-U.js → strategy-detail-page-CnzqjjoD.js} +1 -1
- package/dist/assets/{strategy-dialog-7X7peRzu.js → strategy-dialog-C6AThZ9L.js} +1 -1
- package/dist/assets/{surface-CJI17F3n.js → surface-CIDhCEsF.js} +1 -1
- package/dist/assets/{task-detail-page-M1sIIPA8.js → task-detail-page-Dp0r_qZP.js} +1 -1
- package/dist/assets/{timebox-planning-dialog-ByojN0AN.js → timebox-planning-dialog-B3uaSsWI.js} +1 -1
- package/dist/assets/{today-page-BjDijtn8.js → today-page-CTnMYrPi.js} +1 -1
- package/dist/assets/{training-load-page-BPRmaWmF.js → training-load-page-D0WB5_Tq.js} +1 -1
- package/dist/assets/{vitals-page-CE9zdGLF.js → vitals-page-0vg8nqwj.js} +1 -1
- package/dist/assets/{weekly-review-page-CzhTv90n.js → weekly-review-page-CSSKlkbH.js} +1 -1
- package/dist/assets/{weight-loss-page-Bp_cIk78.js → weight-loss-page-Dcr4wjjy.js} +1 -1
- package/dist/assets/{wiki-article-markdown-Dok2uy2p.js → wiki-article-markdown-CBFvfJx_.js} +1 -1
- package/dist/assets/{wiki-editor-page-BuW32Y3f.js → wiki-editor-page-CL1uxpih.js} +1 -1
- package/dist/assets/{wiki-ingest-history-page-DZKSBNHV.js → wiki-ingest-history-page-XX8DeNCC.js} +1 -1
- package/dist/assets/{wiki-ingest-modal-DyqBEZcC.js → wiki-ingest-modal-j-ftDmzp.js} +1 -1
- package/dist/assets/{wiki-page-DqxlbLKG.js → wiki-page-B46TQYpy.js} +1 -1
- package/dist/assets/{workbench-flow-page-C4nc9jUg.js → workbench-flow-page-CicEuBKq.js} +1 -1
- package/dist/assets/{workbench-page-BnyR7SL0.js → workbench-page-tXezYLh_.js} +1 -1
- package/dist/assets/{workout-detail-page-DT-c5cHL.js → workout-detail-page-BTO5X0Of.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/server/server/src/repositories/agent-runtime-sessions.js +0 -26
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/dist/assets/index-EqQsXoat.js +0 -19
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/maps-C-yOWiDN.js","assets/vendor-Dnkkx2co.js","assets/vendor-CRS-psbw.css","assets/maps-B-YMMjus.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{eH as D,S as H,E as B,c as j,C as c,T as E,I as P,B as I,eM as K,eN as W}from"./index-EqQsXoat.js";import{cc as Q,r as h,j as e,aC as O,bk as q,bG as Z,bL as G,dw as X,bX as Y}from"./vendor-Dnkkx2co.js";import{j as U,i as V,k as J}from"./state-vCcAT5Hq.js";import"./maps-C-yOWiDN.js";import{P as ee}from"./page-hero-ffKzgyW3.js";import{R as C,A as te,C as ae,X as T,Y as _,T as z,a as se,e as ie,B as re}from"./charts-DFnEuIMB.js";import"./motion-Lt5B1XuE.js";import"./ui-C1iwpj2-.js";import"./forms-hB0SqEh-.js";import"./board-dIX6etHh.js";import"./graph-DDUZNRsO.js";const A={below_z1:"#94a3b8",zone_1:"#38bdf8",zone_2:"#22c55e",zone_3:"#eab308",zone_4:"#f97316",zone_5:"#ef4444"};function k(t){return t?`${Math.round(t/60)}m`:"0m"}function F(t,s){const o=new Intl.DateTimeFormat(void 0,{weekday:"short",day:"numeric",month:"short"}),n=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"});return`${o.format(new Date(t))} · ${n.format(new Date(t))} - ${n.format(new Date(s))}`}function $(t){const s=typeof t=="number"?Math.floor(t):Number.parseFloat(String(t??""));return Number.isFinite(s)?new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):""}function ne(t,s){if(typeof t=="number"){const o=Number.isInteger(t)?String(t):t.toFixed(1);return s&&s!=="count"?`${o} ${s}`:o}return typeof t=="boolean"?t?"Yes":"No":t==null?"n/a":String(t)}function oe(t){return t.length===0?null:{minLat:Math.min(...t.map(s=>s.latitude)),maxLat:Math.max(...t.map(s=>s.latitude)),minLon:Math.min(...t.map(s=>s.longitude)),maxLon:Math.max(...t.map(s=>s.longitude))}}function le({points:t}){var g;const s=h.useRef(null),[o,n]=h.useState(!1),u=typeof window<"u"?((g=window.localStorage.getItem("forge.map.tile-url"))==null?void 0:g.trim())??"":"";h.useEffect(()=>{let x=!1,i=null;if(!u||!s.current||t.length<2){n(!1);return}return K(()=>import("./maps-C-yOWiDN.js").then(r=>r.m),__vite__mapDeps([0,1,2,3])).then(r=>{x||!s.current||(i=new r.Map({container:s.current,style:{version:8,sources:{tiles:{type:"raster",tiles:[u],tileSize:256}},layers:[{id:"tiles",type:"raster",source:"tiles"}]},center:[t[0].longitude,t[0].latitude],zoom:13,attributionControl:!1}),i.on("load",()=>{if(!i)return;const d=t.map(m=>[m.longitude,m.latitude]);i.addSource("route",{type:"geojson",data:{type:"Feature",properties:{},geometry:{type:"LineString",coordinates:d}}}),i.addLayer({id:"route",type:"line",source:"route",paint:{"line-color":"#f97316","line-width":4}});const f=d.reduce((m,p)=>m.extend(p),new r.LngLatBounds(d[0],d[0]));i.fitBounds(f,{padding:44,maxZoom:15}),n(!0)}))}),()=>{x=!0,i==null||i.remove()}},[t,u]);const l=oe(t),v=h.useMemo(()=>{if(!l||t.length<2)return"";const x=720,i=280,r=Math.max(1e-6,l.maxLon-l.minLon),d=Math.max(1e-6,l.maxLat-l.minLat);return t.map(f=>{const m=(f.longitude-l.minLon)/r*x,p=i-(f.latitude-l.minLat)/d*i;return`${m.toFixed(1)},${p.toFixed(1)}`}).join(" ")},[l,t]);return e.jsxs("div",{className:"relative min-h-[280px] overflow-hidden rounded-[8px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)]",children:[e.jsx("div",{ref:s,className:"absolute inset-0"}),o?null:e.jsxs("svg",{viewBox:"0 0 720 280",className:"absolute inset-0 h-full w-full",children:[e.jsx("rect",{width:"720",height:"280",fill:"var(--ui-surface-1)"}),v?e.jsx("polyline",{points:v,fill:"none",stroke:"#f97316",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round"}):null]}),e.jsx("div",{className:"absolute left-3 top-3 max-w-[calc(100%-1.5rem)] rounded-[8px] border border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-3 py-2 text-xs text-[var(--ui-ink-medium)] backdrop-blur",children:u?"Local-first map tiles configured":"No tile source configured; showing private route shape only"})]})}function de({zones:t}){return e.jsx("div",{className:"grid gap-3",children:t.map(s=>e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 text-sm",children:[e.jsx("span",{className:"min-w-0 break-words text-[var(--ui-ink-medium)] [overflow-wrap:anywhere]",children:s.label}),e.jsxs("span",{className:"shrink-0 text-[var(--ui-ink-strong)]",children:[(s.percentage*100).toFixed(1),"% · ",k(s.seconds)]})]}),e.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-[var(--ui-surface-2)]",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${Math.max(1,s.percentage*100)}%`,background:A[s.key]??"#f8fafc"}})})]},s.key))})}function ke(){var p,N,b,y,S,L,M,R;const{workoutId:t=""}=Q(),s=U(),o=V({queryKey:["workout-detail",t],queryFn:()=>W(t),enabled:t.length>0}),n=o.data,[u,l]=h.useState(""),[v,g]=h.useState("");h.useEffect(()=>{n!=null&&n.workout&&(l(n.workout.meaningText??""),g(n.workout.tags.join(", ")))},[n==null?void 0:n.workout]);const x=J({mutationFn:()=>D(t,{meaningText:u,tags:v.split(",").map(a=>a.trim()).filter(Boolean)}),onSuccess:async()=>{await s.invalidateQueries({queryKey:["workout-detail",t]}),await s.invalidateQueries({queryKey:["forge-fitness"]})}});if(o.isLoading)return e.jsx(H,{title:"Loading workout"});if(o.isError||!n)return e.jsx(B,{eyebrow:"Workout detail",error:o.error??new Error("Forge could not load this workout detail."),onRetry:()=>void o.refetch()});const{workout:i,analytics:r,evidence:d}=n,f=d.timeSeries.filter(a=>a.metricKey==="heart_rate").map((a,w)=>({time:Date.parse(a.startedAt)+w/1e3,bpm:a.value})),m=r.zoneDurations.map(a=>({zone:a.label,minutes:Math.round(a.seconds/60),fill:A[a.key]??"#f8fafc"}));return e.jsxs("div",{className:"grid gap-6",children:[e.jsxs(O,{to:"/sports",className:"inline-flex w-fit items-center gap-2 text-sm text-[var(--ui-ink-soft)] transition hover:text-[var(--ui-ink-strong)]",children:[e.jsx(q,{className:"size-4"}),"Back to sports"]}),e.jsx(ee,{eyebrow:"Workout evidence",title:i.workoutTypeLabel??i.workoutType,description:`${F(i.startedAt,i.endedAt)} · ${i.sourceDevice||"Apple Health"}`,actions:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(j,{children:k(i.durationSeconds)}),e.jsxs(j,{tone:"meta",children:[r.confidence," HR zones"]}),(p=r.routeSummary)!=null&&p.hasRoute?e.jsxs(j,{tone:"meta",children:[r.routeSummary.pointCount," route points"]}):null]})}),e.jsxs("section",{className:"grid gap-4 lg:grid-cols-4",children:[e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Avg HR"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.hrSummary.averageHr??i.averageHeartRate??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"bpm"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Max HR"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.hrSummary.maxHr??i.maxHeartRate??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"bpm"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Training load"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.load.trimp??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"Forge TRIMP"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"HR coverage"}),e.jsxs("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:[Math.round((r.dataQuality.sampleCoverage??0)*100),"%"]}),e.jsxs("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:[r.dataQuality.heartRateSampleCount??0," samples"]})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 xl:grid-cols-[minmax(0,1.25fr)_minmax(280px,0.75fr)]",children:[e.jsxs(c,{className:"min-h-[360px] min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(Z,{className:"size-4 text-[var(--primary)]"}),"Heart-rate timeline"]}),e.jsx("div",{className:"mt-4 h-[300px]",children:f.length>0?e.jsx(C,{width:"100%",height:"100%",children:e.jsxs(te,{data:f,children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"hrFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#ef4444",stopOpacity:.38}),e.jsx("stop",{offset:"100%",stopColor:"#ef4444",stopOpacity:.04})]})}),e.jsx(ae,{stroke:"var(--ui-border-subtle)",vertical:!1}),e.jsx(T,{dataKey:"time",interval:"preserveStartEnd",tick:{fill:"var(--ui-ink-soft)",fontSize:11},tickFormatter:$,type:"number",domain:["dataMin","dataMax"]}),e.jsx(_,{tick:{fill:"var(--ui-ink-soft)",fontSize:11},width:42}),e.jsx(z,{labelFormatter:$,contentStyle:{background:"var(--surface-glass)",border:"1px solid var(--ui-border-subtle)",borderRadius:8,color:"var(--ui-ink-strong)"}}),e.jsx(se,{type:"monotone",dataKey:"bpm",stroke:"#ef4444",fill:"url(#hrFill)",strokeWidth:2,dot:!1})]})}):e.jsx("div",{className:"grid h-full place-items-center rounded-[8px] bg-[var(--ui-surface-1)] text-sm text-[var(--ui-ink-soft)]",children:"No raw HR timeline has been synced for this workout yet."})})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(G,{className:"size-4 text-[var(--primary)]"}),"Zone mix"]}),e.jsx("div",{className:"mt-4",children:e.jsx(de,{zones:r.zoneDurations})}),e.jsx("div",{className:"mt-5 h-[180px]",children:e.jsx(C,{width:"100%",height:"100%",children:e.jsxs(ie,{data:m,children:[e.jsx(T,{dataKey:"zone",tick:{fill:"var(--ui-ink-soft)",fontSize:10}}),e.jsx(_,{tick:{fill:"var(--ui-ink-soft)",fontSize:10},width:34}),e.jsx(z,{contentStyle:{background:"var(--surface-glass)",border:"1px solid var(--ui-border-subtle)",borderRadius:8,color:"var(--ui-ink-strong)"}}),e.jsx(re,{dataKey:"minutes",radius:[4,4,0,0]})]})})})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 xl:grid-cols-[minmax(0,1fr)_360px]",children:[e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(X,{className:"size-4 text-[var(--primary)]"}),"Route"]}),e.jsx("div",{className:"mt-4",children:d.routePoints.length>1?e.jsx(le,{points:d.routePoints}):e.jsx("div",{className:"grid min-h-[240px] place-items-center rounded-[8px] bg-[var(--ui-surface-1)] text-sm text-[var(--ui-ink-soft)]",children:"No route evidence is available for this workout."})})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Captured metrics"}),e.jsx("div",{className:"mt-4 grid gap-3",children:(((N=i.details)==null?void 0:N.metrics)??[]).slice(0,14).map(a=>e.jsxs("div",{className:"min-w-0 rounded-[8px] bg-[var(--ui-surface-1)] px-3 py-2",children:[e.jsx("div",{className:"break-words text-sm text-[var(--ui-ink-soft)] [overflow-wrap:anywhere]",children:a.label}),e.jsx("div",{className:"mt-1 break-words text-[var(--ui-ink-strong)] [overflow-wrap:anywhere]",children:ne(a.value,a.unit)})]},`${a.category}:${a.key}:${a.statistic}`))})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(280px,0.7fr)]",children:[e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Events and phases"}),e.jsxs("div",{className:"mt-4 grid gap-3",children:[[...((b=i.details)==null?void 0:b.events)??[],...((y=i.details)==null?void 0:y.components)??[]].slice(0,18).map((a,w)=>e.jsxs("div",{className:"min-w-0 rounded-[8px] bg-[var(--ui-surface-1)] px-4 py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("div",{className:"min-w-0 break-words text-[var(--ui-ink-strong)] [overflow-wrap:anywhere]",children:"label"in a?a.label:a.activity.canonicalLabel}),e.jsx(j,{tone:"meta",children:k(a.durationSeconds)})]}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-soft)]",children:F(a.startedAt,a.endedAt??a.startedAt)})]},`${"type"in a?a.type:a.externalUid}:${a.startedAt}:${w}`)),(((L=(S=i.details)==null?void 0:S.events)==null?void 0:L.length)??0)+(((R=(M=i.details)==null?void 0:M.components)==null?void 0:R.length)??0)===0?e.jsx("div",{className:"rounded-[8px] bg-[var(--ui-surface-1)] p-4 text-sm text-[var(--ui-ink-soft)]",children:"No provider events or phases were captured."}):null]})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Reflection"}),e.jsxs("div",{className:"mt-4 grid gap-4",children:[e.jsxs("label",{className:"grid gap-2",children:[e.jsx("span",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Meaning and impact"}),e.jsx(E,{className:"min-h-[160px]",value:u,onChange:a=>l(a.target.value)})]}),e.jsxs("label",{className:"grid gap-2",children:[e.jsx("span",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Tags"}),e.jsx(P,{value:v,onChange:a=>g(a.target.value)})]}),e.jsxs(I,{type:"button",pending:x.isPending,pendingLabel:"Saving",onClick:()=>x.mutate(),children:[e.jsx(Y,{className:"size-4"}),"Save reflection"]})]})]})]})]})}export{ke as WorkoutDetailPage};
|
|
2
|
+
import{eH as D,S as H,E as B,c as j,C as c,T as E,I as P,B as I,eM as K,eN as W}from"./index-BhkubYaC.js";import{cc as Q,r as h,j as e,aC as O,bk as q,bG as Z,bL as G,dw as X,bX as Y}from"./vendor-Dnkkx2co.js";import{j as U,i as V,k as J}from"./state-vCcAT5Hq.js";import"./maps-C-yOWiDN.js";import{P as ee}from"./page-hero-DzEsy8i5.js";import{R as C,A as te,C as ae,X as T,Y as _,T as z,a as se,e as ie,B as re}from"./charts-DFnEuIMB.js";import"./motion-Lt5B1XuE.js";import"./ui-C1iwpj2-.js";import"./forms-hB0SqEh-.js";import"./board-dIX6etHh.js";import"./graph-DDUZNRsO.js";const A={below_z1:"#94a3b8",zone_1:"#38bdf8",zone_2:"#22c55e",zone_3:"#eab308",zone_4:"#f97316",zone_5:"#ef4444"};function k(t){return t?`${Math.round(t/60)}m`:"0m"}function F(t,s){const o=new Intl.DateTimeFormat(void 0,{weekday:"short",day:"numeric",month:"short"}),n=new Intl.DateTimeFormat(void 0,{hour:"2-digit",minute:"2-digit"});return`${o.format(new Date(t))} · ${n.format(new Date(t))} - ${n.format(new Date(s))}`}function $(t){const s=typeof t=="number"?Math.floor(t):Number.parseFloat(String(t??""));return Number.isFinite(s)?new Date(s).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"}):""}function ne(t,s){if(typeof t=="number"){const o=Number.isInteger(t)?String(t):t.toFixed(1);return s&&s!=="count"?`${o} ${s}`:o}return typeof t=="boolean"?t?"Yes":"No":t==null?"n/a":String(t)}function oe(t){return t.length===0?null:{minLat:Math.min(...t.map(s=>s.latitude)),maxLat:Math.max(...t.map(s=>s.latitude)),minLon:Math.min(...t.map(s=>s.longitude)),maxLon:Math.max(...t.map(s=>s.longitude))}}function le({points:t}){var g;const s=h.useRef(null),[o,n]=h.useState(!1),u=typeof window<"u"?((g=window.localStorage.getItem("forge.map.tile-url"))==null?void 0:g.trim())??"":"";h.useEffect(()=>{let x=!1,i=null;if(!u||!s.current||t.length<2){n(!1);return}return K(()=>import("./maps-C-yOWiDN.js").then(r=>r.m),__vite__mapDeps([0,1,2,3])).then(r=>{x||!s.current||(i=new r.Map({container:s.current,style:{version:8,sources:{tiles:{type:"raster",tiles:[u],tileSize:256}},layers:[{id:"tiles",type:"raster",source:"tiles"}]},center:[t[0].longitude,t[0].latitude],zoom:13,attributionControl:!1}),i.on("load",()=>{if(!i)return;const d=t.map(m=>[m.longitude,m.latitude]);i.addSource("route",{type:"geojson",data:{type:"Feature",properties:{},geometry:{type:"LineString",coordinates:d}}}),i.addLayer({id:"route",type:"line",source:"route",paint:{"line-color":"#f97316","line-width":4}});const f=d.reduce((m,p)=>m.extend(p),new r.LngLatBounds(d[0],d[0]));i.fitBounds(f,{padding:44,maxZoom:15}),n(!0)}))}),()=>{x=!0,i==null||i.remove()}},[t,u]);const l=oe(t),v=h.useMemo(()=>{if(!l||t.length<2)return"";const x=720,i=280,r=Math.max(1e-6,l.maxLon-l.minLon),d=Math.max(1e-6,l.maxLat-l.minLat);return t.map(f=>{const m=(f.longitude-l.minLon)/r*x,p=i-(f.latitude-l.minLat)/d*i;return`${m.toFixed(1)},${p.toFixed(1)}`}).join(" ")},[l,t]);return e.jsxs("div",{className:"relative min-h-[280px] overflow-hidden rounded-[8px] border border-[var(--ui-border-subtle)] bg-[var(--ui-surface-1)]",children:[e.jsx("div",{ref:s,className:"absolute inset-0"}),o?null:e.jsxs("svg",{viewBox:"0 0 720 280",className:"absolute inset-0 h-full w-full",children:[e.jsx("rect",{width:"720",height:"280",fill:"var(--ui-surface-1)"}),v?e.jsx("polyline",{points:v,fill:"none",stroke:"#f97316",strokeWidth:"5",strokeLinecap:"round",strokeLinejoin:"round"}):null]}),e.jsx("div",{className:"absolute left-3 top-3 max-w-[calc(100%-1.5rem)] rounded-[8px] border border-[var(--ui-border-subtle)] bg-[var(--surface-glass)] px-3 py-2 text-xs text-[var(--ui-ink-medium)] backdrop-blur",children:u?"Local-first map tiles configured":"No tile source configured; showing private route shape only"})]})}function de({zones:t}){return e.jsx("div",{className:"grid gap-3",children:t.map(s=>e.jsxs("div",{className:"grid gap-2",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 text-sm",children:[e.jsx("span",{className:"min-w-0 break-words text-[var(--ui-ink-medium)] [overflow-wrap:anywhere]",children:s.label}),e.jsxs("span",{className:"shrink-0 text-[var(--ui-ink-strong)]",children:[(s.percentage*100).toFixed(1),"% · ",k(s.seconds)]})]}),e.jsx("div",{className:"h-2 overflow-hidden rounded-full bg-[var(--ui-surface-2)]",children:e.jsx("div",{className:"h-full rounded-full",style:{width:`${Math.max(1,s.percentage*100)}%`,background:A[s.key]??"#f8fafc"}})})]},s.key))})}function ke(){var p,N,b,y,S,L,M,R;const{workoutId:t=""}=Q(),s=U(),o=V({queryKey:["workout-detail",t],queryFn:()=>W(t),enabled:t.length>0}),n=o.data,[u,l]=h.useState(""),[v,g]=h.useState("");h.useEffect(()=>{n!=null&&n.workout&&(l(n.workout.meaningText??""),g(n.workout.tags.join(", ")))},[n==null?void 0:n.workout]);const x=J({mutationFn:()=>D(t,{meaningText:u,tags:v.split(",").map(a=>a.trim()).filter(Boolean)}),onSuccess:async()=>{await s.invalidateQueries({queryKey:["workout-detail",t]}),await s.invalidateQueries({queryKey:["forge-fitness"]})}});if(o.isLoading)return e.jsx(H,{title:"Loading workout"});if(o.isError||!n)return e.jsx(B,{eyebrow:"Workout detail",error:o.error??new Error("Forge could not load this workout detail."),onRetry:()=>void o.refetch()});const{workout:i,analytics:r,evidence:d}=n,f=d.timeSeries.filter(a=>a.metricKey==="heart_rate").map((a,w)=>({time:Date.parse(a.startedAt)+w/1e3,bpm:a.value})),m=r.zoneDurations.map(a=>({zone:a.label,minutes:Math.round(a.seconds/60),fill:A[a.key]??"#f8fafc"}));return e.jsxs("div",{className:"grid gap-6",children:[e.jsxs(O,{to:"/sports",className:"inline-flex w-fit items-center gap-2 text-sm text-[var(--ui-ink-soft)] transition hover:text-[var(--ui-ink-strong)]",children:[e.jsx(q,{className:"size-4"}),"Back to sports"]}),e.jsx(ee,{eyebrow:"Workout evidence",title:i.workoutTypeLabel??i.workoutType,description:`${F(i.startedAt,i.endedAt)} · ${i.sourceDevice||"Apple Health"}`,actions:e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx(j,{children:k(i.durationSeconds)}),e.jsxs(j,{tone:"meta",children:[r.confidence," HR zones"]}),(p=r.routeSummary)!=null&&p.hasRoute?e.jsxs(j,{tone:"meta",children:[r.routeSummary.pointCount," route points"]}):null]})}),e.jsxs("section",{className:"grid gap-4 lg:grid-cols-4",children:[e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Avg HR"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.hrSummary.averageHr??i.averageHeartRate??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"bpm"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Max HR"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.hrSummary.maxHr??i.maxHeartRate??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"bpm"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Training load"}),e.jsx("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:r.load.trimp??"n/a"}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:"Forge TRIMP"})]}),e.jsxs(c,{children:[e.jsx("div",{className:"text-sm text-[var(--ui-ink-soft)]",children:"HR coverage"}),e.jsxs("div",{className:"mt-3 font-display text-4xl text-[var(--ui-ink-strong)]",children:[Math.round((r.dataQuality.sampleCoverage??0)*100),"%"]}),e.jsxs("div",{className:"mt-1 text-sm text-[var(--ui-ink-faint)]",children:[r.dataQuality.heartRateSampleCount??0," samples"]})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 xl:grid-cols-[minmax(0,1.25fr)_minmax(280px,0.75fr)]",children:[e.jsxs(c,{className:"min-h-[360px] min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(Z,{className:"size-4 text-[var(--primary)]"}),"Heart-rate timeline"]}),e.jsx("div",{className:"mt-4 h-[300px]",children:f.length>0?e.jsx(C,{width:"100%",height:"100%",children:e.jsxs(te,{data:f,children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"hrFill",x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:"#ef4444",stopOpacity:.38}),e.jsx("stop",{offset:"100%",stopColor:"#ef4444",stopOpacity:.04})]})}),e.jsx(ae,{stroke:"var(--ui-border-subtle)",vertical:!1}),e.jsx(T,{dataKey:"time",interval:"preserveStartEnd",tick:{fill:"var(--ui-ink-soft)",fontSize:11},tickFormatter:$,type:"number",domain:["dataMin","dataMax"]}),e.jsx(_,{tick:{fill:"var(--ui-ink-soft)",fontSize:11},width:42}),e.jsx(z,{labelFormatter:$,contentStyle:{background:"var(--surface-glass)",border:"1px solid var(--ui-border-subtle)",borderRadius:8,color:"var(--ui-ink-strong)"}}),e.jsx(se,{type:"monotone",dataKey:"bpm",stroke:"#ef4444",fill:"url(#hrFill)",strokeWidth:2,dot:!1})]})}):e.jsx("div",{className:"grid h-full place-items-center rounded-[8px] bg-[var(--ui-surface-1)] text-sm text-[var(--ui-ink-soft)]",children:"No raw HR timeline has been synced for this workout yet."})})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(G,{className:"size-4 text-[var(--primary)]"}),"Zone mix"]}),e.jsx("div",{className:"mt-4",children:e.jsx(de,{zones:r.zoneDurations})}),e.jsx("div",{className:"mt-5 h-[180px]",children:e.jsx(C,{width:"100%",height:"100%",children:e.jsxs(ie,{data:m,children:[e.jsx(T,{dataKey:"zone",tick:{fill:"var(--ui-ink-soft)",fontSize:10}}),e.jsx(_,{tick:{fill:"var(--ui-ink-soft)",fontSize:10},width:34}),e.jsx(z,{contentStyle:{background:"var(--surface-glass)",border:"1px solid var(--ui-border-subtle)",borderRadius:8,color:"var(--ui-ink-strong)"}}),e.jsx(re,{dataKey:"minutes",radius:[4,4,0,0]})]})})})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 xl:grid-cols-[minmax(0,1fr)_360px]",children:[e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[var(--ui-ink-strong)]",children:[e.jsx(X,{className:"size-4 text-[var(--primary)]"}),"Route"]}),e.jsx("div",{className:"mt-4",children:d.routePoints.length>1?e.jsx(le,{points:d.routePoints}):e.jsx("div",{className:"grid min-h-[240px] place-items-center rounded-[8px] bg-[var(--ui-surface-1)] text-sm text-[var(--ui-ink-soft)]",children:"No route evidence is available for this workout."})})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Captured metrics"}),e.jsx("div",{className:"mt-4 grid gap-3",children:(((N=i.details)==null?void 0:N.metrics)??[]).slice(0,14).map(a=>e.jsxs("div",{className:"min-w-0 rounded-[8px] bg-[var(--ui-surface-1)] px-3 py-2",children:[e.jsx("div",{className:"break-words text-sm text-[var(--ui-ink-soft)] [overflow-wrap:anywhere]",children:a.label}),e.jsx("div",{className:"mt-1 break-words text-[var(--ui-ink-strong)] [overflow-wrap:anywhere]",children:ne(a.value,a.unit)})]},`${a.category}:${a.key}:${a.statistic}`))})]})]}),e.jsxs("section",{className:"grid min-w-0 gap-4 lg:grid-cols-[minmax(0,1fr)_minmax(280px,0.7fr)]",children:[e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Events and phases"}),e.jsxs("div",{className:"mt-4 grid gap-3",children:[[...((b=i.details)==null?void 0:b.events)??[],...((y=i.details)==null?void 0:y.components)??[]].slice(0,18).map((a,w)=>e.jsxs("div",{className:"min-w-0 rounded-[8px] bg-[var(--ui-surface-1)] px-4 py-3",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsx("div",{className:"min-w-0 break-words text-[var(--ui-ink-strong)] [overflow-wrap:anywhere]",children:"label"in a?a.label:a.activity.canonicalLabel}),e.jsx(j,{tone:"meta",children:k(a.durationSeconds)})]}),e.jsx("div",{className:"mt-1 text-sm text-[var(--ui-ink-soft)]",children:F(a.startedAt,a.endedAt??a.startedAt)})]},`${"type"in a?a.type:a.externalUid}:${a.startedAt}:${w}`)),(((L=(S=i.details)==null?void 0:S.events)==null?void 0:L.length)??0)+(((R=(M=i.details)==null?void 0:M.components)==null?void 0:R.length)??0)===0?e.jsx("div",{className:"rounded-[8px] bg-[var(--ui-surface-1)] p-4 text-sm text-[var(--ui-ink-soft)]",children:"No provider events or phases were captured."}):null]})]}),e.jsxs(c,{className:"min-w-0 overflow-hidden",children:[e.jsx("div",{className:"text-[var(--ui-ink-strong)]",children:"Reflection"}),e.jsxs("div",{className:"mt-4 grid gap-4",children:[e.jsxs("label",{className:"grid gap-2",children:[e.jsx("span",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Meaning and impact"}),e.jsx(E,{className:"min-h-[160px]",value:u,onChange:a=>l(a.target.value)})]}),e.jsxs("label",{className:"grid gap-2",children:[e.jsx("span",{className:"text-sm text-[var(--ui-ink-soft)]",children:"Tags"}),e.jsx(P,{value:v,onChange:a=>g(a.target.value)})]}),e.jsxs(I,{type:"button",pending:x.isPending,pendingLabel:"Saving",onClick:()=>x.mutate(),children:[e.jsx(Y,{className:"size-4"}),"Save reflection"]})]})]})]})]})}export{ke as WorkoutDetailPage};
|
package/dist/index.html
CHANGED
|
@@ -130,7 +130,7 @@
|
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
132
|
</style>
|
|
133
|
-
<script type="module" crossorigin src="/forge/assets/index-
|
|
133
|
+
<script type="module" crossorigin src="/forge/assets/index-BhkubYaC.js"></script>
|
|
134
134
|
<link rel="modulepreload" crossorigin href="/forge/assets/vendor-Dnkkx2co.js">
|
|
135
135
|
<link rel="modulepreload" crossorigin href="/forge/assets/state-vCcAT5Hq.js">
|
|
136
136
|
<link rel="modulepreload" crossorigin href="/forge/assets/motion-Lt5B1XuE.js">
|
|
@@ -464,19 +464,6 @@ export function registerAgentRuntimeSession(input) {
|
|
|
464
464
|
}, now);
|
|
465
465
|
}
|
|
466
466
|
disconnectSupersededSingletonSessions(parsed, sessionId, agentId, now);
|
|
467
|
-
recordActivityEvent({
|
|
468
|
-
entityType: "session",
|
|
469
|
-
entityId: sessionId,
|
|
470
|
-
eventType: "agent_session_registered",
|
|
471
|
-
title: `Agent session registered: ${agentLabel}`,
|
|
472
|
-
description: `${parsed.provider} registered a live agent session.`,
|
|
473
|
-
actor: parsed.actorLabel,
|
|
474
|
-
source: "agent",
|
|
475
|
-
metadata: {
|
|
476
|
-
provider: parsed.provider,
|
|
477
|
-
sessionKey: parsed.sessionKey
|
|
478
|
-
}
|
|
479
|
-
});
|
|
480
467
|
return mapSession(getSessionRowById(sessionId));
|
|
481
468
|
});
|
|
482
469
|
}
|
|
@@ -625,19 +612,6 @@ export function disconnectAgentRuntimeSession(sessionId, input) {
|
|
|
625
612
|
summary: parsed.note,
|
|
626
613
|
metadata: parsed.lastError ? { lastError: parsed.lastError } : {}
|
|
627
614
|
}, now);
|
|
628
|
-
recordActivityEvent({
|
|
629
|
-
entityType: "session",
|
|
630
|
-
entityId: sessionId,
|
|
631
|
-
eventType: "agent_session_disconnected",
|
|
632
|
-
title: `Agent session disconnected: ${row.agent_label}`,
|
|
633
|
-
description: parsed.note || `${row.provider} session marked disconnected.`,
|
|
634
|
-
actor: row.actor_label,
|
|
635
|
-
source: "agent",
|
|
636
|
-
metadata: {
|
|
637
|
-
provider: row.provider,
|
|
638
|
-
sessionKey: row.session_key
|
|
639
|
-
}
|
|
640
|
-
});
|
|
641
615
|
return mapSession(getSessionRowById(sessionId));
|
|
642
616
|
});
|
|
643
617
|
}
|
package/openclaw.plugin.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"id": "forge-openclaw-plugin",
|
|
3
3
|
"name": "Forge",
|
|
4
4
|
"description": "Curated OpenClaw adapter for the Forge collaboration API, UI entrypoint, and localhost auto-start runtime.",
|
|
5
|
-
"version": "0.2.
|
|
5
|
+
"version": "0.2.108",
|
|
6
6
|
"activation": {
|
|
7
7
|
"onStartup": true,
|
|
8
8
|
"onCapabilities": [
|
package/package.json
CHANGED