@jiggai/kitchen 0.3.14 → 0.3.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.
Files changed (100) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +2 -2
  3. package/.next/server/app/_global-error.html +2 -2
  4. package/.next/server/app/_global-error.rsc +1 -1
  5. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  6. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  10. package/.next/server/app/_not-found.html +1 -1
  11. package/.next/server/app/_not-found.rsc +2 -2
  12. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  13. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  18. package/.next/server/app/channels.html +2 -2
  19. package/.next/server/app/channels.rsc +2 -2
  20. package/.next/server/app/channels.segments/_full.segment.rsc +2 -2
  21. package/.next/server/app/channels.segments/_head.segment.rsc +1 -1
  22. package/.next/server/app/channels.segments/_index.segment.rsc +1 -1
  23. package/.next/server/app/channels.segments/_tree.segment.rsc +1 -1
  24. package/.next/server/app/channels.segments/channels/__PAGE__.segment.rsc +1 -1
  25. package/.next/server/app/channels.segments/channels.segment.rsc +1 -1
  26. package/.next/server/app/goals/new.html +2 -2
  27. package/.next/server/app/goals/new.rsc +2 -2
  28. package/.next/server/app/goals/new.segments/_full.segment.rsc +2 -2
  29. package/.next/server/app/goals/new.segments/_head.segment.rsc +1 -1
  30. package/.next/server/app/goals/new.segments/_index.segment.rsc +1 -1
  31. package/.next/server/app/goals/new.segments/_tree.segment.rsc +1 -1
  32. package/.next/server/app/goals/new.segments/goals/new/__PAGE__.segment.rsc +1 -1
  33. package/.next/server/app/goals/new.segments/goals/new.segment.rsc +1 -1
  34. package/.next/server/app/goals/new.segments/goals.segment.rsc +1 -1
  35. package/.next/server/app/goals.html +1 -1
  36. package/.next/server/app/goals.rsc +2 -2
  37. package/.next/server/app/goals.segments/_full.segment.rsc +2 -2
  38. package/.next/server/app/goals.segments/_head.segment.rsc +1 -1
  39. package/.next/server/app/goals.segments/_index.segment.rsc +1 -1
  40. package/.next/server/app/goals.segments/_tree.segment.rsc +1 -1
  41. package/.next/server/app/goals.segments/goals/__PAGE__.segment.rsc +1 -1
  42. package/.next/server/app/goals.segments/goals.segment.rsc +1 -1
  43. package/.next/server/app/settings.html +1 -1
  44. package/.next/server/app/settings.rsc +2 -2
  45. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  46. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  47. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  48. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  49. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +1 -1
  50. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  51. package/.next/server/app/teams/[teamId]/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/teams/[teamId]/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/teams/[teamId]/tickets/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/tickets/[ticket]/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/tickets/page_client-reference-manifest.js +1 -1
  56. package/.next/server/chunks/[root-of-the-server]__05f5e243._.js +1 -1
  57. package/.next/server/chunks/[root-of-the-server]__05f5e243._.js.map +1 -1
  58. package/.next/server/chunks/[root-of-the-server]__47eb3111._.js +1 -1
  59. package/.next/server/chunks/[root-of-the-server]__47eb3111._.js.map +1 -1
  60. package/.next/server/chunks/[root-of-the-server]__542a081b._.js +1 -1
  61. package/.next/server/chunks/[root-of-the-server]__542a081b._.js.map +1 -1
  62. package/.next/server/chunks/[root-of-the-server]__5ceff0f3._.js +3 -3
  63. package/.next/server/chunks/[root-of-the-server]__5ceff0f3._.js.map +1 -1
  64. package/.next/server/chunks/[root-of-the-server]__5ea38a67._.js +1 -1
  65. package/.next/server/chunks/[root-of-the-server]__5ea38a67._.js.map +1 -1
  66. package/.next/server/chunks/[root-of-the-server]__b002764e._.js +1 -1
  67. package/.next/server/chunks/[root-of-the-server]__b002764e._.js.map +1 -1
  68. package/.next/server/chunks/[root-of-the-server]__d924e5ac._.js +1 -1
  69. package/.next/server/chunks/[root-of-the-server]__d924e5ac._.js.map +1 -1
  70. package/.next/server/chunks/[root-of-the-server]__e063a986._.js +1 -1
  71. package/.next/server/chunks/[root-of-the-server]__e063a986._.js.map +1 -1
  72. package/.next/server/chunks/[root-of-the-server]__ff69832c._.js +2 -2
  73. package/.next/server/chunks/[root-of-the-server]__ff69832c._.js.map +1 -1
  74. package/.next/server/chunks/ssr/[root-of-the-server]__17b046ea._.js +1 -1
  75. package/.next/server/chunks/ssr/[root-of-the-server]__17b046ea._.js.map +1 -1
  76. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js +1 -1
  77. package/.next/server/chunks/ssr/[root-of-the-server]__3b880807._.js.map +1 -1
  78. package/.next/server/chunks/ssr/[root-of-the-server]__49281b4c._.js +1 -1
  79. package/.next/server/chunks/ssr/[root-of-the-server]__49281b4c._.js.map +1 -1
  80. package/.next/server/chunks/ssr/[root-of-the-server]__9a7d79aa._.js +1 -1
  81. package/.next/server/chunks/ssr/[root-of-the-server]__9a7d79aa._.js.map +1 -1
  82. package/.next/server/chunks/ssr/[root-of-the-server]__c777e326._.js +1 -1
  83. package/.next/server/chunks/ssr/[root-of-the-server]__c777e326._.js.map +1 -1
  84. package/.next/server/chunks/ssr/src_59477309._.js +1 -1
  85. package/.next/server/chunks/ssr/src_59477309._.js.map +1 -1
  86. package/.next/server/chunks/ssr/src_app_teams_[teamId]_team-editor_index_tsx_e68e9cbc._.js +1 -1
  87. package/.next/server/chunks/ssr/src_app_teams_[teamId]_team-editor_index_tsx_e68e9cbc._.js.map +1 -1
  88. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js +1 -1
  89. package/.next/server/chunks/ssr/src_app_tickets_TicketsBoardClient_tsx_5e156ef3._.js.map +1 -1
  90. package/.next/server/pages/404.html +1 -1
  91. package/.next/server/pages/500.html +2 -2
  92. package/.next/static/chunks/4a6dcf80b293d7a4.js +1 -0
  93. package/.next/static/chunks/{5f77499ca309ab9d.js → a719c5f36ffeec2a.js} +1 -1
  94. package/.next/static/chunks/{febbbb81927c8042.js → e083bcf4a197beae.js} +1 -1
  95. package/openclaw.plugin.json +1 -1
  96. package/package.json +1 -1
  97. package/.next/static/chunks/be12a66bd736fad8.js +0 -1
  98. /package/.next/static/{cp-U4VbwzSh2raGh9eqcl → Wr2xJ4v7YSX2YxupoHWtl}/_buildManifest.js +0 -0
  99. /package/.next/static/{cp-U4VbwzSh2raGh9eqcl → Wr2xJ4v7YSX2YxupoHWtl}/_clientMiddlewareManifest.json +0 -0
  100. /package/.next/static/{cp-U4VbwzSh2raGh9eqcl → Wr2xJ4v7YSX2YxupoHWtl}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,57915,e=>{"use strict";var t=e.i(43476),r=e.i(22016),a=e.i(71645);let s=[{key:"backlog",label:"Backlog"},{key:"in-progress",label:"In progress"},{key:"testing",label:"Testing"},{key:"done",label:"Done"}],l=[{key:"all",label:"All"},{key:"today",label:"Today"},{key:"yesterday",label:"Yesterday"},{key:"7d",label:"Last 7 days"},{key:"30d",label:"Last 30 days"},{key:"custom",label:"Custom range"}];function n(e){if(!e)return null;let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let r=new Date(Number(t[1]),Number(t[2])-1,Number(t[3]),0,0,0,0);return Number.isFinite(r.getTime())?r:null}function c({tickets:e,basePath:c,selectedTeamId:o}){let d=o?`ck-tickets-date-filter:${o}`:"ck-tickets-date-filter:all",[i,x]=(0,a.useState)(()=>{try{let e=(localStorage.getItem(d)||"").trim();if("all"===e||"today"===e||"yesterday"===e||"7d"===e||"30d"===e||"custom"===e)return e;return"30d"}catch{return"30d"}}),[m,u]=(0,a.useState)(""),[b,g]=(0,a.useState)(""),h=(0,a.useMemo)(()=>{var t;if("all"===i)return e;let r=new Date((t=new Date).getFullYear(),t.getMonth(),t.getDate(),0,0,0,0),a=new Date(r);a.setDate(a.getDate()-1);let s=null,l=null;if("today"===i)s=r,(l=new Date(r)).setDate(l.getDate()+1);else if("yesterday"===i)s=a,l=r;else if("7d"===i)(s=new Date(r)).setDate(s.getDate()-6);else if("30d"===i)(s=new Date(r)).setDate(s.getDate()-29);else if("custom"===i){s=n(m);let e=n(b);e&&(l=new Date(e)).setDate(l.getDate()+1)}return e.filter(e=>{let t=new Date(e.updatedAt);return!!Number.isFinite(t.getTime())&&(!s||!(t<s))&&(!l||!(t>=l))})},[e,i,m,b]),p=(0,a.useMemo)(()=>{let e={backlog:[],"in-progress":[],testing:[],done:[]};for(let t of h)e[t.stage].push(t);for(let t of Object.keys(e))e[t].sort((e,t)=>e.number-t.number);return e},[h]);return(0,a.useEffect)(()=>{try{localStorage.setItem(d,i)}catch{}},[i,d]),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Tickets"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:["Viewing: ",(0,t.jsx)("span",{className:"font-medium text-[color:var(--ck-text-secondary)]",children:o??"all"})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["Time",(0,t.jsx)("select",{className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs",value:i,onChange:e=>x(e.target.value),children:l.map(e=>(0,t.jsx)("option",{value:e.key,children:e.label},e.key))})]}),"custom"===i?(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["From",(0,t.jsx)("input",{type:"date",value:m,onChange:e=>u(e.target.value),className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs"})]}),(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["To",(0,t.jsx)("input",{type:"date",value:b,onChange:e=>g(e.target.value),className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs"})]})]}):null]})]}),(0,t.jsx)("div",{className:"grid gap-4 lg:grid-cols-4",children:s.map(({key:e,label:a})=>(0,t.jsxs)("section",{className:"ck-glass p-3",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold tracking-tight",children:a}),(0,t.jsx)("span",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:p[e].length})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===p[e].length?(0,t.jsx)("div",{className:"rounded-[var(--ck-radius-sm)] border border-dashed border-[color:var(--ck-border-subtle)] p-3 text-xs text-[color:var(--ck-text-tertiary)]",children:"Empty"}):null,p[e].map(e=>{var a;let s;return(0,t.jsxs)("div",{className:"rounded-[var(--ck-radius-sm)] border border-[color:var(--ck-border-subtle)] bg-[color:var(--ck-bg-glass-strong)] p-3",children:[(0,t.jsxs)(r.default,{href:(s=`${c}/${encodeURIComponent(e.id)}`,o?`${s}?team=${encodeURIComponent(o)}`:s),prefetch:!1,className:"block text-sm font-medium text-[color:var(--ck-text-primary)] hover:underline",children:[String(e.number).padStart(4,"0")," — ",e.title]}),(0,t.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("span",{className:"rounded bg-white/5 px-1.5 py-0.5",children:e.teamId}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:e.owner?`Owner: ${e.owner}`:"Owner: —"}),(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:["Age: ",(a=e.ageHours)<1?`${Math.max(1,Math.round(60*a))}m`:a<48?`${Math.round(a)}h`:`${Math.round(a/24)}d`]})]})]},`${e.teamId}:${e.id}`)})]})]},e))}),(0,t.jsx)("p",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"Source of truth: ticket markdown files in the team workspace."})]})}e.s(["TicketsBoardClient",()=>c])}]);
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,57915,e=>{"use strict";var t=e.i(43476),r=e.i(22016),a=e.i(71645);let s=[{key:"backlog",label:"Backlog"},{key:"in-progress",label:"In progress"},{key:"testing",label:"Testing"},{key:"done",label:"Done"}],l=[{key:"all",label:"All"},{key:"today",label:"Today"},{key:"yesterday",label:"Yesterday"},{key:"7d",label:"Last 7 days"},{key:"30d",label:"Last 30 days"},{key:"custom",label:"Custom range"}];function n(e){if(!e)return null;let t=e.match(/^(\d{4})-(\d{2})-(\d{2})$/);if(!t)return null;let r=new Date(Number(t[1]),Number(t[2])-1,Number(t[3]),0,0,0,0);return Number.isFinite(r.getTime())?r:null}function c({tickets:e,basePath:c,selectedTeamId:o}){let d=o?`ck-tickets-date-filter:${o}`:"ck-tickets-date-filter:all",[i,x]=(0,a.useState)(()=>{try{let e=(localStorage.getItem(d)||"").trim();if("all"===e||"today"===e||"yesterday"===e||"7d"===e||"30d"===e||"custom"===e)return e;return"30d"}catch{return"30d"}}),[m,u]=(0,a.useState)(""),[b,g]=(0,a.useState)(""),h=(0,a.useMemo)(()=>{var t;if("all"===i)return e;let r=new Date((t=new Date).getFullYear(),t.getMonth(),t.getDate(),0,0,0,0),a=new Date(r);a.setDate(a.getDate()-1);let s=null,l=null;if("today"===i)s=r,(l=new Date(r)).setDate(l.getDate()+1);else if("yesterday"===i)s=a,l=r;else if("7d"===i)(s=new Date(r)).setDate(s.getDate()-6);else if("30d"===i)(s=new Date(r)).setDate(s.getDate()-29);else if("custom"===i){s=n(m);let e=n(b);e&&(l=new Date(e)).setDate(l.getDate()+1)}return e.filter(e=>{let t=new Date(e.updatedAt);return!!Number.isFinite(t.getTime())&&(!s||!(t<s))&&(!l||!(t>=l))})},[e,i,m,b]),p=(0,a.useMemo)(()=>{let e={backlog:[],"in-progress":[],testing:[],done:[]};for(let t of h)e[t.stage].push(t);for(let t of Object.keys(e))e[t].sort((e,t)=>e.number-t.number);return e},[h]);return(0,a.useEffect)(()=>{try{localStorage.setItem(d,i)}catch{}},[i,d]),(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h1",{className:"text-2xl font-semibold tracking-tight",children:"Tickets"}),(0,t.jsxs)("p",{className:"mt-1 text-xs text-[color:var(--ck-text-tertiary)]",children:["Viewing: ",(0,t.jsx)("span",{className:"font-medium text-[color:var(--ck-text-secondary)]",children:o??"all"})]})]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["Time",(0,t.jsx)("select",{className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs",value:i,onChange:e=>x(e.target.value),children:l.map(e=>(0,t.jsx)("option",{value:e.key,children:e.label},e.key))})]}),"custom"===i?(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["From",(0,t.jsx)("input",{type:"date",value:m,onChange:e=>u(e.target.value),className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs"})]}),(0,t.jsxs)("label",{className:"text-xs text-[color:var(--ck-text-secondary)]",children:["To",(0,t.jsx)("input",{type:"date",value:b,onChange:e=>g(e.target.value),className:"ml-2 rounded border border-[color:var(--ck-border-subtle)] bg-transparent px-2 py-1 text-xs"})]})]}):null]})]}),(0,t.jsx)("div",{className:"grid gap-4 lg:grid-cols-4",children:s.map(({key:e,label:a})=>(0,t.jsxs)("section",{className:"ck-glass p-3",children:[(0,t.jsxs)("div",{className:"mb-3 flex items-center justify-between",children:[(0,t.jsx)("h2",{className:"text-sm font-semibold tracking-tight",children:a}),(0,t.jsx)("span",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:p[e].length})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[0===p[e].length?(0,t.jsx)("div",{className:"rounded-[var(--ck-radius-sm)] border border-dashed border-[color:var(--ck-border-subtle)] p-3 text-xs text-[color:var(--ck-text-tertiary)]",children:"Empty"}):null,p[e].map(e=>{var a;let s,l;return(0,t.jsxs)("div",{className:"rounded-[var(--ck-radius-sm)] border border-[color:var(--ck-border-subtle)] bg-[color:var(--ck-bg-glass-strong)] p-3",children:[(0,t.jsxs)(r.default,{href:(s=`${c}/${encodeURIComponent(e.id)}`,(l=o||e.teamId)?`${s}?team=${encodeURIComponent(l)}`:s),prefetch:!1,className:"block text-sm font-medium text-[color:var(--ck-text-primary)] hover:underline",children:[String(e.number).padStart(4,"0")," — ",e.title]}),(0,t.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-x-2 gap-y-1 text-xs text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("span",{className:"rounded bg-white/5 px-1.5 py-0.5",children:e.teamId}),(0,t.jsx)("span",{children:"·"}),(0,t.jsx)("span",{children:e.owner?`Owner: ${e.owner}`:"Owner: —"}),(0,t.jsx)("span",{children:"·"}),(0,t.jsxs)("span",{children:["Age: ",(a=e.ageHours)<1?`${Math.max(1,Math.round(60*a))}m`:a<48?`${Math.round(a)}h`:`${Math.round(a/24)}d`]})]})]},`${e.teamId}:${e.id}`)})]})]},e))}),(0,t.jsx)("p",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:"Source of truth: ticket markdown files in the team workspace."})]})}e.s(["TicketsBoardClient",()=>c])}]);
@@ -2,7 +2,7 @@
2
2
  "id": "kitchen",
3
3
  "name": "ClawKitchen",
4
4
  "description": "Local UI for managing OpenClaw recipes, teams, agents, cron jobs, and skills.",
5
- "version": "0.3.14",
5
+ "version": "0.3.15",
6
6
  "configSchema": {
7
7
  "type": "object",
8
8
  "additionalProperties": false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jiggai/kitchen",
3
- "version": "0.3.14",
3
+ "version": "0.3.15",
4
4
  "private": false,
5
5
  "openclaw": {
6
6
  "extensions": [
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,82310,e=>{"use strict";function t(e){return e instanceof Error?e.message:String(e)}e.s(["errorMessage",()=>t])},36288,e=>{"use strict";var t=e.i(43476),r=e.i(22016),s=e.i(18566),a=e.i(71645),o=e.i(76972),n=e.i(82310),c=e.i(42771);let l=new Set(["lead","dev","qa","tester","agent","system"]);function i({teamId:e,ticket:r,currentOwner:o}){let n=(0,s.useRouter)(),[c,l]=(0,a.useState)([]),[i,d]=(0,a.useState)(o??""),[m,x]=(0,a.useState)(!1),[u,b]=(0,a.useState)(null);(0,a.useEffect)(()=>{let t=!1;return(async()=>{try{let r=e?`/api/teams/${encodeURIComponent(e)}/tickets/assignees`:"/api/tickets/assignees",s=await fetch(r,{cache:"no-store"}),a=await s.json();if(t)return;l(Array.isArray(a.assignees)?a.assignees:[])}catch{if(t)return;l([])}})(),()=>{t=!0}},[]);let h=(0,a.useMemo)(()=>{let e=new Set(c);return o&&e.add(o),Array.from(e).sort()},[c,o]);async function p(){x(!0),b(null);try{let t=e?`/api/teams/${encodeURIComponent(e)}/tickets/assign`:"/api/tickets/assign",s=await fetch(t,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:r,assignee:i})}),a=await s.json();if(!s.ok)return void b(a.error||"Assign failed");n.refresh()}catch{b("Assign failed")}finally{x(!1)}}return(0,t.jsxs)("div",{className:"ck-glass p-4",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-tertiary)]",children:"Assignee"}),(0,t.jsxs)("select",{className:"rounded-md border border-white/10 bg-black/20 px-3 py-2 text-sm text-[color:var(--ck-text-primary)]",value:i,onChange:e=>d(e.target.value),children:[(0,t.jsx)("option",{value:"",disabled:!0,children:"Select…"}),h.map(e=>(0,t.jsx)("option",{value:e,children:e},e))]}),(0,t.jsx)("button",{type:"button",onClick:p,disabled:m||!i||i===(o??""),className:"rounded-md bg-emerald-600 px-3 py-2 text-sm font-semibold text-white hover:bg-emerald-500 disabled:cursor-not-allowed disabled:opacity-50",children:m?"Assigning…":"Assign"}),o?(0,t.jsxs)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:["Currently: ",o]}):null]}),u?(0,t.jsx)("div",{className:"mt-2 text-xs text-red-300",children:u}):null]})}function d(e,t){return t||0==e.trim().length}function m(e){let m=(0,s.useRouter)(),x=(0,o.useToast)(),[u,b]=(0,a.useTransition)(),[h,p]=(0,a.useState)(null),[k,v]=(0,a.useState)(null),f=(0,a.useMemo)(()=>(function(e){let t=function(e){let t=/^## Comments\s*$/gim.exec(e);if(!t)return null;let r=t.index+t[0].length,s=e.slice(r).search(/^##\s+/m),a=-1===s?e.length:r+s;return{start:r,end:a}}(e);if(!t)return[];let r=e.slice(t.start,t.end).replace(/^\s+/,"").split("\n"),s=[],a=null,o=/^- \*\*(.+?)\*\*\s+—\s+(.*)$/;for(let e of r){let t=e.replace(/\r$/,""),r=t.match(o);if(r){a&&s.push({...a,body:a.body.trimEnd()});let e=r[1].trim(),t=r[2].trim(),o=t.indexOf(":"),n=(o>=0?t.slice(0,o):t).trim()||"unknown",c=o>=0?t.slice(o+1).trimStart():"",i=function(e){let t=e?.trim()||"unknown",r=t.match(/^(.*?)\s*\((.*?)\)\s*$/);if(r){let e=r[1].trim()||"unknown",s=r[2].trim();return{name:e,role:s&&s.toLowerCase()!=e.toLowerCase()?s:void 0,raw:t}}for(let e of[" — "," - "," | "]){if(!t.includes(e))continue;let[r,s]=t.split(e).map(e=>e.trim()).filter(Boolean);if(!r||!s)break;let a=l.has(r.toLowerCase()),o=l.has(s.toLowerCase());if(a&&!o)return{name:s,role:r,raw:t};return{name:r,role:s,raw:t}}return{name:t,raw:t}}(n);a={timestamp:e,authorName:i.name,authorRole:i.role,authorRaw:i.raw,body:c?c+"\n":""};continue}a&&(a.body+=t.replace(/^\s{0,2}/,"")+"\n")}return a&&s.push({...a,body:a.body.trimEnd()}),s})(e.markdown),[e.markdown]),[g,y]=(0,a.useState)(""),[j,w]=(0,a.useState)("");async function N(){p(null),await (0,c.fetchJson)(`/api/teams/${encodeURIComponent(e.teamId)}/tickets/move-to-goals`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:e.ticketId})})}async function C(){p(null),await (0,c.fetchJson)(`/api/teams/${encodeURIComponent(e.teamId)}/tickets/delete`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:e.ticketId})})}async function S(t){p(null),await (0,c.fetchJson)(`/api/teams/${encodeURIComponent(e.teamId)}/tickets/move`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:e.ticketId,to:t})})}async function T(){p(null);let t=j.trim();if(!t)throw Error("Comment cannot be empty.");await (0,c.fetchJson)(`/api/teams/${encodeURIComponent(e.teamId)}/tickets/comment`,{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({ticket:e.ticketId,author:g.trim()||void 0,comment:t})}),w(""),x.push({kind:"success",message:"Comment added."}),m.refresh()}return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)(r.default,{href:e.backHref??"/tickets",className:"text-sm font-medium hover:underline",children:"← Back"}),(0,t.jsx)("span",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:e.file})]}),h?(0,t.jsx)("div",{className:"ck-glass border border-[color:var(--ck-border-strong)] p-3 text-sm text-[color:var(--ck-text-primary)]",children:h}):null,(0,t.jsxs)("div",{className:"ck-glass p-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[color:var(--ck-text-primary)]",children:"Ticket"}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center justify-end gap-2",children:[(0,t.jsxs)("label",{className:"flex items-center gap-2 text-xs text-[color:var(--ck-text-secondary)]",children:[(0,t.jsx)("span",{children:"Status"}),(0,t.jsxs)("select",{className:"rounded border border-[color:var(--ck-border-subtle)] bg-black/20 px-2 py-1 text-xs text-[color:var(--ck-text-primary)]",disabled:u,value:e.stage,onChange:t=>{let r=t.target.value;if(r!==e.stage){if("done"===r&&!window.confirm("Mark this ticket done? This will move the file to work/done and add an audit comment."))return;b(()=>{S(r).then(()=>{x.push({kind:"success",message:`Status updated to ${r}.`}),m.refresh()}).catch(e=>p((0,n.errorMessage)(e)))})}},children:[(0,t.jsx)("option",{value:"backlog",children:"backlog"}),(0,t.jsx)("option",{value:"in-progress",children:"in-progress"}),(0,t.jsx)("option",{value:"testing",children:"testing"}),(0,t.jsx)("option",{value:"done",children:"done"})]})]}),(0,t.jsx)("button",{className:"rounded border border-[color:var(--ck-border-subtle)] px-3 py-1.5 text-xs font-medium text-[color:var(--ck-text-secondary)] hover:border-[color:var(--ck-border-strong)]",onClick:()=>v({kind:"goals"}),disabled:u,children:"Move to Goals"}),(0,t.jsx)("button",{className:"rounded border border-[color:var(--ck-accent-red)] bg-[color:var(--ck-accent-red-soft)] px-3 py-1.5 text-xs font-medium text-[color:var(--ck-accent-red)] hover:bg-[color:var(--ck-accent-red-soft-strong)]",onClick:()=>v({kind:"delete"}),disabled:u,children:"Delete Ticket"})]})]}),void 0!==e.currentOwner?(0,t.jsx)("div",{className:"mt-4",children:(0,t.jsx)(i,{teamId:e.teamId,ticket:e.ticketId,currentOwner:e.currentOwner??null})}):null,(0,t.jsxs)("div",{className:"mt-6 border-t border-[color:var(--ck-border-subtle)] pt-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[color:var(--ck-text-primary)]",children:"Comments"}),(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:f.length})]}),f.length?(0,t.jsx)("div",{className:"mt-3 space-y-3",children:f.map((e,r)=>(0,t.jsxs)("div",{className:"rounded-[var(--ck-radius-sm)] border border-[color:var(--ck-border-subtle)] bg-black/10 p-3",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-baseline gap-2",children:[(0,t.jsx)("div",{className:"text-xs font-medium text-[color:var(--ck-text-primary)]",children:e.authorName}),e.authorRole?(0,t.jsx)("div",{className:"rounded border border-[color:var(--ck-border-subtle)] bg-black/10 px-1.5 py-0.5 text-[10px] font-medium text-[color:var(--ck-text-tertiary)]",children:e.authorRole}):null]}),(0,t.jsx)("div",{className:"text-xs text-[color:var(--ck-text-tertiary)]",children:e.timestamp})]}),(0,t.jsx)("div",{className:"mt-2 whitespace-pre-wrap break-words text-sm leading-6 text-[color:var(--ck-text-secondary)]",children:e.body})]},`${e.timestamp}-${r}`))}):(0,t.jsx)("div",{className:"mt-3 text-sm text-[color:var(--ck-text-secondary)]",children:"No comments yet."}),(0,t.jsxs)("div",{className:"mt-4 border-t border-[color:var(--ck-border-subtle)] pt-4",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[color:var(--ck-text-primary)]",children:"Add comment"}),(0,t.jsxs)("div",{className:"mt-3 grid gap-3",children:[(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",htmlFor:"ck-comment-author",children:"Author (optional)"}),(0,t.jsx)("input",{id:"ck-comment-author",value:g,onChange:e=>y(e.target.value),placeholder:"unknown",className:"w-full rounded border border-[color:var(--ck-border-subtle)] bg-black/20 px-3 py-2 text-sm text-[color:var(--ck-text-primary)] outline-none focus:border-[color:var(--ck-border-strong)]",disabled:u})]}),(0,t.jsxs)("div",{className:"grid gap-1",children:[(0,t.jsx)("label",{className:"text-xs font-medium text-[color:var(--ck-text-secondary)]",htmlFor:"ck-comment-body",children:"Comment"}),(0,t.jsx)("textarea",{id:"ck-comment-body",value:j,onChange:e=>w(e.target.value),rows:4,className:"w-full rounded border border-[color:var(--ck-border-subtle)] bg-black/20 px-3 py-2 text-sm text-[color:var(--ck-text-primary)] outline-none focus:border-[color:var(--ck-border-strong)]",disabled:u})]}),(0,t.jsx)("div",{className:"flex items-center justify-end",children:(0,t.jsx)("button",{type:"button","aria-busy":u,className:"rounded-[var(--ck-radius-sm)] bg-[color:var(--ck-accent)] px-3 py-2 text-xs font-semibold text-black transition hover:brightness-110 active:brightness-95 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[color:var(--ck-border-strong)] focus-visible:ring-offset-2 focus-visible:ring-offset-black/30 disabled:cursor-not-allowed disabled:border disabled:border-[color:var(--ck-border-subtle)] disabled:bg-[color:var(--ck-bg-glass)] disabled:text-[color:var(--ck-text-tertiary)]",onClick:()=>{b(()=>{T().catch(e=>p((0,n.errorMessage)(e)))})},disabled:d(j,u),children:u?"Posting…":"Post comment"})})]})]})]})]}),(0,t.jsx)("div",{className:"ck-glass p-6",children:(0,t.jsx)("pre",{className:"whitespace-pre-wrap break-words text-sm leading-6 text-[color:var(--ck-text-primary)]",children:e.markdown})}),k?(0,t.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 p-4",children:(0,t.jsxs)("div",{className:"ck-glass w-full max-w-lg rounded-[var(--ck-radius-md)] border border-[color:var(--ck-border-strong)] p-4",children:[(0,t.jsx)("div",{className:"text-sm font-semibold text-[color:var(--ck-text-primary)]",children:"goals"===k.kind?"Move to Goals":"Delete ticket"}),(0,t.jsx)("div",{className:"mt-2 text-sm text-[color:var(--ck-text-secondary)]",children:"goals"===k.kind?(0,t.jsxs)(t.Fragment,{children:["This will move the ticket out of the work lanes into ",(0,t.jsx)("code",{children:"work/goals/"})," so it won’t be picked up by automation."]}):(0,t.jsx)(t.Fragment,{children:"This will permanently remove the ticket markdown file. Assignment stubs (if any) will be archived."})}),(0,t.jsxs)("div",{className:"mt-4 flex items-center justify-end gap-2",children:[(0,t.jsx)("button",{className:"rounded border border-[color:var(--ck-border-subtle)] px-3 py-1.5 text-xs text-[color:var(--ck-text-secondary)]",onClick:()=>v(null),disabled:u,children:"Cancel"}),(0,t.jsx)("button",{className:"delete"===k.kind?"rounded bg-[color:var(--ck-accent-red)] px-3 py-1.5 text-xs font-medium text-white":"rounded bg-[color:var(--ck-accent)] px-3 py-1.5 text-xs font-medium text-black",onClick:()=>{let t=k.kind;v(null),b(()=>{("goals"===t?N():C()).then(()=>{x.push({kind:"success",message:"delete"===t?"Ticket deleted.":"Moved to Goals."}),"delete"===t?m.push(e.backHref??"/tickets"):m.refresh()}).catch(e=>p((0,n.errorMessage)(e)))})},disabled:u,children:"Confirm"})]})]})}):null]})}e.s(["TicketDetailClient",()=>m,"isPostCommentDisabled",()=>d],36288)}]);