@sma1lboy/kobe 0.8.13 → 0.8.15
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/cli/index.js +237 -237
- package/dist/web-ui/assets/AppShell-CvbbXJ5F.js +5 -0
- package/dist/web-ui/assets/Board-Bv4goPMT.js +1 -0
- package/dist/web-ui/assets/BoardPeek-BkY9UuOO.js +2 -0
- package/dist/web-ui/assets/ChatTerminal-Ci4mphvC.js +144 -0
- package/dist/web-ui/assets/ChatTranscript-ChbwT5aF.js +1 -0
- package/dist/web-ui/assets/ConfirmDialog-DLIhXq7i.js +1 -0
- package/dist/web-ui/assets/{IssueIntakePanel-BKZ4xPU9.js → IssueIntakePanel-GVI4EcXz.js} +1 -1
- package/dist/web-ui/assets/{IssuePeek-D-WmSd4h.js → IssuePeek-GlD8qNa1.js} +1 -1
- package/dist/web-ui/assets/IssuesPage-CCi4SQui.js +1 -0
- package/dist/web-ui/assets/{RichEditor-D3ijdLL3.js → RichEditor-zHTUYZU1.js} +8 -8
- package/dist/web-ui/assets/{SettingsPage-DHswtY0J.js → SettingsPage-DaEgIDC8.js} +2 -2
- package/dist/web-ui/assets/SlideOver-BL608zkP.js +1 -0
- package/dist/web-ui/assets/ViewToggle-CMm5Drjy.js +1 -0
- package/dist/web-ui/assets/{WorkspaceTabs-DYHXrGKS.js → WorkspaceTabs-B_KOnpJT.js} +3 -3
- package/dist/web-ui/assets/active-task-bg1gRRr9.js +1 -0
- package/dist/web-ui/assets/activity-BjTd1D8q.js +1 -0
- package/dist/web-ui/assets/board-BFy_bR1J.js +1 -0
- package/dist/web-ui/assets/columns-3-B2K2DW2I.js +1 -0
- package/dist/web-ui/assets/desktop-BMy3eltH.js +2 -0
- package/dist/web-ui/assets/engines-BpGfH1Zd.js +1 -0
- package/dist/web-ui/assets/{harness-C_Xv6uey.js → harness-BLR9sq9b.js} +1 -1
- package/dist/web-ui/assets/index-CxTIVbF1.js +10 -0
- package/dist/web-ui/assets/index-MuA3NLRu.css +1 -0
- package/dist/web-ui/assets/issues-D1vtEzDa.js +4 -0
- package/dist/web-ui/assets/issues-wKDOEVmV.js +1 -0
- package/dist/web-ui/assets/{lazy-issue-panels-qk01dKTl.js → lazy-issue-panels-CqdZEwZJ.js} +3 -3
- package/dist/web-ui/assets/plus-DZE7jB02.js +1 -0
- package/dist/web-ui/assets/react-dom-BzHW8sem.js +1 -0
- package/dist/web-ui/assets/routes-DoLYSrQS.js +1 -0
- package/dist/web-ui/assets/search-cqUzSqUT.js +1 -0
- package/dist/web-ui/assets/settings-BrzH0i_8.js +1 -0
- package/dist/web-ui/assets/task._taskId-CCkQTzD1.js +1 -0
- package/dist/web-ui/assets/task._taskId-DnczIHek.js +2 -0
- package/dist/web-ui/assets/text-match-DW3sD-Rt.js +1 -0
- package/dist/web-ui/assets/toast-B5B1PUen.js +1 -0
- package/dist/web-ui/assets/triage-B8LSomfv.js +1 -0
- package/dist/web-ui/assets/use-focus-trap-Bxa2qAjl.js +1 -0
- package/dist/web-ui/assets/vendor-CdtpTJrf.js +1 -0
- package/dist/web-ui/assets/with-selector-9aQB38X4.js +1 -0
- package/dist/web-ui/assets/{worktrees-B-T_9aAk.js → worktrees-CyLbHRDQ.js} +1 -1
- package/dist/web-ui/assets/x-BtkkvyxG.js +1 -0
- package/dist/web-ui/index.html +19 -4
- package/package.json +1 -1
- package/dist/web-ui/assets/AppShell-C9U3htvD.js +0 -5
- package/dist/web-ui/assets/Board-D18z5eUn.js +0 -1
- package/dist/web-ui/assets/BoardPeek-CygPs-tH.js +0 -2
- package/dist/web-ui/assets/ChatTerminal-CnTODU1o.js +0 -144
- package/dist/web-ui/assets/ChatTranscript-DvU36asp.js +0 -1
- package/dist/web-ui/assets/ConfirmDialog-ZZGHtIOw.js +0 -1
- package/dist/web-ui/assets/IssuesPage-CP2XFpGL.js +0 -1
- package/dist/web-ui/assets/SlideOver-BPj-zLyf.js +0 -1
- package/dist/web-ui/assets/ViewToggle-hLb5LzyK.js +0 -1
- package/dist/web-ui/assets/board-ajL8CPeo.js +0 -1
- package/dist/web-ui/assets/index-DVMmUb6_.css +0 -1
- package/dist/web-ui/assets/index-Du6zcnqS.js +0 -10
- package/dist/web-ui/assets/issues-DMsS3Wlb.js +0 -1
- package/dist/web-ui/assets/issues-DSkq_Q1O.js +0 -4
- package/dist/web-ui/assets/routes-Ce09jK-9.js +0 -1
- package/dist/web-ui/assets/task._taskId-DMKK_-Fw.js +0 -1
- package/dist/web-ui/assets/text-match-C3BRtNXy.js +0 -1
- package/dist/web-ui/assets/toast-CvhQ8RqX.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{IssuesPage as e}from"./IssuesPage-CP2XFpGL.js";var t=e;export{t as component};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as e,r as t}from"./terminal-B6OlmT6e.js";import{c as n,n as r}from"./tabs-C6drmk5t.js";import{t as i}from"./store-DfONeFqN.js";import{D as a,l as o}from"./index-Du6zcnqS.js";import{t as s}from"./text-match-C3BRtNXy.js";var c=[{key:`backlog`,title:`Backlog`,accent:`text-subtle`,alwaysVisible:!0},{key:`in_progress`,title:`In progress`,accent:`text-kobe-orange`,alwaysVisible:!0},{key:`done`,title:`Done`,accent:`text-kobe-green`,alwaysVisible:!0}],l=new Set([`done`]);function u(e){return e.status===`done`?`done`:e.taskId!==void 0&&e.taskId!==``?`in_progress`:`backlog`}function d(e){return e.taskId!==void 0&&e.taskId!==``}function f(e,t){return e.issue.created===t.issue.created?t.issue.id-e.issue.id:e.issue.created<t.issue.created?1:-1}function p(e){let t=new Map,n=(e,n)=>{let r=t.get(e);r?r.push(n):t.set(e,[n])};for(let t of e)n(u(t.issue),t);for(let e of t.values())e.sort(f);let r=(e,t)=>!l.has(e)||t.length<=30?{cards:t,hiddenCount:0}:{cards:t.slice(0,30),hiddenCount:t.length-30};return c.map(e=>({...e,...r(e.key,t.get(e.key)??[])})).filter(e=>e.alwaysVisible||e.cards.length+e.hiddenCount>0)}function m(e){return e.reduce((e,t)=>e+t.cards.length,0)}function h(e){let t=new Map;for(let n of e){let e=n.repo,r=t.get(e);r?r.push(n):t.set(e,[n])}let n=[...t.keys()];return n.map(e=>({repo:e,label:_(e,n),columns:p(t.get(e)??[])})).sort((e,t)=>e.label.localeCompare(t.label))}function g(e){let t=e.replace(/\/+$/,``);return t.split(`/`).pop()||t}function _(e,t){let n=g(e);return t.some(t=>t!==e&&g(t)===n)?e.replace(/\/+$/,``).split(`/`).slice(-2).join(`/`):n}function v(e,t,n){let r=[];for(let i of t){let t=e[i];if(!(!t||!t.exists))for(let e of t.issues){let t=n.get(`${i}:${e.id}`);r.push(t&&!e.taskId?{repo:i,issue:{...e,taskId:t.taskId}}:{repo:i,issue:e})}}return r}function y(e){let t=new Map;for(let{repo:n}of e)t.set(n,(t.get(n)??0)+1);let n=[...t.keys()];return n.map(e=>({repo:e,label:_(e,n),count:t.get(e)??0})).sort((e,t)=>e.label.localeCompare(t.label))}function b(e,t,n){return e.filter(({repo:e,issue:r})=>n&&e!==n?!1:s(`#${r.id} ${r.title} ${r.body}`,t))}function x(e){let t=v(e.issueData,e.issueRepos,e.pendingLinks),n=y(t),r=h(b(t,e.query,e.repoFilter));return e.repoFilter&&r.length===0&&e.issueRepos.includes(e.repoFilter)&&r.push({repo:e.repoFilter,label:_(e.repoFilter,e.issueRepos),columns:p([])}),{allIssues:t,repoChips:n,projectBoards:r,shownCount:r.reduce((e,t)=>e+m(t.columns),0),hasAnyCard:t.length>0}}async function S(){let t=await e.get(`/api/projects`,{label:`load projects`});return Array.isArray(t.projects)?t.projects.filter(e=>typeof e==`string`):[]}async function C(t){return e.get(`/api/issues`,{query:{repoRoot:t},label:`load issues`})}async function w(t,n){return e.post(`/api/issues`,{repoRoot:t,op:n},{label:`update issues`})}async function T(e,t){return w(e,{type:`create`,...t})}async function E(e,t,n){return w(e,{type:`setStatus`,id:t,status:n})}async function D(e,t,n){return w(e,{type:`update`,id:t,...n})}async function O(e,t,n){return w(e,{type:`link`,id:t,taskId:n})}async function k(e,t){return w(e,{type:`delete`,id:t})}async function A(){let t=await e.getOr(`/api/cli-invocation`,{},{label:`load CLI invocation`});return typeof t.api==`string`&&t.api.trim().length>0?t.api:`kobe api`}var j=[`open`,`doing`,`hold`,`done`],M={open:{title:`Backlog`,accent:`text-kobe-blue`},doing:{title:`In session`,accent:`text-kobe-orange`},hold:{title:`Blocked`,accent:`text-kobe-yellow`},done:{title:`Done`,accent:`text-kobe-green`}};function N(e){return e!==`done`}function P(e,t){let n=(t.query??``).trim().toLowerCase(),r=t.statuses&&t.statuses.length>0?t.statuses:null;return e.filter(e=>r&&!r.includes(e.status)?!1:n?`#${e.id} ${e.title} ${e.body}`.toLowerCase().includes(n):!0)}function F(e){let t={open:[],doing:[],hold:[],done:[]};for(let n of e)t[n.status]?.push(n);let n=(e,t)=>e.created===t.created?t.id-e.id:e.created<t.created?1:-1;return t.open.sort(n),t.doing.sort(n),t.hold.sort(n),t.done.sort((e,t)=>t.id-e.id),t}function I(e,t=[]){let n=new Map;for(let e of t)e.trim().length>0&&n.set(e,0);let r=new Set(e.filter(e=>!e.archived&&e.kind===`main`&&e.repo).map(e=>e.repo));for(let e of r)n.set(e,n.get(e)??0);let i=new Set(n.keys());for(let t of e)t.archived||!t.repo||i.size>0&&!i.has(t.repo)||n.set(t.repo,(n.get(t.repo)??0)+1);let a=[...n.keys()];return a.map(e=>({repo:e,label:_(e,a),count:n.get(e)??0})).sort((e,t)=>e.label.localeCompare(t.label))}function L(e,t){return e.length===0?null:t&&e.some(e=>e.repo===t)?t:e[0]?.repo??null}function R(e,t=`kobe api`){let n=[`Work on user story #${e.id}: ${e.title}`,``],r=e.body.trim();return r&&n.push(r,``),n.push(`Treat this as the story's dedicated kobe task session: work only in this task worktree, and preserve any repo init instructions already delivered to the session.`,`Before finishing, verify the acceptance criteria implied by the story and summarize what changed plus any verification still needed.`,`Then merge the task branch back into the current project's main branch after the worktree is clean and checks pass.`,`When the work lands, run: ${t} issue-set-status --repo . --id ${e.id} --status done`),n.join(`
|
|
2
|
-
`)}function z(e,t=`kobe api`){let n=[`Work on user story #${e.id}: ${e.title}`,``],r=e.body.trim();return r&&n.push(r,``),n.push(`You are working directly in the project checkout — no dedicated worktree or branch was created. Keep changes reviewable and do not switch branches unless asked.`,`Before finishing, verify the acceptance criteria implied by the story and summarize what changed plus any verification still needed.`,`When the work lands, run: ${t} issue-set-status --repo . --id ${e.id} --status done`),n.join(`
|
|
3
|
-
`)}function B(e,t=`kobe api`){return[`Finish user story #${e.id}: ${e.title}`,``,`Verify the acceptance criteria implied by the story, then summarize what changed and any verification still needed.`,`Then merge this task branch back into the current project's main branch after the worktree is clean and checks pass. Resolve conflicts if needed.`,`When the work lands, run: ${t} issue-set-status --repo . --id ${e.id} --status done`].join(`
|
|
4
|
-
`)}async function V(e,r,i,o){let s=await H(e,r,i,o);a(s);let c=await A().catch(()=>`kobe api`);return await t(n(s),s,R(r,c)),{taskId:s}}async function H(e,t,n,r){let a=n?.trim()||await o(),{taskId:s}=await i(`task.create`,{repo:e,title:`#${t.id} ${t.title}`,...a?{vendor:a}:{},...r?.trim()?{effort:r.trim()}:{}});return await O(e,t.id,s).catch(()=>{}),s}async function U(e,n,o={}){let s=o.placement??`task`;if(s===`task`){let{taskId:t}=await V(e,n,o.vendor,o.effort);return{taskId:t,workspaceTaskId:t}}let c=await A().catch(()=>`kobe api`),{task:l}=await i(`task.ensureMain`,{repo:e}),u=l.id;if(s===`projectWorktree`){let i=await H(e,n,o.vendor,o.effort);return a(u),await t(r(u,i),i,R(n,c)),{taskId:i,workspaceTaskId:u}}let d=o.vendor?.trim();return d&&await i(`task.setVendor`,{taskId:u,vendor:d}),a(u),await E(e,n.id,`doing`).catch(()=>{}),await t(r(u),u,z(n,c)),{taskId:u,workspaceTaskId:u}}async function W(e,r){let i=await A().catch(()=>`kobe api`);await t(n(e),e,B(r,i))}export{d as _,k as a,P as c,W as d,V as f,x as g,D as h,T as i,F as l,U as m,M as n,C as o,L as p,N as r,S as s,j as t,I as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{AppShell as e}from"./AppShell-C9U3htvD.js";var t=e;export{t as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./terminal-B6OlmT6e.js";import{_ as t,f as n,y as r}from"./tabs-C6drmk5t.js";import{d as i}from"./createLucideIcon-B3ImGkvG.js";import{D as a,t as o}from"./index-Du6zcnqS.js";import{AppShell as s}from"./AppShell-C9U3htvD.js";var c=e(r()),l=i();function u(){let{taskId:e}=o.useParams(),{selectedTaskId:r}=t();return(0,c.useEffect)(()=>{!e||e===r||(n(e),a(e))},[e,r]),(0,l.jsx)(s,{})}export{u as component};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function e(e,t){let n=t.trim().toLowerCase();return n?e.toLowerCase().includes(n):!0}export{e as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{l as e}from"./terminal-B6OlmT6e.js";import{y as t}from"./tabs-C6drmk5t.js";import{t as n}from"./external-store-BMGmoHuF.js";var r=e(t(),1),i=r.use,a=typeof window<`u`?r.useLayoutEffect:r.useEffect;function o(e){let t=r.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function s(e,t,n={},i={}){r.useEffect(()=>{if(!e.current||i.disabled||typeof IntersectionObserver!=`function`)return;let r=new IntersectionObserver(([e])=>{t(e)},n);return r.observe(e.current),()=>{r.disconnect()}},[t,n,i.disabled,e])}function c(e){let t=r.useRef(null);return r.useImperativeHandle(e,()=>t.current,[]),t}var l=r.createContext(null);function u(e){return r.useContext(l)}function d(e){let t=u();return r.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}var f=5e3,p=n([]),m=0;function h(e,t){m+=1;let n={id:m,kind:e,message:t};p.update(e=>[...e.slice(-3),n]),window.setTimeout(()=>g(n.id),f)}function g(e){let t=p.getSnapshot();t.some(t=>t.id===e)&&p.replace(t.filter(t=>t.id!==e))}function _(e,t){return`${e}: ${t instanceof Error?t.message:String(t)}`}function v(e,t){h(`error`,_(e,t))}function y(){return p.useSnapshot()}export{d as a,i as c,a as d,o as f,y as i,c as l,h as n,u as o,v as r,l as s,g as t,s as u};
|