spexcode 0.5.5 → 0.5.7

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 (38) hide show
  1. package/package.json +1 -1
  2. package/spec-cli/src/cli.ts +18 -1
  3. package/spec-cli/src/client.ts +21 -0
  4. package/spec-cli/src/git.ts +460 -238
  5. package/spec-cli/src/harness.ts +116 -24
  6. package/spec-cli/src/help.ts +3 -1
  7. package/spec-cli/src/index.ts +48 -9
  8. package/spec-cli/src/layout.ts +2 -0
  9. package/spec-cli/src/mentions.ts +10 -5
  10. package/spec-cli/src/process-identity.ts +20 -0
  11. package/spec-cli/src/reviewSnapshot.ts +4 -0
  12. package/spec-cli/src/reviews.ts +10 -5
  13. package/spec-cli/src/session-maintenance.ts +2 -1
  14. package/spec-cli/src/sessions.ts +898 -140
  15. package/spec-cli/src/specs.ts +3 -3
  16. package/spec-dashboard/dist/assets/{App-C5vbTw8Q.js → App-u2P7KdSg.js} +2 -2
  17. package/spec-dashboard/dist/assets/Dashboard-B8wp5_61.js +27 -0
  18. package/spec-dashboard/dist/assets/{EvalsPage-BS7ITcNo.js → EvalsPage-Bq1Tkb8y.js} +2 -2
  19. package/spec-dashboard/dist/assets/IssuesPage-BlkPSkmv.js +1 -0
  20. package/spec-dashboard/dist/assets/{MobileApp-DVLnk9hz.js → MobileApp-B1GxRZXK.js} +2 -2
  21. package/spec-dashboard/dist/assets/{Modal-6mHq6fbZ.js → Modal-bAkq9IIT.js} +1 -1
  22. package/spec-dashboard/dist/assets/{PageScroll-CAY4S4g4.js → PageScroll-px_rUZVJ.js} +1 -1
  23. package/spec-dashboard/dist/assets/{ProjectsPage-UQyzsTWN.js → ProjectsPage-8uGqYM12.js} +1 -1
  24. package/spec-dashboard/dist/assets/SessionInterface-CswwbewF.js +39 -0
  25. package/spec-dashboard/dist/assets/SessionWindow-IspcLjFA.js +1 -0
  26. package/spec-dashboard/dist/assets/{Settings-igR17pns.js → Settings-bpAbfnmS.js} +1 -1
  27. package/spec-dashboard/dist/assets/{Thread-B-ZUarN1.js → Thread-BpL3N3kw.js} +11 -11
  28. package/spec-dashboard/dist/assets/{TimelineChat-sc49Qj5d.js → TimelineChat-Ckmb1Ez2.js} +1 -1
  29. package/spec-dashboard/dist/assets/{data-B1ot4PF0.js → data-CQFbQEMH.js} +1 -1
  30. package/spec-dashboard/dist/assets/index-CixSnz1H.css +1 -0
  31. package/spec-dashboard/dist/assets/index-Di1ch5dd.js +41 -0
  32. package/spec-dashboard/dist/index.html +2 -2
  33. package/spec-dashboard/dist/assets/Dashboard-u8RIS3NY.js +0 -27
  34. package/spec-dashboard/dist/assets/IssuesPage-DXbqQFW_.js +0 -1
  35. package/spec-dashboard/dist/assets/SessionInterface-DKU4c1Z-.js +0 -39
  36. package/spec-dashboard/dist/assets/SessionWindow-zGwJaGbR.js +0 -1
  37. package/spec-dashboard/dist/assets/index-BqBNCa1V.js +0 -41
  38. package/spec-dashboard/dist/assets/index-CzutlTDf.css +0 -1
@@ -1 +0,0 @@
1
- import{j as n,u as p,r as h,I as j}from"./index-BqBNCa1V.js";import{G as N,s as S,z as k,U as z,N as v}from"./Thread-B-ZUarN1.js";function g(s){let e=2166136261;for(let o=0;o<(s||"").length;o++)e^=s.charCodeAt(o),e=Math.imul(e,16777619);return e>>>0}function m(s){return g(s)%360}function H(s){const e=m(s);return{bg:`hsl(${e} 55% 42%)`,fg:`hsl(${e} 70% 92%)`}}function C(s){return`hsl(${m(s)} 65% 50%)`}const x=["◆","▲","●","■","★","✦","⬟","⬢","❖","◈","✸","⟡","✚","❂","◐","◑","⬣","▰","✶","⬤","✹","◇","⊛","✺"],b=["circle","rounded","square","hex"];function T(s){const e=g(s);return{seed:s,glyph:x[(e>>>9)%x.length],shape:b[(e>>>17)%b.length],...H(s)}}function A({seed:s,status:e,title:o,size:l=16}){const a=T(s),t={width:l,height:l};return n.jsx("span",{className:`avatar av-st-${e||"none"}`,"data-tip":o,"aria-label":o,style:t,children:n.jsx("span",{className:`av-face av-gen av-${a.shape}`,style:{...t,background:a.bg,color:a.fg,fontSize:l*.62},children:a.glyph})})}const M={merged:{color:"#859900"},active:{color:"#cb4b16"},drift:{color:"#b58900"},pending:{color:"#93a1a1"}},F={added:"+",edited:"~",deleted:"✕",moved:"→"},L=({size:s=12})=>n.jsx(j,{name:"lock",size:s});function E(s){if(!(s!=null&&s.length))return null;const e={};return s.forEach(o=>{e[o.op]=(e[o.op]||0)+1}),Object.entries(e).map(([o,l])=>`${F[o]}${l}`).join(" ")}function G({guides:s=[],expandable:e,kin:o=0}){return n.jsxs("span",{className:"sess-lead",children:[s.map((l,a)=>{const t=a===s.length-1?l?"tee":"elbow":l?"rail":"gap";return n.jsx("span",{className:`sess-rail ${t}`,"aria-hidden":"true"},a)}),e&&n.jsx("span",{className:"sess-fold pod sess-fold-slot","aria-hidden":"true",children:o})]})}function O({expanded:s,rollup:e,kin:o,onToggle:l}){const a=`${s?"Hide":"Show"} ${o} nested session${o===1?"":"s"}`;return n.jsx("button",{type:"button",tabIndex:-1,className:`sess-fold pod sess-fold-control${s?" open":""}`,style:s?{color:e,borderColor:e}:{background:e,borderColor:e},"aria-expanded":s,"aria-label":a,"data-tip":a,onMouseDown:t=>t.preventDefault(),onClick:t=>{t.stopPropagation(),l()},children:o})}function P(){const[s,e]=h.useState(()=>new Set),o=a=>e(t=>{const c=new Set(t);return c.has(a)?c.delete(a):c.add(a),c}),l=h.useCallback(a=>e(t=>{const c=a.filter(u=>u&&!t.has(u));if(!c.length)return t;const d=new Set(t);return c.forEach(u=>d.add(u)),d}),[]);return{expanded:s,toggle:o,expand:l}}function W({s,locked:e,showAvatar:o=!0,lead:l=null}){const a=p(),t=E(s.ops),c=S(s),d=a(`status.${s.status}`);return n.jsxs(n.Fragment,{children:[l,o&&n.jsx(A,{seed:s.id,status:s.status,title:`${k(s)} · ${d} — ${s.id.slice(0,8)}`}),n.jsxs("span",{className:"sess-meta",children:[n.jsx("span",{className:"sess-glyph",style:{color:v[s.status]},"data-tip":d,"aria-label":d,children:z[s.status]}),t&&n.jsx("span",{className:"sess-ops",children:t})]}),n.jsx("span",{className:"sess-id","data-tip":c,children:c}),s.archiveHazard&&n.jsx("span",{className:"sess-hazard","data-tip":s.archiveHazard,"aria-label":s.archiveHazard,children:n.jsx(j,{name:"issue-opened",size:13})}),e&&n.jsx("span",{className:"sess-lock","data-tip":a("sessionWindow.lockedTitle"),children:n.jsx(L,{})})]})}function D({item:s,baseClass:e,onToggle:o}){const l=p(),a=`${e} ${e}-${s.zone}${s.zone==="offline"?` si-zone-fold${s.folded?"":" open"}`:""}`;if(s.zone!=="offline")return n.jsx("div",{className:a,children:l(`sessionZone.${s.zone}`)});const t=l(s.folded?"sessionZone.showHistory":"sessionZone.hideHistory",{n:s.count});return n.jsxs("div",{className:a,children:[s.count>0&&n.jsx("button",{type:"button",tabIndex:-1,className:"si-zone-count","aria-expanded":!s.folded,"aria-label":t,"data-tip":t,onMouseDown:c=>c.preventDefault(),onClick:o,children:s.count}),n.jsx("span",{className:"si-zone-label",children:l(`sessionZone.${s.zone}`)})]})}function U({sessions:s,activeId:e,onPick:o,onOpenSession:l}){const a=p(),{expanded:t,toggle:c}=P(),[d,u]=h.useState(!1),w=h.useMemo(()=>N(s,r=>t.has(r),{zoneFolded:r=>r==="offline"&&!d,keepVisible:r=>r.source===e}),[s,t,d,e]);return n.jsx("div",{className:"sesswin",children:s.length===0?n.jsxs("div",{className:"sesswin-empty",children:[a("sessionWindow.emptyBefore"),n.jsx("kbd",{children:"⏎"}),a("sessionWindow.emptyAfter")]}):w.map(r=>{if(r.type==="zone")return n.jsx(D,{item:r,baseClass:"sesswin-zone",onToggle:()=>u(y=>!y)},`zone-${r.zone}`);const i=r.s,f=i.source===e,$=r.expandable||r.depth?n.jsx(G,{guides:r.guides,expandable:r.expandable,kin:r.kin}):null;return n.jsxs("div",{className:"sess-tree-row sesswin-tree-row",style:{"--sess-fold-indent":`${r.depth*14}px`},children:[n.jsx("button",{type:"button",className:f?"sess-row locked":"sess-row",style:{"--ov":C(i.id)},onClick:()=>o(i),onDoubleClick:()=>l(i.id),"data-tip":a("sessionWindow.rowTitle"),children:n.jsx(W,{s:i,locked:f,lead:$})}),r.expandable&&n.jsx(O,{expanded:r.expanded,rollup:r.rollup,kin:r.kin,onToggle:()=>c(i.id)})]},i.id)})})}export{A,O as F,F as G,L,G as R,D as S,W as a,M as b,U as c,C as l,P as u};