@vionwilliams/agent-os 1.0.0-alpha.28 → 1.0.0-alpha.45

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.
@@ -0,0 +1,21 @@
1
+ import{i as e,n as t,r as n,t as r}from"./jsx-runtime-CUBmso4R.js";import{n as i}from"./product-surface-BAexmiTh.js";import{n as a,r as o,t as s}from"./plus-BsmKZIhy.js";var c=n(((e,t)=>{t.exports=function(){return typeof Promise==`function`&&Promise.prototype&&Promise.prototype.then}})),l=n((e=>{var t,n=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];e.getSymbolSize=function(e){if(!e)throw Error(`"version" cannot be null or undefined`);if(e<1||e>40)throw Error(`"version" should be in range from 1 to 40`);return e*4+17},e.getSymbolTotalCodewords=function(e){return n[e]},e.getBCHDigit=function(e){let t=0;for(;e!==0;)t++,e>>>=1;return t},e.setToSJISFunction=function(e){if(typeof e!=`function`)throw Error(`"toSJISFunc" is not a valid function.`);t=e},e.isKanjiModeEnabled=function(){return t!==void 0},e.toSJIS=function(e){return t(e)}})),u=n((e=>{e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function t(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`l`:case`low`:return e.L;case`m`:case`medium`:return e.M;case`q`:case`quartile`:return e.Q;case`h`:case`high`:return e.H;default:throw Error(`Unknown EC Level: `+t)}}e.isValid=function(e){return e&&e.bit!==void 0&&e.bit>=0&&e.bit<4},e.from=function(n,r){if(e.isValid(n))return n;try{return t(n)}catch{return r}}})),d=n(((e,t)=>{function n(){this.buffer=[],this.length=0}n.prototype={get:function(e){let t=Math.floor(e/8);return(this.buffer[t]>>>7-e%8&1)==1},put:function(e,t){for(let n=0;n<t;n++)this.putBit((e>>>t-n-1&1)==1)},getLengthInBits:function(){return this.length},putBit:function(e){let t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},t.exports=n})),f=n(((e,t)=>{function n(e){if(!e||e<1)throw Error(`BitMatrix size must be defined and greater than 0`);this.size=e,this.data=new Uint8Array(e*e),this.reservedBit=new Uint8Array(e*e)}n.prototype.set=function(e,t,n,r){let i=e*this.size+t;this.data[i]=n,r&&(this.reservedBit[i]=!0)},n.prototype.get=function(e,t){return this.data[e*this.size+t]},n.prototype.xor=function(e,t,n){this.data[e*this.size+t]^=n},n.prototype.isReserved=function(e,t){return this.reservedBit[e*this.size+t]},t.exports=n})),p=n((e=>{var t=l().getSymbolSize;e.getRowColCoords=function(e){if(e===1)return[];let n=Math.floor(e/7)+2,r=t(e),i=r===145?26:Math.ceil((r-13)/(2*n-2))*2,a=[r-7];for(let e=1;e<n-1;e++)a[e]=a[e-1]-i;return a.push(6),a.reverse()},e.getPositions=function(t){let n=[],r=e.getRowColCoords(t),i=r.length;for(let e=0;e<i;e++)for(let t=0;t<i;t++)e===0&&t===0||e===0&&t===i-1||e===i-1&&t===0||n.push([r[e],r[t]]);return n}})),m=n((e=>{var t=l().getSymbolSize,n=7;e.getPositions=function(e){let r=t(e);return[[0,0],[r-n,0],[0,r-n]]}})),h=n((e=>{e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};var t={N1:3,N2:3,N3:40,N4:10};e.isValid=function(e){return e!=null&&e!==``&&!isNaN(e)&&e>=0&&e<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(e){let n=e.size,r=0,i=0,a=0,o=null,s=null;for(let c=0;c<n;c++){i=a=0,o=s=null;for(let l=0;l<n;l++){let n=e.get(c,l);n===o?i++:(i>=5&&(r+=t.N1+(i-5)),o=n,i=1),n=e.get(l,c),n===s?a++:(a>=5&&(r+=t.N1+(a-5)),s=n,a=1)}i>=5&&(r+=t.N1+(i-5)),a>=5&&(r+=t.N1+(a-5))}return r},e.getPenaltyN2=function(e){let n=e.size,r=0;for(let t=0;t<n-1;t++)for(let i=0;i<n-1;i++){let n=e.get(t,i)+e.get(t,i+1)+e.get(t+1,i)+e.get(t+1,i+1);(n===4||n===0)&&r++}return r*t.N2},e.getPenaltyN3=function(e){let n=e.size,r=0,i=0,a=0;for(let t=0;t<n;t++){i=a=0;for(let o=0;o<n;o++)i=i<<1&2047|e.get(t,o),o>=10&&(i===1488||i===93)&&r++,a=a<<1&2047|e.get(o,t),o>=10&&(a===1488||a===93)&&r++}return r*t.N3},e.getPenaltyN4=function(e){let n=0,r=e.data.length;for(let t=0;t<r;t++)n+=e.data[t];return Math.abs(Math.ceil(n*100/r/5)-10)*t.N4};function n(t,n,r){switch(t){case e.Patterns.PATTERN000:return(n+r)%2==0;case e.Patterns.PATTERN001:return n%2==0;case e.Patterns.PATTERN010:return r%3==0;case e.Patterns.PATTERN011:return(n+r)%3==0;case e.Patterns.PATTERN100:return(Math.floor(n/2)+Math.floor(r/3))%2==0;case e.Patterns.PATTERN101:return n*r%2+n*r%3==0;case e.Patterns.PATTERN110:return(n*r%2+n*r%3)%2==0;case e.Patterns.PATTERN111:return(n*r%3+(n+r)%2)%2==0;default:throw Error(`bad maskPattern:`+t)}}e.applyMask=function(e,t){let r=t.size;for(let i=0;i<r;i++)for(let a=0;a<r;a++)t.isReserved(a,i)||t.xor(a,i,n(e,a,i))},e.getBestMask=function(t,n){let r=Object.keys(e.Patterns).length,i=0,a=1/0;for(let o=0;o<r;o++){n(o),e.applyMask(o,t);let r=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(o,t),r<a&&(a=r,i=o)}return i}})),g=n((e=>{var t=u(),n=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],r=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];e.getBlocksCount=function(e,r){switch(r){case t.L:return n[(e-1)*4+0];case t.M:return n[(e-1)*4+1];case t.Q:return n[(e-1)*4+2];case t.H:return n[(e-1)*4+3];default:return}},e.getTotalCodewordsCount=function(e,n){switch(n){case t.L:return r[(e-1)*4+0];case t.M:return r[(e-1)*4+1];case t.Q:return r[(e-1)*4+2];case t.H:return r[(e-1)*4+3];default:return}}})),_=n((e=>{var t=new Uint8Array(512),n=new Uint8Array(256);(function(){let e=1;for(let r=0;r<255;r++)t[r]=e,n[e]=r,e<<=1,e&256&&(e^=285);for(let e=255;e<512;e++)t[e]=t[e-255]})(),e.log=function(e){if(e<1)throw Error(`log(`+e+`)`);return n[e]},e.exp=function(e){return t[e]},e.mul=function(e,r){return e===0||r===0?0:t[n[e]+n[r]]}})),v=n((e=>{var t=_();e.mul=function(e,n){let r=new Uint8Array(e.length+n.length-1);for(let i=0;i<e.length;i++)for(let a=0;a<n.length;a++)r[i+a]^=t.mul(e[i],n[a]);return r},e.mod=function(e,n){let r=new Uint8Array(e);for(;r.length-n.length>=0;){let e=r[0];for(let i=0;i<n.length;i++)r[i]^=t.mul(n[i],e);let i=0;for(;i<r.length&&r[i]===0;)i++;r=r.slice(i)}return r},e.generateECPolynomial=function(n){let r=new Uint8Array([1]);for(let i=0;i<n;i++)r=e.mul(r,new Uint8Array([1,t.exp(i)]));return r}})),y=n(((e,t)=>{var n=v();function r(e){this.genPoly=void 0,this.degree=e,this.degree&&this.initialize(this.degree)}r.prototype.initialize=function(e){this.degree=e,this.genPoly=n.generateECPolynomial(this.degree)},r.prototype.encode=function(e){if(!this.genPoly)throw Error(`Encoder not initialized`);let t=new Uint8Array(e.length+this.degree);t.set(e);let r=n.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){let e=new Uint8Array(this.degree);return e.set(r,i),e}return r},t.exports=r})),b=n((e=>{e.isValid=function(e){return!isNaN(e)&&e>=1&&e<=40}})),x=n((e=>{var t=`[0-9]+`,n=`[A-Z $%*+\\-./:]+`,r=`(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+`;r=r.replace(/u/g,`\\u`);var i=`(?:(?![A-Z0-9 $%*+\\-./:]|`+r+`)(?:.|[\r
2
+ ]))+`;e.KANJI=new RegExp(r,`g`),e.BYTE_KANJI=RegExp(`[^A-Z0-9 $%*+\\-./:]+`,`g`),e.BYTE=new RegExp(i,`g`),e.NUMERIC=new RegExp(t,`g`),e.ALPHANUMERIC=new RegExp(n,`g`);var a=RegExp(`^`+r+`$`),o=RegExp(`^`+t+`$`),s=RegExp(`^[A-Z0-9 $%*+\\-./:]+$`);e.testKanji=function(e){return a.test(e)},e.testNumeric=function(e){return o.test(e)},e.testAlphanumeric=function(e){return s.test(e)}})),S=n((e=>{var t=b(),n=x();e.NUMERIC={id:`Numeric`,bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:`Alphanumeric`,bit:2,ccBits:[9,11,13]},e.BYTE={id:`Byte`,bit:4,ccBits:[8,16,16]},e.KANJI={id:`Kanji`,bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(e,n){if(!e.ccBits)throw Error(`Invalid mode: `+e);if(!t.isValid(n))throw Error(`Invalid version: `+n);return n>=1&&n<10?e.ccBits[0]:n<27?e.ccBits[1]:e.ccBits[2]},e.getBestModeForData=function(t){return n.testNumeric(t)?e.NUMERIC:n.testAlphanumeric(t)?e.ALPHANUMERIC:n.testKanji(t)?e.KANJI:e.BYTE},e.toString=function(e){if(e&&e.id)return e.id;throw Error(`Invalid mode`)},e.isValid=function(e){return e&&e.bit&&e.ccBits};function r(t){if(typeof t!=`string`)throw Error(`Param is not a string`);switch(t.toLowerCase()){case`numeric`:return e.NUMERIC;case`alphanumeric`:return e.ALPHANUMERIC;case`kanji`:return e.KANJI;case`byte`:return e.BYTE;default:throw Error(`Unknown mode: `+t)}}e.from=function(t,n){if(e.isValid(t))return t;try{return r(t)}catch{return n}}})),C=n((e=>{var t=l(),n=g(),r=u(),i=S(),a=b(),o=7973,s=t.getBCHDigit(o);function c(t,n,r){for(let i=1;i<=40;i++)if(n<=e.getCapacity(i,r,t))return i}function d(e,t){return i.getCharCountIndicator(e,t)+4}function f(e,t){let n=0;return e.forEach(function(e){let r=d(e.mode,t);n+=r+e.getBitsLength()}),n}function p(t,n){for(let r=1;r<=40;r++)if(f(t,r)<=e.getCapacity(r,n,i.MIXED))return r}e.from=function(e,t){return a.isValid(e)?parseInt(e,10):t},e.getCapacity=function(e,r,o){if(!a.isValid(e))throw Error(`Invalid QR Code version`);o===void 0&&(o=i.BYTE);let s=(t.getSymbolTotalCodewords(e)-n.getTotalCodewordsCount(e,r))*8;if(o===i.MIXED)return s;let c=s-d(o,e);switch(o){case i.NUMERIC:return Math.floor(c/10*3);case i.ALPHANUMERIC:return Math.floor(c/11*2);case i.KANJI:return Math.floor(c/13);case i.BYTE:default:return Math.floor(c/8)}},e.getBestVersionForData=function(e,t){let n,i=r.from(t,r.M);if(Array.isArray(e)){if(e.length>1)return p(e,i);if(e.length===0)return 1;n=e[0]}else n=e;return c(n.mode,n.getLength(),i)},e.getEncodedBits=function(e){if(!a.isValid(e)||e<7)throw Error(`Invalid QR Code version`);let n=e<<12;for(;t.getBCHDigit(n)-s>=0;)n^=o<<t.getBCHDigit(n)-s;return e<<12|n}})),ee=n((e=>{var t=l(),n=1335,r=21522,i=t.getBCHDigit(n);e.getEncodedBits=function(e,a){let o=e.bit<<3|a,s=o<<10;for(;t.getBCHDigit(s)-i>=0;)s^=n<<t.getBCHDigit(s)-i;return(o<<10|s)^r}})),w=n(((e,t)=>{var n=S();function r(e){this.mode=n.NUMERIC,this.data=e.toString()}r.getBitsLength=function(e){return 10*Math.floor(e/3)+(e%3?e%3*3+1:0)},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){let t,n,r;for(t=0;t+3<=this.data.length;t+=3)n=this.data.substr(t,3),r=parseInt(n,10),e.put(r,10);let i=this.data.length-t;i>0&&(n=this.data.substr(t),r=parseInt(n,10),e.put(r,i*3+1))},t.exports=r})),te=n(((e,t)=>{var n=S(),r=`0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:`.split(``);function i(e){this.mode=n.ALPHANUMERIC,this.data=e}i.getBitsLength=function(e){return 11*Math.floor(e/2)+e%2*6},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t+2<=this.data.length;t+=2){let n=r.indexOf(this.data[t])*45;n+=r.indexOf(this.data[t+1]),e.put(n,11)}this.data.length%2&&e.put(r.indexOf(this.data[t]),6)},t.exports=i})),ne=n(((e,t)=>{var n=S();function r(e){this.mode=n.BYTE,typeof e==`string`?this.data=new TextEncoder().encode(e):this.data=new Uint8Array(e)}r.getBitsLength=function(e){return e*8},r.prototype.getLength=function(){return this.data.length},r.prototype.getBitsLength=function(){return r.getBitsLength(this.data.length)},r.prototype.write=function(e){for(let t=0,n=this.data.length;t<n;t++)e.put(this.data[t],8)},t.exports=r})),re=n(((e,t)=>{var n=S(),r=l();function i(e){this.mode=n.KANJI,this.data=e}i.getBitsLength=function(e){return e*13},i.prototype.getLength=function(){return this.data.length},i.prototype.getBitsLength=function(){return i.getBitsLength(this.data.length)},i.prototype.write=function(e){let t;for(t=0;t<this.data.length;t++){let n=r.toSJIS(this.data[t]);if(n>=33088&&n<=40956)n-=33088;else if(n>=57408&&n<=60351)n-=49472;else throw Error(`Invalid SJIS character: `+this.data[t]+`
3
+ Make sure your charset is UTF-8`);n=(n>>>8&255)*192+(n&255),e.put(n,13)}},t.exports=i})),ie=n(((e,t)=>{var n={single_source_shortest_paths:function(e,t,r){var i={},a={};a[t]=0;var o=n.PriorityQueue.make();o.push(t,0);for(var s,c,l,u,d,f,p,m,h;!o.empty();)for(l in s=o.pop(),c=s.value,u=s.cost,d=e[c]||{},d)d.hasOwnProperty(l)&&(f=d[l],p=u+f,m=a[l],h=a[l]===void 0,(h||m>p)&&(a[l]=p,o.push(l,p),i[l]=c));if(r!==void 0&&a[r]===void 0){var g=[`Could not find a path from `,t,` to `,r,`.`].join(``);throw Error(g)}return i},extract_shortest_path_from_predecessor_list:function(e,t){for(var n=[],r=t;r;)n.push(r),e[r],r=e[r];return n.reverse(),n},find_path:function(e,t,r){var i=n.single_source_shortest_paths(e,t,r);return n.extract_shortest_path_from_predecessor_list(i,r)},PriorityQueue:{make:function(e){var t=n.PriorityQueue,r={},i;for(i in e||={},t)t.hasOwnProperty(i)&&(r[i]=t[i]);return r.queue=[],r.sorter=e.sorter||t.default_sorter,r},default_sorter:function(e,t){return e.cost-t.cost},push:function(e,t){var n={value:e,cost:t};this.queue.push(n),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};t!==void 0&&(t.exports=n)})),ae=n((e=>{var t=S(),n=w(),r=te(),i=ne(),a=re(),o=x(),s=l(),c=ie();function u(e){return unescape(encodeURIComponent(e)).length}function d(e,t,n){let r=[],i;for(;(i=e.exec(n))!==null;)r.push({data:i[0],index:i.index,mode:t,length:i[0].length});return r}function f(e){let n=d(o.NUMERIC,t.NUMERIC,e),r=d(o.ALPHANUMERIC,t.ALPHANUMERIC,e),i,a;return s.isKanjiModeEnabled()?(i=d(o.BYTE,t.BYTE,e),a=d(o.KANJI,t.KANJI,e)):(i=d(o.BYTE_KANJI,t.BYTE,e),a=[]),n.concat(r,i,a).sort(function(e,t){return e.index-t.index}).map(function(e){return{data:e.data,mode:e.mode,length:e.length}})}function p(e,o){switch(o){case t.NUMERIC:return n.getBitsLength(e);case t.ALPHANUMERIC:return r.getBitsLength(e);case t.KANJI:return a.getBitsLength(e);case t.BYTE:return i.getBitsLength(e)}}function m(e){return e.reduce(function(e,t){let n=e.length-1>=0?e[e.length-1]:null;return n&&n.mode===t.mode?(e[e.length-1].data+=t.data,e):(e.push(t),e)},[])}function h(e){let n=[];for(let r=0;r<e.length;r++){let i=e[r];switch(i.mode){case t.NUMERIC:n.push([i,{data:i.data,mode:t.ALPHANUMERIC,length:i.length},{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.ALPHANUMERIC:n.push([i,{data:i.data,mode:t.BYTE,length:i.length}]);break;case t.KANJI:n.push([i,{data:i.data,mode:t.BYTE,length:u(i.data)}]);break;case t.BYTE:n.push([{data:i.data,mode:t.BYTE,length:u(i.data)}])}}return n}function g(e,n){let r={},i={start:{}},a=[`start`];for(let o=0;o<e.length;o++){let s=e[o],c=[];for(let e=0;e<s.length;e++){let l=s[e],u=``+o+e;c.push(u),r[u]={node:l,lastCount:0},i[u]={};for(let e=0;e<a.length;e++){let o=a[e];r[o]&&r[o].node.mode===l.mode?(i[o][u]=p(r[o].lastCount+l.length,l.mode)-p(r[o].lastCount,l.mode),r[o].lastCount+=l.length):(r[o]&&(r[o].lastCount=l.length),i[o][u]=p(l.length,l.mode)+4+t.getCharCountIndicator(l.mode,n))}}a=c}for(let e=0;e<a.length;e++)i[a[e]].end=0;return{map:i,table:r}}function _(e,o){let c,l=t.getBestModeForData(e);if(c=t.from(o,l),c!==t.BYTE&&c.bit<l.bit)throw Error(`"`+e+`" cannot be encoded with mode `+t.toString(c)+`.
4
+ Suggested mode is: `+t.toString(l));switch(c===t.KANJI&&!s.isKanjiModeEnabled()&&(c=t.BYTE),c){case t.NUMERIC:return new n(e);case t.ALPHANUMERIC:return new r(e);case t.KANJI:return new a(e);case t.BYTE:return new i(e)}}e.fromArray=function(e){return e.reduce(function(e,t){return typeof t==`string`?e.push(_(t,null)):t.data&&e.push(_(t.data,t.mode)),e},[])},e.fromString=function(t,n){let r=g(h(f(t,s.isKanjiModeEnabled())),n),i=c.find_path(r.map,`start`,`end`),a=[];for(let e=1;e<i.length-1;e++)a.push(r.table[i[e]].node);return e.fromArray(m(a))},e.rawSplit=function(t){return e.fromArray(f(t,s.isKanjiModeEnabled()))}})),T=n((e=>{var t=l(),n=u(),r=d(),i=f(),a=p(),o=m(),s=h(),c=g(),_=y(),v=C(),b=ee(),x=S(),w=ae();function te(e,t){let n=e.size,r=o.getPositions(t);for(let t=0;t<r.length;t++){let i=r[t][0],a=r[t][1];for(let t=-1;t<=7;t++)if(!(i+t<=-1||n<=i+t))for(let r=-1;r<=7;r++)a+r<=-1||n<=a+r||(t>=0&&t<=6&&(r===0||r===6)||r>=0&&r<=6&&(t===0||t===6)||t>=2&&t<=4&&r>=2&&r<=4?e.set(i+t,a+r,!0,!0):e.set(i+t,a+r,!1,!0))}}function ne(e){let t=e.size;for(let n=8;n<t-8;n++){let t=n%2==0;e.set(n,6,t,!0),e.set(6,n,t,!0)}}function re(e,t){let n=a.getPositions(t);for(let t=0;t<n.length;t++){let r=n[t][0],i=n[t][1];for(let t=-2;t<=2;t++)for(let n=-2;n<=2;n++)t===-2||t===2||n===-2||n===2||t===0&&n===0?e.set(r+t,i+n,!0,!0):e.set(r+t,i+n,!1,!0)}}function ie(e,t){let n=e.size,r=v.getEncodedBits(t),i,a,o;for(let t=0;t<18;t++)i=Math.floor(t/3),a=t%3+n-8-3,o=(r>>t&1)==1,e.set(i,a,o,!0),e.set(a,i,o,!0)}function T(e,t,n){let r=e.size,i=b.getEncodedBits(t,n),a,o;for(a=0;a<15;a++)o=(i>>a&1)==1,a<6?e.set(a,8,o,!0):a<8?e.set(a+1,8,o,!0):e.set(r-15+a,8,o,!0),a<8?e.set(8,r-a-1,o,!0):a<9?e.set(8,15-a-1+1,o,!0):e.set(8,15-a-1,o,!0);e.set(r-8,8,1,!0)}function oe(e,t){let n=e.size,r=-1,i=n-1,a=7,o=0;for(let s=n-1;s>0;s-=2)for(s===6&&s--;;){for(let n=0;n<2;n++)if(!e.isReserved(i,s-n)){let r=!1;o<t.length&&(r=(t[o]>>>a&1)==1),e.set(i,s-n,r),a--,a===-1&&(o++,a=7)}if(i+=r,i<0||n<=i){i-=r,r=-r;break}}}function se(e,n,i){let a=new r;i.forEach(function(t){a.put(t.mode.bit,4),a.put(t.getLength(),x.getCharCountIndicator(t.mode,e)),t.write(a)});let o=(t.getSymbolTotalCodewords(e)-c.getTotalCodewordsCount(e,n))*8;for(a.getLengthInBits()+4<=o&&a.put(0,4);a.getLengthInBits()%8!=0;)a.putBit(0);let s=(o-a.getLengthInBits())/8;for(let e=0;e<s;e++)a.put(e%2?17:236,8);return ce(a,e,n)}function ce(e,n,r){let i=t.getSymbolTotalCodewords(n),a=i-c.getTotalCodewordsCount(n,r),o=c.getBlocksCount(n,r),s=o-i%o,l=Math.floor(i/o),u=Math.floor(a/o),d=u+1,f=l-u,p=new _(f),m=0,h=Array(o),g=Array(o),v=0,y=new Uint8Array(e.buffer);for(let e=0;e<o;e++){let t=e<s?u:d;h[e]=y.slice(m,m+t),g[e]=p.encode(h[e]),m+=t,v=Math.max(v,t)}let b=new Uint8Array(i),x=0,S,C;for(S=0;S<v;S++)for(C=0;C<o;C++)S<h[C].length&&(b[x++]=h[C][S]);for(S=0;S<f;S++)for(C=0;C<o;C++)b[x++]=g[C][S];return b}function le(e,n,r,a){let o;if(Array.isArray(e))o=w.fromArray(e);else if(typeof e==`string`){let t=n;if(!t){let n=w.rawSplit(e);t=v.getBestVersionForData(n,r)}o=w.fromString(e,t||40)}else throw Error(`Invalid data`);let c=v.getBestVersionForData(o,r);if(!c)throw Error(`The amount of data is too big to be stored in a QR Code`);if(!n)n=c;else if(n<c)throw Error(`
5
+ The chosen QR Code version cannot contain this amount of data.
6
+ Minimum version required to store current data is: `+c+`.
7
+ `);let l=se(n,r,o),u=new i(t.getSymbolSize(n));return te(u,n),ne(u),re(u,n),T(u,r,0),n>=7&&ie(u,n),oe(u,l),isNaN(a)&&(a=s.getBestMask(u,T.bind(null,u,r))),s.applyMask(a,u),T(u,r,a),{modules:u,version:n,errorCorrectionLevel:r,maskPattern:a,segments:o}}e.create=function(e,r){if(e===void 0||e===``)throw Error(`No input text`);let i=n.M,a,o;return r!==void 0&&(i=n.from(r.errorCorrectionLevel,n.M),a=v.from(r.version),o=s.from(r.maskPattern),r.toSJISFunc&&t.setToSJISFunction(r.toSJISFunc)),le(e,a,i,o)}})),oe=n((e=>{function t(e){if(typeof e==`number`&&(e=e.toString()),typeof e!=`string`)throw Error(`Color should be defined as hex string`);let t=e.slice().replace(`#`,``).split(``);if(t.length<3||t.length===5||t.length>8)throw Error(`Invalid hex color: `+e);(t.length===3||t.length===4)&&(t=Array.prototype.concat.apply([],t.map(function(e){return[e,e]}))),t.length===6&&t.push(`F`,`F`);let n=parseInt(t.join(``),16);return{r:n>>24&255,g:n>>16&255,b:n>>8&255,a:n&255,hex:`#`+t.slice(0,6).join(``)}}e.getOptions=function(e){e||={},e.color||={};let n=e.margin===void 0||e.margin===null||e.margin<0?4:e.margin,r=e.width&&e.width>=21?e.width:void 0,i=e.scale||4;return{width:r,scale:r?4:i,margin:n,color:{dark:t(e.color.dark||`#000000ff`),light:t(e.color.light||`#ffffffff`)},type:e.type,rendererOpts:e.rendererOpts||{}}},e.getScale=function(e,t){return t.width&&t.width>=e+t.margin*2?t.width/(e+t.margin*2):t.scale},e.getImageWidth=function(t,n){let r=e.getScale(t,n);return Math.floor((t+n.margin*2)*r)},e.qrToImageData=function(t,n,r){let i=n.modules.size,a=n.modules.data,o=e.getScale(i,r),s=Math.floor((i+r.margin*2)*o),c=r.margin*o,l=[r.color.light,r.color.dark];for(let e=0;e<s;e++)for(let n=0;n<s;n++){let u=(e*s+n)*4,d=r.color.light;if(e>=c&&n>=c&&e<s-c&&n<s-c){let t=Math.floor((e-c)/o),r=Math.floor((n-c)/o);d=l[+!!a[t*i+r]]}t[u++]=d.r,t[u++]=d.g,t[u++]=d.b,t[u]=d.a}}})),se=n((e=>{var t=oe();function n(e,t,n){e.clearRect(0,0,t.width,t.height),t.style||={},t.height=n,t.width=n,t.style.height=n+`px`,t.style.width=n+`px`}function r(){try{return document.createElement(`canvas`)}catch{throw Error(`You need to specify a canvas element`)}}e.render=function(e,i,a){let o=a,s=i;o===void 0&&(!i||!i.getContext)&&(o=i,i=void 0),i||(s=r()),o=t.getOptions(o);let c=t.getImageWidth(e.modules.size,o),l=s.getContext(`2d`),u=l.createImageData(c,c);return t.qrToImageData(u.data,e,o),n(l,s,c),l.putImageData(u,0,0),s},e.renderToDataURL=function(t,n,r){let i=r;i===void 0&&(!n||!n.getContext)&&(i=n,n=void 0),i||={};let a=e.render(t,n,i),o=i.type||`image/png`,s=i.rendererOpts||{};return a.toDataURL(o,s.quality)}})),ce=n((e=>{var t=oe();function n(e,t){let n=e.a/255,r=t+`="`+e.hex+`"`;return n<1?r+` `+t+`-opacity="`+n.toFixed(2).slice(1)+`"`:r}function r(e,t,n){let r=e+t;return n!==void 0&&(r+=` `+n),r}function i(e,t,n){let i=``,a=0,o=!1,s=0;for(let c=0;c<e.length;c++){let l=Math.floor(c%t),u=Math.floor(c/t);!l&&!o&&(o=!0),e[c]?(s++,c>0&&l>0&&e[c-1]||(i+=o?r(`M`,l+n,.5+u+n):r(`m`,a,0),a=0,o=!1),l+1<t&&e[c+1]||(i+=r(`h`,s),s=0)):a++}return i}e.render=function(e,r,a){let o=t.getOptions(r),s=e.modules.size,c=e.modules.data,l=s+o.margin*2,u=o.color.light.a?`<path `+n(o.color.light,`fill`)+` d="M0 0h`+l+`v`+l+`H0z"/>`:``,d=`<path `+n(o.color.dark,`stroke`)+` d="`+i(c,s,o.margin)+`"/>`,f=`viewBox="0 0 `+l+` `+l+`"`,p=`<svg xmlns="http://www.w3.org/2000/svg" `+(o.width?`width="`+o.width+`" height="`+o.width+`" `:``)+f+` shape-rendering="crispEdges">`+u+d+`</svg>
8
+ `;return typeof a==`function`&&a(null,p),p}})),le=n((e=>{var t=c(),n=T(),r=se(),i=ce();function a(e,r,i,a,o){let s=[].slice.call(arguments,1),c=s.length,l=typeof s[c-1]==`function`;if(!l&&!t())throw Error(`Callback required as last argument`);if(l){if(c<2)throw Error(`Too few arguments provided`);c===2?(o=i,i=r,r=a=void 0):c===3&&(r.getContext&&o===void 0?(o=a,a=void 0):(o=a,a=i,i=r,r=void 0))}else{if(c<1)throw Error(`Too few arguments provided`);return c===1?(i=r,r=a=void 0):c===2&&!r.getContext&&(a=i,i=r,r=void 0),new Promise(function(t,o){try{t(e(n.create(i,a),r,a))}catch(e){o(e)}})}try{let t=n.create(i,a);o(null,e(t,r,a))}catch(e){o(e)}}e.create=n.create,e.toCanvas=a.bind(null,r.render),e.toDataURL=a.bind(null,r.renderToDataURL),e.toString=a.bind(null,function(e,t,n){return i.render(e,n)})})),E=o(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),ue=o(`calendar-days`,[[`path`,{d:`M8 2v4`,key:`1cmpym`}],[`path`,{d:`M16 2v4`,key:`4m81vk`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`4`,rx:`2`,key:`1hopcy`}],[`path`,{d:`M3 10h18`,key:`8toen8`}],[`path`,{d:`M8 14h.01`,key:`6423bh`}],[`path`,{d:`M12 14h.01`,key:`1etili`}],[`path`,{d:`M16 14h.01`,key:`1gbofw`}],[`path`,{d:`M8 18h.01`,key:`lrp35t`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}],[`path`,{d:`M16 18h.01`,key:`kzsmim`}]]),de=o(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),fe=o(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),pe=o(`copy`,[[`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`,key:`17jyea`}],[`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`,key:`zix9uf`}]]),me=o(`file-text`,[[`path`,{d:`M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z`,key:`1rqfz7`}],[`path`,{d:`M14 2v4a2 2 0 0 0 2 2h4`,key:`tnqrlb`}],[`path`,{d:`M10 9H8`,key:`b1mrlr`}],[`path`,{d:`M16 13H8`,key:`t4e002`}],[`path`,{d:`M16 17H8`,key:`z1uh3a`}]]),D=o(`git-branch`,[[`line`,{x1:`6`,x2:`6`,y1:`3`,y2:`15`,key:`17qcm7`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`path`,{d:`M18 9a9 9 0 0 1-9 9`,key:`n2h4wq`}]]),he=o(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),O=o(`message-square`,[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}]]),ge=o(`mic`,[[`path`,{d:`M12 19v3`,key:`npa21l`}],[`path`,{d:`M19 10v2a7 7 0 0 1-14 0v-2`,key:`1vc78b`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`13`,rx:`3`,key:`s6n7sd`}]]),_e=o(`qr-code`,[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]),ve=o(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),k=o(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),ye=o(`smartphone`,[[`rect`,{width:`14`,height:`20`,x:`5`,y:`2`,rx:`2`,ry:`2`,key:`1yt0o3`}],[`path`,{d:`M12 18h.01`,key:`mhygvu`}]]),be=o(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),xe=o(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Se=o(`zap`,[[`path`,{d:`M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z`,key:`1xq2db`}]]),A=e(t(),1),Ce=le(),we={today:`今日`,week:`本周`,later:`待定`},Te={queued:`QUEUED`,running:`EXECUTING`,waiting_input:`WAITING INPUT`,completed:`DONE`,failed:`FAILED`,canceled:`CANCELED`};function Ee(e,t){return t===`today`?e===`today`:t===`week`?e===`week`:e===`later`||e===`someday`}var De=new Set([`mobile-task-pushed`,`agent-run-waiting-input`,`agent-run-failed`,`agent-run-recovery-failed`]),Oe=new Set([`agent-run-waiting-input`,`agent-run-failed`,`agent-run-recovery-failed`]),ke=new Set([`agent-run-started`,`agent-run-resumed`,`agent-run-recovered`,`agent-run-retried`]);function Ae(e){return!!e.focusedTaskId&&De.has(e.reason)}function je(e){return Oe.has(e.reason)?`blocked`:ke.has(e.reason)?`auto`:null}function Me(e){if(e.reason===`agent-run-progressed`)return null;switch(e.reason){case`mobile-task-pushed`:return{title:`已接收新的桌面任务`,detail:`来自 App 端的新任务已经进入当前工作台。`,tone:`info`};case`messages-appended`:return{title:`讨论已更新`,detail:`新的上下文已经写入当前任务讨论。`,tone:`neutral`};case`service:ai-suggestion`:return{title:`AI 建议已更新`,detail:`系统已经基于当前讨论补充新的推进建议。`,tone:`info`};case`service:generate-plan`:return{title:`行动计划已更新`,detail:`右侧行动计划已经根据当前讨论重新整理。`,tone:`success`};case`service:summarize`:return{title:`讨论总结已更新`,detail:`当前讨论已经整理为新的摘要结果。`,tone:`success`};case`decision-confirmed`:return{title:`动作已派发给 Agent`,detail:`这条待确认动作已经进入 Agent 执行队列。`,tone:`success`};case`decision-rejected`:return{title:`动作已忽略`,detail:`这条动作不会继续进入执行队列。`,tone:`neutral`};case`recommendation-consumed`:return{title:`推荐已消化`,detail:`当前推荐已经被转化为新的工作动作。`,tone:`neutral`};case`agent-run-recovered`:return{title:`Agent 任务已恢复`,detail:`检测到中断后,任务已重新回到执行队列。`,tone:`info`};case`agent-run-recovery-failed`:return{title:`Agent 恢复失败`,detail:`这条任务多次恢复失败,当前需要你检查或重新派发。`,tone:`danger`};case`agent-run-resumed`:return{title:`Agent 已恢复执行`,detail:`系统已收到新的补充信息,Agent 正在继续推进。`,tone:`success`};case`agent-run-completed`:return{title:`Agent 已完成`,detail:`执行结果已经回写到讨论区和任务上下文。`,tone:`success`};case`agent-run-failed`:return{title:`Agent 执行失败`,detail:`这条任务执行失败,已经回写失败原因,你可以补充信息后重试。`,tone:`danger`};case`agent-run-started`:return{title:`Agent 已开始执行`,detail:`当前动作已经正式进入执行阶段。`,tone:`info`};case`agent-run-waiting-input`:return{title:`Agent 等待补充信息`,detail:`请在中间讨论区继续补充上下文,任务才能继续推进。`,tone:`warning`};case`agent-run-retried`:return{title:`Agent 已重试`,detail:`这条任务已经重新回到执行队列。`,tone:`info`};case`agent-run-canceled`:return{title:`Agent 已取消`,detail:`这条任务已从执行队列中移除。`,tone:`neutral`};default:return null}}var j=r();async function M(e,t){let n=await fetch(e,{headers:{"Content-Type":`application/json`},...t}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(typeof r.error==`string`?r.error:`Request failed: ${n.status}`);return r}function Ne(e){return`${Math.round((e??0)*100)}%`}function Pe(e){return e?e.replace(`T`,` `).slice(0,16):``}function Fe(e){return`createdAt`in e?e.createdAt:``}function Ie(e){return`eventType`in e?e.eventType:`actionName`in e?e.actionName:e.evidenceType}function N(e){return e.execution.adapter===`agents`||e.execution.adapter===`autonomy`}function Le({initialRootId:e}){let[t,n]=(0,A.useState)([]),[r,i]=(0,A.useState)(e??null),[o,s]=(0,A.useState)(null),[c,l]=(0,A.useState)([]),[u,d]=(0,A.useState)([]),[f,p]=(0,A.useState)([]),[m,h]=(0,A.useState)(`all`),[g,_]=(0,A.useState)(!1),[v,y]=(0,A.useState)(null),[b,x]=(0,A.useState)(null),S=(0,A.useMemo)(()=>o?.root??t.find(e=>e.id===r)??null,[t,r,o]),C=(0,A.useMemo)(()=>o?m===`all`?o.bindings:o.bindings.filter(e=>e.system===m):[],[m,o]),ee=async()=>{_(!0),x(null);try{let[t,a,o,c]=await Promise.all([M(`/api/runtime/roots`),M(`/api/runtime/link-inbox`),M(`/api/runtime/contracts`),M(`/api/runtime/evidence-candidates`)]);n(t.roots),l(a.bindings),d(o.contracts),p(c.evidenceCandidates);let u=r??e??t.roots[0]?.id??null;i(u),s(u?(await M(`/api/runtime/roots/${encodeURIComponent(u)}/trace`)).trace:null)}catch(e){x(e instanceof Error?e.message:String(e))}finally{_(!1)}};(0,A.useEffect)(()=>{ee()},[]),(0,A.useEffect)(()=>{if(!r){s(null);return}let e=!1;return M(`/api/runtime/roots/${encodeURIComponent(r)}/trace`).then(t=>{e||s(t.trace)}).catch(t=>{e||x(t instanceof Error?t.message:String(t))}),()=>{e=!0}},[r]);let w=async(e,t={})=>{y(e),x(null);try{await M(e,{method:`POST`,body:JSON.stringify(t)}),await ee()}catch(e){x(e instanceof Error?e.message:String(e))}finally{y(null)}};return(0,j.jsx)(`div`,{className:`min-h-screen bg-slate-50 text-slate-800 antialiased dark:bg-[#050507] dark:text-zinc-100`,children:(0,j.jsxs)(`div`,{className:`mx-auto flex min-h-screen w-full max-w-[1680px] flex-col px-5 py-5`,children:[(0,j.jsxs)(`header`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 pb-4 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold uppercase tracking-[0.18em] text-slate-400 dark:text-zinc-500`,children:`CRF Long Runtime Kernel v0.2`}),(0,j.jsx)(`h1`,{className:`mt-1 text-2xl font-semibold tracking-normal text-slate-950 dark:text-white`,children:`长期运行追踪中心`})]}),(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsxs)(`a`,{href:`/`,className:`inline-flex h-9 items-center gap-2 rounded-md border border-slate-200 px-3 text-sm font-medium text-slate-600 hover:bg-white dark:border-zinc-800 dark:text-zinc-300 dark:hover:bg-zinc-900`,children:[(0,j.jsx)(xe,{size:15}),`返回工作台`]}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void ee(),disabled:g,className:`inline-flex h-9 items-center gap-2 rounded-md bg-slate-950 px-3 text-sm font-semibold text-white disabled:opacity-50 dark:bg-white dark:text-zinc-950`,children:[(0,j.jsx)(ve,{size:15,className:g?`animate-spin`:``}),`刷新`]})]})]}),b&&(0,j.jsx)(`div`,{className:`mt-4 rounded-md border border-rose-200 bg-rose-50 px-4 py-3 text-sm text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-200`,children:b}),(0,j.jsxs)(`main`,{className:`grid min-h-0 flex-1 gap-4 py-4 lg:grid-cols-[360px_minmax(0,1fr)_360px]`,children:[(0,j.jsxs)(`aside`,{className:`min-h-0 overflow-hidden rounded-lg border border-slate-200 bg-white dark:border-zinc-800 dark:bg-[#0d0d10]`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between border-b border-slate-200 px-4 py-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold`,children:`Runtime Roots`}),(0,j.jsx)(`span`,{className:`rounded bg-slate-100 px-2 py-0.5 text-xs text-slate-500 dark:bg-zinc-900 dark:text-zinc-400`,children:t.length})]}),(0,j.jsx)(`div`,{className:`max-h-[calc(100vh-150px)] overflow-y-auto p-2`,children:t.length===0?(0,j.jsx)(`div`,{className:`rounded-md border border-dashed border-slate-200 px-4 py-8 text-center text-sm text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`还没有 RuntimeRoot。创建 BDI intention 后会出现在这里。`}):t.map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>i(e.id),className:`mb-2 block w-full rounded-md border p-3 text-left transition-colors ${r===e.id?`border-indigo-300 bg-indigo-50 dark:border-indigo-500/40 dark:bg-indigo-500/10`:`border-slate-200 bg-white hover:bg-slate-50 dark:border-zinc-800 dark:bg-[#111115] dark:hover:bg-zinc-900`}`,children:[(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`truncate text-sm font-semibold text-slate-900 dark:text-zinc-100`,children:e.title}),(0,j.jsxs)(`div`,{className:`mt-1 truncate text-xs text-slate-500 dark:text-zinc-500`,children:[e.source.primarySystem,` · `,e.domain,` · `,e.lifecycle]})]}),(0,j.jsx)(E,{size:16,className:`shrink-0 text-indigo-500`})]}),(0,j.jsxs)(`div`,{className:`mt-3 grid grid-cols-2 gap-2 text-xs`,children:[(0,j.jsxs)(`span`,{className:`rounded bg-slate-100 px-2 py-1 dark:bg-zinc-900`,children:[`Trace `,Ne(e.health.traceCompleteness)]}),(0,j.jsxs)(`span`,{className:`rounded bg-slate-100 px-2 py-1 dark:bg-zinc-900`,children:[`Evidence `,e.health.evidencePendingCount]})]})]},e.id))})]}),(0,j.jsxs)(`section`,{className:`min-h-0 overflow-hidden rounded-lg border border-slate-200 bg-white dark:border-zinc-800 dark:bg-[#0d0d10]`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-3 border-b border-slate-200 px-5 py-4 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-semibold uppercase tracking-[0.16em] text-slate-400 dark:text-zinc-500`,children:[(0,j.jsx)(D,{size:14}),`Runtime Trace`]}),(0,j.jsx)(`h2`,{className:`mt-1 truncate text-xl font-semibold text-slate-950 dark:text-white`,children:S?.title??`选择一个长期运行对象`})]}),S&&(0,j.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs`,children:[(0,j.jsx)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:S.lifecycle}),(0,j.jsxs)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:[`Contract `,Ne(S.health.contractCoverage)]}),(0,j.jsxs)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:[`Broken `,S.health.brokenBindingCount]})]})]}),(0,j.jsx)(`div`,{className:`max-h-[calc(100vh-152px)] overflow-y-auto p-5`,children:o?(0,j.jsxs)(`div`,{className:`space-y-4`,children:[(0,j.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-4`,children:[(0,j.jsx)(P,{label:`绑定对象`,value:o.bindings.length}),(0,j.jsx)(P,{label:`因果事件`,value:o.events.length}),(0,j.jsx)(P,{label:`动作合同`,value:o.contracts.length}),(0,j.jsx)(P,{label:`证据候选`,value:o.evidenceCandidates.length})]}),(0,j.jsxs)(`div`,{className:`grid gap-3 xl:grid-cols-2`,children:[(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 p-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`mb-2 text-sm font-semibold`,children:`Projection Switcher`}),(0,j.jsxs)(`div`,{className:`flex flex-wrap gap-2 text-xs`,children:[(0,j.jsx)(`a`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,href:`/?runtimeRoot=${o.root.id}`,children:`Runtime Trace`}),o.bindings.filter(e=>e.entityType===`task_panel_session`).map(e=>(0,j.jsxs)(`a`,{className:`inline-flex items-center gap-1 rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,href:`/?workbench=task-system:${e.entityId}&solo=1`,children:[`Task Workbench `,(0,j.jsx)(a,{size:12})]},e.id)),o.bindings.filter(e=>e.entityType===`bdi_intention`).map(e=>(0,j.jsxs)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:[`BDI `,e.entityId]},e.id)),o.bindings.some(e=>e.system===`autonomy`)&&(0,j.jsxs)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:[`Autonomy `,o.bindings.filter(e=>e.system===`autonomy`).length]}),o.bindings.some(e=>e.system===`agents`)&&(0,j.jsxs)(`span`,{className:`rounded-md border border-slate-200 px-2.5 py-1 dark:border-zinc-800`,children:[`Agent `,o.bindings.filter(e=>e.system===`agents`).length]})]})]}),(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 p-3 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold`,children:`Bindings`}),(0,j.jsx)(`div`,{className:`inline-flex rounded-md border border-slate-200 p-0.5 text-xs dark:border-zinc-800`,children:[`all`,`autonomy`,`agents`].map(e=>(0,j.jsx)(`button`,{type:`button`,onClick:()=>h(e),className:`rounded px-2 py-0.5 ${m===e?`bg-slate-900 text-white dark:bg-white dark:text-zinc-950`:`text-slate-500 hover:text-slate-900 dark:text-zinc-500 dark:hover:text-zinc-100`}`,children:e},e))})]}),(0,j.jsx)(`div`,{className:`flex max-h-28 flex-wrap gap-2 overflow-y-auto text-xs`,children:C.map(e=>(0,j.jsxs)(`span`,{className:`rounded-md bg-slate-100 px-2.5 py-1 dark:bg-zinc-900`,children:[e.system,`:`,e.entityType,` · `,e.relation]},e.id))})]})]}),(0,j.jsx)(`div`,{className:`space-y-2`,children:o.timeline.map(e=>(0,j.jsx)(`div`,{className:`rounded-md border border-slate-200 p-3 dark:border-zinc-800`,children:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-between gap-2`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`flex h-7 w-7 items-center justify-center rounded-md bg-slate-100 text-slate-600 dark:bg-zinc-900 dark:text-zinc-300`,children:`eventType`in e?(0,j.jsx)(D,{size:14}):`actionName`in e?(0,j.jsx)(k,{size:14}):(0,j.jsx)(me,{size:14})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold`,children:Ie(e)}),(0,j.jsx)(`div`,{className:`text-xs text-slate-500 dark:text-zinc-500`,children:Pe(Fe(e))})]})]}),`status`in e&&(0,j.jsx)(`span`,{className:`rounded-md border border-slate-200 px-2 py-0.5 text-xs dark:border-zinc-800`,children:e.status})]})},`${Ie(e)}-${`id`in e?e.id:Fe(e)}`))})]}):(0,j.jsx)(`div`,{className:`rounded-md border border-dashed border-slate-200 px-4 py-16 text-center text-sm text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`Trace 会在 BDI create / promote / compile 和 LingShu 执行后生成。`})})]}),(0,j.jsxs)(`aside`,{className:`min-h-0 overflow-hidden rounded-lg border border-slate-200 bg-white dark:border-zinc-800 dark:bg-[#0d0d10]`,children:[(0,j.jsxs)(`div`,{className:`border-b border-slate-200 px-4 py-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold`,children:`Inbox`}),(0,j.jsx)(`div`,{className:`mt-1 text-xs text-slate-500 dark:text-zinc-500`,children:`Contract / Evidence / Link`})]}),(0,j.jsxs)(`div`,{className:`max-h-[calc(100vh-150px)] space-y-4 overflow-y-auto p-3`,children:[(0,j.jsx)(Re,{title:`Contract Inbox`,count:u.length,children:u.slice(0,8).map(e=>(0,j.jsx)(ze,{title:e.actionName,subtitle:`${e.actionClass} · ${e.status}`,children:(0,j.jsxs)(`div`,{className:`flex gap-1.5`,children:[e.status===`awaiting_approval`&&(0,j.jsx)(`button`,{className:`rounded bg-emerald-600 px-2 py-1 text-xs font-semibold text-white`,disabled:!!v,onClick:()=>void w(`/api/runtime/contracts/${e.id}/approve`),children:`批准`}),(e.status===`approved`||e.status===`preflight_passed`)&&!N(e)&&(0,j.jsx)(`button`,{className:`rounded bg-slate-900 px-2 py-1 text-xs font-semibold text-white dark:bg-white dark:text-zinc-950`,disabled:!!v,onClick:()=>void w(`/api/runtime/contracts/${e.id}/execute`),children:`执行`}),(e.status===`approved`||e.status===`preflight_passed`)&&N(e)&&(0,j.jsx)(`span`,{className:`rounded border border-slate-200 px-2 py-1 text-xs text-slate-500 dark:border-zinc-800 dark:text-zinc-400`,children:`worker 执行`}),(0,j.jsx)(`button`,{className:`rounded border border-slate-200 px-2 py-1 text-xs dark:border-zinc-800`,disabled:!!v,onClick:()=>void w(`/api/runtime/contracts/${e.id}/reject`),children:`拒绝`})]})},e.id))}),(0,j.jsx)(Re,{title:`Evidence Inbox`,count:f.length,children:f.slice(0,8).map(e=>(0,j.jsxs)(ze,{title:e.recommendation,subtitle:`${e.evidenceType} · ${e.status}`,children:[(0,j.jsx)(`p`,{className:`mb-2 line-clamp-3 text-xs leading-relaxed text-slate-500 dark:text-zinc-500`,children:e.content}),(0,j.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,j.jsx)(`button`,{className:`rounded bg-emerald-600 px-2 py-1 text-xs font-semibold text-white`,disabled:!!v,onClick:()=>void w(`/api/runtime/evidence-candidates/${e.id}/confirm`),children:`确认`}),(0,j.jsx)(`button`,{className:`rounded border border-slate-200 px-2 py-1 text-xs dark:border-zinc-800`,disabled:!!v,onClick:()=>void w(`/api/runtime/evidence-candidates/${e.id}/archive`),children:`归档`}),(0,j.jsx)(`button`,{className:`rounded border border-slate-200 px-2 py-1 text-xs dark:border-zinc-800`,disabled:!!v,onClick:()=>void w(`/api/runtime/evidence-candidates/${e.id}/reject`),children:`拒绝`})]})]},e.id))}),(0,j.jsx)(Re,{title:`Link Inbox`,count:c.length,children:c.slice(0,8).map(e=>(0,j.jsx)(ze,{title:`${e.system}:${e.entityType}`,subtitle:`${e.relation} · ${Math.round(e.confidence*100)}%`,children:(0,j.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,j.jsx)(`button`,{className:`rounded bg-emerald-600 px-2 py-1 text-xs font-semibold text-white`,disabled:!!v,onClick:()=>void w(`/api/runtime/bindings/${e.id}/confirm`),children:`关联`}),(0,j.jsx)(`button`,{className:`rounded border border-slate-200 px-2 py-1 text-xs dark:border-zinc-800`,disabled:!!v,onClick:()=>void w(`/api/runtime/bindings/${e.id}/reject`),children:`忽略`})]})},e.id))})]})]})]})]})})}function P({label:e,value:t}){return(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 p-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`text-xs text-slate-500 dark:text-zinc-500`,children:e}),(0,j.jsx)(`div`,{className:`mt-1 text-2xl font-semibold text-slate-950 dark:text-white`,children:t})]})}function Re({title:e,count:t,children:n}){return(0,j.jsxs)(`section`,{children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold`,children:[e===`Link Inbox`?(0,j.jsx)(he,{size:14}):e===`Contract Inbox`?(0,j.jsx)(k,{size:14}):(0,j.jsx)(fe,{size:14}),e]}),(0,j.jsx)(`span`,{className:`rounded bg-slate-100 px-2 py-0.5 text-xs text-slate-500 dark:bg-zinc-900 dark:text-zinc-400`,children:t})]}),(0,j.jsx)(`div`,{className:`space-y-2`,children:t===0?(0,j.jsx)(`div`,{className:`rounded-md border border-dashed border-slate-200 px-3 py-5 text-center text-xs text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`暂无待处理项`}):n})]})}function ze({title:e,subtitle:t,children:n}){return(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 p-3 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`mb-2`,children:[(0,j.jsx)(`div`,{className:`truncate text-sm font-semibold text-slate-900 dark:text-zinc-100`,children:e}),(0,j.jsx)(`div`,{className:`mt-1 truncate text-xs text-slate-500 dark:text-zinc-500`,children:t})]}),n]})}var F=[`gpt-5.4`],Be=`agent-os:selected-model`,Ve=5200;function He(){if(typeof window>`u`)return`today`;let e=new URL(window.location.href).searchParams.get(`view`);return e===`week`||e===`later`||e===`today`?e:`today`}async function I(e,t){let n=await fetch(e,{headers:{"Content-Type":`application/json`,...t?.headers??{}},...t}),r=await n.json().catch(()=>({}));if(!n.ok)throw Error(typeof r.error==`string`?r.error:`Request failed: ${n.status}`);return r}function Ue(e){let t=e.appended?.assistantMessage?.metadata??e.result?.assistantMessage?.metadata??null;return!t||t.generationMode!==`fallback`?null:`所选模型本次调用失败,已改用本地兜底回复。原因:${typeof t.generationError==`string`&&t.generationError.trim().length>0?t.generationError.trim():`当前模型暂时不可用`}`}function We(e,t){if(!e)return``;let n=e.payload?.content;return typeof n==`string`&&n.trim().length>0?n.trim():t&&t.trim().length>0?t.trim():e.summary??``}function Ge(e,t,n){let r=t.trim();if(!e||!r)return``;let i=r.length>Ve?`${r.slice(0,Ve)}\n\n...`:r,a=e.title?.trim()||`Agent 结果`;return`${n===`next-step`?`请基于这份 Agent 结果提取下一轮可直接确认并委派给 Agent 的行动项。`:`请基于这份 Agent 结果继续推进讨论,先指出下一步最该确认的内容。`}\n\n结果标题:${a}\n\n结果正文:\n${i}`}function Ke(e){if(!e)return`未设置模型`;let t=(e.includes(`/`)?e.split(`/`).at(-1)??e:e).trim(),n=t.toUpperCase(),r={"GLM-5.2":`GLM 5.2`,"GLM-5.1":`GLM 5.1`,"GLM-5-TURBO":`GLM 5 Turbo`,"GLM-4.7":`GLM 4.7`,"GLM-4.5-AIR":`GLM 4.5 Air`,"GLM-4-FLASH":`GLM 4 Flash`,"GLM-4":`GLM 4`,"DEEPSEEK-V4-PRO":`DeepSeek V4 Pro`,"DEEPSEEK-V4-FLASH":`DeepSeek V4 Flash`,"DEEPSEEK-CHAT":`DeepSeek V4 Flash`,"DEEPSEEK-REASONER":`DeepSeek V4 Flash Thinking`,"MINIMAX-M2.7-HIGHSPEED":`MiniMax M2.7 HighSpeed`,"MINIMAX-M2.5":`MiniMax M2.5`,"CLAUDE-OPUS-4-6-THINKING":`Claude Opus 4.6 Thinking`,"CLAUDE-HAIKU-4.5":`Claude Haiku 4.5`};return r[n]?r[n]:t.replace(/[-_]+/g,` `).replace(/\s+/g,` `).trim().replace(/\b\w/g,e=>e.toUpperCase())}function qe(e){if(!e)return null;let t=e.trim();if(!t)return null;let n=t.match(/^(Agent\s+执行「[^」]+」失败:)\s*([\s\S]+)$/u);if(n?.[1]&&n[2]){let e=qe(n[2]);return e?`${n[1]}${e}`:t}let r=t.match(/^Request failed:\s*(\d{3})$/i);if(r)return`请求失败:${r[1]}`;let i=t.replace(/\s+/g,` `),a=[],o=Array.from(new Set(Array.from(i.matchAll(/token plan not support model,\s*([^"{}]+?)(?:\s*\(\d+\))?(?=["),}]|$)/giu)).map(e=>(e[1]??``).trim()).filter(Boolean)));return/deepseek/iu.test(i)&&/Unable to connect|Network error|Failed to connect/iu.test(i)&&a.push(`DeepSeek 服务当前无法连接`),o.length>0&&a.push(`当前账号套餐不支持 ${o.join(`、`)}`),/glm/iu.test(i)&&/Unable to connect|Network error|Failed to connect/iu.test(i)&&a.push(`GLM 服务当前无法连接`),/anthropic|claude/iu.test(i)&&/Unable to connect|Network error|Failed to connect/iu.test(i)&&a.push(`Claude fallback 服务当前无法连接`),a.length>0?`模型调用未完成:${Array.from(new Set(a)).join(`;`)}。请切换可用模型,或检查 provider fallback 配置。`:i.length>280?`${i.slice(0,279)}…`:i}function L(e){if(e)return/^\d{4}-\d{2}-\d{2}/.test(e)?e.slice(5).replace(`-`,`月`)+`日`:e}function Je(e){return e?/^\d{4}-\d{2}-\d{2}T/.test(e)?e.slice(5,16).replace(`T`,` `):e:`-`}function Ye(e,t=120){if(e==null)return`-`;if(typeof e==`string`)return e.length>t?`${e.slice(0,t-1)}…`:e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{let n=JSON.stringify(e);return n.length>t?`${n.slice(0,t-1)}…`:n}catch{return String(e)}}function Xe(e){return e===`done`||e===`accepted`?`done`:e===`in_progress`||e===`review_pending`||e===`result_ready`||e===`blocked`||e===`waiting`?`active`:`todo`}function Ze(e){switch(e){case`high`:return`优先`;case`low`:return`低`;default:return}}function Qe(e){return Array.isArray(e)?Array.from(new Set(e.filter(e=>typeof e==`string`&&e.length>0))):[]}function $e(e){return Qe(e.payload?.relatedTaskIds)}function et(e,t){return[e,Ze(t)].filter(Boolean).join(` · `)||void 0}function tt(e,t){return{id:e.id,label:e.summary||e.title,status:Xe(e.status),extra:et(t,e.priorityLabel),time:L(e.dueAt)}}function nt(e,t){return Ee(e.bucket,t)}function rt(e,t,n){let r=e.filter(e=>nt(e,t)).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),i=new Map(e.map(e=>[e.id,e])),a=new Map(r.map(e=>[e.id,e])),o=new Map;for(let t of e){if(!t.parentId||!i.has(t.parentId))continue;let e=o.get(t.parentId)??[];e.push(t),o.set(t.parentId,e)}let s=[];for(let e of r){if(e.parentId&&a.has(e.parentId))continue;let t=(o.get(e.id)??[]).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),r=new Set(t.map(e=>e.id)),c=$e(e).map(e=>i.get(e)).filter(t=>!!t&&t.id!==e.id&&!r.has(t.id)).sort((e,t)=>t.updatedAt.localeCompare(e.updatedAt)),l=[...t.map(e=>tt(e,`子任务`)),...c.map(e=>tt(e,`关联`))];s.push({id:e.id,taskId:e.id,title:e.title,summary:e.summary||`继续在讨论区补充任务背景,系统会同步整理任务概览。`,status:e.status,priorityLabel:e.priorityLabel,bucket:e.bucket,dueAt:e.dueAt,collapsed:n[e.id]??!1,items:l.length>0?l:[tt(e,null)]})}return s}function it(e,t){let n=e.filter(e=>nt(e,t));return`${n.filter(e=>e.status===`done`).length} 项完成,${n.filter(e=>e.status!==`done`&&e.status!==`archived`).length} 项待处理`}function at(){return Math.random().toString(36).slice(2,10)}var R=[`stop`,`continue`,`retry`,`fallbackAgent`],ot={name:``,description:``,prompt:``,model:`inherit`,tools:``,capabilities:``,memory:`project`,permissionMode:``},st=[{key:`project-maintenance`,label:`项目维护`,need:`持续维护当前项目,自动发现问题、分析影响范围、修复、运行验证,并输出进展报告。`,expectedOutcome:`变更摘要、测试结果、风险、证据和下一步计划。`,constraints:`不自动发布、不删除核心文件、不覆盖无关改动,高风险动作需要审批。`,riskPreference:`medium`},{key:`feature-delivery`,label:`功能开发`,need:`为当前项目完成一个边界清晰的新功能,从代码调研、实现、测试到风险审查。`,expectedOutcome:`可回写代码变更、相关测试、实现说明和回归风险。`,constraints:`只修改必要文件,涉及发布、删除、外部写入时必须审批。`,riskPreference:`medium`},{key:`research-report`,label:`调研报告`,need:`围绕一个业务或技术问题进行资料收集、代码阅读、对比分析,并形成决策建议。`,expectedOutcome:`结构化结论、证据、对比表、风险和推荐路线。`,constraints:`默认只读,不改项目文件。`,riskPreference:`low`},{key:`content-production`,label:`内容生产`,need:`把一个主题变成可发布内容,从选题规划、初稿、编辑到发布前检查。`,expectedOutcome:`内容大纲、正文初稿、编辑建议和发布检查表。`,constraints:`事实不确定时标记待确认,不自动发布。`,riskPreference:`low`},{key:`file-organization`,label:`文件整理`,need:`扫描一个目录,识别文件结构、重复和归档线索,生成安全整理方案。`,expectedOutcome:`扫描摘要、整理方案、拟操作清单和回滚计划。`,constraints:`只生成方案,不自动移动或删除文件。`,riskPreference:`low`}];function ct(e){let t=e.roles.map(e=>({...e,dependsOn:e.dependsOn?[...e.dependsOn]:[],failurePolicy:e.failurePolicy??`stop`})),n=t.map(e=>({id:e.role,role:e.role,label:e.label,dependsOn:e.dependsOn??[],failurePolicy:e.failurePolicy??`stop`})),r=e.edges?.map(e=>({...e}))??t.flatMap(e=>(e.dependsOn??[]).map(t=>({from:t,to:e.role})));return{templateKey:e.source===`user`?e.key:`${e.key}-custom-${at()}`,name:e.source===`user`?e.label:`${e.label} Custom`,description:e.description,topology:e.topology,riskLevel:e.riskLevel??`medium`,roles:t,nodes:n,edges:r,evalSuiteId:typeof e.metadata?.evalSuiteId==`string`?e.metadata.evalSuiteId:``,defaultInputExample:typeof e.metadata?.defaultInputExample==`string`?e.metadata.defaultInputExample:`请让这个团队检查当前项目,并输出行动建议。`}}function z(e){return e.trim().toLowerCase().replace(/[^a-z0-9-]+/g,`-`).replace(/^-+|-+$/g,``).slice(0,48)}function lt(e,t){let n=t.map((e,t)=>{let n=z(e.role)||`role-${t+1}`,r=Array.isArray(e.dependsOn)?e.dependsOn.map(e=>z(e)).filter(Boolean).filter(e=>e!==n):[];return{...e,role:n,label:e.label?.trim()||n,agentType:e.agentType?.trim()||`general-purpose`,capabilityKey:e.capabilityKey?.trim()||`task.execute`,prompt:e.prompt?.trim()||`Act as ${e.label||n} for this team run.`,dependsOn:r,failurePolicy:R.includes(e.failurePolicy)?e.failurePolicy:`stop`}}),r=new Set(n.map(e=>e.role)),i=n.map(e=>({...e,dependsOn:(e.dependsOn??[]).filter(e=>r.has(e))}));return{...e,roles:i,nodes:i.map(e=>({id:e.role,role:e.role,label:e.label,dependsOn:e.dependsOn??[],failurePolicy:e.failurePolicy??`stop`})),edges:i.flatMap(e=>(e.dependsOn??[]).map(t=>({from:t,to:e.role})))}}function ut(){return lt({templateKey:`custom-team-${at()}`,name:`New Agent Team`,description:`自定义本地智能体团队。`,topology:`custom-team-dag`,riskLevel:`medium`,roles:[],nodes:[],edges:[],evalSuiteId:``,defaultInputExample:`请让这个团队处理一个真实任务,并输出可验收结果。`},[{role:`planner`,label:`Planner`,agentType:`general-purpose`,capabilityKey:`task.plan`,prompt:`拆解目标、识别风险并输出执行计划。`,dependsOn:[],failurePolicy:`stop`},{role:`executor`,label:`Executor`,agentType:`general-purpose`,capabilityKey:`task.execute`,prompt:`根据计划执行任务并输出结果。`,dependsOn:[`planner`],failurePolicy:`stop`}])}function dt(e){return lt({templateKey:e.templateKey,name:e.name,description:e.description,topology:e.topology,riskLevel:e.riskLevel,roles:e.roles,nodes:e.nodes,edges:e.edges,evalSuiteId:``,defaultInputExample:e.recommendedTestInput},e.roles)}function ft(e,t){return{templateKey:z(e.templateKey)||`custom-team-${at()}`,name:e.name,description:e.description,topology:e.topology,riskLevel:e.riskLevel,roles:e.roles,nodes:e.nodes,edges:e.edges,permissionPolicy:{source:`team-studio`,riskLevel:e.riskLevel},evalSuiteId:e.evalSuiteId||null,defaultInputExample:e.defaultInputExample,createdFrom:t??e.templateKey}}function pt(e,t){return e?(e.capabilities??[]).some(e=>e.key===t):!1}var mt=({children:e,className:t=``,...n})=>(0,j.jsx)(`div`,{...n,className:`relative overflow-hidden rounded-2xl border border-slate-200 bg-white p-4 shadow-md transition-colors dark:border-zinc-800/80 dark:bg-[#0c0c0e] ${t}`,children:(0,j.jsx)(`div`,{className:`relative z-10`,children:e})}),ht=({title:e,icon:t,action:n})=>(0,j.jsxs)(`div`,{className:`relative mb-6 flex items-center gap-2.5 border-b border-slate-200 pb-4 dark:border-zinc-900`,children:[(0,j.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-px bg-gradient-to-r from-slate-200 to-transparent dark:from-zinc-800`}),(0,j.jsx)(`div`,{className:`flex h-6 w-6 items-center justify-center rounded border border-slate-200 bg-slate-100 dark:border-zinc-800 dark:bg-zinc-900`,children:(0,j.jsx)(t,{size:12,className:`text-slate-500 dark:text-zinc-400`})}),(0,j.jsx)(`span`,{className:`text-sm font-medium tracking-widest text-slate-900 dark:text-zinc-100`,children:e}),n&&(0,j.jsx)(`div`,{className:`ml-auto`,children:n})]}),gt={queued:`border-slate-200/60 bg-slate-50 text-slate-600 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300`,running:`border-indigo-200/50 bg-indigo-50 text-indigo-700 dark:border-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-400`,waiting_input:`border-rose-200/50 bg-rose-50 text-rose-700 dark:border-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400`,completed:`border-emerald-200/50 bg-emerald-50 text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400`,failed:`border-rose-200/50 bg-rose-50 text-rose-700 dark:border-rose-500/20 dark:bg-rose-500/10 dark:text-rose-400`,canceled:`border-slate-200/50 bg-slate-50 text-slate-500 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-400`},_t={neutral:`border-slate-200 bg-slate-100 text-slate-600 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300`,info:`border-indigo-200 bg-indigo-50 text-indigo-700 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-300`,success:`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-300`,warning:`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-300`,danger:`border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-300`};function vt(){if(typeof window>`u`)return;let e=new URL(window.location.href);if(xt(e)&&!(e.pathname!==`/agent-team-studio`&&e.searchParams.get(`teamStudio`)!==`1`))return e.searchParams.get(`template`)?.trim()||null}function yt(){if(typeof window>`u`)return;let e=new URL(window.location.href);return xt(e)?e.searchParams.get(`runtimeRoot`)?.trim()||(e.searchParams.get(`runtime`)===`1`?null:void 0):void 0}function bt(){return{BASE_URL:`/`,DEV:!1,MODE:`production`,PROD:!0,SSR:!1}}function xt(e){if(e.searchParams.get(`experimental`)===`1`)return!0;try{if(window.localStorage?.getItem(`agent-os:workbench-experiments`)===`1`)return!0}catch{}return i(bt())}function St(e){return(qe(e)??e).replace(/\r\n?/g,`
9
+ `).replace(/\*\*\s+\*\*/g,``).replace(/([。!?!?])\s+(\*\*[^*\n]{1,48}[::]\*\*)/g,`$1
10
+
11
+ $2`).replace(/\s+(\d+[.、]\s+\*\*)/g,`
12
+ $1`).replace(/\s+(\d+[.、]\s+)/g,`
13
+ $1`).replace(/\s+(请直接在这里继续补充)/g,`
14
+
15
+ $1`).replace(/\n{3,}/g,`
16
+
17
+ `).trim()}function Ct(e){let t=St(e);if(!t)return[];let n=[],r=[],i=[],a=()=>{r.length!==0&&(n.push({type:`paragraph`,text:r.join(`
18
+ `)}),r=[])},o=()=>{i.length!==0&&(n.push({type:`ordered-list`,items:i}),i=[])};for(let e of t.split(`
19
+ `)){let t=e.trim();if(!t){a(),o();continue}let n=t.match(/^\d+[.、]\s+(.+)$/);if(n){a(),i.push(n[1]??``);continue}o(),r.push(t)}return a(),o(),n}function B(e,t){let n=[],r=/\*\*([^*]+?)\*\*/g,i=0,a;for(;(a=r.exec(e))!==null;){let r=e.slice(i,a.index).replace(/\*\*/g,``);r&&n.push(r);let o=(a[1]??``).trim();o&&n.push((0,j.jsx)(`strong`,{className:`font-semibold text-inherit`,children:o},`${t}-strong-${a.index}`)),i=a.index+a[0].length}let o=e.slice(i).replace(/\*\*/g,``);return o&&n.push(o),n.length>0?n:[e.replace(/\*\*/g,``)]}function wt({content:e}){let t=Ct(e);return t.length===0?null:(0,j.jsx)(`div`,{className:`space-y-2.5`,children:t.map((e,t)=>e.type===`ordered-list`?(0,j.jsx)(`ol`,{className:`list-decimal space-y-2 pl-5`,children:e.items.map((e,n)=>(0,j.jsx)(`li`,{className:`pl-1`,children:B(e,`list-${t}-${n}`)},`list-${t}-${n}`))},`list-${t}`):(0,j.jsx)(`p`,{className:`whitespace-pre-wrap break-words`,children:B(e.text,`paragraph-${t}`)},`paragraph-${t}`))})}function Tt({content:e}){let t=e.trim();return(0,j.jsx)(`div`,{className:`rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm leading-6 text-slate-700 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-200`,children:t?(0,j.jsx)(wt,{content:t}):(0,j.jsx)(`p`,{className:`text-slate-500 dark:text-zinc-500`,children:`当前产物没有正文内容。`})})}function V(e,t){let n=e?.[t];return Array.isArray(n)?n.filter(e=>typeof e==`string`&&e.trim().length>0):[]}function Et(e){return e.metadata?.kind===`agent-waiting-input`||e.content.includes(`需要你补充更多信息`)||e.content.includes(`当前还缺少:`)?`input-request`:`status`}function H(e){let t=V(e.metadata,`inputRequests`),n=St(e.content).split(`
20
+ `).map(e=>e.trim()).filter(Boolean),r=n.find(e=>e.includes(`继续补充`))?.replace(/^\d+[.、]\s+/,``)??null,i=t.length>0?t:n.map(e=>e.match(/^\d+[.、]\s+(.+)$/)?.[1]?.trim()).map(e=>e?.replace(/\s+请直接在这里继续补充.+$/u,``).trim()).filter(e=>!!e),a=n.findIndex(e=>/^\d+[.、]\s+/.test(e));return{title:(a>=0?n.slice(0,a):n).map(e=>e.replace(/\s*当前还缺少:?\s*$/u,``).trim()).filter(e=>e&&e!==`当前还缺少:`)[0]??`Agent 需要你补充更多信息。`,items:i,footer:r}}function Dt({content:e}){return(0,j.jsx)(`div`,{className:`max-w-[82%] px-3 py-1 text-left text-[12px] leading-5 text-slate-500 dark:text-zinc-500`,children:(0,j.jsx)(wt,{content:e})})}function U({message:e}){let t=H(e);return(0,j.jsxs)(`div`,{className:`w-full max-w-[82%] rounded-2xl border border-amber-200/70 bg-amber-50/80 px-4 py-3 text-left text-[12px] leading-5 text-amber-950 shadow-sm dark:border-amber-500/20 dark:bg-amber-500/[0.08] dark:text-amber-100`,children:[(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`text-[11px] font-semibold uppercase tracking-[0.14em] text-amber-700/70 dark:text-amber-300/70`,children:`待补充`}),(0,j.jsx)(`div`,{className:`mt-1 text-sm font-semibold leading-6 text-amber-950 dark:text-amber-50`,children:t.title})]}),(0,j.jsx)(`div`,{className:`shrink-0 rounded-full border border-amber-300/60 px-2 py-0.5 text-[10px] font-semibold text-amber-800 dark:border-amber-400/25 dark:text-amber-200`,children:`TODO`})]}),t.items.length>0&&(0,j.jsx)(`ul`,{className:`mt-3 space-y-2`,children:t.items.map((t,n)=>(0,j.jsxs)(`li`,{className:`flex gap-2`,children:[(0,j.jsx)(`span`,{className:`mt-[5px] h-3 w-3 shrink-0 rounded border border-amber-400/70 bg-white/40 dark:border-amber-300/50 dark:bg-black/10`}),(0,j.jsx)(`span`,{className:`min-w-0 flex-1`,children:B(t,`${e.id}-input-request-${n}`)})]},`${e.id}-input-request-${n}`))}),t.footer&&(0,j.jsx)(`div`,{className:`mt-3 border-t border-amber-200/70 pt-2 text-[11px] text-amber-800/80 dark:border-amber-400/15 dark:text-amber-200/70`,children:t.footer})]})}function Ot({message:e}){return Et(e)===`input-request`?(0,j.jsx)(U,{message:e}):(0,j.jsx)(Dt,{content:e.content})}function kt(){let e=yt();if(e!==void 0)return(0,j.jsx)(Le,{initialRootId:e});let t=vt();return t===void 0?(0,j.jsx)(jt,{}):(0,j.jsx)(At,{initialTemplateKey:t})}function At({initialTemplateKey:e}){let[t,n]=(0,A.useState)([]),[r,i]=(0,A.useState)([]),[a,o]=(0,A.useState)([]),[s,c]=(0,A.useState)([]),[l,u]=(0,A.useState)([]),[d,f]=(0,A.useState)(e),[p,m]=(0,A.useState)(null),[h,g]=(0,A.useState)(`请让 Code Team 检查当前项目,并输出改进建议。`),[_,v]=(0,A.useState)(null),[y,b]=(0,A.useState)(null),[x,S]=(0,A.useState)(null),[C,ee]=(0,A.useState)(`我希望组建一个团队,持续维护当前项目,自动发现问题、修复、测试并输出报告。`),[w,te]=(0,A.useState)(`输出可验证的变更摘要、测试结果、风险和下一步计划。`),[ne,re]=(0,A.useState)(`不自动发布、不删除核心文件,高风险动作需要审批。`),[ie,ae]=(0,A.useState)(`medium`),[T,oe]=(0,A.useState)(null),[se,ce]=(0,A.useState)([]),[le,E]=(0,A.useState)(!1),[ue,de]=(0,A.useState)(!0),[fe,pe]=(0,A.useState)(null),[me,D]=(0,A.useState)(null),he=(0,A.useMemo)(()=>r.filter(e=>e.status===`enabled`),[r]),O=(0,A.useMemo)(()=>t.find(e=>e.key===d)??null,[t,d]),ge=(0,A.useMemo)(()=>(p?.roles??[]).map(e=>{let t=he.find(t=>t.agentType===e.agentType)??r.find(t=>t.agentType===e.agentType);return{role:e,profile:t,hasCapability:pt(t,e.capabilityKey)}}),[p?.roles,he,r]),_e=O?.source===`user`,ve=[...p?[]:[`先描述业务需求并生成团队草案。`],...p&&!p.name.trim()?[`团队名称不能为空。`]:[],...p&&!z(p.templateKey)?[`团队 ID 不能为空,只支持英文、数字和连字符。`]:[],...p&&p.roles.length===0?[`至少需要一个团队成员。`]:[]],k=ge.filter(e=>!e.profile||!e.hasCapability).map(e=>`${e.role.label}: ${e.profile?`当前 Agent 缺少能力 ${e.role.capabilityKey}`:`找不到 Agent ${e.role.agentType}`}`),ye=[...ve,...p&&!_e&&!T?[`请先保存为“我的 AI 团队”,保存后才能试跑和复用。`]:[],...k],be=k.length,xe=p?ve.length>0?`DraftIncomplete`:T||_e?be>0?`NeedsAgent`:y?`Passed`:`Ready`:`DraftUnsaved`:`Empty`,Ce={Empty:`未开始`,DraftIncomplete:`草稿未完整`,DraftUnsaved:`待保存`,NeedsAgent:`需补 Agent`,Ready:`可试跑`,Passed:`已试跑`}[xe],we={Empty:`先选择一个业务场景,补充目标和约束,再生成团队方案。`,DraftIncomplete:`补齐团队名称、团队 ID 和至少一个成员。`,DraftUnsaved:`这是查看中的团队方案。可基于它生成新方案,或保存为我的团队。`,NeedsAgent:`为每个成员选择具备对应能力的 Agent。`,Ready:`先试跑一次,确认这个团队能完成真实任务。`,Passed:`试跑已创建,可以保存为我的团队,并在后续运行中持续演化。`}[xe],Te=s.filter(e=>e.defaultRiskLevel===`high`||e.defaultBehavior.includes(`approval`)).slice(0,5),Ee=t.filter(e=>e.source===`user`),De=t.filter(e=>e.source!==`user`),Oe=!!(p&&ve.length===0),ke=!!(p&&ye.length===0),Ae=!!(Oe&&(!T||y)),je=_e?`复制为新团队`:`保存为我的团队`,Me=p?T?`正在审核生成草案`:_e?`正在编辑我的团队`:O?`正在基于系统模板创建`:`正在新建空白团队`:`等待需求`,M=y?l.find(e=>e.teamRun.id===y)??null:l[0]??null,Ne=async(t={})=>{let[r,a,s,l,p]=await Promise.all([I(`/api/agents/profiles?limit=200`),I(`/api/agents/team-templates`),I(`/api/agents/eval-suites?limit=50`),I(`/api/agents/permissions/matrix`),I(`/api/agents/team-runs?limit=20`)]),h=Array.isArray(a.templates)?a.templates:[],g=t.preferredTemplateKey??d??e,_=g&&h.some(e=>e.key===g)?g:null,v=h.find(e=>e.key===_)??null;i(Array.isArray(r.profiles)?r.profiles.filter(e=>e.status!==`archived`):[]),n(h),o(Array.isArray(s.suites)?s.suites:[]),c(Array.isArray(l.matrix)?l.matrix:[]),u(Array.isArray(p.teamRuns)?p.teamRuns:[]),f(_),m(e=>t.preserveDraft!==!1&&e?e:v?ct(v):null)};(0,A.useEffect)(()=>{document.documentElement.classList.add(`dark`);let e=!0;return Ne({preserveDraft:!1}).catch(t=>{e&&D(t instanceof Error?t.message:`加载 Agent Team Studio 失败`)}).finally(()=>{e&&de(!1)}),()=>{e=!1}},[]);let Pe=async(e,t=!0)=>{await Ne({preferredTemplateKey:e,preserveDraft:t})},Fe=e=>{f(e.key),m(ct(e)),oe(null),ce([]),v(null),b(null),S(null),pe(null),D(null),typeof window<`u`&&window.history.replaceState(null,``,`/agent-team-studio?template=${encodeURIComponent(e.key)}`)},Ie=()=>{f(null),m(ut()),oe(null),ce([]),v(null),b(null),S(null),pe(`已创建空白 Team 草稿。`),D(null),typeof window<`u`&&window.history.replaceState(null,``,`/agent-team-studio`)},N=async()=>{if(!T||!p)return T;let e=ft(p,T.validation.matchedTemplateKey??T.templateKey),t=await I(`/api/agents/team-builder/drafts/${T.id}`,{method:`PATCH`,body:JSON.stringify({need:C,expectedOutcome:w,constraints:ne,riskPreference:ie,...e})});return oe(t.draft),m(dt(t.draft)),t.draft},Le=async()=>{if(!C.trim()){D(`请先描述业务需求。`);return}try{E(!0),D(null),pe(null);let e=await I(`/api/agents/team-builder/drafts`,{method:`POST`,body:JSON.stringify({need:C,expectedOutcome:w,constraints:ne,riskPreference:ie,source:O?`evolve:${O.key}`:`team-builder`})});oe(e.draft),f(null),m(dt(e.draft)),g(e.recommendedTestInput),b(null),ce([]),pe(`已生成团队草案:${e.draft.name}`),typeof window<`u`&&window.history.replaceState(null,``,`/agent-team-studio`)}catch(e){D(e instanceof Error?e.message:`生成团队草案失败`)}finally{E(!1)}},P=e=>{ee(e.need),te(e.expectedOutcome),re(e.constraints),ae(e.riskPreference),pe(`已选择场景:${e.label}`),D(null)},Re=(e,t)=>{m(n=>n&&lt(n,n.roles.map(n=>n.role===e?{...n,agentType:t}:n)))},ze=(e,t)=>{m(n=>n&&lt(n,n.roles.map(n=>n.role===e?{...n,failurePolicy:t}:n)))},F=(e,t,n)=>{m(r=>r&&lt(r,r.roles.map(r=>r.role===e?t===`dependsOn`?{...r,dependsOn:n.split(`,`).map(e=>z(e)).filter(Boolean)}:{...r,[t]:t===`role`?z(n):n}:r)))},Be=()=>{m(e=>{let t=e??ut(),n=t.roles.length+1,r=t.roles[t.roles.length-1]?.role;return lt(t,[...t.roles,{role:`role-${n}`,label:`Role ${n}`,agentType:`general-purpose`,capabilityKey:`task.execute`,prompt:`Act as Role ${n} for this team run.`,dependsOn:r?[r]:[],failurePolicy:`stop`}])})},Ve=e=>{m(t=>!t||t.roles.length<=1?t:lt(t,t.roles.filter(t=>t.role!==e).map(t=>({...t,dependsOn:(t.dependsOn??[]).filter(t=>t!==e)}))))},He=()=>p?ft(p,O?.key??p.templateKey):null,Ue=()=>{let e=He();return e?_e&&O&&e.templateKey===O.key?{...e,templateKey:`${O.key}-copy-${at()}`,createdFrom:O.key}:e:null},We=async()=>{if(p){if(!h.trim()){D(`请输入团队试跑任务。`);return}try{E(!0),D(null);let e;if(T)await N(),e=await I(`/api/agents/team-builder/drafts/${T.id}/test-run`,{method:`POST`,body:JSON.stringify({input:h})}),e.draft&&oe(e.draft);else{if(!O){D(`请先保存为“我的 AI 团队”,再运行试跑。`);return}e=await I(`/api/agents/team-templates/${O.key}/test-run`,{method:`POST`,body:JSON.stringify({...He(),templateKey:O.key,input:h})})}if(await Pe(),b(e.teamRun?.id??null),e.teamRun?.id){let t=await I(`/api/agents/team-runs/${e.teamRun.id}/evolution-suggestions`);ce(Array.isArray(t.suggestions)?t.suggestions:[])}pe(`试跑已启动:${p.name}`)}catch(e){D(e instanceof Error?e.message:`团队试跑失败`)}finally{E(!1)}}},Ge=async()=>{if(T){try{E(!0),D(null),await N();let e=await I(`/api/agents/team-builder/drafts/${T.id}/save`,{method:`POST`}),t=e.template?.key??e.draft?.templateId??T.templateKey;oe(null),await Pe(t,!1),v(t),typeof window<`u`&&window.history.replaceState(null,``,`/agent-team-studio?template=${encodeURIComponent(t)}`),pe(`已保存为我的 AI 团队:${e.template?.label??p?.name??t}`)}catch(e){D(e instanceof Error?e.message:`保存团队草案失败`)}finally{E(!1)}return}let e=Ue();if(e)try{E(!0),D(null);let t=await I(`/api/agents/team-templates`,{method:`POST`,body:JSON.stringify(e)}),n=t.template?.key??e.templateKey;await Pe(n,!1),v(n),typeof window<`u`&&window.history.replaceState(null,``,`/agent-team-studio?template=${encodeURIComponent(n)}`),pe(`已保存为我的 AI 团队:${t.template?.label??e.name}`)}catch(e){D(e instanceof Error?e.message:`保存团队模板失败`)}finally{E(!1)}};return ue?(0,j.jsx)(`div`,{className:`flex h-screen items-center justify-center bg-slate-950 text-sm text-zinc-400`,children:`正在打开 Agent Team Studio...`}):(0,j.jsx)(`div`,{className:`h-screen overflow-hidden bg-[#08080a] px-5 py-6 font-sans text-zinc-100`,children:(0,j.jsxs)(`div`,{className:`mx-auto flex h-full max-w-[1480px] flex-col overflow-hidden rounded-[28px] border border-zinc-800/90 bg-[#0c0c0e]/95 shadow-2xl`,children:[(0,j.jsxs)(`header`,{className:`flex shrink-0 flex-wrap items-start justify-between gap-4 border-b border-zinc-800 px-6 py-5`,children:[(0,j.jsx)(`div`,{className:`min-w-0`,children:(0,j.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,j.jsx)(`div`,{className:`flex h-10 w-10 items-center justify-center rounded-xl border border-indigo-500/30 bg-indigo-500/10 text-indigo-200`,children:(0,j.jsx)(Se,{size:18})}),(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`h1`,{className:`truncate text-xl font-semibold text-white`,children:`新建 AI 团队`}),(0,j.jsx)(`p`,{className:`mt-1 text-xs text-zinc-500`,children:`把业务目标交给系统,先生成一支可试跑的团队方案,再决定是否保存和复用。`})]})]})}),(0,j.jsxs)(`div`,{className:`flex shrink-0 items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`rounded border px-2.5 py-1 text-[11px] font-semibold ${xe===`Passed`?`border-emerald-500/30 bg-emerald-500/10 text-emerald-200`:xe===`Ready`?`border-indigo-500/30 bg-indigo-500/10 text-indigo-200`:`border-amber-500/30 bg-amber-500/10 text-amber-200`}`,children:Ce}),(0,j.jsx)(`a`,{href:`/`,className:`rounded-full border border-zinc-800 bg-zinc-950 px-3 py-1.5 text-[11px] font-semibold text-zinc-300 transition-colors hover:bg-zinc-900`,children:`返回任务工作台`})]})]}),(0,j.jsxs)(`main`,{className:`flex min-h-0 flex-1 flex-col overflow-hidden px-6 py-5`,children:[(0,j.jsxs)(`div`,{className:`mb-4 rounded-2xl border border-zinc-800 bg-zinc-950/70 px-4 py-3`,children:[(0,j.jsx)(`div`,{className:`grid gap-2 md:grid-cols-4`,children:[[`1`,`说明目标`,`选择场景并描述要完成什么`],[`2`,`生成团队方案`,`系统匹配成员、职责和协作顺序`],[`3`,`试跑验证`,`用真实任务检查是否可用`],[`4`,`保存并演化`,`沉淀为我的团队,后续持续改进`]].map(([e,t,n],r)=>{let i=r===0&&!p||r===1&&p&&!y||r===2&&y&&!_||r===3&&_;return(0,j.jsxs)(`div`,{className:`rounded-xl border px-3 py-2 ${i?`border-indigo-500/40 bg-indigo-500/10`:`border-zinc-800 bg-black/20`}`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 text-xs font-semibold text-zinc-100`,children:[(0,j.jsx)(`span`,{className:`flex h-5 w-5 items-center justify-center rounded ${i?`bg-indigo-500 text-white`:`bg-zinc-800 text-zinc-400`}`,children:e}),t]}),(0,j.jsx)(`div`,{className:`mt-1 text-[10px] leading-4 text-zinc-500`,children:n})]},e)})}),(0,j.jsxs)(`div`,{className:`mt-3 text-[11px] text-zinc-500`,children:[`当前:`,Me,`。下一步:`,we]})]}),(fe||me)&&(0,j.jsxs)(`div`,{className:`mb-4 grid gap-2 md:grid-cols-2`,children:[fe&&(0,j.jsx)(`div`,{className:`rounded-xl border border-indigo-500/30 bg-indigo-500/10 px-4 py-3 text-sm text-indigo-100`,children:fe}),me&&(0,j.jsx)(`div`,{className:`rounded-xl border border-rose-500/30 bg-rose-500/10 px-4 py-3 text-sm text-rose-100`,children:me})]}),x&&(0,j.jsxs)(`div`,{className:`mb-4 rounded-2xl border border-zinc-800 bg-black/40 p-4`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-zinc-100`,children:`团队配置源`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>S(null),className:`rounded border border-zinc-700 px-2 py-1 text-[11px] font-semibold text-zinc-400 hover:text-zinc-100`,children:`关闭`})]}),(0,j.jsx)(`pre`,{className:`max-h-44 overflow-y-auto whitespace-pre-wrap text-xs leading-5 text-zinc-400`,children:x})]}),(0,j.jsxs)(`div`,{className:`grid min-h-0 flex-1 gap-4 lg:grid-cols-[0.8fr_1.35fr_1fr]`,children:[(0,j.jsxs)(`section`,{className:`flex min-h-0 flex-col overflow-hidden rounded-2xl border border-zinc-800 bg-zinc-950/70`,children:[(0,j.jsxs)(`div`,{className:`shrink-0 border-b border-zinc-800 px-4 py-3`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-zinc-100`,children:`1. 你想让团队帮你做什么?`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-zinc-500`,children:`先选一个常见场景,再补充目标。用户不需要理解模板或 DAG。`})]}),(0,j.jsxs)(`div`,{className:`scrollbar-hide min-h-0 flex-1 space-y-3 overflow-y-auto p-3`,children:[(0,j.jsx)(`div`,{className:`grid grid-cols-2 gap-2`,children:st.map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>P(e),className:`rounded-xl border px-3 py-2 text-left text-xs transition-colors ${C===e.need?`border-indigo-500/50 bg-indigo-500/15 text-indigo-100`:`border-zinc-800 bg-black/25 text-zinc-300 hover:border-zinc-700`}`,children:[(0,j.jsx)(`div`,{className:`font-semibold`,children:e.label}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[10px] leading-4 text-zinc-500`,children:e.expectedOutcome})]},e.key))}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`目标`}),(0,j.jsx)(`textarea`,{value:C,onChange:e=>ee(e.target.value),className:`min-h-[116px] w-full resize-none rounded-xl border border-zinc-700 bg-black/30 px-3 py-2 text-sm leading-6 text-zinc-200 outline-none`,"aria-label":`Business need`,placeholder:`例如:持续维护 Agent-OS 多智能体系统,发现问题后自动分析、修复、验证并输出报告。`})]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Le(),disabled:le||!C.trim(),className:`h-11 w-full rounded-xl bg-indigo-600 text-sm font-semibold text-white transition-colors hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-50`,children:`生成团队方案`}),(0,j.jsxs)(`details`,{className:`rounded-xl border border-zinc-800 bg-black/20 p-3`,children:[(0,j.jsx)(`summary`,{className:`cursor-pointer text-xs font-semibold text-zinc-300`,children:`更多要求:产出、边界和风险偏好`}),(0,j.jsxs)(`div`,{className:`mt-3 space-y-3`,children:[(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`期望产出`}),(0,j.jsx)(`textarea`,{value:w,onChange:e=>te(e.target.value),className:`min-h-[64px] w-full resize-none rounded-xl border border-zinc-700 bg-black/30 px-3 py-2 text-xs leading-5 text-zinc-300 outline-none`,"aria-label":`Expected outcome`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`不能做什么 / 需要审批什么`}),(0,j.jsx)(`textarea`,{value:ne,onChange:e=>re(e.target.value),className:`min-h-[64px] w-full resize-none rounded-xl border border-zinc-700 bg-black/30 px-3 py-2 text-xs leading-5 text-zinc-300 outline-none`,"aria-label":`Constraints`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`风险偏好`}),(0,j.jsxs)(`select`,{value:ie,onChange:e=>ae(e.target.value),className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-xs text-zinc-200 outline-none`,"aria-label":`Risk preference`,children:[(0,j.jsx)(`option`,{value:`low`,children:`低风险:偏研究、审查、只读`}),(0,j.jsx)(`option`,{value:`medium`,children:`中风险:允许项目内修改与测试`}),(0,j.jsx)(`option`,{value:`high`,children:`高风险:更强执行,但仍需审批`})]})]})]})]}),(0,j.jsxs)(`details`,{className:`rounded-xl border border-zinc-800 bg-black/20 p-3`,children:[(0,j.jsx)(`summary`,{className:`cursor-pointer text-xs font-semibold text-zinc-300`,children:`管理已有团队 / 专家模式`}),(0,j.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:Ie,disabled:le,className:`w-full rounded-lg border border-dashed border-zinc-700 px-3 py-2 text-left text-xs font-semibold text-zinc-300 hover:border-emerald-500/40`,children:`从空白团队开始`}),Ee.map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>Fe(e),className:`w-full rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-left text-xs text-zinc-300 hover:border-zinc-700`,children:[(0,j.jsx)(`div`,{className:`truncate font-semibold`,children:e.label}),(0,j.jsxs)(`div`,{className:`mt-1 truncate text-[10px] text-zinc-500`,children:[`我的团队 · `,e.roles.length,` 个成员`]})]},e.key)),De.slice(0,6).map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>Fe(e),className:`w-full rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-left text-xs text-zinc-300 hover:border-zinc-700`,children:[(0,j.jsx)(`div`,{className:`truncate font-semibold`,children:e.label}),(0,j.jsx)(`div`,{className:`mt-1 truncate text-[10px] text-zinc-500`,children:`查看系统方案 · 可基于此演化`})]},e.key))]})]})]})]}),(0,j.jsxs)(`section`,{className:`flex min-h-0 flex-col overflow-hidden rounded-2xl border border-zinc-800 bg-zinc-950/70`,children:[(0,j.jsx)(`div`,{className:`shrink-0 border-b border-zinc-800 px-4 py-3`,children:(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-zinc-100`,children:`2. 系统生成的团队方案`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-zinc-500`,children:`先看这个团队是否符合业务目标;细节配置收进专家模式。`})]}),(0,j.jsx)(`span`,{className:`rounded border border-zinc-700 px-2 py-1 text-[10px] text-zinc-500`,children:p?`${p.roles.length} 个成员`:`等待生成`})]})}),(0,j.jsx)(`div`,{className:`scrollbar-hide min-h-0 flex-1 overflow-y-auto p-4`,children:p?(0,j.jsxs)(`div`,{className:`space-y-4`,children:[(0,j.jsx)(`div`,{className:`rounded-xl border border-indigo-500/25 bg-indigo-500/10 p-4`,children:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`text-base font-semibold text-white`,children:p.name}),(0,j.jsx)(`div`,{className:`mt-2 line-clamp-4 text-xs leading-5 text-indigo-100/80`,children:p.description})]}),(0,j.jsxs)(`span`,{className:`shrink-0 rounded border border-indigo-400/30 bg-black/20 px-2 py-1 text-[10px] font-semibold text-indigo-100`,children:[p.riskLevel,` risk`]})]})}),T&&(0,j.jsxs)(`div`,{className:`grid gap-3 md:grid-cols-2`,children:[(0,j.jsxs)(`div`,{className:`rounded-xl border p-3 ${T.validation.issues.length===0?`border-emerald-500/25 bg-emerald-500/10`:`border-amber-500/25 bg-amber-500/10`}`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`草案校验`}),T.validation.issues.length===0?(0,j.jsx)(`div`,{className:`mt-2 text-xs leading-5 text-emerald-100`,children:`现有 Agent 能覆盖该团队草案,可以进入试跑。`}):(0,j.jsx)(`ul`,{className:`mt-2 space-y-1 text-xs leading-5 text-amber-100`,children:T.validation.issues.slice(0,4).map(e=>(0,j.jsxs)(`li`,{children:[`- `,e.message]},`${e.code}-${e.role??e.message}`))})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`推荐验收标准`}),(0,j.jsx)(`ul`,{className:`mt-2 space-y-1 text-xs leading-5 text-zinc-400`,children:T.acceptanceCriteria.slice(0,4).map(e=>(0,j.jsxs)(`li`,{children:[`- `,e]},e))})]})]}),(0,j.jsxs)(`details`,{className:`rounded-xl border border-zinc-800 bg-black/20 p-3`,children:[(0,j.jsx)(`summary`,{className:`cursor-pointer text-xs font-semibold text-zinc-300`,children:`专家模式:团队名称、ID 与协作方式`}),(0,j.jsxs)(`div`,{className:`mt-3 grid gap-3 md:grid-cols-2`,children:[(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`团队名称`}),(0,j.jsx)(`input`,{value:p.name,onChange:e=>m(t=>t&&{...t,name:e.target.value}),className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-sm text-zinc-100 outline-none`,"aria-label":`Team name`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`团队目标 / 使用场景`}),(0,j.jsx)(`input`,{value:p.description,onChange:e=>m(t=>t&&{...t,description:e.target.value}),className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-sm text-zinc-100 outline-none`,"aria-label":`Team description`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`团队 ID(自动生成,可改)`}),(0,j.jsx)(`input`,{value:p.templateKey,onChange:e=>m(t=>t&&{...t,templateKey:e.target.value}),disabled:_e,className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-sm text-zinc-100 outline-none disabled:cursor-not-allowed disabled:opacity-60`,"aria-label":`Team template key`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`协作方式`}),(0,j.jsx)(`input`,{value:p.topology,onChange:e=>m(t=>t&&{...t,topology:e.target.value}),className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-sm text-zinc-100 outline-none`,"aria-label":`Team topology`})]})]})]}),(0,j.jsx)(`div`,{className:`grid gap-3 xl:grid-cols-2`,children:ge.map(({role:e,profile:t,hasCapability:n})=>(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`truncate text-sm font-semibold text-zinc-100`,children:e.label}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-[11px] text-zinc-500`,children:e.capabilityKey})]}),(0,j.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1.5`,children:[(0,j.jsx)(`span`,{className:`rounded border px-2 py-1 text-[10px] font-semibold ${t&&n?`border-emerald-500/30 bg-emerald-500/10 text-emerald-200`:`border-amber-500/30 bg-amber-500/10 text-amber-200`}`,children:t?n?`已匹配`:`能力不匹配`:`缺少 Agent`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>Ve(e.role),disabled:p.roles.length<=1,className:`rounded border border-rose-500/25 px-2 py-1 text-[10px] font-semibold text-rose-200 disabled:opacity-40`,children:`删除角色`})]})]}),(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2`,children:[(0,j.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-wide text-zinc-500`,children:`它负责什么`}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-3 text-xs leading-5 text-zinc-300`,children:e.prompt})]}),(0,j.jsxs)(`details`,{className:`mt-2 rounded-lg border border-zinc-800 bg-zinc-950/70 p-2`,children:[(0,j.jsx)(`summary`,{className:`cursor-pointer text-[11px] font-semibold text-zinc-400`,children:`专家模式:修改职责、Agent、能力、依赖和失败策略`}),(0,j.jsxs)(`div`,{className:`mt-2 grid gap-2 md:grid-cols-2`,children:[(0,j.jsxs)(`label`,{className:`block md:col-span-2`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`成员职责`}),(0,j.jsx)(`textarea`,{value:e.prompt??``,onChange:t=>F(e.role,`prompt`,t.target.value),className:`min-h-[70px] w-full resize-none rounded-lg border border-zinc-700 bg-zinc-950 px-2 py-2 text-xs leading-5 text-zinc-300 outline-none`,"aria-label":`${e.label} prompt`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`成员 ID`}),(0,j.jsx)(`input`,{value:e.role,onChange:t=>F(e.role,`role`,t.target.value),className:`h-9 w-full rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} role key`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`成员名称`}),(0,j.jsx)(`input`,{value:e.label,onChange:t=>F(e.role,`label`,t.target.value),className:`h-9 w-full rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} label`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`执行 Agent`}),(0,j.jsxs)(`select`,{value:e.agentType,onChange:t=>Re(e.role,t.target.value),className:`h-9 w-full min-w-0 rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} Agent`,children:[(0,j.jsx)(`option`,{value:e.agentType,children:e.agentType}),r.filter(t=>t.agentType!==e.agentType).map(e=>(0,j.jsx)(`option`,{value:e.agentType,children:e.displayName},e.id))]})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`要求能力`}),(0,j.jsx)(`input`,{value:e.capabilityKey,onChange:t=>F(e.role,`capabilityKey`,t.target.value),className:`h-9 w-full rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} capability`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`依赖成员`}),(0,j.jsx)(`input`,{value:(e.dependsOn??[]).join(`, `),onChange:t=>F(e.role,`dependsOn`,t.target.value),placeholder:`planner, researcher`,className:`h-9 w-full rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} depends on`})]}),(0,j.jsxs)(`label`,{className:`block`,children:[(0,j.jsx)(`span`,{className:`mb-1 block text-[10px] text-zinc-500`,children:`失败策略`}),(0,j.jsxs)(`select`,{value:e.failurePolicy??`stop`,onChange:t=>ze(e.role,t.target.value),className:`h-9 w-full rounded-lg border border-zinc-700 bg-zinc-950 px-2 text-xs text-zinc-200 outline-none`,"aria-label":`${e.label} failure policy`,children:[(0,j.jsx)(`option`,{value:`stop`,children:`stop`}),(0,j.jsx)(`option`,{value:`continue`,children:`continue`}),(0,j.jsx)(`option`,{value:`retry`,children:`retry`}),(0,j.jsx)(`option`,{value:`fallbackAgent`,children:`fallback`})]})]})]})]})]},e.role))}),(0,j.jsx)(`button`,{type:`button`,onClick:Be,className:`w-full rounded-xl border border-dashed border-zinc-700 px-3 py-3 text-sm font-semibold text-zinc-300 transition-colors hover:border-indigo-500/40 hover:text-indigo-100`,children:`新增角色`}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-zinc-100`,children:`协作流程预览`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-zinc-500`,children:`根据成员依赖自动生成执行顺序;本版先支持模板化流程,不做自由拖拽连线。`})]}),(0,j.jsxs)(`span`,{className:`rounded border border-zinc-700 px-2 py-1 text-[10px] text-zinc-500`,children:[p.edges.length,` 条依赖`]})]}),(0,j.jsx)(`div`,{className:`flex flex-wrap items-center gap-2`,children:p.nodes.map(e=>(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-700 bg-zinc-950 px-3 py-2 text-xs text-zinc-300`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-zinc-100`,children:e.label}),(0,j.jsxs)(`div`,{className:`mt-1 text-[10px] text-zinc-500`,children:[e.dependsOn.length?`${e.dependsOn.join(`+`)} -> ${e.role}`:`start`,` · `,e.failurePolicy]})]},e.id))})]})]}):(0,j.jsx)(`div`,{className:`rounded-xl border border-dashed border-zinc-800 px-4 py-5 text-sm text-zinc-500`,children:`先在左侧描述业务需求并生成团队草案。`})})]}),(0,j.jsxs)(`section`,{className:`flex min-h-0 flex-col overflow-hidden rounded-2xl border border-zinc-800 bg-zinc-950/70`,children:[(0,j.jsxs)(`div`,{className:`shrink-0 border-b border-zinc-800 px-4 py-3`,children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-zinc-100`,children:`3. 试跑并保存`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-zinc-500`,children:`先用一条真实任务验证团队,再把通过的方案保存成“我的团队”。`})]}),(0,j.jsxs)(`div`,{className:`scrollbar-hide min-h-0 flex-1 space-y-4 overflow-y-auto p-4`,children:[(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 text-center text-xs`,children:[(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-black/25 px-2 py-2`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-zinc-100`,children:p?.riskLevel??`-`}),(0,j.jsx)(`div`,{className:`mt-1 text-[10px] text-zinc-500`,children:`风险`})]}),(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-black/25 px-2 py-2`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-zinc-100`,children:be}),(0,j.jsx)(`div`,{className:`mt-1 text-[10px] text-zinc-500`,children:`成员问题`})]}),(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-black/25 px-2 py-2`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-zinc-100`,children:l.length}),(0,j.jsx)(`div`,{className:`mt-1 text-[10px] text-zinc-500`,children:`试跑记录`})]})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`接下来只做两件事`}),(0,j.jsx)(`span`,{className:`text-[10px] text-zinc-500`,children:Me})]}),(0,j.jsx)(`div`,{className:`grid gap-1.5 text-[11px] text-zinc-500`,children:[[`A`,`试跑:用下面的测试任务启动一次 Team Run`],[`B`,`保存:确认结果可用后,沉淀为“我的团队”`]].map(([e,t])=>(0,j.jsxs)(`div`,{className:`flex items-center gap-2 rounded-lg border border-zinc-800 bg-zinc-950 px-2 py-1.5`,children:[(0,j.jsx)(`span`,{className:`flex h-5 w-5 shrink-0 items-center justify-center rounded bg-zinc-800 text-[10px] font-semibold text-zinc-300`,children:e}),(0,j.jsx)(`span`,{children:t})]},e))})]}),(0,j.jsxs)(`div`,{className:`grid gap-2`,children:[(0,j.jsxs)(`div`,{className:`rounded-xl border p-3 ${ye.length===0?`border-emerald-500/25 bg-emerald-500/10`:`border-amber-500/25 bg-amber-500/10`}`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`可用性检查`}),(0,j.jsx)(`span`,{className:`text-[10px] text-zinc-500`,children:ye.length===0?`可以试跑`:`${ye.length} 项待处理`})]}),ye.length===0?(0,j.jsx)(`div`,{className:`text-xs leading-5 text-emerald-100`,children:`团队方案结构完整,成员能力已匹配,可以进入真实试跑。`}):(0,j.jsx)(`ul`,{className:`space-y-1 text-xs leading-5 text-amber-100`,children:ye.slice(0,4).map(e=>(0,j.jsxs)(`li`,{children:[`- `,e]},e))})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border p-3 ${Ae?`border-emerald-500/25 bg-emerald-500/10`:`border-zinc-700 bg-black/25`}`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`保存条件`}),(0,j.jsx)(`span`,{className:`text-[10px] text-zinc-500`,children:Ae?`可以保存`:T?`先试跑`:`${ve.length} 项待补`})]}),Ae?(0,j.jsx)(`div`,{className:`text-xs leading-5 text-emerald-100`,children:`可以保存为“我的团队”。草案不会自动污染稳定团队注册表。`}):(0,j.jsx)(`ul`,{className:`space-y-1 text-xs leading-5 text-zinc-400`,children:(0,j.jsx)(`li`,{children:T?`- 先运行一次试跑,再保存团队。`:`- 先生成团队方案。`})})]})]}),(0,j.jsxs)(`select`,{value:p?.evalSuiteId??``,onChange:e=>m(t=>t&&{...t,evalSuiteId:e.target.value}),className:`h-10 w-full rounded-lg border border-zinc-700 bg-black/30 px-3 text-xs text-zinc-200 outline-none`,"aria-label":`Team eval suite`,children:[(0,j.jsx)(`option`,{value:``,children:`可选:绑定 Eval Suite`}),a.map(e=>(0,j.jsx)(`option`,{value:e.id,children:e.name},e.id))]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsx)(`div`,{className:`mb-2 text-xs font-semibold text-zinc-200`,children:`权限风险摘要`}),(0,j.jsx)(`div`,{className:`space-y-2`,children:Te.length===0?(0,j.jsx)(`div`,{className:`text-xs text-zinc-500`,children:`等待权限矩阵加载。`}):Te.map(e=>(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-xs`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-zinc-200`,children:e.toolGroup}),(0,j.jsx)(`span`,{className:`shrink-0 text-zinc-500`,children:e.defaultRiskLevel})]}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[11px] text-zinc-500`,children:e.defaultBehavior})]},e.toolGroup))})]}),(0,j.jsx)(`textarea`,{value:h,onChange:e=>g(e.target.value),className:`min-h-[110px] w-full resize-none rounded-xl border border-zinc-700 bg-black/30 px-3 py-2 text-sm leading-6 text-zinc-200 outline-none`,"aria-label":`Team test input`}),(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void We(),disabled:le||!ke,className:`h-10 rounded-lg bg-indigo-600 text-xs font-semibold text-white transition-colors hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-50`,children:`试跑这个团队`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Ge(),disabled:le||!Ae,className:`h-10 rounded-lg border border-zinc-700 bg-zinc-950 text-xs font-semibold text-zinc-200 transition-colors hover:bg-zinc-900 disabled:cursor-not-allowed disabled:opacity-50`,children:T&&!y?`试跑后可保存`:je})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`试跑结果`}),(0,j.jsx)(`span`,{className:`text-[10px] text-zinc-500`,children:_?`已保存:${_}`:y?`最近试跑:${y}`:`等待试跑`})]}),M?(0,j.jsxs)(`div`,{className:`space-y-2`,children:[(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-xs`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,j.jsx)(`span`,{className:`truncate font-semibold text-zinc-100`,children:M.teamRun.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-zinc-500`,children:M.teamRun.status})]}),(0,j.jsx)(`div`,{className:`mt-1 truncate text-[11px] text-zinc-500`,children:M.teamRun.finalSummary??M.teamRun.id})]}),M.nodes.slice(0,5).map(e=>(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-xs`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,j.jsx)(`span`,{className:`truncate text-zinc-300`,children:e.role}),(0,j.jsx)(`span`,{className:`shrink-0 text-zinc-500`,children:e.status})]}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[11px] text-zinc-500`,children:e.agentType??e.collabRunId??`等待节点输入输出`})]},e.id))]}):(0,j.jsx)(`div`,{className:`rounded-lg border border-dashed border-zinc-800 px-3 py-4 text-sm text-zinc-500`,children:`试跑启动后,Team Run 状态和各成员节点会显示在这里。`})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-zinc-800 bg-black/25 p-3`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-3`,children:[(0,j.jsx)(`div`,{className:`text-xs font-semibold text-zinc-200`,children:`演化建议`}),(0,j.jsxs)(`span`,{className:`text-[10px] text-zinc-500`,children:[se.length,` 条`]})]}),se.length>0?(0,j.jsx)(`div`,{className:`space-y-2`,children:se.map(e=>(0,j.jsxs)(`div`,{className:`rounded-lg border border-zinc-800 bg-zinc-950 px-3 py-2 text-xs`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-zinc-100`,children:e.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-zinc-500`,children:e.type})]}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-3 text-[11px] leading-5 text-zinc-500`,children:e.rationale})]},e.id))}):(0,j.jsx)(`div`,{className:`rounded-lg border border-dashed border-zinc-800 px-3 py-4 text-sm text-zinc-500`,children:`试跑完成后,系统会根据节点状态生成成员、职责、权限或 Eval 的演化建议。`})]})]})]})]})]})]})})}function jt(){let e=(0,A.useMemo)(()=>typeof window>`u`?!1:xt(new URL(window.location.href)),[]),[t,n]=(0,A.useState)(null),[r,i]=(0,A.useState)(He()),[o,c]=(0,A.useState)(``),[l,u]=(0,A.useState)(()=>{let e=typeof window>`u`?F:[window.localStorage.getItem(Be)].filter(e=>!!e)||F;return(e.length>0?e:F).map(e=>({id:e,label:Ke(e),provider:e.includes(`/`)?e.split(`/`)[0]??null:null,available:!0,reason:null,current:!1}))}),[d,f]=(0,A.useState)([]),[p,m]=(0,A.useState)([]),[h,g]=(0,A.useState)([]),[_,v]=(0,A.useState)([]),[y,b]=(0,A.useState)([]),[x,S]=(0,A.useState)([]),[C,ee]=(0,A.useState)([]),[w,te]=(0,A.useState)(null),[ne,re]=(0,A.useState)([]),[ie,ae]=(0,A.useState)([]),[T,oe]=(0,A.useState)([]),[se,ce]=(0,A.useState)([]),[le,D]=(0,A.useState)([]),[he,ve]=(0,A.useState)([]),[k,Ee]=(0,A.useState)(null),[De,Oe]=(0,A.useState)([]),[ke,M]=(0,A.useState)([]),[Ne,Pe]=(0,A.useState)(null),[Fe,Ie]=(0,A.useState)(null),[N,Le]=(0,A.useState)(null),[P,Re]=(0,A.useState)(null),[ze,Ve]=(0,A.useState)(!1),[L,Xe]=(0,A.useState)(null),[Ze,Qe]=(0,A.useState)(null),[$e,et]=(0,A.useState)([]),[tt,nt]=(0,A.useState)(null),[R,st]=(0,A.useState)(ot),[z,lt]=(0,A.useState)(``),[ut,dt]=(0,A.useState)(null),[ft,vt]=(0,A.useState)(`basic`),[yt,bt]=(0,A.useState)(null),[St,Ct]=(0,A.useState)(`请检查当前项目的 README,并总结这个项目是什么`),[B,V]=(0,A.useState)(!1),[Et,H]=(0,A.useState)(null),[Dt,U]=(0,A.useState)(null),[kt,At]=(0,A.useState)(null),[jt,Mt]=(0,A.useState)(null),[Nt,Pt]=(0,A.useState)(`请让 Code Team 检查当前项目,并输出改进建议。`),[Ft,It]=(0,A.useState)(null),[Lt,Rt]=(0,A.useState)(null),[zt,Bt]=(0,A.useState)({}),[Vt,Ht]=(0,A.useState)({}),[W,Ut]=(0,A.useState)(()=>typeof window>`u`?F[0]:window.localStorage.getItem(Be)??F[0]),[Wt,Gt]=(0,A.useState)(`auto`),[G,Kt]=(0,A.useState)(null),[qt,Jt]=(0,A.useState)(!1),[Yt,K]=(0,A.useState)(!1),[Xt,q]=(0,A.useState)(null),[Zt,J]=(0,A.useState)(null),[Qt,$t]=(0,A.useState)(null),[en,tn]=(0,A.useState)(!1),[nn,rn]=(0,A.useState)(!1),[an,on]=(0,A.useState)(null),[sn,cn]=(0,A.useState)(null),[ln,un]=(0,A.useState)(null),[dn,fn]=(0,A.useState)(null),[pn,mn]=(0,A.useState)(null),[hn,gn]=(0,A.useState)(null),[_n,Y]=(0,A.useState)(null),[vn,yn]=(0,A.useState)(null),[bn,xn]=(0,A.useState)(!1),[Sn,Cn]=(0,A.useState)(`default`),[wn,Tn]=(0,A.useState)([]),En=(0,A.useRef)(null),Dn=(0,A.useRef)(null),On=(0,A.useRef)(null),kn=(0,A.useRef)(null),An=(0,A.useRef)(null),jn=G??t?.focusedTaskId??null,Mn=(0,A.useMemo)(()=>l.find(e=>e.id===W)??null,[l,W]),Nn=!!(jn||o.trim()||wn.length>0||(t?.messages??[]).length>0),Pn=!!(o.trim()||wn.length>0),Fn=qe(Xt),In=We(dn,pn);(0,A.useEffect)(()=>{document.documentElement.classList.add(`dark`)},[]),(0,A.useEffect)(()=>{if(!Qt)return;let e=window.setTimeout(()=>{$t(null)},3200);return()=>window.clearTimeout(e)},[Qt]),(0,A.useEffect)(()=>{typeof window>`u`||window.localStorage.setItem(Be,W)},[W]),(0,A.useEffect)(()=>{let e=!0;return I(`/api/task-system/models`).then(t=>{if(!e)return;let n=Array.isArray(t.items)&&t.items.length>0?t.items.map(e=>({id:typeof e.id==`string`?e.id.trim():``,label:typeof e.label==`string`&&e.label.trim().length>0?e.label.trim():Ke(typeof e.id==`string`?e.id:``),provider:typeof e.provider==`string`&&e.provider.trim().length>0?e.provider.trim():null,available:e.available!==!1,reason:typeof e.reason==`string`&&e.reason.trim().length>0?e.reason.trim():null,current:e.current===!0})).filter(e=>e.id.length>0):Array.from(new Set((Array.isArray(t.models)?t.models:[]).map(e=>e.trim()).filter(Boolean))).map(e=>({id:e,label:Ke(e),provider:e.includes(`/`)?e.split(`/`)[0]??null:null,available:!0,reason:null,current:e===t.currentModel})),r=F.map(e=>({id:e,label:Ke(e),provider:e.includes(`/`)?e.split(`/`)[0]??null:null,available:!0,reason:null,current:e===t.currentModel})),i=n.length>0?n:r,a=i.filter(e=>e.available).map(e=>e.id),o=a.length>0?a:i.map(e=>e.id);u(i),Ut(e=>{if(e&&o.includes(e))return e;if(t.currentModel&&o.includes(t.currentModel))return t.currentModel;let n=typeof window>`u`?null:window.localStorage.getItem(Be);return n&&o.includes(n)?n:o[0]??F[0]})}).catch(()=>{}),()=>{e=!1}},[]);let Ln=async()=>{let e=await I(`/api/agents/profiles?limit=200`),t=Array.isArray(e.profiles)?e.profiles.filter(e=>e.status!==`archived`):[];return f(t),dt(e=>e??t[0]?.id??null),t},Rn=async()=>{let e=await I(`/api/agents/studio/templates`);m(Array.isArray(e.templates)?e.templates:[])},zn=async()=>{let[t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,_,y]=await Promise.all([I(`/api/agents/overview?limit=50&eventLimit=20`),I(`/api/agents/assignments?limit=40`),I(`/api/agents/templates`),e?I(`/api/agents/team-templates`):Promise.resolve({templates:[]}),I(`/api/agents/metrics`),I(`/api/agents/jobs?limit=30`),I(`/api/agents/jobs/health`),I(`/api/agents/workers?limit=20`),e?I(`/api/agents/team-runs?limit=20`):Promise.resolve({teamRuns:[]}),e?I(`/api/agents/eval-suites?limit=20`):Promise.resolve({suites:[]}),I(`/api/agents/permissions/matrix`),I(`/api/agents/memory?limit=20`),I(`/api/agents/artifacts?limit=20`),I(`/api/agents/permissions/pending`),e?I(`/api/agents/autonomy/overview`):Promise.resolve({}),e?I(`/api/agents/autonomy/goals?limit=20`):Promise.resolve({goals:[]}),e?I(`/api/agents/autonomy/cycles?limit=20`):Promise.resolve({cycles:[]})]);nt(t),et(Array.isArray(n.assignments)?n.assignments:[]),g(Array.isArray(r.templates)?r.templates:[]);let x=Array.isArray(i.templates)?i.templates:[];v(x),At(e=>e&&x.some(t=>t.key===e)?e:x[0]?.key??null),Mt(e=>e??(x[0]?ct(x[0]):null)),b(Array.isArray(a.metrics)?a.metrics:[]),S(Array.isArray(o.jobs)?o.jobs:[]),ee(Array.isArray(c.workers)?c.workers:[]),te(c.health??s.health??null),re(Array.isArray(l.teamRuns)?l.teamRuns:[]),ae(Array.isArray(u.suites)?u.suites:[]),oe(Array.isArray(d.matrix)?d.matrix:[]),ce(Array.isArray(f.memories)?f.memories:[]),D(Array.isArray(p.artifacts)?p.artifacts:[]),ve(Array.isArray(m.approvals)?m.approvals:[]),Ee(h);let C=Array.isArray(_.goals)?_.goals:[],w=Array.isArray(y.cycles)?y.cycles:[];Oe(C),M(w),Pe(e=>e&&C.some(t=>t.id===e)?e:C[0]?.id??null),Ie(e=>e&&w.some(t=>t.id===e)?e:w[0]?.id??null)};(0,A.useEffect)(()=>{Ln().catch(()=>{}),Rn().catch(()=>{}),zn().catch(()=>{})},[]),(0,A.useEffect)(()=>{if(typeof window>`u`||!qt)return;let e=e=>{qt&&!On.current?.contains(e.target)&&Jt(!1)},t=e=>{e.key===`Escape`&&Jt(!1)};return window.addEventListener(`mousedown`,e),window.addEventListener(`keydown`,t),()=>{window.removeEventListener(`mousedown`,e),window.removeEventListener(`keydown`,t)}},[qt]);let X=async(e,r)=>{let i=r??t?.session.id??null,a=i?`/api/task-system/sessions/${i}/workbench`:`/api/task-system/workbench`,o=new URL(a,typeof window>`u`?`http://localhost:3212`:window.location.origin);e&&o.searchParams.set(`focusedTaskId`,e);let s=await I(o.toString());return n(s),Kt(s.focusedTaskId),q(null),J(null),s},Bn=async()=>{tn(!0),rn(!0),on(null),cn(null),un(null);try{let e=await I(`/api/task-system/mobile/link`),t=await(0,Ce.toDataURL)(e.qrText,{errorCorrectionLevel:`M`,margin:1,width:320,color:{dark:`#050505`,light:`#FFFFFF`}});cn(e),un(t)}catch(e){on(e instanceof Error?e.message:`生成连接二维码失败`)}finally{rn(!1)}},Vn=async()=>{!sn?.qrText||typeof navigator>`u`||!navigator.clipboard||(await navigator.clipboard.writeText(sn.qrText),J(`已复制移动端连接信息。`))},Hn=e=>{typeof window>`u`||(kn.current=e??G??t?.focusedTaskId??null,An.current===null&&(An.current=window.setTimeout(()=>{let e=kn.current;An.current=null,kn.current=null,X(e).catch(()=>{})},120)))};(0,A.useEffect)(()=>{let e=!0;return X().catch(t=>{e&&(q(t instanceof Error?t.message:`加载工作台失败`),J(null))}),()=>{e=!1,An.current!==null&&(window.clearTimeout(An.current),An.current=null)}},[]),(0,A.useEffect)(()=>{if(!t?.session.id)return;let e=window.setInterval(()=>{X(G??t.focusedTaskId).catch(()=>{})},15e3);return()=>window.clearInterval(e)},[t?.session.id,G,t?.focusedTaskId]),(0,A.useEffect)(()=>{if(typeof window>`u`||!t?.session.id)return;let e=window.location.protocol===`https:`?`wss:`:`ws:`,n=new WebSocket(`${e}//${window.location.host}/ws`);return n.onmessage=e=>{try{let n=JSON.parse(String(e.data));if(n.type===`task-workbench:update`){let e=n.payload;if(!e?.sessionId||e.sessionId!==t.session.id)return;let r={sessionId:e.sessionId,focusedTaskId:typeof e.focusedTaskId==`string`?e.focusedTaskId:null,reason:typeof e.reason==`string`?e.reason:`task-workbench:update`,at:typeof e.at==`string`?e.at:void 0},i=Me(r);i&&$t(i);let a=je(r);if(a&&Gt(a),Ae(r)&&r.focusedTaskId){Kt(r.focusedTaskId),Hn(r.focusedTaskId);return}Hn(G??t.focusedTaskId);return}if(n.type!==`datahub:change`)return;let r=Array.isArray(n.payload?.sources)?n.payload.sources:[];(r.includes(`task_objects`)||r.includes(`task_session_messages`)||r.includes(`task_decisions`)||r.includes(`task_recommendations`))&&Hn(G??t.focusedTaskId),r.includes(`agent_profiles`)&&Ln().catch(()=>{}),(r.includes(`agent_profiles`)||r.includes(`agent_assignments`)||r.includes(`agent_instances`)||r.includes(`autonomy_goals`)||r.includes(`autonomy_cycles`)||r.includes(`autonomy_actions`)||r.includes(`autonomy_reflections`))&&zn().catch(()=>{})}catch{}},()=>{n.close()}},[t?.session.id,G,t?.focusedTaskId]);let Un=(0,A.useMemo)(()=>rt(t?.scheduleTasks??[],r,{}),[t?.scheduleTasks,r]),Wn=(0,A.useMemo)(()=>it(t?.scheduleTasks??[],r),[t?.scheduleTasks,r]),Gn=t?.taskUnit??null,Kn=(0,A.useMemo)(()=>Gn?.agentRuns??t?.agentRuns??[],[Gn?.agentRuns,t?.agentRuns]),Z=(0,A.useMemo)(()=>d.find(e=>e.id===ut||e.agentType===ut)??d[0]??null,[d,ut]),qn=(0,A.useMemo)(()=>Z?$e.filter(e=>e.profileId===Z.id).slice(0,4):$e.slice(0,4),[$e,Z]),Jn=Z?.capabilities??[],Yn=(0,A.useMemo)(()=>Z?y.find(e=>e.profileId===Z.id||e.agentType===Z.agentType)??null:null,[y,Z]),Xn=L?x.find(e=>e.runId===L.run.id)??null:null,Zn=L?ne.find(e=>e.nodes.some(e=>e.collabRunId===L.run.id))??null:null,Qn=(0,A.useMemo)(()=>d.filter(e=>e.status===`enabled`),[d]),$n=(0,A.useMemo)(()=>_.find(e=>e.key===kt)??_[0]??null,[_,kt]);(0,A.useMemo)(()=>(jt?.roles??[]).map(e=>{let t=Qn.find(t=>t.agentType===e.agentType)??d.find(t=>t.agentType===e.agentType);return{role:e,profile:t,hasCapability:pt(t,e.capabilityKey)}}),[jt?.roles,Qn,d]).filter(e=>!e.profile||!e.hasCapability).length,T.filter(e=>e.defaultRiskLevel===`high`||e.defaultBehavior.includes(`approval`)).slice(0,3);let er=tt?.summary,tr=(0,A.useMemo)(()=>De.find(e=>e.id===Ne)??De[0]??null,[De,Ne]),Q=(0,A.useMemo)(()=>ke.find(e=>e.id===Fe)??ke[0]??null,[ke,Fe]),nr=N?.plan?.package??null,rr=(0,A.useMemo)(()=>{let e=[];N?.observation&&e.push({id:`observe`,label:`Observe`,status:N.observation.severity??`low`,summary:N.observation.summary??`已收集世界状态`}),nr&&e.push({id:`plan`,label:`Plan`,status:nr.critique?.blockingIssues?.length?`blocked`:`ready`,summary:nr.intent??nr.selectedStrategy??`已生成行动计划`});for(let t of N?.actions??[])e.push({id:t.id,label:t.actionType,status:t.status,summary:t.summary||t.title||t.actionType,error:t.error});return N?.reflection&&e.push({id:`reflect`,label:`Reflect`,status:N.reflection.rootCause?`failed`:`completed`,summary:N.reflection.summary??N.reflection.rootCause??`已完成复盘`}),e.length>0?e:(P?.actions??[]).map(e=>({id:e.id,label:e.type,status:e.status,summary:e.summary,error:e.error}))},[N,P?.actions,nr]),ir=P?.workspaceDiff&&!Array.isArray(P.workspaceDiff)?P.workspaceDiff:null,ar=Array.isArray(ir?.changedFiles)?ir.changedFiles.filter(e=>typeof e==`string`):[],or=typeof ir?.diffSummary==`string`?ir.diffSummary:null;(0,A.useEffect)(()=>{if(!Z){Qe(null);return}let e=!0;return I(`/api/agents/profiles/${Z.id}/permissions`).then(t=>{e&&Qe(t.permission??null)}).catch(()=>{e&&Qe(null)}),()=>{e=!1}},[Z?.id]),(0,A.useEffect)(()=>{if(!Q?.id){Le(null),Re(null);return}let e=!0;return Ve(!0),Promise.all([I(`/api/agents/autonomy/cycles/${Q.id}`),I(`/api/agents/autonomy/cycles/${Q.id}/report`)]).then(([t,n])=>{e&&(Le(t),Re(n))}).catch(()=>{e&&(Le(null),Re(null))}).finally(()=>{e&&Ve(!1)}),()=>{e=!1}},[Q?.id]);let sr=(0,A.useMemo)(()=>Wt===`blocked`?Kn.filter(e=>e.status===`waiting_input`||e.status===`failed`):Kn,[Kn,Wt]),cr=t?.decisions.length??0,lr=Kn.filter(e=>e.status===`waiting_input`||e.status===`failed`).length,ur=Kn.filter(e=>e.status===`running`).length,dr=Kn.filter(e=>e.status===`completed`).length,fr=cr>0?`${cr} 项待确认`:lr>0?`${lr} 项待补充`:ur>0?`Agent 执行中`:dr>0?`已有执行结果`:`等待讨论`,pr=cr>0?`confirm`:lr>0?`blocked`:ur>0?`run`:dr>0?`result`:`discuss`;(0,A.useMemo)(()=>(t?.recommendations??[])[0]??null,[t?.recommendations]);let mr=async()=>{if(t?.session.id)return t.session.id;let e=await X(G);if(!e.session.id)throw Error(`Task session not ready`);return e.session.id},hr=e=>{i(e)},gr=async e=>{Kt(e),await X(e)},_r=()=>{c(`请基于当前排期摘要继续推进:${Wn}`)},vr=e=>{let t=l.find(t=>t.id===e);if(t&&!t.available){J(t.reason??`当前模型暂不可用,请先配置对应 provider。`),Jt(!1);return}Ut(e),Jt(!1),q(null),J(null)},yr=async(e,t=`default`,r={})=>{let i=e.trim();if(!(!i&&wn.length===0))try{K(!0);let e=await I(`/api/task-system/sessions/${await mr()}/messages`,{method:`POST`,body:JSON.stringify({content:i,taskId:jn,model:W,messageKind:t,recommendationId:r.recommendationId??null,voiceTranscript:t===`voice`?i:null,attachments:wn.map(e=>({fileName:e.fileName,mimeType:e.mimeType,extractedText:e.extractedText,size:e.size}))})});n(e.workbench),Kt(e.workbench.focusedTaskId),c(``),Tn([]),Cn(`default`),q(null),J(Ue(e))}catch(e){q(e instanceof Error?e.message:`发送讨论失败`),J(null)}finally{K(!1)}},br=async(e,t)=>{try{if(K(!0),!Nn){q(`请先选择任务,或补充讨论内容后再执行。`);return}let r=await mr(),i=(t??o).trim(),a=await I(`/api/task-system/sessions/${r}/${e}`,{method:`POST`,body:JSON.stringify({taskId:jn,model:W,draftInput:i,attachments:wn.map(e=>({fileName:e.fileName,mimeType:e.mimeType,extractedText:e.extractedText,size:e.size}))})});n(a.workbench),Kt(a.workbench.focusedTaskId),q(null),J(Ue(a))}catch(e){q(e instanceof Error?e.message:`执行讨论动作失败`),J(null)}finally{K(!1)}},xr=async()=>{await br(`generate-plan`)},Sr=async()=>{await br(`summarize`)},Cr=()=>{if(typeof window>`u`)return;if(Dn.current){Dn.current.stop(),Dn.current=null,xn(!1);return}let e=window.SpeechRecognition??window.webkitSpeechRecognition;if(!e){q(`当前浏览器不支持原生语音识别。`);return}let t=new e;t.lang=`zh-CN`,t.interimResults=!1,t.continuous=!1,t.onresult=e=>{let t=Array.from(e.results).map(e=>e[0]?.transcript??``).join(``).trim();t&&(c(e=>`${e}${e?`
21
+ `:``}${t}`),Cn(`voice`),q(null))},t.onerror=e=>{q(e.error?`语音输入失败:${e.error}`:`语音输入失败`),xn(!1),Dn.current=null},t.onend=()=>{xn(!1),Dn.current=null},Dn.current=t,xn(!0),t.start()},wr=async e=>{let t=e.type.startsWith(`text/`)||e.name.endsWith(`.md`)||e.name.endsWith(`.json`)||e.name.endsWith(`.csv`)?(await e.text()).trim().slice(0,1600):`请结合附件 ${e.name} 继续推进讨论,并提取可交给 Agent 的动作。`;return{id:at(),fileName:e.name,mimeType:e.type||`application/octet-stream`,extractedText:t,size:typeof e.size==`number`?e.size:null}},Tr=()=>{En.current?.click()},Er=async e=>{let t=Array.from(e.target.files??[]);if(t.length!==0)try{let e=await Promise.all(t.map(wr));Tn(t=>[...t,...e]),Cn(`attachment`),q(null)}catch(e){q(e instanceof Error?e.message:`读取附件失败`)}finally{e.target.value=``}},Dr=async()=>{await yr(o,Sn)},Or=(e,t)=>{st(n=>({...n,[e]:t}))},kr=e=>{lt(e);let t=p.find(t=>t.key===e);t&&(st(e=>({...e,name:e.name||t.defaultName,description:t.description,prompt:t.prompt,model:t.model||`inherit`,tools:t.tools.join(`, `),capabilities:t.capabilities.map(e=>e.key).join(`, `),memory:t.memory??`project`,permissionMode:t.permissionMode??``})),bt(null),U(null),H(null))},Ar=()=>({name:R.name.trim(),description:R.description.trim(),prompt:R.prompt.trim(),model:R.model.trim()||`inherit`,tools:R.tools.split(`,`).map(e=>e.trim()).filter(Boolean),permissionMode:R.permissionMode.trim()||null,memory:R.memory.trim()||null,capabilities:R.capabilities.split(`,`).map(e=>e.trim()).filter(Boolean)}),$=async()=>{await Promise.all([Ln().catch(()=>[]),zn().catch(()=>void 0)])},jr=async()=>{let e=Ar();if(!e.name||!e.description||!e.prompt){U(`请填写 Agent 名称、描述和 system prompt。`);return}try{V(!0),U(null),H(null);let t=await I(z?`/api/agents/studio/create-from-template`:`/api/agents/studio/create`,{method:`POST`,body:JSON.stringify(z?{...e,templateKey:z}:e)});await $(),t.profile?.id&&dt(t.profile.id),bt(t.source?.prompt??null),H(`已创建 Agent:${t.profile?.agentType??e.name}`)}catch(e){U(e instanceof Error?e.message:`创建 Agent 失败`)}finally{V(!1)}},Mr=async()=>{let e=Z;if(!e){U(`请先在 My Agents 中选择一个 Agent。`);return}let t=Ar();try{V(!0),U(null),H(null);let n=await I(`/api/agents/studio/${e.agentType}`,{method:`PATCH`,body:JSON.stringify({description:t.description||e.description,prompt:t.prompt||void 0,model:t.model,tools:t.tools,permissionMode:t.permissionMode,memory:t.memory,capabilities:t.capabilities})});await $(),bt(n.source?.prompt??null),H(`已更新 Agent:${n.profile?.agentType??e.agentType}`)}catch(e){U(e instanceof Error?e.message:`更新 Agent 失败`)}finally{V(!1)}},Nr=async(e=Z)=>{if(e)try{V(!0),U(null);let t=await I(`/api/agents/studio/${e.agentType}/source`);bt(t.source?.prompt??``),H(t.source?.path?`源文件:${t.source.path}`:`已加载 Agent 源文件。`),st(n=>({...n,name:e.agentType,description:e.description??``,prompt:t.source?.prompt??n.prompt,capabilities:(e.capabilities??[]).map(e=>e.key).join(`, `)}))}catch(e){U(e instanceof Error?e.message:`读取 Agent 源文件失败`)}finally{V(!1)}},Pr=async(e,t)=>{try{V(!0),U(null),await I(`/api/agents/profiles/${e.id}/${t}`,{method:`POST`}),await $(),H(t===`enable`?`Agent 已启用。`:t===`disable`?`Agent 已禁用。`:`Agent 已归档。`)}catch(e){U(e instanceof Error?e.message:`Agent 状态更新失败`)}finally{V(!1)}},Fr=async(e=Z)=>{if(!e)return;let t=St.trim();if(!t){U(`请输入试跑任务。`);return}try{V(!0),U(null);let n=await I(`/api/agents/profiles/${e.id}/test-run`,{method:`POST`,body:JSON.stringify({input:t})});await $(),n.session?.id&&await X(n.task?.id??null,n.session.id),Gt(`auto`),H(`已启动试跑:${e.agentType}`)}catch(e){U(e instanceof Error?e.message:`Agent 试跑失败`)}finally{V(!1)}},Ir=async e=>{try{Xe((await I(`/api/agents/runs/${e}`)).detail??null)}catch{Xe(null)}},Lr=async()=>{L&&await Ir(L.run.id)},Rr=async(e,n)=>{if(L)try{await I(`/api/agents/runs/${L.run.id}/approvals/${e}/${n}`,{method:`POST`,body:JSON.stringify({reason:n===`approve`?`Approved from Workbench`:`Denied from Workbench`})}),await Lr(),t?.session.id&&await X(G,t.session.id)}catch(e){q(e instanceof Error?e.message:`审批操作失败`)}},zr=async()=>{if(L)try{Xe((await I(`/api/agents/runs/${L.run.id}/accept-result`,{method:`POST`,body:JSON.stringify({summary:L.run.resultSummary??L.run.description})})).detail??null),t?.session.id&&await X(G,t.session.id)}catch(e){q(e instanceof Error?e.message:`采纳结果失败`)}},Br=async()=>{if(L)try{Xe((await I(`/api/agents/runs/${L.run.id}/request-revision`,{method:`POST`,body:JSON.stringify({reason:`请根据当前任务目标补充细节并重新输出可验收结果。`})})).detail??null),t?.session.id&&await X(G,t.session.id)}catch(e){q(e instanceof Error?e.message:`要求修改失败`)}},Vr=async()=>{try{V(!0),U(null),await I(`/api/agents/jobs/run-once`,{method:`POST`}),await $(),t?.session.id&&await X(G,t.session.id),H(`Agent Worker 已处理一条队列任务。`)}catch(e){U(e instanceof Error?e.message:`Agent Worker 执行失败`)}finally{V(!1)}},Hr=async()=>{try{V(!0),U(null);let e=await I(`/api/agents/jobs/worker-loop`,{method:`POST`,body:JSON.stringify({maxCycles:3,idleExit:!0,intervalMs:100})});await $(),t?.session.id&&await X(G,t.session.id),H(`Worker loop 已处理 ${e.processed??0} 条任务,恢复 ${e.recovered??0} 条。`)}catch(e){U(e instanceof Error?e.message:`Agent Worker loop 执行失败`)}finally{V(!1)}},Ur=async()=>{try{V(!0),U(null);let e=await I(`/api/agents/jobs/recover`,{method:`POST`});await $(),H(`已恢复 ${e.jobs?.length??0} 条陈旧任务。`)}catch(e){U(e instanceof Error?e.message:`恢复陈旧任务失败`)}finally{V(!1)}},Wr=async()=>{try{V(!0),U(null);let e=await I(`/api/agents/autonomy/goals`,{method:`POST`,body:JSON.stringify({title:`持续维护 Agent-OS 多智能体系统`,description:`自动观察项目状态,发现问题后分析、修复、验证,并输出报告`,projectPath:null,autonomyLevel:`L4`,defaultTeamTemplate:$n?.key??`code-team`})});await $(),H(`已创建自治目标:${e.goal?.title??`持续维护 Agent-OS 多智能体系统`}`)}catch(e){U(e instanceof Error?e.message:`创建自治目标失败`)}finally{V(!1)}},Gr=async e=>{try{V(!0),U(null),await I(`/api/agents/autonomy/goals/${e.id}/kick`,{method:`POST`,body:JSON.stringify({reason:`Manual kick from Autonomy Console`})}),await $(),H(`已启动自治目标:${e.title}`)}catch(e){U(e instanceof Error?e.message:`启动自治目标失败`)}finally{V(!1)}},Kr=async()=>{try{V(!0),U(null);let e=await I(`/api/agents/autonomy/worker/run-once`,{method:`POST`,body:JSON.stringify({liveVerify:!1,maxAgentWorkerCycles:5})});await $(),H(e.processed?`自治 Worker 已处理 cycle=${e.cycle?.id??`-`}。`:`自治 Worker 当前无待处理目标。`)}catch(e){U(e instanceof Error?e.message:`自治 Worker 执行失败`)}finally{V(!1)}},qr=async(e,n)=>{try{V(!0),U(null),await I(`/api/agents/permissions/${e.approvalId}/${n}`,{method:`POST`,body:JSON.stringify({reason:n===`approve`?`Approved from Permission Center`:`Denied from Permission Center`})}),await $(),await Ir(e.runId),t?.session.id&&await X(G,t.session.id),H(n===`approve`?`已批准权限请求。`:`已拒绝权限请求。`)}catch(e){U(e instanceof Error?e.message:`权限审批失败`)}finally{V(!1)}},Jr=async()=>{if(L)try{V(!0),U(null),await I(`/api/agents/runs/${L.run.id}/save-memory`,{method:`POST`,body:JSON.stringify({title:`Run memory: ${L.run.title}`,summary:L.run.resultSummary??L.run.description,scope:`project`})}),await $(),H(`已将当前 Run 沉淀为项目记忆。`)}catch(e){U(e instanceof Error?e.message:`保存记忆失败`)}finally{V(!1)}},Yr=async e=>{try{K(!0);let t=Vt[e],r=await I(`/api/task-system/decisions/${e}/confirm`,{method:`POST`,body:t?JSON.stringify({agentType:t}):void 0});n(r.workbench),Kt(r.workbench.focusedTaskId),q(null)}catch(e){q(e instanceof Error?e.message:`确认动作失败`)}finally{K(!1)}},Xr=async e=>{try{K(!0);let t=await I(`/api/task-system/decisions/${e}/reject`,{method:`POST`});n(t.workbench),Kt(t.workbench.focusedTaskId),q(null)}catch(e){q(e instanceof Error?e.message:`忽略动作失败`)}finally{K(!1)}},Zr=e=>{Gt(e)},Qr=()=>{fn(null),mn(null),gn(null),Y(null)},$r=async e=>{let t=e.resultArtifactIds?.find(e=>typeof e==`string`&&e.trim().length>0);if(!t){gn(`这条 Agent 任务还没有可打开的结果产物。`),fn(null),mn(null),Y(null);return}try{yn(e.id),gn(null),Y(null),fn((await I(`/api/task-system/tasks/${t}`)).task),mn(e.resultArtifactPreview??e.resultSummary??null)}catch(e){fn(null),mn(null),gn(e instanceof Error?e.message:`加载 Agent 结果失败`),Y(null)}finally{yn(null)}},ei=async()=>{let e=In.trim();if(!e){Y(`当前产物没有可复制的正文。`);return}if(typeof navigator>`u`||!navigator.clipboard?.writeText){Y(`当前浏览器不允许直接复制,请选中文本手动复制。`);return}try{await navigator.clipboard.writeText(e),Y(`已复制结果正文。`)}catch{Y(`当前浏览器不允许直接复制,请选中文本手动复制。`)}},ti=()=>{let e=Ge(dn,In,`continue`);if(!e){Y(`当前产物没有可带入讨论的正文。`);return}c(t=>{let n=t.trim();return n?`${n}\n\n${e}`:e}),Cn(`default`),Qr(),J(`已把 Agent 结果带入输入框。`)},ni=async()=>{let e=Ge(dn,In,`next-step`);if(!e){Y(`当前产物没有可提取下一步的正文。`);return}try{K(!0);let t=await I(`/api/task-system/sessions/${await mr()}/generate-plan`,{method:`POST`,body:JSON.stringify({taskId:dn?.parentId??jn,model:W,draftInput:e,attachments:[]})});n(t.workbench),Kt(t.workbench.focusedTaskId),q(null),J(Ue(t)??`已从 Agent 结果提取下一步行动项,请在右侧确认。`),Qr()}catch(e){Y(e instanceof Error?e.message:`从结果提取下一步失败`)}finally{K(!1)}},ri=async e=>{try{K(!0);let t=await I(`/api/task-system/agent-runs/${e}/cancel`,{method:`POST`});n(t.workbench),Kt(t.workbench.focusedTaskId),q(null)}catch(e){q(e instanceof Error?e.message:`取消 Agent 任务失败`)}finally{K(!1)}},ii=async e=>{try{K(!0);let t=zt[e.id],r=await I(`/api/task-system/agent-runs/${e.id}/retry`,{method:`POST`,body:JSON.stringify(t?{agentType:t}:{})});n(r.workbench),Kt(r.workbench.focusedTaskId),q(null)}catch(e){q(e instanceof Error?e.message:`重试 Agent 任务失败`)}finally{K(!1)}},ai=async e=>{if(e.status===`waiting_input`||e.status===`failed`){await ii(e);return}if(e.status===`completed`&&(e.resultArtifactIds?.length??0)>0){await $r(e);return}if(e.status===`completed`&&e.parentTaskId){let n=t?.scheduleTasks.find(t=>t.id===e.parentTaskId);n&&await gr(n.id)}};return(0,j.jsxs)(`div`,{className:`relative flex h-screen overflow-hidden flex-col items-center bg-slate-50 px-4 py-6 font-sans antialiased text-slate-600 transition-colors duration-300 selection:bg-indigo-500/30 dark:bg-[#000000] dark:text-zinc-300`,children:[(0,j.jsx)(`div`,{className:`pointer-events-none fixed left-[-10%] top-[-20%] h-[50vw] w-[50vw] rounded-full bg-indigo-500/5 blur-[120px] transition-colors duration-500 dark:bg-indigo-900/10`}),(0,j.jsx)(`div`,{className:`pointer-events-none fixed bottom-[-20%] right-[-10%] h-[50vw] w-[50vw] rounded-full bg-slate-300/20 blur-[100px] transition-colors duration-500 dark:bg-zinc-800/20`}),(0,j.jsxs)(`div`,{className:`relative z-10 h-full w-full max-w-[1680px] overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/60 shadow-xl backdrop-blur-2xl transition-colors duration-300 dark:border-zinc-800/80 dark:bg-[#0c0c0e]/60 dark:shadow-2xl`,children:[(0,j.jsx)(`div`,{className:`absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-slate-300/80 to-transparent dark:via-zinc-700/50`}),en&&(0,j.jsx)(`div`,{className:`absolute inset-0 z-50 flex items-center justify-center bg-black/65 p-6 backdrop-blur-sm`,children:(0,j.jsxs)(`div`,{className:`w-full max-w-[392px] rounded-2xl border border-zinc-800 bg-[#111113] p-5 shadow-2xl`,children:[(0,j.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2.5`,children:[(0,j.jsx)(`div`,{className:`flex h-9 w-9 items-center justify-center rounded-xl border border-indigo-500/30 bg-indigo-500/10 text-indigo-300`,children:(0,j.jsx)(ye,{size:17})}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-white`,children:`手机扫码连接 Agent OS`}),(0,j.jsx)(`div`,{className:`text-[11px] text-zinc-500`,children:`电脑和手机需要在同一个局域网内。`})]})]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>tn(!1),className:`flex h-8 w-8 items-center justify-center rounded-full bg-zinc-900 text-zinc-500 hover:text-zinc-200`,"aria-label":`关闭手机连接二维码`,children:(0,j.jsx)(xe,{size:15})})]}),nn?(0,j.jsx)(`div`,{className:`flex h-[320px] items-center justify-center rounded-2xl border border-dashed border-zinc-800 text-sm text-zinc-500`,children:`正在生成二维码…`}):an?(0,j.jsx)(`div`,{className:`rounded-2xl border border-rose-500/30 bg-rose-500/10 p-4 text-sm text-rose-200`,children:an}):(0,j.jsxs)(`div`,{className:`mx-auto max-w-[332px]`,children:[(0,j.jsx)(`div`,{className:`aspect-square rounded-[20px] bg-white p-3`,children:ln&&(0,j.jsx)(`img`,{src:ln,alt:`Agent OS 手机连接二维码`,className:`h-full w-full`})}),(0,j.jsxs)(`div`,{className:`mt-3 rounded-xl border border-zinc-800 bg-black/25 px-3 py-2`,children:[(0,j.jsx)(`div`,{className:`text-[10px] font-semibold uppercase tracking-[0.18em] text-zinc-600`,children:`连接地址`}),(0,j.jsx)(`div`,{className:`mt-1 truncate text-[12px] text-zinc-300`,children:sn?.preferredBaseUrl??`未检测到局域网地址`}),sn&&sn.baseUrls.length>1&&(0,j.jsxs)(`div`,{className:`mt-1 text-[11px] text-zinc-600`,children:[`已附带 `,sn.baseUrls.length,` 个候选地址,App 会自动选择可连接的一项。`]})]}),(0,j.jsxs)(`div`,{className:`mt-3 flex gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Bn(),className:`flex-1 rounded-xl border border-zinc-800 bg-zinc-900 px-3 py-2.5 text-[12px] font-medium text-zinc-300 hover:bg-zinc-800`,children:`刷新二维码`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Vn(),disabled:!sn?.qrText,className:`flex-1 rounded-xl bg-indigo-500 px-3 py-2.5 text-[12px] font-medium text-white hover:bg-indigo-400 disabled:cursor-not-allowed disabled:opacity-50`,children:`复制连接信息`})]})]}),(0,j.jsxs)(`div`,{className:`mt-3 space-y-3 border-t border-slate-200 pt-3 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`div`,{className:`text-[11px] font-semibold text-slate-700 dark:text-zinc-200`,children:`Runs / Jobs`}),(0,j.jsxs)(`div`,{className:`flex gap-1`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Vr(),disabled:B,className:`rounded-md border border-slate-200 px-2 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`once`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Hr(),disabled:B,className:`rounded-md border border-slate-200 px-2 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`loop`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Ur(),disabled:B,className:`rounded-md border border-slate-200 px-2 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`recover`})]})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-4 gap-1.5 text-center text-[10px]`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:w?.queueDepth??x.length}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`队列`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:w?.activeLeases??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`租约`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:w?.staleJobs??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`陈旧`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:w?.activeWorkers??C.length}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`Worker`})]})]}),C.slice(0,2).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 px-2 py-1.5 text-[10px] dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-medium text-slate-600 dark:text-zinc-300`,children:e.workerId}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.status})]}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-slate-400 dark:text-zinc-500`,children:e.currentJobId?`job=${e.currentJobId}`:e.lastSeenAt??`暂无心跳`})]},e.id)),x.slice(0,3).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 px-2 py-1.5 text-[10px] dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Ir(e.runId),className:`min-w-0 truncate text-left font-medium text-slate-600 hover:text-indigo-600 dark:text-zinc-300 dark:hover:text-indigo-200`,children:e.agentType??e.profileId??e.runId}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.status})]}),e.error&&(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-rose-500`,children:e.error})]},e.id))]}),(0,j.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-slate-200 pt-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`text-[11px] font-semibold text-slate-700 dark:text-zinc-200`,children:`Permission Center`}),he.length===0?(0,j.jsx)(`div`,{className:`text-[10px] text-slate-400 dark:text-zinc-500`,children:`暂无待审批工具调用`}):he.slice(0,3).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-2 py-2 text-[10px] dark:border-amber-500/30 dark:bg-amber-500/10`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-semibold text-amber-800 dark:text-amber-100`,children:e.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-amber-700/70 dark:text-amber-200/70`,children:e.riskLevel})]}),(0,j.jsx)(`div`,{className:`mb-1 truncate text-amber-700/70 dark:text-amber-200/70`,children:e.actionType}),(0,j.jsx)(`div`,{className:`mb-2 line-clamp-2 text-amber-700/80 dark:text-amber-200/80`,children:e.reason??`等待用户确认高风险工具调用`}),(0,j.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void qr(e,`approve`),disabled:B,className:`rounded bg-emerald-600 px-2 py-1 font-semibold text-white disabled:opacity-50`,children:`批准`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void qr(e,`deny`),disabled:B,className:`rounded border border-rose-200 px-2 py-1 font-semibold text-rose-600 disabled:opacity-50 dark:border-rose-500/30 dark:text-rose-200`,children:`拒绝`})]})]},e.approvalId))]}),(0,j.jsxs)(`div`,{className:`mt-3 space-y-2 border-t border-slate-200 pt-3 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`div`,{className:`text-[11px] font-semibold text-slate-700 dark:text-zinc-200`,children:`Eval / Memory`}),L&&(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Jr(),disabled:B,className:`rounded-md border border-slate-200 px-2 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`保存记忆`})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-1.5 text-[10px]`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:[ie.length,` suites`]}),(0,j.jsx)(`div`,{className:`truncate text-slate-400 dark:text-zinc-500`,children:ie[0]?.name??`暂无评测集`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:[se.length,` memories`]}),(0,j.jsx)(`div`,{className:`truncate text-slate-400 dark:text-zinc-500`,children:se[0]?.title??`暂无记忆`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:[le.length,` artifacts`]}),(0,j.jsx)(`div`,{className:`truncate text-slate-400 dark:text-zinc-500`,children:le[0]?.title??`暂无产物`})]})]}),le.slice(0,2).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 px-2 py-1.5 text-[10px] dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-medium text-slate-600 dark:text-zinc-300`,children:e.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.artifactType})]}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-slate-400 dark:text-zinc-500`,children:e.summary||e.contentRef||e.runId})]},e.id)),ne.slice(0,2).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 px-2 py-1.5 text-[10px] dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-medium text-slate-600 dark:text-zinc-300`,children:e.teamRun.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.teamRun.status})]}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-slate-400 dark:text-zinc-500`,children:e.nodes.map(e=>`${e.role}:${e.status}`).join(` / `)})]},e.teamRun.id))]})]})}),(0,j.jsxs)(`div`,{className:`grid h-full min-h-0 grid-cols-1 divide-y divide-slate-200/80 p-4 md:grid-cols-[0.95fr_1.2fr_0.95fr] md:divide-x md:divide-y-0 md:p-6 lg:p-8 dark:divide-zinc-800/60`,children:[(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden py-2 md:px-6 md:py-0`,children:[(0,j.jsx)(ht,{title:`任务排期`,icon:ue,action:(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Bn(),className:`inline-flex h-7 w-7 items-center justify-center rounded-full border border-slate-200 bg-white text-slate-500 transition-colors hover:bg-slate-50 hover:text-slate-700 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-200`,"aria-label":`打开手机连接二维码`,title:`手机扫码连接`,children:(0,j.jsx)(_e,{size:14})})}),(0,j.jsx)(`div`,{className:`mb-2 shrink-0`,children:(0,j.jsxs)(`button`,{type:`button`,onClick:_r,className:`flex w-full items-center gap-2 px-1 text-left transition-colors hover:text-slate-900 dark:hover:text-zinc-100`,children:[(0,j.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-full bg-indigo-400 shadow-[0_0_8px_rgba(99,102,241,0.5)]`}),(0,j.jsxs)(`div`,{className:`panel-line-clamp-1 min-w-0 flex-1 text-xs font-medium leading-relaxed text-slate-700 dark:text-zinc-300`,children:[`今日动态:`,(0,j.jsx)(`span`,{className:`text-slate-500 dark:text-zinc-500`,children:Wn})]})]})}),(0,j.jsx)(`div`,{className:`mb-6 shrink-0 flex rounded-xl border border-slate-200 bg-slate-100 p-1 shadow-inner dark:border-zinc-800 dark:bg-zinc-900`,children:Object.entries(we).map(([e,t])=>(0,j.jsx)(`button`,{type:`button`,onClick:()=>hr(e),className:`relative flex-1 rounded-lg py-2 text-center text-xs font-semibold transition-colors ${r===e?`bg-white text-slate-800 shadow dark:bg-zinc-800 dark:text-white`:`text-slate-500 hover:text-slate-800 dark:text-zinc-500 dark:hover:text-zinc-300`}`,children:t},e))}),(0,j.jsx)(`div`,{className:`scrollbar-hide min-h-0 flex-1 overflow-y-auto pb-2 pr-1`,children:Un.length===0?(0,j.jsx)(mt,{className:`mb-4`,children:(0,j.jsx)(`div`,{className:`text-sm text-slate-500 dark:text-zinc-500`,children:`当前视图没有待排期任务了。`})}):Un.map((e,t)=>{let n=e.taskId===jn,r=e.items.some(e=>e.id===jn),i=n||r;return(0,j.jsx)(mt,{role:`button`,tabIndex:0,"aria-pressed":i,"aria-label":`选择 ${e.title} 作为当前聊天任务`,onClick:()=>void gr(e.taskId),onKeyDown:t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),gr(e.taskId))},className:`cursor-pointer text-left focus:outline-none focus:ring-2 focus:ring-emerald-400/30 ${t===Un.length-1?`mb-2`:`mb-4`} ${i?`border-emerald-500/35 bg-emerald-500/[0.035] shadow-[0_18px_40px_rgba(16,185,129,0.1)]`:`hover:border-slate-300 hover:bg-slate-50 dark:hover:border-zinc-700/90 dark:hover:bg-zinc-900/35`}`,children:(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`flex items-start justify-between gap-3`,children:(0,j.jsx)(`div`,{className:`panel-line-clamp-2 min-w-0 flex-1 text-sm font-semibold leading-snug text-slate-900 dark:text-zinc-100`,children:e.title})}),(0,j.jsx)(`div`,{className:`panel-line-clamp-3 mt-3 text-sm leading-relaxed text-slate-500 dark:text-zinc-400`,children:e.summary})]})},e.id)})})]}),(0,j.jsxs)(`div`,{className:`relative z-20 flex h-full min-h-0 flex-col overflow-hidden pt-4 md:px-6 md:pt-0`,children:[(0,j.jsx)(ht,{title:`任务讨论`,icon:O}),(0,j.jsxs)(`div`,{className:`relative flex min-h-0 flex-1 flex-col overflow-hidden`,children:[Qt&&(0,j.jsx)(`div`,{className:`mb-4 shrink-0 px-1`,children:(0,j.jsxs)(`div`,{className:`rounded-xl border px-3 py-2 text-[12px] ${_t[Qt.tone]}`,children:[(0,j.jsx)(`div`,{className:`font-medium`,children:Qt.title}),(0,j.jsx)(`div`,{className:`mt-0.5 text-[11px] opacity-80`,children:Qt.detail})]})}),(0,j.jsx)(`div`,{className:`scrollbar-hide flex-1 space-y-4 overflow-y-auto px-1 pb-3 pt-1`,children:(t?.messages??[]).length===0?(0,j.jsx)(`div`,{className:`rounded-xl border border-dashed border-slate-200 px-4 py-5 text-sm text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`当前还没有讨论消息。先在下方输入你希望推进的内容,系统会自动提取待确认动作。`}):t?.messages.map(e=>(0,j.jsx)(`div`,{className:`flex ${e.role===`user`?`justify-end`:(e.role,`justify-start`)}`,children:(0,j.jsx)(`div`,{className:`text-sm leading-relaxed ${e.role===`system`?`flex w-full justify-start`:`max-w-[82%] rounded-2xl px-4 py-3 shadow-sm ${e.role===`user`?`rounded-tr-sm border border-indigo-100 bg-indigo-50 text-indigo-800 dark:border-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-100`:`rounded-tl-sm border border-slate-200 bg-white text-slate-600 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300`}`}`,children:e.role===`system`?(0,j.jsx)(Ot,{message:e}):(0,j.jsx)(wt,{content:e.content})})},e.id))}),(0,j.jsxs)(`div`,{className:`shrink-0 bg-gradient-to-t from-slate-50 via-slate-50/95 to-transparent px-1 pb-1 pt-3 dark:from-[#0c0c0e] dark:via-[#0c0c0e]/95`,children:[(0,j.jsx)(`div`,{className:`mb-2`,children:(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void xr(),disabled:!Nn||Yt,className:`rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[11px] font-medium text-slate-600 shadow-sm transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-45 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800`,children:`生成行动计划`}),(0,j.jsx)(`button`,{type:`button`,onClick:Sr,disabled:!Nn||Yt,className:`rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[11px] font-medium text-slate-600 shadow-sm transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-45 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800`,children:`整理讨论要点`})]})}),(0,j.jsxs)(`div`,{className:`rounded-[22px] border border-slate-200 bg-white px-3.5 py-3 shadow-[0_16px_32px_rgba(0,0,0,0.16)] transition-colors dark:border-zinc-800 dark:bg-zinc-900/90 dark:shadow-[0_16px_32px_rgba(0,0,0,0.35)]`,children:[(0,j.jsx)(`input`,{ref:En,type:`file`,multiple:!0,className:`hidden`,onChange:e=>void Er(e)}),wn.length>0&&(0,j.jsx)(`div`,{className:`mb-2 flex flex-wrap gap-1.5 px-1`,children:wn.map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>Tn(t=>t.filter(t=>t.id!==e.id)),className:`inline-flex items-center gap-1 rounded-full border border-slate-200 bg-slate-50 px-2.5 py-1 text-[11px] text-slate-600 hover:bg-slate-100 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-300 dark:hover:bg-zinc-800`,children:[e.fileName,(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:`×`})]},e.id))}),(0,j.jsx)(`textarea`,{rows:2,value:o,onChange:e=>c(e.target.value),placeholder:Gn?.rootTask?`围绕「${Gn.rootTask.title}」继续补充...`:`继续补充讨论内容,实时驱动右侧行动计划...`,className:`h-[56px] min-h-[56px] max-h-[56px] w-full resize-none overflow-y-auto bg-transparent px-1 py-0.5 text-sm leading-6 text-slate-700 outline-none placeholder:text-slate-400 dark:text-zinc-200 dark:placeholder:text-zinc-500`}),Fn&&(0,j.jsx)(`div`,{className:`mt-2 rounded-xl border border-rose-200 bg-rose-50 px-3 py-2 text-[11px] text-rose-600 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-300`,children:Fn}),Zt&&(0,j.jsx)(`div`,{className:`mt-2 rounded-xl border border-amber-200 bg-amber-50 px-3 py-2 text-[11px] text-amber-700 dark:border-amber-500/30 dark:bg-amber-500/10 dark:text-amber-200`,children:Zt}),(0,j.jsxs)(`div`,{className:`mt-2 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,j.jsxs)(`div`,{className:`relative`,ref:On,children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>Jt(e=>!e),className:`inline-flex min-w-[148px] items-center justify-between gap-2 whitespace-nowrap rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[11px] font-medium text-slate-700 shadow-sm transition-colors hover:bg-slate-50 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-200 dark:hover:bg-zinc-800`,"aria-label":`切换模型 ${Mn?.label??Ke(W)}`,"aria-haspopup":`menu`,"aria-expanded":qt,children:[(0,j.jsx)(`span`,{className:`truncate`,children:Mn?.label??Ke(W)}),(0,j.jsx)(de,{size:12,className:`shrink-0 text-slate-400 dark:text-zinc-500`})]}),qt&&(0,j.jsx)(`div`,{className:`absolute bottom-[calc(100%+8px)] left-0 z-30 min-w-[196px] overflow-hidden rounded-2xl border border-slate-200 bg-white p-1 shadow-xl dark:border-zinc-800 dark:bg-zinc-900`,children:l.map(e=>{let t=e.id===W;return(0,j.jsxs)(`button`,{type:`button`,onClick:()=>vr(e.id),disabled:!e.available,className:`flex w-full items-center justify-between rounded-xl px-3 py-2 text-left text-[12px] transition-colors ${e.available?t?`bg-indigo-50 text-indigo-700 dark:bg-indigo-500/10 dark:text-indigo-300`:`text-slate-600 hover:bg-slate-50 dark:text-zinc-300 dark:hover:bg-zinc-800`:`cursor-not-allowed text-slate-400 opacity-60 dark:text-zinc-500`}`,role:`menuitemradio`,"aria-checked":t,"aria-disabled":!e.available,children:[(0,j.jsxs)(`span`,{className:`min-w-0`,children:[(0,j.jsx)(`span`,{className:`block whitespace-nowrap`,children:e.label}),e.reason&&(0,j.jsx)(`span`,{className:`mt-0.5 block text-[10px] text-slate-400 dark:text-zinc-500`,children:e.reason})]}),t&&(0,j.jsx)(fe,{size:13,className:`ml-3 shrink-0`})]},e.id)})})]})}),(0,j.jsxs)(`div`,{className:`flex items-center justify-end gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:Cr,title:bn?`停止语音输入`:`语音输入`,className:`flex h-9 w-9 items-center justify-center rounded-full border border-slate-200 bg-slate-50 text-slate-500 transition-colors hover:text-slate-700 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-400 dark:hover:text-zinc-200`,"aria-label":`语音输入`,children:(0,j.jsx)(ge,{size:15,className:bn?`text-indigo-500 dark:text-indigo-400`:``})}),(0,j.jsx)(`button`,{type:`button`,onClick:Tr,className:`flex h-9 w-9 items-center justify-center rounded-full border border-slate-200 bg-slate-50 text-slate-500 transition-colors hover:text-slate-700 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-400 dark:hover:text-zinc-200`,"aria-label":`补充上下文`,children:(0,j.jsx)(s,{size:15})}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Dr(),disabled:Yt||!Pn,className:`flex h-9 w-9 items-center justify-center rounded-full bg-indigo-600 text-white shadow-sm transition-colors hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-60 dark:bg-white dark:text-black dark:hover:bg-zinc-200`,"aria-label":`发送讨论`,children:(0,j.jsx)(a,{size:15})})]})]})]})]})]})]}),(0,j.jsxs)(`div`,{className:`flex h-full min-h-0 flex-col overflow-hidden pt-6 md:px-6 md:pt-0`,children:[(0,j.jsx)(ht,{title:`Agent 行动计划`,icon:Se}),(0,j.jsxs)(`div`,{className:`mb-5 max-h-[42vh] shrink-0 space-y-4 overflow-y-auto pr-1`,children:[(0,j.jsxs)(`div`,{className:`rounded-xl border border-slate-200 bg-white p-4 dark:border-zinc-800 dark:bg-[#101014]`,children:[(0,j.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-slate-900 dark:text-zinc-100`,children:`Agent Studio`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-slate-500 dark:text-zinc-500`,children:`创建、编辑、试跑项目级 Agent`})]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>{st(ot),vt(`basic`)},className:`rounded border border-slate-200 px-2 py-1 text-[10px] font-medium text-slate-500 hover:text-slate-800 dark:border-zinc-700 dark:text-zinc-400 dark:hover:text-zinc-200`,children:`清空`})]}),(0,j.jsx)(`div`,{className:`mb-3 grid grid-cols-3 gap-1 text-center text-[10px] font-medium`,children:[[`basic`,`基础`],[`capability`,`能力`],[`test`,`测试`]].map(([e,t])=>(0,j.jsx)(`button`,{type:`button`,onClick:()=>vt(e),className:`rounded-md border px-2 py-1.5 ${ft===e?`border-indigo-300 bg-indigo-50 text-indigo-700 dark:border-indigo-500/40 dark:bg-indigo-500/15 dark:text-indigo-200`:`border-slate-200 bg-slate-50 text-slate-400 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-500`}`,children:t},e))}),(0,j.jsxs)(`div`,{className:`grid gap-2`,children:[ft===`basic`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsxs)(`select`,{value:z,onChange:e=>kr(e.target.value),className:`h-8 rounded-md border border-slate-200 bg-slate-50 px-2 text-[11px] text-slate-700 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-200`,"aria-label":`选择 Agent 模板`,children:[(0,j.jsx)(`option`,{value:``,children:`空白 Agent`}),p.map(e=>(0,j.jsx)(`option`,{value:e.key,children:e.label},e.key))]}),(0,j.jsx)(`input`,{value:R.name,onChange:e=>Or(`name`,e.target.value),placeholder:`agent-name`,className:`h-8 rounded-md border border-slate-200 bg-white px-2 text-[11px] text-slate-800 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100`}),(0,j.jsx)(`input`,{value:R.description,onChange:e=>Or(`description`,e.target.value),placeholder:`何时使用这个 Agent`,className:`h-8 rounded-md border border-slate-200 bg-white px-2 text-[11px] text-slate-800 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100`})]}),ft===`capability`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`textarea`,{value:R.prompt,onChange:e=>Or(`prompt`,e.target.value),placeholder:`Agent system prompt`,className:`min-h-[86px] resize-none rounded-md border border-slate-200 bg-white px-2 py-2 text-[11px] leading-relaxed text-slate-800 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100`}),(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,j.jsx)(`input`,{value:R.tools,onChange:e=>Or(`tools`,e.target.value),placeholder:`tools: Read, Grep`,className:`h-8 rounded-md border border-slate-200 bg-white px-2 text-[11px] text-slate-800 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100`}),(0,j.jsx)(`input`,{value:R.capabilities,onChange:e=>Or(`capabilities`,e.target.value),placeholder:`code.edit, review.risk`,className:`h-8 rounded-md border border-slate-200 bg-white px-2 text-[11px] text-slate-800 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-100`})]})]})]}),(0,j.jsxs)(`div`,{className:`mt-3 flex flex-wrap items-center gap-2`,children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void jr(),disabled:B,className:`inline-flex items-center gap-1.5 rounded-md bg-indigo-600 px-3 py-1.5 text-[11px] font-semibold text-white disabled:cursor-not-allowed disabled:opacity-50 dark:bg-white dark:text-black`,children:[(0,j.jsx)(s,{size:12}),`创建`]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Mr(),disabled:B||!Z,className:`rounded-md border border-slate-200 px-3 py-1.5 text-[11px] font-semibold text-slate-600 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`更新所选`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Nr(),disabled:B||!Z,className:`rounded-md border border-slate-200 px-3 py-1.5 text-[11px] font-semibold text-slate-600 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`源文件`})]}),(0,j.jsxs)(`div`,{className:`mt-3 grid gap-2`,children:[(0,j.jsx)(`textarea`,{value:St,onChange:e=>Ct(e.target.value),className:`min-h-[54px] resize-none rounded-md border border-slate-200 bg-slate-50 px-2 py-2 text-[11px] leading-relaxed text-slate-700 outline-none dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-200`,"aria-label":`Agent 试跑输入`}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void Fr(),disabled:B||!Z,className:`inline-flex h-8 items-center justify-center gap-1.5 rounded-md border border-emerald-200 bg-emerald-50 text-[11px] font-semibold text-emerald-700 disabled:cursor-not-allowed disabled:opacity-50 dark:border-emerald-500/30 dark:bg-emerald-500/10 dark:text-emerald-200`,children:[(0,j.jsx)(E,{size:12}),`试跑所选 Agent`]})]}),(Et||Dt||yt)&&(0,j.jsxs)(`div`,{className:`mt-3 space-y-2`,children:[Et&&(0,j.jsx)(`div`,{className:`rounded-md border border-indigo-200 bg-indigo-50 px-2 py-1.5 text-[11px] text-indigo-700 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-200`,children:Et}),Dt&&(0,j.jsx)(`div`,{className:`rounded-md border border-rose-200 bg-rose-50 px-2 py-1.5 text-[11px] text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-200`,children:Dt}),yt&&(0,j.jsx)(`pre`,{className:`max-h-28 overflow-y-auto whitespace-pre-wrap rounded-md border border-slate-200 bg-slate-50 px-2 py-2 text-[10px] leading-relaxed text-slate-600 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-400`,children:yt})]})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-slate-200 bg-white p-4 dark:border-zinc-800 dark:bg-[#101014]`,children:[(0,j.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-slate-900 dark:text-zinc-100`,children:`Agent Console`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-slate-500 dark:text-zinc-500`,children:`My Agents、能力、运行与健康`})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-1 text-center text-[10px]`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:er?.profiles?.enabled??d.length}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`可用`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:er?.assignments?.active??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`运行`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:er?.assignments?.failed??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`失败`})]})]})]}),(0,j.jsx)(`div`,{className:`mb-3 grid grid-cols-3 gap-1.5 text-center text-[10px] font-semibold text-slate-500 dark:text-zinc-400`,children:[`My Agents`,`Runs`,`Permission Center`,...e?[`Team Runs`,`Autonomy Console`,`Evidence`]:[]].map(e=>(0,j.jsx)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:e},e))}),e&&(0,j.jsxs)(`div`,{className:`mb-3 rounded-lg border border-slate-200 bg-slate-50 p-3 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-[11px] font-semibold text-slate-700 dark:text-zinc-200`,children:`Autonomy Console`}),(0,j.jsx)(`div`,{className:`mt-0.5 text-[10px] text-slate-500 dark:text-zinc-500`,children:`长期目标、Cycle Timeline、证据与人工介入`})]}),(0,j.jsxs)(`div`,{className:`flex shrink-0 gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Wr(),disabled:B,className:`rounded-md border border-slate-200 bg-white px-2 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:bg-zinc-900 dark:text-zinc-300`,children:`新目标`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Kr(),disabled:B,className:`rounded-md bg-slate-900 px-2 py-1 text-[10px] font-semibold text-white disabled:opacity-50 dark:bg-white dark:text-black`,children:`run once`})]})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-1.5 text-center text-[10px]`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-white px-2 py-1 dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.summary?.activeGoals??De.filter(e=>e.status===`active`).length}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`目标`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-white px-2 py-1 dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.summary?.activeCycles??ke.filter(e=>![`completed`,`failed`,`canceled`].includes(e.status)).length}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`Cycle`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-white px-2 py-1 dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.summary?.pendingInterventions??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`介入`})]})]}),(0,j.jsxs)(`div`,{className:`mt-2 rounded-md border border-slate-200 bg-white px-2 py-2 text-[10px] dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-1.5 text-center`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.workerHealth?.queueDepth??w?.queueDepth??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`队列`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.workerHealth?.staleJobs??w?.staleJobs??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`过期`})]}),(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:k?.summary?.waitingApprovalCycles??0}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`审批`})]})]}),(k?.nextRecommendedActions?.length??0)>0&&(0,j.jsx)(`div`,{className:`mt-2 space-y-1 text-slate-500 dark:text-zinc-400`,children:k.nextRecommendedActions.slice(0,2).map(e=>(0,j.jsx)(`div`,{className:`truncate`,children:e},e))})]}),(0,j.jsxs)(`div`,{className:`mt-2 grid gap-2`,children:[De.length===0?(0,j.jsx)(`div`,{className:`rounded border border-dashed border-slate-200 px-2 py-2 text-[10px] text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`还没有长期自治目标。`}):De.slice(0,3).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border px-2 py-1.5 text-[10px] dark:border-zinc-800 ${tr?.id===e.id?`border-indigo-300 bg-indigo-50 dark:border-indigo-500/40 dark:bg-indigo-500/10`:`border-slate-200 bg-white dark:bg-zinc-900`}`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>Pe(e.id),className:`truncate text-left font-semibold text-slate-700 dark:text-zinc-200`,children:e.title}),(0,j.jsxs)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:[e.autonomyLevel,` · `,e.status]})]}),(0,j.jsxs)(`div`,{className:`mt-1 flex items-center justify-between gap-2`,children:[(0,j.jsxs)(`span`,{className:`truncate text-slate-400 dark:text-zinc-500`,children:[e.defaultTeamTemplate,` · next `,Je(e.nextDueAt)]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Gr(e),disabled:B||e.status!==`active`,className:`shrink-0 rounded border border-indigo-200 px-2 py-0.5 font-semibold text-indigo-600 disabled:opacity-50 dark:border-indigo-500/30 dark:text-indigo-200`,children:`kick`})]})]},e.id)),(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-white p-2 text-[10px] dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-700 dark:text-zinc-200`,children:`Cycle 列表`}),(0,j.jsxs)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:[ke.length,` total`]})]}),(0,j.jsx)(`div`,{className:`space-y-1`,children:ke.length===0?(0,j.jsx)(`div`,{className:`rounded border border-dashed border-slate-200 px-2 py-2 text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`还没有自治 cycle。`}):ke.slice(0,4).map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>{Ie(e.id),Pe(e.goalId)},className:`w-full rounded border px-2 py-1.5 text-left transition-colors ${Q?.id===e.id?`border-indigo-300 bg-indigo-50 dark:border-indigo-500/40 dark:bg-indigo-500/10`:`border-slate-200 bg-slate-50 hover:border-slate-300 dark:border-zinc-800 dark:bg-zinc-950 dark:hover:border-zinc-700`}`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsxs)(`span`,{className:`truncate font-medium text-slate-600 dark:text-zinc-300`,children:[e.triggerType,` · `,e.id]}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.status})]}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-slate-400 dark:text-zinc-500`,children:e.nextAction??e.summary??e.teamRunId??`等待执行`})]},e.id))})]}),(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-white p-2 text-[10px] dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-700 dark:text-zinc-200`,children:`Cycle Timeline`}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:ze?`loading`:Q?.status??`empty`})]}),Q?(0,j.jsxs)(`div`,{className:`space-y-2`,children:[(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`目标`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-700 dark:text-zinc-200`,children:tr?.title??Q.goalId})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`风险 / 触发`}),(0,j.jsxs)(`div`,{className:`truncate font-semibold text-slate-700 dark:text-zinc-200`,children:[Q.riskLevel,` · `,Q.triggerType]})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`计划`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-700 dark:text-zinc-200`,children:nr?.selectedStrategy??P?.planSummary??`-`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`验证`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-700 dark:text-zinc-200`,children:P?.verification?.status??`-`})]})]}),(0,j.jsx)(`div`,{className:`space-y-1`,children:rr.length===0?(0,j.jsx)(`div`,{className:`rounded border border-dashed border-slate-200 px-2 py-2 text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`详情加载后会显示 Observe / Plan / Act / Verify / Reflect。`}):rr.slice(0,7).map(e=>(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-semibold text-slate-700 dark:text-zinc-200`,children:e.label}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.status})]}),(0,j.jsx)(`div`,{className:`mt-0.5 line-clamp-2 text-slate-500 dark:text-zinc-400`,children:e.error??e.summary})]},e.id))})]}):(0,j.jsx)(`div`,{className:`rounded border border-dashed border-slate-200 px-2 py-2 text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`选择或启动一个 cycle 后展示完整时间线。`})]}),(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-white p-2 text-[10px] dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-700 dark:text-zinc-200`,children:`Evidence Console`}),(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:`diff / verification / memory`})]}),(0,j.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-600 dark:text-zinc-300`,children:`Diff`}),(0,j.jsxs)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:[ar.length,` files`]})]}),(0,j.jsx)(`div`,{className:`line-clamp-2 text-slate-500 dark:text-zinc-400`,children:or??`暂无 diff 证据`}),ar.length>0&&(0,j.jsx)(`div`,{className:`mt-1 flex flex-wrap gap-1`,children:ar.slice(0,4).map(e=>(0,j.jsx)(`span`,{className:`max-w-full truncate rounded bg-white px-1.5 py-0.5 text-slate-500 dark:bg-zinc-900 dark:text-zinc-400`,children:e},e))})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-600 dark:text-zinc-300`,children:`Verifier`}),(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:P?.verification?.status??`-`})]}),(P?.verification?.checks??[]).slice(0,3).map(e=>(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-2 text-slate-500 dark:text-zinc-400`,children:[(0,j.jsx)(`span`,{className:`truncate`,children:e.key}),(0,j.jsx)(`span`,{className:`shrink-0`,children:e.status})]},e.key)),(P?.verification?.checks??[]).length===0&&(0,j.jsx)(`div`,{className:`text-slate-500 dark:text-zinc-400`,children:`暂无验证记录`})]}),(0,j.jsxs)(`div`,{className:`grid grid-cols-2 gap-1.5`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`mb-1 font-semibold text-slate-600 dark:text-zinc-300`,children:`Artifacts`}),(P?.artifacts??[]).slice(0,2).map(e=>(0,j.jsx)(`div`,{className:`truncate text-slate-500 dark:text-zinc-400`,children:e.title},e.id)),(P?.artifacts??[]).length===0&&(0,j.jsx)(`div`,{className:`text-slate-500 dark:text-zinc-400`,children:`无`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`mb-1 font-semibold text-slate-600 dark:text-zinc-300`,children:`Memory`}),(P?.memory??[]).slice(0,2).map(e=>(0,j.jsx)(`div`,{className:`truncate text-slate-500 dark:text-zinc-400`,children:e.title},e.id)),(P?.memory??[]).length===0&&(0,j.jsx)(`div`,{className:`text-slate-500 dark:text-zinc-400`,children:`无`})]})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-600 dark:text-zinc-300`,children:`Plan Self Check`}),(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:P?.plannerOutcomeReview?.effective===!0?`effective`:`score ${nr?.critique?.score??`-`}`})]}),(0,j.jsx)(`div`,{className:`line-clamp-2 text-slate-500 dark:text-zinc-400`,children:P?.plannerOutcomeReview?.plannerHint??nr?.critique?.blockingIssues?.[0]??nr?.critique?.warnings?.[0]??`memory influence ${(nr?.memoryInfluence??[]).length}`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-600 dark:text-zinc-300`,children:`Outcome Review`}),(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:P?.plannerOutcomeReview?.rootCause??`no root cause`})]}),(0,j.jsx)(`div`,{className:`line-clamp-2 text-slate-500 dark:text-zinc-400`,children:P?.plannerOutcomeReview?.promptPatchSuggestion?.patchSummary??P?.plannerOutcomeReview?.evalTaskSuggestions?.[0]?.name??`等待 cycle 完成后生成计划效果复盘`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1.5 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`font-semibold text-slate-600 dark:text-zinc-300`,children:`Intervention Queue`}),(0,j.jsx)(`span`,{className:`text-slate-400 dark:text-zinc-500`,children:k?.interventionQueue?.length??he.length})]}),he.slice(0,2).map(e=>(0,j.jsxs)(`div`,{className:`truncate text-slate-500 dark:text-zinc-400`,children:[e.riskLevel,` · `,e.title]},e.approvalId)),he.length===0&&(0,j.jsx)(`div`,{className:`text-slate-500 dark:text-zinc-400`,children:Ye(Q?.nextAction??`当前没有待人工介入项`)})]})]})]})]})]}),(0,j.jsx)(`div`,{className:`space-y-2`,children:d.length===0?(0,j.jsx)(`div`,{className:`rounded-md border border-dashed border-slate-200 px-3 py-3 text-[11px] text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`还没有可管理的 Agent。`}):d.slice(0,6).map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>dt(e.id),className:`w-full rounded-md border px-3 py-2 text-left transition-colors ${Z?.id===e.id?`border-indigo-300 bg-indigo-50 dark:border-indigo-500/40 dark:bg-indigo-500/10`:`border-slate-200 bg-slate-50 hover:border-slate-300 dark:border-zinc-800 dark:bg-zinc-950 dark:hover:border-zinc-700`}`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-[12px] font-semibold text-slate-800 dark:text-zinc-100`,children:e.displayName||e.agentType}),(0,j.jsx)(`span`,{className:`shrink-0 rounded border border-slate-200 px-1.5 py-0.5 text-[10px] text-slate-500 dark:border-zinc-700 dark:text-zinc-400`,children:e.status})]}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[10px] leading-relaxed text-slate-500 dark:text-zinc-500`,children:e.description})]},e.id))}),Z&&(0,j.jsxs)(`div`,{className:`mt-3 space-y-3 border-t border-slate-200 pt-3 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:Jn.length===0?(0,j.jsx)(`span`,{className:`text-[10px] text-slate-400 dark:text-zinc-500`,children:`无能力标签`}):Jn.slice(0,5).map(e=>(0,j.jsx)(`span`,{className:`rounded border border-indigo-200 bg-indigo-50 px-2 py-0.5 text-[10px] font-medium text-indigo-700 dark:border-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-200`,children:e.key},`${Z.id}-${e.key}`))}),Ze&&(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-2 py-2 text-[10px] leading-relaxed text-slate-500 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-400`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center justify-between gap-2`,children:[(0,j.jsxs)(`span`,{className:`font-semibold text-slate-700 dark:text-zinc-200`,children:[`权限 `,Ze.level,` · `,Ze.levelLabel]}),(0,j.jsx)(`span`,{className:`rounded px-1.5 py-0.5 ${Ze.requiresApproval?`bg-amber-100 text-amber-700 dark:bg-amber-500/15 dark:text-amber-200`:`bg-emerald-100 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-200`}`,children:Ze.requiresApproval?`需审批`:`可直接运行`})]}),(0,j.jsx)(`div`,{children:Ze.summary})]}),Yn&&(0,j.jsxs)(`div`,{className:`grid grid-cols-3 gap-1.5 text-center text-[10px]`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:Yn.totalRuns}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`Runs`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:[Math.round(Yn.successRate*100),`%`]}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`成功率`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 py-1 dark:border-zinc-800`,children:[(0,j.jsx)(`div`,{className:`font-semibold text-slate-800 dark:text-zinc-100`,children:Yn.failedRuns}),(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`失败`})]})]}),(0,j.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Fr(Z),disabled:B,className:`rounded-md border border-slate-200 px-2.5 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:`测试`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Pr(Z,Z.status===`enabled`?`disable`:`enable`),disabled:B,className:`rounded-md border border-slate-200 px-2.5 py-1 text-[10px] font-semibold text-slate-600 disabled:opacity-50 dark:border-zinc-700 dark:text-zinc-300`,children:Z.status===`enabled`?`禁用`:`启用`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Pr(Z,`archive`),disabled:B,className:`rounded-md border border-rose-200 px-2.5 py-1 text-[10px] font-semibold text-rose-600 disabled:opacity-50 dark:border-rose-500/30 dark:text-rose-300`,children:`归档`})]}),(0,j.jsx)(`div`,{className:`space-y-1`,children:qn.length===0?(0,j.jsx)(`div`,{className:`text-[10px] text-slate-400 dark:text-zinc-500`,children:`暂无运行记录`}):qn.map(e=>(0,j.jsx)(`div`,{className:`rounded-md border border-slate-200 px-2 py-1.5 text-[10px] dark:border-zinc-800`,children:(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-slate-600 dark:text-zinc-300`,children:e.title}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.status})]})},e.id))})]})]}),(0,j.jsxs)(`div`,{className:`rounded-xl border border-slate-200 bg-white p-4 dark:border-zinc-800 dark:bg-[#101014]`,children:[(0,j.jsxs)(`div`,{className:`mb-3 flex items-center justify-between gap-3`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsx)(`div`,{className:`text-sm font-semibold text-slate-900 dark:text-zinc-100`,children:`Template Center`}),(0,j.jsx)(`div`,{className:`mt-1 text-[11px] text-slate-500 dark:text-zinc-500`,children:`单 Agent、评测任务与多 Agent 编排`})]}),(0,j.jsxs)(`span`,{className:`rounded border border-slate-200 px-2 py-1 text-[10px] text-slate-500 dark:border-zinc-800 dark:text-zinc-400`,children:[h.length,` 模板`]})]}),(0,j.jsx)(`div`,{className:`space-y-2`,children:h.slice(0,5).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-slate-200 bg-slate-50 px-3 py-2 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate text-[12px] font-semibold text-slate-800 dark:text-zinc-100`,children:e.label}),(0,j.jsxs)(`span`,{className:`shrink-0 rounded border border-slate-200 px-1.5 py-0.5 text-[10px] text-slate-500 dark:border-zinc-700 dark:text-zinc-400`,children:[e.type,` · `,e.defaultPermissionLevel]})]}),(0,j.jsx)(`div`,{className:`mt-1 line-clamp-2 text-[10px] leading-relaxed text-slate-500 dark:text-zinc-500`,children:e.description}),(0,j.jsxs)(`div`,{className:`mt-1 flex items-center gap-2 text-[10px] text-slate-400 dark:text-zinc-500`,children:[(0,j.jsxs)(`span`,{children:[e.riskLevel,` risk`]}),(0,j.jsxs)(`span`,{children:[e.goldenTaskCount,` golden tasks`]})]})]},e.id))}),e&&_.length>0&&(0,j.jsx)(`div`,{className:`mt-3 space-y-2 border-t border-slate-200 pt-3 dark:border-zinc-800`,children:_.map(e=>(0,j.jsx)(`div`,{className:`rounded-md border border-indigo-200 bg-indigo-50 px-3 py-2 dark:border-indigo-500/20 dark:bg-indigo-500/10`,children:(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`truncate text-[12px] font-semibold text-indigo-700 dark:text-indigo-200`,children:e.label}),(0,j.jsx)(`div`,{className:`mt-1 text-[10px] leading-relaxed text-indigo-700/70 dark:text-indigo-200/70`,children:e.roles.map(e=>e.label).join(` -> `)})]}),(0,j.jsx)(`a`,{href:`/agent-team-studio?template=${encodeURIComponent(e.key)}`,className:`shrink-0 rounded-md bg-indigo-600 px-2 py-1 text-[10px] font-semibold text-white`,children:`独立配置`})]})},e.key))})]})]}),(0,j.jsx)(`div`,{className:`mb-6 shrink-0`,children:(0,j.jsxs)(`div`,{className:`relative rounded-2xl border border-indigo-200 bg-white p-4 shadow-lg shadow-indigo-500/5 dark:border-indigo-500/30 dark:bg-[#131316]`,children:[(0,j.jsxs)(`div`,{className:`mb-3 flex items-center justify-between`,children:[(0,j.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-semibold text-indigo-700 dark:text-indigo-300`,children:[(0,j.jsx)(be,{size:14,className:`animate-pulse`}),`行动确认`]}),(0,j.jsx)(`span`,{className:`rounded-full border border-indigo-200 bg-indigo-100 px-2 py-0.5 text-[10px] font-medium text-indigo-700 dark:border-indigo-500/30 dark:bg-indigo-500/20 dark:text-indigo-300`,children:fr})]}),(0,j.jsx)(`div`,{className:`mb-4 grid grid-cols-4 gap-1.5`,children:[[`discuss`,`讨论`],[`confirm`,`确认`],[pr===`blocked`?`blocked`:`run`,pr===`blocked`?`补充`:`执行`],[`result`,`结果`]].map(([e,t])=>(0,j.jsx)(`div`,{className:`rounded-lg border px-2 py-1.5 text-center text-[10px] font-medium ${pr===e?`border-indigo-300 bg-indigo-50 text-indigo-700 dark:border-indigo-500/40 dark:bg-indigo-500/15 dark:text-indigo-200`:`border-slate-200 bg-slate-50 text-slate-400 dark:border-zinc-800 dark:bg-zinc-900/50 dark:text-zinc-600`}`,children:t},t))}),(0,j.jsx)(`div`,{className:`space-y-3`,children:(t?.decisions??[]).length===0?(0,j.jsx)(`div`,{className:`rounded-xl border border-dashed border-slate-200 px-3 py-3 text-[11px] leading-relaxed text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`当前没有待确认动作。继续在中间讨论,系统会把可派发的 Agent 任务放到这里。`}):t?.decisions.map(e=>(0,j.jsx)(`div`,{className:`group relative rounded-xl border border-slate-200 bg-slate-50 p-3 transition-colors hover:border-indigo-500/50 dark:border-zinc-800/80 dark:bg-zinc-900/50`,children:(0,j.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,j.jsxs)(`div`,{children:[(0,j.jsxs)(`div`,{className:`mb-1.5 flex items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`rounded px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider ${e.type===`create`?`bg-emerald-500/10 text-emerald-500 dark:text-emerald-400`:`bg-amber-500/10 text-amber-500 dark:text-amber-400`}`,children:e.type===`create`?`Create`:`Takeover`}),(0,j.jsx)(`div`,{className:`text-sm font-medium text-slate-800 dark:text-zinc-200`,children:e.title})]}),(0,j.jsx)(`div`,{className:`text-[11px] leading-relaxed text-slate-500 dark:text-zinc-500`,children:e.summary}),(0,j.jsxs)(`div`,{className:`mt-3 flex items-center gap-2`,children:[(0,j.jsx)(`span`,{className:`text-[10px] font-semibold uppercase tracking-[0.16em] text-slate-400 dark:text-zinc-600`,children:`Agent`}),(0,j.jsxs)(`select`,{value:Vt[e.id]??``,onChange:t=>{let n=t.target.value;Ht(t=>({...t,[e.id]:n}))},className:`h-7 max-w-[220px] rounded-md border border-slate-200 bg-white px-2 text-[11px] font-medium text-slate-700 outline-none transition-colors hover:border-indigo-300 focus:border-indigo-500 dark:border-zinc-700 dark:bg-zinc-950 dark:text-zinc-200`,"aria-label":`选择执行 ${e.title} 的 Agent`,children:[(0,j.jsx)(`option`,{value:``,children:`自动调度`}),Qn.map(e=>(0,j.jsx)(`option`,{value:e.agentType,children:e.displayName||e.agentType},e.id))]})]})]}),(0,j.jsxs)(`div`,{className:`flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Yr(e.id),className:`flex h-6 w-6 items-center justify-center rounded-md bg-emerald-500/10 text-emerald-600 transition-all hover:scale-105 hover:bg-emerald-500/20 dark:text-emerald-400`,"aria-label":`确认 ${e.title}`,children:(0,j.jsx)(fe,{size:13})}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Xr(e.id),className:`flex h-6 w-6 items-center justify-center rounded-md bg-rose-500/10 text-rose-600 transition-all hover:scale-105 hover:bg-rose-500/20 dark:text-rose-400`,"aria-label":`忽略 ${e.title}`,children:(0,j.jsx)(`span`,{className:`mb-[2px] text-sm font-bold leading-none`,children:`×`})})]})]})},e.id))})]})}),(0,j.jsxs)(`div`,{className:`flex min-h-0 flex-1 flex-col`,children:[(0,j.jsxs)(`div`,{className:`mb-4 flex shrink-0 items-center justify-between px-1`,children:[(0,j.jsx)(`div`,{className:`text-[10px] font-bold uppercase tracking-[0.2em] text-slate-400 dark:text-zinc-500`,children:`Agent 运行队列`}),(0,j.jsxs)(`div`,{className:`flex gap-1 rounded-lg border border-slate-200 bg-slate-100 p-0.5 dark:border-zinc-800 dark:bg-zinc-900`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>Zr(`auto`),className:`rounded px-2.5 py-1 text-[10px] font-medium transition-colors ${Wt===`auto`?`border border-slate-200 bg-white text-slate-800 shadow-sm dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-200`:`text-slate-500 hover:text-slate-700 dark:text-zinc-500 dark:hover:text-zinc-300`}`,children:`全部`}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>Zr(`blocked`),className:`relative rounded px-2.5 py-1 text-[10px] font-medium transition-colors ${Wt===`blocked`?`border border-slate-200 bg-white text-slate-800 shadow-sm dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-200`:`text-slate-500 hover:text-slate-700 dark:text-zinc-500 dark:hover:text-zinc-300`}`,children:[`阻塞`,lr>0&&(0,j.jsx)(`span`,{className:`absolute right-0.5 top-0.5 h-1.5 w-1.5 rounded-full bg-rose-500`})]})]})]}),(0,j.jsx)(`div`,{className:`scrollbar-hide flex-1 space-y-4 overflow-y-auto pr-1 pb-4`,children:sr.length===0?(0,j.jsx)(`div`,{className:`rounded-xl border border-dashed border-slate-200 px-3 py-4 text-[11px] text-slate-500 dark:border-zinc-800 dark:text-zinc-500`,children:`当前筛选条件下没有 Agent 任务。`}):sr.map(e=>(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void ai(e),className:`relative block w-full pl-5 pb-5 text-left`,children:[(0,j.jsx)(`div`,{className:`absolute left-[9px] top-6 bottom-0 w-[2px] rounded-full bg-slate-200 dark:bg-zinc-800/80`}),e.status===`running`?(0,j.jsx)(`div`,{className:`absolute left-0 top-3 z-10 flex h-5 w-5 items-center justify-center rounded-full border-[3px] border-indigo-400 bg-white shadow-[0_0_12px_rgba(99,102,241,0.3)] dark:border-indigo-500 dark:bg-zinc-950`,children:(0,j.jsx)(`div`,{className:`h-1.5 w-1.5 rounded-full bg-indigo-500 animate-pulse dark:bg-indigo-400`})}):e.status===`waiting_input`||e.status===`failed`?(0,j.jsx)(`div`,{className:`absolute left-1 top-3.5 z-10 h-3 w-3 rounded-full border-2 border-rose-400 bg-white dark:border-rose-500 dark:bg-zinc-950`}):(0,j.jsx)(`div`,{className:`absolute left-1 top-3.5 z-10 h-3 w-3 rounded-full border-2 border-emerald-400 bg-white dark:border-emerald-500 dark:bg-zinc-950`}),(0,j.jsxs)(`div`,{className:`rounded-xl p-3.5 shadow-sm transition-all ${e.status===`running`?`border border-slate-200 bg-white hover:border-indigo-500/40 dark:border-zinc-800 dark:bg-[#111115]`:e.status===`waiting_input`||e.status===`failed`?`border border-rose-200 bg-white/50 hover:border-rose-500/50 dark:border-rose-500/30 dark:bg-[#0c0c0e]/50`:`border border-emerald-200 bg-white/60 opacity-80 hover:opacity-100 dark:border-emerald-500/30 dark:bg-[#0c0c0e]/50`}`,children:[(0,j.jsxs)(`div`,{className:`mb-3 flex items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`text-sm ${e.status===`completed`?`font-medium text-slate-700 dark:text-emerald-100`:`font-semibold text-slate-800 dark:text-zinc-100`}`,children:e.title}),e.model&&(0,j.jsx)(`div`,{className:`mt-1 text-[10px] font-medium uppercase tracking-[0.18em] text-slate-400 dark:text-zinc-500`,children:Ke(e.model)}),e.agentType&&(0,j.jsx)(`div`,{className:`mt-1 text-[10px] font-medium text-indigo-500 dark:text-indigo-300`,children:e.agentType}),e.dispatchReason&&(0,j.jsx)(`div`,{className:`mt-1 max-w-[260px] truncate text-[10px] text-slate-400 dark:text-zinc-500`,children:e.dispatchReason}),(0,j.jsx)(`div`,{className:`mt-2 grid grid-cols-4 gap-1 text-center text-[9px] font-medium`,children:[[`plan`,`计划`],[`execute`,`执行`],[`verify`,`验证`],[`review`,`复盘`]].map(([t,n])=>(0,j.jsx)(`span`,{className:`rounded border px-1.5 py-0.5 ${e.currentStage===t?`border-indigo-300 bg-indigo-50 text-indigo-700 dark:border-indigo-500/40 dark:bg-indigo-500/15 dark:text-indigo-200`:`border-slate-200 bg-slate-50 text-slate-400 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-600`}`,children:n},`${e.id}-${t}`))})]}),(0,j.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),Ir(e.id)},className:`rounded border border-slate-200 px-2 py-0.5 text-[10px] font-medium text-slate-500 transition-colors hover:border-indigo-200 hover:text-indigo-600 dark:border-zinc-700 dark:text-zinc-400 dark:hover:border-indigo-500/30 dark:hover:text-indigo-300`,"aria-label":`查看 ${e.title} 的运行详情`,children:`详情`}),(e.status===`queued`||e.status===`running`||e.status===`waiting_input`)&&(0,j.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),ri(e.id)},className:`rounded border border-slate-200 px-2 py-0.5 text-[10px] font-medium text-slate-500 transition-colors hover:border-rose-200 hover:text-rose-500 dark:border-zinc-700 dark:text-zinc-400 dark:hover:border-rose-500/30 dark:hover:text-rose-400`,"aria-label":`取消 ${e.title}`,children:`取消`}),(0,j.jsxs)(`span`,{className:`flex items-center gap-1 rounded px-2 py-0.5 text-[10px] font-bold tracking-wide border ${gt[e.status]}`,children:[e.status===`running`&&(0,j.jsx)(E,{size:10,className:`animate-pulse text-indigo-500`}),Te[e.status]]})]})]}),e.status===`running`&&typeof e.progress==`number`&&(0,j.jsxs)(j.Fragment,{children:[(0,j.jsx)(`div`,{className:`mb-2.5 h-1.5 w-full overflow-hidden rounded-full bg-slate-100 shadow-inner dark:bg-zinc-800/80`,children:(0,j.jsx)(`div`,{className:`relative h-full rounded-full bg-gradient-to-r from-indigo-500 to-purple-500`,style:{width:`${e.progress}%`},children:(0,j.jsx)(`div`,{className:`absolute inset-0 animate-[pulse_2s_ease-in-out_infinite] bg-white/20`})})}),(0,j.jsxs)(`div`,{className:`flex justify-between text-[10px] font-medium text-slate-500 dark:text-zinc-500`,children:[(0,j.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[(0,j.jsx)(be,{size:10,className:`text-indigo-400 opacity-70`}),e.description]}),(0,j.jsxs)(`span`,{className:`font-bold text-indigo-600 dark:text-indigo-400`,children:[e.progress,`%`]})]})]}),(e.status===`waiting_input`||e.status===`failed`)&&(0,j.jsxs)(`div`,{className:`mt-1 space-y-2`,children:[(0,j.jsxs)(`div`,{className:`flex gap-2 text-[11px] text-slate-500 dark:text-zinc-500`,children:[(0,j.jsx)(`div`,{className:`h-full min-h-6 w-1 shrink-0 rounded-full bg-rose-500/20`}),qe(e.description)??e.description]}),Array.isArray(e.inputRequests)&&e.inputRequests.length>0&&(0,j.jsxs)(`div`,{className:`rounded-lg border border-rose-100 bg-rose-50/60 px-3 py-2 text-[11px] text-rose-700 dark:border-rose-500/20 dark:bg-rose-500/5 dark:text-rose-200`,children:[(0,j.jsx)(`div`,{className:`mb-1 font-medium`,children:`待补充信息`}),(0,j.jsx)(`ul`,{className:`space-y-1`,children:e.inputRequests.map((t,n)=>(0,j.jsxs)(`li`,{className:`leading-relaxed`,children:[n+1,`. `,t]},`${e.id}-request-${n}`))})]}),(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,j.jsxs)(`select`,{value:zt[e.id]??e.agentType??``,onClick:e=>e.stopPropagation(),onChange:t=>{let n=t.target.value;Bt(t=>({...t,[e.id]:n}))},className:`h-7 max-w-[190px] rounded-md border border-rose-100 bg-white px-2 text-[10px] font-medium text-slate-700 outline-none dark:border-rose-500/20 dark:bg-zinc-950 dark:text-zinc-200`,"aria-label":`选择重试 ${e.title} 的 Agent`,children:[(0,j.jsx)(`option`,{value:``,children:`自动调度`}),Qn.map(t=>(0,j.jsx)(`option`,{value:t.agentType,children:t.displayName||t.agentType},`${e.id}-${t.id}`))]}),(0,j.jsx)(`button`,{type:`button`,onClick:t=>{t.stopPropagation(),ii(e)},className:`rounded-md border border-rose-200 bg-rose-50 px-2.5 py-1 text-[10px] font-semibold text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-200`,children:`重试`})]})]}),e.status===`completed`&&(0,j.jsxs)(`div`,{className:`mt-1 space-y-2`,children:[(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 text-[10px]`,children:[(0,j.jsx)(`span`,{className:`rounded border px-2 py-0.5 font-medium ${e.generationMode===`router`?`border-indigo-200 bg-indigo-50 text-indigo-600 dark:border-indigo-500/20 dark:bg-indigo-500/10 dark:text-indigo-300`:e.generationMode===`agent-tool`?`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-200`:e.generationMode===`fallback`?`border-amber-200 bg-amber-50 text-amber-700 dark:border-amber-500/20 dark:bg-amber-500/10 dark:text-amber-200`:`border-slate-200 bg-slate-50 text-slate-500 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-500`}`,children:e.generationMode===`router`?`模型生成`:e.generationMode===`agent-tool`?`AgentTool 执行`:e.generationMode===`fallback`?`本地兜底`:`执行结果`}),e.generationMode===`fallback`&&e.generationError&&(0,j.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-amber-700/80 dark:text-amber-200/70`,children:qe(e.generationError)??e.generationError}),typeof e.executionMetadata?.executorPid==`number`&&(0,j.jsxs)(`span`,{className:`rounded border border-slate-200 px-2 py-0.5 text-slate-500 dark:border-zinc-800 dark:text-zinc-400`,children:[`pid `,e.executionMetadata.executorPid]})]}),(0,j.jsx)(`div`,{className:`text-[10px] text-slate-500 dark:text-zinc-400`,children:e.resultSummary||e.description}),e.resultArtifactPreview&&(0,j.jsx)(`div`,{className:`rounded-lg border border-emerald-100 bg-emerald-50/60 px-3 py-2 text-[10px] leading-relaxed text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/5 dark:text-emerald-200`,children:(0,j.jsx)(wt,{content:e.resultArtifactPreview})}),(e.resultArtifactIds?.length??0)>0&&(0,j.jsxs)(`div`,{className:`inline-flex items-center gap-1.5 rounded-lg border border-slate-200 bg-white px-2 py-1 text-[10px] font-medium text-slate-600 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-300`,children:[(0,j.jsx)(me,{size:11}),vn===e.id?`正在打开结果…`:`点击查看完整结果`]})]})]})]},e.id))}),L&&(0,j.jsxs)(`div`,{className:`mt-4 rounded-xl border border-slate-200 bg-white p-3 dark:border-zinc-800 dark:bg-[#101014]`,children:[(0,j.jsxs)(`div`,{className:`mb-2 flex items-start justify-between gap-3`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsx)(`div`,{className:`truncate text-[12px] font-semibold text-slate-800 dark:text-zinc-100`,children:L.run.title}),(0,j.jsxs)(`div`,{className:`mt-1 text-[10px] text-slate-500 dark:text-zinc-500`,children:[L.run.status,` · `,L.metrics?.eventCount??0,` events · `,L.metrics?.artifactCount??0,` artifacts`]})]}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>Xe(null),className:`rounded border border-slate-200 px-2 py-0.5 text-[10px] text-slate-500 dark:border-zinc-700 dark:text-zinc-400`,children:`关闭`})]}),(0,j.jsxs)(`div`,{className:`mb-2 grid grid-cols-2 gap-1.5 text-[10px] md:grid-cols-5`,children:[(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`run`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-600 dark:text-zinc-300`,children:L.run.id})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`job`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-600 dark:text-zinc-300`,children:Xn?.id??`未绑定`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`team node`}),(0,j.jsx)(`div`,{className:`truncate font-semibold text-slate-600 dark:text-zinc-300`,children:Zn?.teamRun.templateKey??`单 Agent`})]}),(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 bg-slate-50 px-2 py-1 dark:border-zinc-800 dark:bg-zinc-950`,children:[(0,j.jsx)(`div`,{className:`text-slate-400 dark:text-zinc-500`,children:`artifact`}),(0,j.jsxs)(`div`,{className:`truncate font-semibold text-slate-600 dark:text-zinc-300`,children:[L.metrics?.artifactCount??0,` linked`]})]}),(0,j.jsx)(`a`,{href:`/?runtime=1&run=${encodeURIComponent(L.run.id)}`,className:`rounded border border-indigo-200 bg-indigo-50 px-2 py-1 font-semibold text-indigo-700 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-200`,children:`runtime trace`})]}),(0,j.jsx)(`div`,{className:`mb-2 grid grid-cols-4 gap-1 text-center text-[9px] font-medium`,children:L.stages.map(e=>(0,j.jsx)(`span`,{className:`rounded border px-1 py-1 ${e.status===`active`?`border-indigo-300 bg-indigo-50 text-indigo-700 dark:border-indigo-500/40 dark:bg-indigo-500/15 dark:text-indigo-200`:e.status===`done`?`border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-200`:e.status===`failed`?`border-rose-200 bg-rose-50 text-rose-700 dark:border-rose-500/20 dark:bg-rose-500/10 dark:text-rose-200`:`border-slate-200 bg-slate-50 text-slate-400 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-600`}`,children:e.label},`${L.run.id}-${e.stage}`))}),L.permission&&(0,j.jsxs)(`div`,{className:`mb-2 rounded-md border border-slate-200 bg-slate-50 px-2 py-1.5 text-[10px] leading-relaxed text-slate-500 dark:border-zinc-800 dark:bg-zinc-950 dark:text-zinc-400`,children:[`权限 `,L.permission.level,` · `,L.permission.requiresApproval?`需要审批`:`可直接运行`]}),L.approvals.some(e=>e.status===`pending`)&&(0,j.jsx)(`div`,{className:`mb-2 space-y-1.5`,children:L.approvals.filter(e=>e.status===`pending`).map(e=>(0,j.jsxs)(`div`,{className:`rounded-md border border-amber-200 bg-amber-50 px-2 py-2 text-[10px] dark:border-amber-500/30 dark:bg-amber-500/10`,children:[(0,j.jsx)(`div`,{className:`mb-1 font-semibold text-amber-800 dark:text-amber-100`,children:e.title}),(0,j.jsxs)(`div`,{className:`mb-2 text-amber-700/80 dark:text-amber-200/80`,children:[e.riskLevel,` risk`]}),(0,j.jsxs)(`div`,{className:`flex gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Rr(e.approvalId,`approve`),className:`rounded bg-emerald-600 px-2 py-1 font-semibold text-white`,children:`批准`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Rr(e.approvalId,`deny`),className:`rounded border border-rose-200 px-2 py-1 font-semibold text-rose-600 dark:border-rose-500/30 dark:text-rose-200`,children:`拒绝`})]})]},e.approvalId))}),L.run.status===`completed`&&(0,j.jsxs)(`div`,{className:`mb-2 flex flex-wrap gap-1.5`,children:[(0,j.jsx)(`button`,{type:`button`,onClick:()=>void zr(),disabled:L.run.acceptanceStatus===`accepted`,className:`rounded-md bg-emerald-600 px-2 py-1 text-[10px] font-semibold text-white disabled:opacity-50`,children:L.run.acceptanceStatus===`accepted`?`已采纳`:`采纳结果`}),(0,j.jsx)(`button`,{type:`button`,onClick:()=>void Br(),className:`rounded-md border border-slate-200 px-2 py-1 text-[10px] font-semibold text-slate-600 dark:border-zinc-700 dark:text-zinc-300`,children:`要求修改`})]}),(0,j.jsx)(`div`,{className:`max-h-36 space-y-1 overflow-y-auto`,children:L.events.slice(-8).map(e=>(0,j.jsxs)(`div`,{className:`rounded border border-slate-200 px-2 py-1 text-[10px] dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,j.jsx)(`span`,{className:`truncate font-medium text-slate-600 dark:text-zinc-300`,children:e.eventType}),(0,j.jsx)(`span`,{className:`shrink-0 text-slate-400 dark:text-zinc-500`,children:e.category??`event`})]}),(0,j.jsx)(`div`,{className:`mt-0.5 truncate text-slate-400 dark:text-zinc-500`,children:e.message})]},e.id))})]})]})]})]})]}),(dn||hn)&&(0,j.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-black/50 px-4 backdrop-blur-sm`,children:(0,j.jsxs)(`div`,{className:`flex max-h-[82vh] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-slate-200 bg-white shadow-2xl dark:border-zinc-800 dark:bg-[#101014]`,children:[(0,j.jsxs)(`div`,{className:`flex shrink-0 items-start justify-between gap-4 border-b border-slate-200 px-5 py-4 dark:border-zinc-800`,children:[(0,j.jsxs)(`div`,{className:`min-w-0`,children:[(0,j.jsxs)(`div`,{className:`mb-1 flex items-center gap-2 text-[11px] font-semibold uppercase tracking-[0.18em] text-slate-400 dark:text-zinc-500`,children:[(0,j.jsx)(me,{size:13}),`Agent 结果产物`]}),(0,j.jsx)(`div`,{className:`truncate text-base font-semibold text-slate-900 dark:text-zinc-100`,children:dn?.title??`结果加载失败`}),dn?.summary&&(0,j.jsx)(`div`,{className:`mt-1 text-xs leading-relaxed text-slate-500 dark:text-zinc-400`,children:dn.summary})]}),(0,j.jsx)(`button`,{type:`button`,onClick:Qr,className:`flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-slate-200 text-slate-500 transition-colors hover:bg-slate-50 hover:text-slate-800 dark:border-zinc-800 dark:text-zinc-400 dark:hover:bg-zinc-900 dark:hover:text-zinc-100`,"aria-label":`关闭结果产物`,children:(0,j.jsx)(xe,{size:15})})]}),(0,j.jsx)(`div`,{className:`min-h-0 flex-1 overflow-y-auto px-5 py-4`,children:hn?(0,j.jsx)(`div`,{className:`rounded-xl border border-rose-200 bg-rose-50 px-4 py-3 text-sm text-rose-700 dark:border-rose-500/30 dark:bg-rose-500/10 dark:text-rose-200`,children:hn}):(0,j.jsx)(Tt,{content:In})}),(0,j.jsxs)(`div`,{className:`shrink-0 border-t border-slate-200 px-5 py-4 dark:border-zinc-800`,children:[_n&&(0,j.jsx)(`div`,{className:`mb-3 rounded-xl border border-indigo-200 bg-indigo-50 px-3 py-2 text-[11px] text-indigo-700 dark:border-indigo-500/30 dark:bg-indigo-500/10 dark:text-indigo-200`,children:_n}),(0,j.jsxs)(`div`,{className:`flex flex-wrap items-center justify-end gap-2`,children:[(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void ei(),disabled:!In.trim(),className:`inline-flex items-center gap-1.5 rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[12px] font-medium text-slate-600 transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-45 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800`,children:[(0,j.jsx)(pe,{size:13}),`复制结果`]}),(0,j.jsxs)(`button`,{type:`button`,onClick:ti,disabled:!In.trim(),className:`inline-flex items-center gap-1.5 rounded-full border border-slate-200 bg-white px-3 py-1.5 text-[12px] font-medium text-slate-600 transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-45 dark:border-zinc-800 dark:bg-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800`,children:[(0,j.jsx)(O,{size:13}),`带入讨论`]}),(0,j.jsxs)(`button`,{type:`button`,onClick:()=>void ni(),disabled:Yt||!In.trim(),className:`inline-flex items-center gap-1.5 rounded-full bg-indigo-600 px-3 py-1.5 text-[12px] font-medium text-white transition-colors hover:bg-indigo-500 disabled:cursor-not-allowed disabled:opacity-60 dark:bg-white dark:text-black dark:hover:bg-zinc-200`,children:[(0,j.jsx)(be,{size:13}),Yt?`提取中...`:`提取下一步`]})]})]})]})})]})}export{Tt as ArtifactContentMessage,wt as DiscussionMessageContent,Ot as SystemMessageContent,Ct as buildDiscussionContentBlocks,kt as default,rt as deriveTaskGroups,Et as getSystemMessageDisplayKind};
@@ -0,0 +1 @@
1
+ .stc-canvas{--stc-bg-app:#f6f8fb;--stc-bg-panel:#ffffffdb;--stc-bg-muted:#f4f7fb;--stc-border:#0f172a1c;--stc-border-strong:#0f172a2e;--stc-text:#111827;--stc-text-secondary:#5b677a;--stc-text-muted:#8a95a8;--stc-brand:#111827;--stc-accent:#2563eb;--stc-danger:#b42318;--stc-shadow:0 18px 48px #0f172a1a;background:linear-gradient(120deg, #bcf6d694, #dee7ffb8), var(--stc-bg-app);color:var(--stc-text);letter-spacing:0;grid-template-columns:280px minmax(560px,1fr) minmax(420px,520px);height:100vh;min-height:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid;overflow:hidden}.stc-canvas *,.stc-canvas :before,.stc-canvas :after{box-sizing:border-box}.stc-canvas button,.stc-canvas input,.stc-canvas textarea{font:inherit;letter-spacing:0}.stc-canvas button{cursor:pointer}.stc-canvas button:focus-visible,.stc-canvas input:focus-visible,.stc-canvas textarea:focus-visible{outline-offset:2px;outline:2px solid #2563eb73}.stc-canvas.is-settings-view{grid-template-columns:280px minmax(0,1fr)}.stc-canvas.is-sidebar-collapsed{grid-template-columns:72px minmax(560px,1fr) minmax(420px,520px)}.stc-canvas.is-sidebar-collapsed.is-settings-view{grid-template-columns:72px minmax(0,1fr)}.stc-sidebar,.stc-workspace,.stc-output{min-height:0}.stc-sidebar{background:#e1fdeea3;border-right:1px solid #0f172a14;flex-direction:column;gap:12px;padding:14px 12px;display:flex}.stc-canvas.is-sidebar-collapsed .stc-sidebar{align-items:center;padding-inline:10px}.stc-brand-row{align-items:center;gap:10px;min-height:40px;display:flex}.stc-brand-copy{flex:1;gap:1px;min-width:0;display:grid}.stc-brand-copy strong{font-size:14px;font-weight:800;line-height:1.2}.stc-brand-copy span{color:var(--stc-text-secondary);font-size:11px;line-height:1.3}.stc-icon-button,.stc-new-chat,.stc-secondary-button,.stc-icon-label-button,.stc-send-button,.stc-footer-action{border-radius:8px;justify-content:center;align-items:center;transition:background .14s,border-color .14s,color .14s,opacity .14s;display:inline-flex}.stc-icon-button{color:var(--stc-text-secondary);background:#ffffffad;border:1px solid #0f172a1a;min-width:34px;height:34px;padding:0}.stc-icon-button:hover{border-color:var(--stc-border-strong);color:var(--stc-text);background:#fffffff0}.stc-new-chat,.stc-secondary-button,.stc-icon-label-button,.stc-send-button{white-space:nowrap;border:1px solid #0000;gap:8px;min-height:36px;padding:0 12px;font-size:13px;font-weight:720}.stc-new-chat,.stc-send-button{color:#fff;background:#101827}.stc-new-chat{width:100%}.stc-send-button{min-width:42px;height:38px}.stc-send-button:not(:disabled):hover{background:#1f2937}.stc-send-button:disabled{cursor:not-allowed;opacity:.55}.stc-secondary-button,.stc-icon-label-button{border-color:var(--stc-border);color:var(--stc-text-secondary);background:#ffffffc7}.stc-secondary-button:hover,.stc-icon-label-button:hover{border-color:var(--stc-border-strong);color:var(--stc-text);background:#fff}.stc-search{color:var(--stc-text-muted);background:#ffffff94;border:1px solid #0f172a14;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 10px;display:flex}.stc-search input{color:var(--stc-text);background:0 0;border:0;outline:0;width:100%;min-width:0}.stc-canvas.is-sidebar-collapsed .stc-search{justify-content:center;width:38px;padding:0}.stc-canvas.is-sidebar-collapsed .stc-search input{display:none}.stc-sidebar-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.stc-sidebar-section h2{color:var(--stc-text-muted);margin:10px 0 8px;font-size:11px;font-weight:800}.stc-sidebar-section>div{gap:7px;display:grid}.stc-chat-item{color:var(--stc-text-secondary);background:#ffffff4d;border:1px solid #0f172a12;border-radius:8px;align-items:center;min-height:44px;padding:0;display:flex;position:relative}.stc-chat-item:hover{background:#ffffff7a}.stc-chat-item.is-active{color:var(--stc-text);background:#ffffffc2;border-color:#ffffffd6;box-shadow:0 10px 28px #0f172a12}.stc-chat-main{color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;width:100%;min-width:0;min-height:44px;padding:8px 38px 8px 12px;display:flex}.stc-canvas.is-sidebar-collapsed .stc-chat-item,.stc-canvas.is-sidebar-collapsed .stc-new-chat,.stc-canvas.is-sidebar-collapsed .stc-footer-action{justify-content:center;width:38px;height:38px;padding:0}.stc-canvas.is-sidebar-collapsed .stc-chat-item{display:none}.stc-chat-copy{min-width:0;display:grid}.stc-chat-copy strong,.stc-chat-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stc-chat-copy strong{font-size:13px;font-weight:760}.stc-chat-copy small{color:var(--stc-text-muted);margin-top:2px;font-size:11px}.stc-chat-more{color:var(--stc-text-muted);opacity:0;pointer-events:none;z-index:3;background:#ffffffc2;border:1px solid #0f172a14;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex;position:absolute;top:calc(50% - 14px);right:7px}.stc-chat-item:hover .stc-chat-more,.stc-chat-more:focus-visible,.stc-chat-more[aria-expanded=true]{opacity:1;pointer-events:auto}.stc-chat-menu{box-shadow:var(--stc-shadow);z-index:30;background:#fffffff5;border:1px solid #0f172a1a;border-radius:10px;min-width:124px;padding:5px;position:absolute;top:calc(100% + 4px);right:6px}.stc-chat-menu button{color:var(--stc-text);background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;width:100%;min-height:30px;padding:0 9px;font-size:12px;font-weight:700;display:flex}.stc-chat-menu button:hover{background:#0f172a0f}.stc-chat-menu button.is-danger{color:var(--stc-danger)}.stc-sidebar-footer{border-top:1px solid #0f172a14;padding-top:12px}.stc-footer-action{color:var(--stc-text-secondary);background:#ffffff57;border:1px solid #0f172a12;gap:8px;width:100%;min-height:38px;padding:0 12px;font-size:13px;font-weight:720}.stc-footer-action.is-active,.stc-footer-action:hover{color:var(--stc-text);background:#ffffffb8}.stc-workspace{background:#ffffff47;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid}.stc-thread-header{justify-content:space-between;align-items:center;gap:16px;padding:18px 22px 12px;display:flex}.stc-thread-header h1{margin:0;font-size:20px;font-weight:760;line-height:1.25}.stc-header-actions{align-items:center;gap:8px;display:flex}.stc-mobile-output-button{display:none}.stc-message-stream{flex-direction:column;gap:16px;min-height:0;padding:20px 24px;display:flex;overflow-y:auto}.stc-empty-thread{color:var(--stc-text-secondary);text-align:center;background:#ffffffa8;border:1px solid #0f172a1a;border-radius:10px;align-self:center;max-width:560px;margin-top:20vh;padding:18px 22px;box-shadow:0 18px 42px #0f172a14}.stc-empty-thread strong{color:var(--stc-text);margin-bottom:8px;font-size:15px;display:block}.stc-empty-thread p{margin:0;font-size:13px;line-height:1.65}.stc-message{display:flex}.stc-message.is-user{justify-content:flex-end}.stc-message.is-assistant,.stc-message.is-system{justify-content:flex-start}.stc-message-text{max-width:min(760px,86%)}.stc-message-actions{opacity:0;gap:6px;margin-top:6px;transition:opacity .14s;display:flex}.stc-message:hover .stc-message-actions,.stc-message-actions:focus-within{opacity:1}.stc-message.is-user .stc-message-actions{justify-content:flex-end}.stc-message-actions button{color:var(--stc-text-muted);background:#ffffffbd;border:1px solid #0f172a14;border-radius:7px;align-items:center;gap:5px;min-height:26px;padding:0 8px;font-size:11px;font-weight:760;display:inline-flex}.stc-message-actions button:hover{color:var(--stc-text)}.stc-message-actions button:disabled{cursor:not-allowed;opacity:.58}.stc-message-bubble{color:var(--stc-text);white-space:pre-wrap;background:#ffffffd1;border:1px solid #0f172a17;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.75;box-shadow:0 8px 24px #0f172a0d}.stc-message.is-loading .stc-message-bubble{color:var(--stc-text-muted)}.stc-message.is-loading .stc-message-bubble:after{content:"";margin-left:2px;animation:1.2s infinite stcTypingPulse;display:inline-block}.stc-message.is-error .stc-message-bubble{color:#991b1b;background:#fff5f5;border-color:#b91c1c2e}.stc-message.is-user .stc-message-bubble{color:#fff;background:#101827;border-color:#101827}.stc-message.is-system .stc-message-bubble{color:#166534;background:#edfdf5;border-color:#c7f0d9}@keyframes stcTypingPulse{0%{content:""}33%{content:"."}66%{content:".."}to{content:"..."}}.stc-composer{background:linear-gradient(#f6f8fb0a,#f6f8fbd6);border-top:1px solid #0f172a0b;justify-items:center;gap:9px;padding:16px 28px 12px;display:grid}.stc-composer-shell{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(#fffffffa,#fafcfff0);border:1px solid #0f172a1a;border-radius:22px;grid-template-columns:36px minmax(0,1fr) 34px;align-items:center;gap:10px;width:100%;max-width:940px;min-height:56px;padding:9px 10px 9px 12px;transition:border-color .14s,box-shadow .14s,background .14s;display:grid;box-shadow:0 10px 30px #0f172a13,inset 0 1px #ffffffe0}.stc-composer-shell.has-content{border-radius:20px;align-items:end}.stc-composer-shell:focus-within{background:#fff;border-color:#0f172a29;box-shadow:0 16px 40px #0f172a1b,0 0 0 3px #0f172a09,inset 0 1px #ffffffeb}.stc-composer-shell textarea{caret-color:#111827;color:var(--stc-text);resize:none;background:0 0;border:0;border-radius:0;outline:0;width:100%;min-height:32px;max-height:180px;padding:5px 0;font-size:15px;line-height:1.5;overflow-y:hidden}.stc-canvas .stc-composer-shell textarea:focus,.stc-canvas .stc-composer-shell textarea:focus-visible{outline:0}.stc-composer-shell textarea::placeholder{color:#0f172a70}.stc-composer-shell textarea:disabled{opacity:.72}.stc-composer-tool-button{color:#0f172ac7;background:0 0;border:0;border-radius:999px;justify-content:center;align-self:end;align-items:center;width:34px;height:34px;padding:0;transition:background .14s,border-color .14s,color .14s;display:inline-flex}.stc-composer-shell:not(.has-content) .stc-composer-tool-button,.stc-composer-shell:not(.has-content) .stc-send-button{align-self:center}.stc-composer-tool-button:hover{color:var(--stc-text);background:#0f172a0e}.stc-composer-tool-button svg{stroke-width:2.15px;width:20px;height:20px}.stc-composer-shell .stc-send-button{border-radius:999px;align-self:end;width:34px;min-width:34px;height:34px;min-height:34px;padding:0;box-shadow:0 6px 14px #0f172a29}.stc-composer-shell .stc-send-button svg{stroke-width:2.35px;width:16px;height:16px}.stc-composer-hint{color:#0f172a75;text-align:center;margin:0;font-size:12px;line-height:1.2}.stc-output{background:#f8faffc7;border-left:1px solid #0f172a14;grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid}.stc-tabbar{border-bottom:1px solid #0f172a14;grid-template-columns:repeat(3,1fr);padding:0 12px;display:grid}.stc-tabbar button{color:var(--stc-text-muted);background:0 0;border:0;border-bottom:2px solid #0000;min-height:40px;font-size:12px;font-weight:800}.stc-tabbar button.is-active{border-color:var(--stc-brand);color:var(--stc-text)}.stc-output-body{min-height:0;overflow:hidden}.stc-utility-panel{align-content:start;gap:12px;height:100%;min-height:0;padding:14px;display:grid;overflow-y:auto}.stc-panel-intro{gap:5px;display:grid}.stc-panel-intro h2{margin:0;font-size:16px;font-weight:820;line-height:1.25}.stc-panel-intro p{color:var(--stc-text-secondary);margin:0;font-size:12px;line-height:1.6}.stc-panel-search{color:var(--stc-text-muted);background:#ffffffb8;border:1px solid #0f172a17;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 10px;display:flex}.stc-panel-search input{color:var(--stc-text);background:0 0;border:0;outline:0;width:100%;min-width:0}.stc-prompt-list,.stc-skill-list{gap:8px;display:grid}.stc-prompt-card,.stc-skill-card,.stc-skill-form,.stc-utility-empty,.stc-status-metric,.stc-status-list{background:#ffffffb8;border:1px solid #0f172a14;border-radius:8px;box-shadow:0 10px 28px #0f172a0b}.stc-prompt-card,.stc-skill-card,.stc-skill-form,.stc-utility-empty{padding:12px}.stc-prompt-card header,.stc-skill-card header{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.stc-prompt-card header span,.stc-status-list span{color:var(--stc-text-muted);font-size:11px;font-weight:820}.stc-prompt-card header small{color:var(--stc-text-muted);white-space:nowrap;font-size:11px}.stc-prompt-card p,.stc-skill-card p,.stc-utility-empty p{color:var(--stc-text-secondary);white-space:pre-wrap;margin:9px 0 0;font-size:12px;line-height:1.65}.stc-prompt-card p{color:var(--stc-text)}.stc-card-actions{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.stc-card-actions button{color:var(--stc-text-secondary);background:#ffffffd6;border:1px solid #0f172a17;border-radius:7px;align-items:center;min-height:30px;padding:0 10px;font-size:12px;font-weight:780;display:inline-flex}.stc-card-actions button:hover{border-color:var(--stc-border-strong);color:var(--stc-text)}.stc-card-actions button:first-child{color:#fff;background:#101827;border-color:#101827}.stc-card-actions button.is-danger{color:var(--stc-danger)}.stc-card-actions button.is-danger:first-child{color:var(--stc-danger);background:#ffffffd6;border-color:#b91c1c29}.stc-skill-form{gap:8px;display:grid}.stc-skill-form input,.stc-skill-form textarea{color:var(--stc-text);background:#ffffffe0;border:1px solid #0f172a17;border-radius:8px;outline:0;width:100%;min-height:36px;padding:9px 10px}.stc-skill-form textarea{resize:vertical;min-height:118px;line-height:1.55}.stc-skill-card strong,.stc-utility-empty strong,.stc-status-list strong{color:var(--stc-text);font-size:13px;font-weight:820;display:block}.stc-skill-card header span{color:var(--stc-text-secondary);margin-top:3px;font-size:12px;line-height:1.45}.stc-utility-empty{text-align:center;gap:5px;padding:18px;display:grid}.stc-status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stc-status-metric{min-height:94px;padding:12px}.stc-status-metric span{color:var(--stc-text-muted);font-size:11px;font-weight:820;display:block}.stc-status-metric strong{color:var(--stc-text);word-break:break-word;margin-top:8px;font-size:20px;line-height:1.25;display:block}.stc-status-metric small{color:var(--stc-text-secondary);margin-top:7px;font-size:11px;line-height:1.45;display:block}.stc-status-list{padding:6px 12px;display:grid}.stc-status-list div{border-top:1px solid #0f172a12;gap:3px;padding:10px 0;display:grid}.stc-status-list div:first-child{border-top:0}.stc-status-list .is-warn strong{color:#b45309}.stc-status-list .is-pass strong{color:#166534}.stc-message.is-highlighted .stc-message-bubble{box-shadow:0 0 0 3px #2563eb24,0 12px 30px #0f172a14}.stc-settings-page{background:#f8fafcc7;grid-template-rows:auto minmax(0,1fr);min-width:0;display:grid;overflow:auto}.stc-settings-page-header{justify-content:space-between;align-items:center;width:100%;max-width:none;margin:0;padding:24px 48px 12px;display:flex}.stc-settings-page-header span,.stc-settings-card header span{color:#64748b;letter-spacing:.02em;font-size:10px;font-weight:800}.stc-settings-page-header h1,.stc-settings-card h2{margin:0}.stc-settings-page-header h1{letter-spacing:0;font-size:20px;line-height:1.25}.stc-settings-page-header .stc-secondary-button{border-radius:6px;min-height:30px;padding:0 10px;font-size:12px}.stc-settings-page-body{grid-template-columns:168px minmax(500px,660px);justify-content:start;align-items:start;gap:18px;width:100%;max-width:980px;margin:0;padding:10px 48px 48px;display:grid}.stc-settings-nav{gap:6px;padding-top:2px;display:grid}.stc-settings-nav button{color:var(--stc-text-secondary);text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;width:100%;min-height:32px;padding:0 11px;font-size:11px;font-weight:800}.stc-settings-nav button:hover{color:var(--stc-text);background:#ffffff8f;border-color:#0f172a0f}.stc-settings-nav button.is-active{color:#fff;background:#101827;border-color:#101827}.stc-settings-card{background:#ffffffe0;border:1px solid #0f172a13;border-radius:8px;align-self:start;gap:10px;padding:16px;display:grid;box-shadow:0 12px 30px #0f172a0e}.stc-settings-card h2{font-size:16px;font-weight:760;line-height:1.25}.stc-settings-switch,.stc-settings-field{gap:5px;display:grid}.stc-settings-grid{gap:7px;display:grid}.stc-settings-switch{background:#ffffffa3;border:1px solid #0f172a13;border-radius:7px;grid-template-columns:auto 1fr;align-items:center;min-height:34px;padding:0 10px}.stc-settings-switch input{accent-color:#2563eb;width:13px;height:13px}.stc-settings-switch span,.stc-settings-field span{color:#334155;font-size:12px;font-weight:740}.stc-settings-field input,.stc-settings-field select,.stc-settings-skill-form input,.stc-settings-skill-form textarea{color:var(--stc-text);background:#fff;border:1px solid #0f172a17;border-radius:7px;outline:0;width:100%;height:36px;min-height:36px;padding:0 10px;font-size:13px}.stc-settings-field select{appearance:none}.stc-settings-skill-form textarea{resize:vertical;height:auto;min-height:96px;padding:9px 10px;line-height:1.5}.stc-settings-field input:focus,.stc-settings-field select:focus,.stc-settings-skill-form input:focus,.stc-settings-skill-form textarea:focus{border-color:#0f172a2e;box-shadow:0 0 0 3px #0f172a09}.stc-settings-check-row{background:#ffffff9e;border:1px solid #0f172a12;border-radius:7px;grid-template-columns:auto 1fr;align-items:start;gap:9px;padding:9px 10px;display:grid}.stc-settings-check-row input{accent-color:#2563eb;width:13px;height:13px;margin-top:2px}.stc-settings-check-row strong,.stc-settings-list-item strong{color:var(--stc-text);font-size:12px;font-weight:800;line-height:1.3;display:block}.stc-settings-check-row small,.stc-settings-list-item span{color:var(--stc-text-secondary);margin-top:3px;font-size:11px;line-height:1.45;display:block}.stc-settings-skill-form{gap:7px;display:grid}.stc-model-preset-row{justify-content:space-between;align-items:center;display:flex}.stc-model-preset-row button{color:#fff;background:#101827;border:0;border-radius:6px;min-height:28px;padding:0 10px;font-size:12px;font-weight:800}.stc-model-preset-row span,.stc-settings-card p{color:#64748b;font-size:11px}.stc-settings-card p{margin:0;line-height:1.45}.stc-settings-list{gap:7px;display:grid}.stc-settings-list-item{background:#ffffff94;border:1px solid #0f172a12;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 10px;display:grid}.stc-settings-inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:inline-flex}.stc-settings-inline-actions button{color:var(--stc-text-secondary);background:#fff;border:1px solid #0f172a1a;border-radius:6px;height:28px;padding:0 9px;font-size:11px;font-weight:760}.stc-settings-inline-actions button:hover{color:var(--stc-text)}.stc-settings-inline-actions button.is-danger{color:var(--stc-danger);border-color:#b91c1c29}.stc-settings-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.stc-settings-summary-grid .stc-status-metric{min-height:82px}.stc-settings-test-result{border-radius:8px;padding:9px 11px;font-size:12px;font-weight:700;line-height:1.55}.stc-settings-test-result.is-pass{color:#166534;background:#ecfdf3;border:1px solid #bbf7d0}.stc-settings-test-result.is-fail{color:#991b1b;background:#fff1f1;border:1px solid #fecaca}.stc-settings-actions{justify-content:flex-end;align-items:center;gap:7px;min-height:30px;margin-top:2px;display:flex}.stc-settings-actions button{color:var(--stc-text-secondary);background:#fff;border:1px solid #0f172a1a;border-radius:6px;flex:none;height:30px;min-height:30px;padding:0 10px;font-size:12px;font-weight:740;line-height:1}.stc-settings-actions button:last-child{color:#fff;background:#101827;border-color:#101827}.stc-output-backdrop{display:none}@media (width<=1180px){.stc-canvas,.stc-canvas.is-sidebar-collapsed{grid-template-columns:240px minmax(0,1fr)}.stc-output{box-shadow:var(--stc-shadow);z-index:20;width:min(92vw,520px);max-width:520px;transition:transform .18s;position:fixed;top:0;bottom:0;right:0;transform:translate(100%)}.stc-output.is-open{transform:translate(0)}.stc-output-backdrop{z-index:15;background:#0f172a38;border:0;display:block;position:fixed;inset:0}.stc-mobile-output-button{display:inline-flex}}@media (width<=820px){.stc-canvas,.stc-canvas.is-sidebar-collapsed,.stc-canvas.is-settings-view,.stc-canvas.is-sidebar-collapsed.is-settings-view{grid-template-columns:1fr}.stc-sidebar{display:none}.stc-thread-header,.stc-message-stream,.stc-composer{padding-inline:14px}.stc-message-text{max-width:94%}.stc-settings-page-header{padding:20px 18px 10px}.stc-settings-page-body{grid-template-columns:1fr;padding:0 18px 28px}.stc-settings-nav{padding-top:0}}.aiw-shell{--aiw-bg-app:#f6f8fb;--aiw-bg-panel:#ffffffdb;--aiw-bg-muted:#f4f7fb;--aiw-border:#0f172a1c;--aiw-border-strong:#0f172a2e;--aiw-text:#111827;--aiw-text-secondary:#5b677a;--aiw-text-muted:#8a95a8;--aiw-accent:#2563eb;--aiw-danger:#b42318;--aiw-shadow:0 18px 48px #0f172a1a;background:linear-gradient(120deg, #bcf6d694, #dee7ffb8), var(--aiw-bg-app);color:var(--aiw-text);letter-spacing:0;grid-template-columns:280px minmax(560px,1fr) minmax(420px,520px);height:100vh;min-height:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:grid;overflow:hidden}.aiw-shell *,.aiw-shell :before,.aiw-shell :after{box-sizing:border-box}.aiw-shell button,.aiw-shell input,.aiw-shell textarea{font:inherit;letter-spacing:0}.aiw-shell button{cursor:pointer}.aiw-shell button:focus-visible,.aiw-shell input:focus-visible,.aiw-shell textarea:focus-visible{outline-offset:2px;outline:2px solid #2563eb73}.aiw-shell.is-settings-view{grid-template-columns:280px minmax(0,1fr)}.aiw-shell.is-sidebar-collapsed{grid-template-columns:72px minmax(560px,1fr) minmax(420px,520px)}.aiw-shell.is-sidebar-collapsed.is-settings-view{grid-template-columns:72px minmax(0,1fr)}.aiw-sidebar,.aiw-workspace,.aiw-output{min-height:0}.aiw-sidebar{background:#e1fdeea3;border-right:1px solid #0f172a14;flex-direction:column;gap:12px;padding:14px 12px;display:flex}.aiw-shell.is-sidebar-collapsed .aiw-sidebar{align-items:center;padding-inline:10px}.aiw-brand-row{align-items:center;gap:10px;min-height:40px;display:flex}.aiw-brand-copy{flex:1;gap:1px;min-width:0;display:grid}.aiw-brand-copy strong{font-size:14px;font-weight:800;line-height:1.2}.aiw-brand-copy span{color:var(--aiw-text-secondary);font-size:11px;line-height:1.3}.aiw-icon-button,.aiw-primary-action,.aiw-secondary-button,.aiw-icon-label-button,.aiw-send-button,.aiw-sidebar-footer button{border-radius:8px;justify-content:center;align-items:center;transition:background .14s,border-color .14s,color .14s,opacity .14s;display:inline-flex}.aiw-icon-button{color:var(--aiw-text-secondary);background:#ffffffad;border:1px solid #0f172a1a;min-width:34px;height:34px;padding:0}.aiw-icon-button:hover{border-color:var(--aiw-border-strong);color:var(--aiw-text);background:#fffffff0}.aiw-primary-action,.aiw-secondary-button,.aiw-icon-label-button,.aiw-send-button{white-space:nowrap;border:1px solid #0000;gap:8px;min-height:36px;padding:0 12px;font-size:13px;font-weight:720}.aiw-primary-action,.aiw-send-button{color:#fff;background:#101827}.aiw-primary-action{width:100%}.aiw-send-button{min-width:42px;height:38px}.aiw-send-button:disabled{cursor:not-allowed;opacity:.55}.aiw-secondary-button,.aiw-icon-label-button{border-color:var(--aiw-border);color:var(--aiw-text-secondary);background:#ffffffc7}.aiw-secondary-button:hover,.aiw-icon-label-button:hover{border-color:var(--aiw-border-strong);color:var(--aiw-text);background:#fff}.aiw-search{color:var(--aiw-text-muted);background:#ffffff94;border:1px solid #0f172a14;border-radius:8px;align-items:center;gap:8px;min-height:36px;padding:0 10px;display:flex}.aiw-search input{color:var(--aiw-text);background:0 0;border:0;outline:0;width:100%;min-width:0}.aiw-shell.is-sidebar-collapsed .aiw-search{justify-content:center;width:38px;padding:0}.aiw-shell.is-sidebar-collapsed .aiw-search input{display:none}.aiw-sidebar-scroll{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.aiw-sidebar-section h2{color:var(--aiw-text-muted);margin:10px 0 8px;font-size:11px;font-weight:800}.aiw-sidebar-section>div{gap:7px;display:grid}.aiw-conversation-item{color:var(--aiw-text-secondary);background:#ffffff4d;border:1px solid #0f172a12;border-radius:8px;align-items:center;min-height:44px;padding:0;display:flex;position:relative}.aiw-conversation-item:hover{background:#ffffff7a}.aiw-conversation-item.is-active{color:var(--aiw-text);background:#ffffffc2;border-color:#ffffffd6;box-shadow:0 10px 28px #0f172a12}.aiw-conversation-main{color:inherit;text-align:left;background:0 0;border:0;flex:1;align-items:center;min-width:0;min-height:42px;padding:8px 10px;display:flex}.aiw-conversation-copy{gap:3px;min-width:0;display:grid}.aiw-conversation-copy strong,.aiw-conversation-copy small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.aiw-conversation-copy strong{font-size:13px;font-weight:800}.aiw-conversation-copy small{color:var(--aiw-text-muted);font-size:12px}.aiw-conversation-more{color:var(--aiw-text-muted);opacity:0;background:0 0;border:0;width:30px;height:30px;margin-right:6px;padding:0}.aiw-conversation-item:hover .aiw-conversation-more,.aiw-conversation-more[aria-expanded=true]{opacity:1}.aiw-conversation-menu{border:1px solid var(--aiw-border);z-index:20;background:#fffffffa;border-radius:8px;gap:2px;min-width:132px;padding:6px;display:grid;position:absolute;top:38px;right:8px;box-shadow:0 16px 32px #0f172a1f}.aiw-conversation-menu button{color:var(--aiw-text-secondary);text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:8px;min-height:30px;padding:0 8px;font-size:12px;display:flex}.aiw-conversation-menu button:hover{background:var(--aiw-bg-muted);color:var(--aiw-text)}.aiw-conversation-menu button.is-danger{color:var(--aiw-danger)}.aiw-sidebar-footer{border-top:1px solid #0f172a12;padding-top:10px}.aiw-sidebar-footer button{color:var(--aiw-text-secondary);background:#fff6;border:1px solid #0f172a12;gap:8px;width:100%;min-height:38px}.aiw-workspace{grid-template-rows:auto minmax(0,1fr) auto;min-width:0;display:grid;position:relative}.aiw-thread-header{justify-content:space-between;align-items:center;min-height:64px;padding:16px 28px 8px;display:flex}.aiw-thread-header h1{margin:0;font-size:18px;font-weight:780}.aiw-header-actions{align-items:center;gap:8px;display:flex}.aiw-message-stream{flex-direction:column;gap:16px;min-height:0;padding:8px 28px 28px;display:flex;overflow-y:auto}.aiw-empty-thread{background:var(--aiw-bg-panel);border:1px solid var(--aiw-border);box-shadow:var(--aiw-shadow);color:var(--aiw-text-secondary);text-align:center;border-radius:10px;align-self:center;max-width:720px;margin:auto;padding:26px 32px}.aiw-empty-thread strong{color:var(--aiw-text);margin-bottom:10px;font-size:18px;display:block}.aiw-empty-thread p{margin:0;font-size:14px;line-height:1.8}.aiw-message{display:flex}.aiw-message.is-user{justify-content:flex-end}.aiw-message.is-assistant,.aiw-message.is-system{justify-content:flex-start}.aiw-message-text{max-width:min(760px,78%)}.aiw-message-bubble{color:var(--aiw-text);white-space:pre-wrap;background:#ffffffdb;border:1px solid #0f172a14;border-radius:8px;padding:12px 14px;font-size:14px;line-height:1.72;box-shadow:0 10px 24px #0f172a12}.aiw-message.is-user .aiw-message-bubble{color:#fff;background:#101827;border-color:#0000}.aiw-composer{background:linear-gradient(#f6f8fb00,#f6f8fbeb 22%);border-top:1px solid #0f172a12;gap:10px;padding:20px 28px 16px;display:grid}.aiw-composer textarea{color:var(--aiw-text);resize:none;background:#ffffffdb;border:1px solid #0f172a17;border-radius:10px;outline:0;width:100%;min-height:74px;padding:14px 16px;line-height:1.6}.aiw-composer-actions{justify-content:space-between;align-items:center;display:flex}.aiw-output{background:#f7f9ffd1;border-left:1px solid #0f172a17;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;display:grid}.aiw-output-header{justify-content:space-between;align-items:flex-start;padding:14px 18px 8px;display:flex}.aiw-output-header h2{margin:0;font-size:13px;font-weight:820}.aiw-output-header p{color:var(--aiw-text-muted);margin:2px 0 0;font-size:11px}.aiw-tabbar{border-bottom:1px solid #0f172a1a;grid-template-columns:repeat(auto-fit,minmax(0,1fr));padding:0 12px;display:grid}.aiw-tabbar button{color:var(--aiw-text-secondary);background:0 0;border:0;border-bottom:2px solid #0000;min-height:42px;font-size:12px;font-weight:760}.aiw-tabbar button.is-active{color:var(--aiw-text);border-bottom-color:#101827}.aiw-output-body{min-height:0;padding:12px;overflow-y:auto}.aiw-output-bottom{color:var(--aiw-text-muted);border-top:1px solid #0f172a14;justify-content:space-between;align-items:center;min-height:50px;padding:10px 14px;font-size:11px;display:flex}.aiw-output-bottom>div{gap:8px;display:flex}.aiw-output-bottom button{color:var(--aiw-text-secondary);background:#fffc;border:1px solid #0f172a14;border-radius:8px;min-height:32px;padding:0 10px;font-size:12px;font-weight:720}.aiw-settings-page{grid-template-rows:auto minmax(0,1fr);min-height:0;display:grid}.aiw-settings-page-header{justify-content:space-between;align-items:center;padding:28px 40px 16px;display:flex}.aiw-settings-page-header span{color:#637083;font-size:11px;font-weight:800}.aiw-settings-page-header h1{margin:3px 0 0;font-size:24px}.aiw-settings-page-body{grid-template-columns:180px minmax(420px,720px);justify-content:center;gap:20px;min-height:0;padding:12px 40px 60px;display:grid;overflow-y:auto}.aiw-settings-nav{align-content:start;gap:6px;display:grid}.aiw-settings-nav button{color:var(--aiw-text-secondary);text-align:left;background:#ffffffb3;border:1px solid #0f172a14;border-radius:8px;min-height:38px;padding:0 12px;font-size:12px;font-weight:760}.aiw-settings-nav button.is-active{color:#fff;background:#101827}@media (width<=1180px){.aiw-shell,.aiw-shell.is-sidebar-collapsed{grid-template-columns:260px minmax(0,1fr)}.aiw-output{z-index:30;width:520px;max-width:min(520px,92vw);transition:transform .18s;position:fixed;top:0;bottom:0;right:0;transform:translate(105%);box-shadow:-18px 0 42px #0f172a29}.aiw-output.is-open{transform:translate(0)}}@media (width<=760px){.aiw-shell,.aiw-shell.is-sidebar-collapsed,.aiw-shell.is-settings-view,.aiw-shell.is-sidebar-collapsed.is-settings-view{grid-template-columns:1fr}.aiw-sidebar{display:none}.aiw-thread-header,.aiw-message-stream,.aiw-composer{padding-inline:16px}.aiw-message-text{max-width:92%}.aiw-settings-page-body{grid-template-columns:1fr;padding-inline:18px}}