@aws/agentcore 1.0.0-rc.1 → 1.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/LICENSE +175 -0
  2. package/README.md +93 -985
  3. package/dist/assets/agent-inspector/index.js.asset +1 -1
  4. package/dist/assets/cdk/README.md +42 -19
  5. package/dist/assets/cdk/bin/cdk.ts +22 -173
  6. package/dist/assets/cdk/lib/cdk-stack.ts +18 -80
  7. package/dist/assets/cdk/package.json +3 -10
  8. package/dist/assets/cdk/tsconfig.json +1 -1
  9. package/dist/assets/evaluators/python-lambda/README.md +5 -1
  10. package/dist/assets/templates/a2a-python-strands/pyproject.toml +1 -1
  11. package/dist/assets/templates/agent-python-langchain/README.md +5 -4
  12. package/dist/assets/templates/agent-python-langchain/main.py +7 -11
  13. package/dist/assets/templates/agent-python-strands/README.md +16 -2
  14. package/dist/assets/templates/agent-python-strands/main.py +40 -81
  15. package/dist/assets/templates/agent-python-strands/memory/session.py +1 -5
  16. package/dist/assets/templates/agent-python-strands/model/load.py +4 -4
  17. package/dist/assets/templates/agent-python-strands/parse.py +41 -0
  18. package/dist/assets/templates/agent-typescript-strands/README.md +23 -2
  19. package/dist/assets/templates/agent-typescript-strands/main.ts +4 -13
  20. package/dist/assets/templates/agent-typescript-strands/memory/memory.ts +1 -12
  21. package/dist/assets/templates/agent-typescript-strands/package.json.template +0 -1
  22. package/dist/assets/templates/agui-python-strands/README.md +1 -1
  23. package/dist/assets/templates/agui-python-strands/pyproject.toml +1 -1
  24. package/dist/assets/templates/export-harness-python/model/load.py +3 -3
  25. package/dist/assets/templates/harness/harness.yaml +225 -0
  26. package/dist/main.js +728 -220
  27. package/package.json +13 -6
  28. package/dist/assets/cdk/.prettierrc +0 -8
  29. package/dist/assets/cdk/jest.config.js +0 -9
  30. package/dist/assets/cdk/npmignore.template +0 -6
  31. package/dist/assets/cdk/test/cdk.test.ts +0 -120
  32. package/dist/assets/evaluators/autoevals-lambda/README.md +0 -23
  33. package/dist/assets/evaluators/autoevals-lambda/execution-role-policy.json +0 -15
  34. package/dist/assets/evaluators/autoevals-lambda/lambda_function.py +0 -37
  35. package/dist/assets/evaluators/autoevals-lambda/pyproject.toml +0 -23
  36. package/dist/assets/evaluators/deepeval-lambda/README.md +0 -23
  37. package/dist/assets/evaluators/deepeval-lambda/execution-role-policy.json +0 -15
  38. package/dist/assets/evaluators/deepeval-lambda/lambda_function.py +0 -29
  39. package/dist/assets/evaluators/deepeval-lambda/pyproject.toml +0 -22
  40. package/dist/assets/templates/agent-typescript-strands/mcp_client/client.ts +0 -11
@@ -276,7 +276,7 @@ Error generating stack: `+s.message+`
276
276
  `,inConstruct:"tableCell"},{atBreak:!0,character:"|",after:"[ :-]"},{character:"|",inConstruct:"tableCell"},{atBreak:!0,character:":",after:"-"},{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{inlineCode:x,table:c,tableCell:m,tableRow:d}};function c(b,N,O,D){return g(_(b,O,D),b.align)}function d(b,N,O,D){const k=y(b,O,D),M=g([k]);return M.slice(0,M.indexOf(`
277
277
  `))}function m(b,N,O,D){const k=O.enter("tableCell"),M=O.enter("phrasing"),U=O.containerPhrasing(b,{...D,before:u,after:u});return M(),k(),U}function g(b,N){return aA(b,{align:N,alignDelimiters:r,padding:l,stringLength:o})}function _(b,N,O){const D=b.children;let k=-1;const M=[],U=N.enter("table");for(;++k<D.length;)M[k]=y(D[k],N,O);return U(),M}function y(b,N,O){const D=b.children;let k=-1;const M=[],U=N.enter("tableRow");for(;++k<D.length;)M[k]=m(D[k],b,N,O);return U(),M}function x(b,N,O){let D=r1.inlineCode(b,N,O);return O.stack.includes("tableCell")&&(D=D.replace(/\|/g,"\\$&")),D}}function $A(){return{exit:{taskListCheckValueChecked:Iy,taskListCheckValueUnchecked:Iy,paragraph:YA}}}function ZA(){return{unsafe:[{atBreak:!0,character:"-",after:"[:|-]"}],handlers:{listItem:FA}}}function Iy(t){const a=this.stack[this.stack.length-2];a.type,a.checked=t.type==="taskListCheckValueChecked"}function YA(t){const a=this.stack[this.stack.length-2];if(a&&a.type==="listItem"&&typeof a.checked=="boolean"){const l=this.stack[this.stack.length-1];l.type;const r=l.children[0];if(r&&r.type==="text"){const o=a.children;let u=-1,c;for(;++u<o.length;){const d=o[u];if(d.type==="paragraph"){c=d;break}}c===l&&(r.value=r.value.slice(1),r.value.length===0?l.children.shift():l.position&&r.position&&typeof r.position.start.offset=="number"&&(r.position.start.column++,r.position.start.offset++,l.position.start=Object.assign({},r.position.start)))}}this.exit(t)}function FA(t,a,l,r){const o=t.children[0],u=typeof t.checked=="boolean"&&o&&o.type==="paragraph",c="["+(t.checked?"x":" ")+"] ",d=l.createTracker(r);u&&d.move(c);let m=r1.listItem(t,a,l,{...r,...d.current()});return u&&(m=m.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/,g)),m;function g(_){return _+c}}function XA(){return[EC(),FC(),JC(),BA(),$A()]}function QA(t){return{extensions:[CC(),XC(t),PC(),GA(t),ZA()]}}const KA={tokenize:nj,partial:!0},s1={tokenize:aj,partial:!0},o1={tokenize:lj,partial:!0},u1={tokenize:ij,partial:!0},JA={tokenize:rj,partial:!0},c1={name:"wwwAutolink",tokenize:ej,previous:d1},f1={name:"protocolAutolink",tokenize:tj,previous:h1},Oa={name:"emailAutolink",tokenize:WA,previous:m1},ra={};function PA(){return{text:ra}}let Rl=48;for(;Rl<123;)ra[Rl]=Oa,Rl++,Rl===58?Rl=65:Rl===91&&(Rl=97);ra[43]=Oa;ra[45]=Oa;ra[46]=Oa;ra[95]=Oa;ra[72]=[Oa,f1];ra[104]=[Oa,f1];ra[87]=[Oa,c1];ra[119]=[Oa,c1];function WA(t,a,l){const r=this;let o,u;return c;function c(y){return!nd(y)||!m1.call(r,r.previous)||Rd(r.events)?l(y):(t.enter("literalAutolink"),t.enter("literalAutolinkEmail"),d(y))}function d(y){return nd(y)?(t.consume(y),d):y===64?(t.consume(y),m):l(y)}function m(y){return y===46?t.check(JA,_,g)(y):y===45||y===95||en(y)?(u=!0,t.consume(y),m):_(y)}function g(y){return t.consume(y),o=!0,m}function _(y){return u&&o&&an(r.previous)?(t.exit("literalAutolinkEmail"),t.exit("literalAutolink"),a(y)):l(y)}}function ej(t,a,l){const r=this;return o;function o(c){return c!==87&&c!==119||!d1.call(r,r.previous)||Rd(r.events)?l(c):(t.enter("literalAutolink"),t.enter("literalAutolinkWww"),t.check(KA,t.attempt(s1,t.attempt(o1,u),l),l)(c))}function u(c){return t.exit("literalAutolinkWww"),t.exit("literalAutolink"),a(c)}}function tj(t,a,l){const r=this;let o="",u=!1;return c;function c(y){return(y===72||y===104)&&h1.call(r,r.previous)&&!Rd(r.events)?(t.enter("literalAutolink"),t.enter("literalAutolinkHttp"),o+=String.fromCodePoint(y),t.consume(y),d):l(y)}function d(y){if(an(y)&&o.length<5)return o+=String.fromCodePoint(y),t.consume(y),d;if(y===58){const x=o.toLowerCase();if(x==="http"||x==="https")return t.consume(y),m}return l(y)}function m(y){return y===47?(t.consume(y),u?g:(u=!0,m)):l(y)}function g(y){return y===null||wo(y)||vt(y)||Ol(y)||Fo(y)?l(y):t.attempt(s1,t.attempt(o1,_),l)(y)}function _(y){return t.exit("literalAutolinkHttp"),t.exit("literalAutolink"),a(y)}}function nj(t,a,l){let r=0;return o;function o(c){return(c===87||c===119)&&r<3?(r++,t.consume(c),o):c===46&&r===3?(t.consume(c),u):l(c)}function u(c){return c===null?l(c):a(c)}}function aj(t,a,l){let r,o,u;return c;function c(g){return g===46||g===95?t.check(u1,m,d)(g):g===null||vt(g)||Ol(g)||g!==45&&Fo(g)?m(g):(u=!0,t.consume(g),c)}function d(g){return g===95?r=!0:(o=r,r=void 0),t.consume(g),c}function m(g){return o||r||!u?l(g):a(g)}}function lj(t,a){let l=0,r=0;return o;function o(c){return c===40?(l++,t.consume(c),o):c===41&&r<l?u(c):c===33||c===34||c===38||c===39||c===41||c===42||c===44||c===46||c===58||c===59||c===60||c===63||c===93||c===95||c===126?t.check(u1,a,u)(c):c===null||vt(c)||Ol(c)?a(c):(t.consume(c),o)}function u(c){return c===41&&r++,t.consume(c),o}}function ij(t,a,l){return r;function r(d){return d===33||d===34||d===39||d===41||d===42||d===44||d===46||d===58||d===59||d===63||d===95||d===126?(t.consume(d),r):d===38?(t.consume(d),u):d===93?(t.consume(d),o):d===60||d===null||vt(d)||Ol(d)?a(d):l(d)}function o(d){return d===null||d===40||d===91||vt(d)||Ol(d)?a(d):r(d)}function u(d){return an(d)?c(d):l(d)}function c(d){return d===59?(t.consume(d),r):an(d)?(t.consume(d),c):l(d)}}function rj(t,a,l){return r;function r(u){return t.consume(u),o}function o(u){return en(u)?l(u):a(u)}}function d1(t){return t===null||t===40||t===42||t===95||t===91||t===93||t===126||vt(t)}function h1(t){return!an(t)}function m1(t){return!(t===47||nd(t))}function nd(t){return t===43||t===45||t===46||t===95||en(t)}function Rd(t){let a=t.length,l=!1;for(;a--;){const r=t[a][1];if((r.type==="labelLink"||r.type==="labelImage")&&!r._balanced){l=!0;break}if(r._gfmAutolinkLiteralWalkedInto){l=!1;break}}return t.length>0&&!l&&(t[t.length-1][1]._gfmAutolinkLiteralWalkedInto=!0),l}const sj={tokenize:pj,partial:!0};function oj(){return{document:{91:{name:"gfmFootnoteDefinition",tokenize:dj,continuation:{tokenize:hj},exit:mj}},text:{91:{name:"gfmFootnoteCall",tokenize:fj},93:{name:"gfmPotentialFootnoteCall",add:"after",tokenize:uj,resolveTo:cj}}}}function uj(t,a,l){const r=this;let o=r.events.length;const u=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let c;for(;o--;){const m=r.events[o][1];if(m.type==="labelImage"){c=m;break}if(m.type==="gfmFootnoteCall"||m.type==="labelLink"||m.type==="label"||m.type==="image"||m.type==="link")break}return d;function d(m){if(!c||!c._balanced)return l(m);const g=Qn(r.sliceSerialize({start:c.end,end:r.now()}));return g.codePointAt(0)!==94||!u.includes(g.slice(1))?l(m):(t.enter("gfmFootnoteCallLabelMarker"),t.consume(m),t.exit("gfmFootnoteCallLabelMarker"),a(m))}}function cj(t,a){let l=t.length;for(;l--;)if(t[l][1].type==="labelImage"&&t[l][0]==="enter"){t[l][1];break}t[l+1][1].type="data",t[l+3][1].type="gfmFootnoteCallLabelMarker";const r={type:"gfmFootnoteCall",start:Object.assign({},t[l+3][1].start),end:Object.assign({},t[t.length-1][1].end)},o={type:"gfmFootnoteCallMarker",start:Object.assign({},t[l+3][1].end),end:Object.assign({},t[l+3][1].end)};o.end.column++,o.end.offset++,o.end._bufferIndex++;const u={type:"gfmFootnoteCallString",start:Object.assign({},o.end),end:Object.assign({},t[t.length-1][1].start)},c={type:"chunkString",contentType:"string",start:Object.assign({},u.start),end:Object.assign({},u.end)},d=[t[l+1],t[l+2],["enter",r,a],t[l+3],t[l+4],["enter",o,a],["exit",o,a],["enter",u,a],["enter",c,a],["exit",c,a],["exit",u,a],t[t.length-2],t[t.length-1],["exit",r,a]];return t.splice(l,t.length-l+1,...d),t}function fj(t,a,l){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let u=0,c;return d;function d(y){return t.enter("gfmFootnoteCall"),t.enter("gfmFootnoteCallLabelMarker"),t.consume(y),t.exit("gfmFootnoteCallLabelMarker"),m}function m(y){return y!==94?l(y):(t.enter("gfmFootnoteCallMarker"),t.consume(y),t.exit("gfmFootnoteCallMarker"),t.enter("gfmFootnoteCallString"),t.enter("chunkString").contentType="string",g)}function g(y){if(u>999||y===93&&!c||y===null||y===91||vt(y))return l(y);if(y===93){t.exit("chunkString");const x=t.exit("gfmFootnoteCallString");return o.includes(Qn(r.sliceSerialize(x)))?(t.enter("gfmFootnoteCallLabelMarker"),t.consume(y),t.exit("gfmFootnoteCallLabelMarker"),t.exit("gfmFootnoteCall"),a):l(y)}return vt(y)||(c=!0),u++,t.consume(y),y===92?_:g}function _(y){return y===91||y===92||y===93?(t.consume(y),u++,g):g(y)}}function dj(t,a,l){const r=this,o=r.parser.gfmFootnotes||(r.parser.gfmFootnotes=[]);let u,c=0,d;return m;function m(N){return t.enter("gfmFootnoteDefinition")._container=!0,t.enter("gfmFootnoteDefinitionLabel"),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(N),t.exit("gfmFootnoteDefinitionLabelMarker"),g}function g(N){return N===94?(t.enter("gfmFootnoteDefinitionMarker"),t.consume(N),t.exit("gfmFootnoteDefinitionMarker"),t.enter("gfmFootnoteDefinitionLabelString"),t.enter("chunkString").contentType="string",_):l(N)}function _(N){if(c>999||N===93&&!d||N===null||N===91||vt(N))return l(N);if(N===93){t.exit("chunkString");const O=t.exit("gfmFootnoteDefinitionLabelString");return u=Qn(r.sliceSerialize(O)),t.enter("gfmFootnoteDefinitionLabelMarker"),t.consume(N),t.exit("gfmFootnoteDefinitionLabelMarker"),t.exit("gfmFootnoteDefinitionLabel"),x}return vt(N)||(d=!0),c++,t.consume(N),N===92?y:_}function y(N){return N===91||N===92||N===93?(t.consume(N),c++,_):_(N)}function x(N){return N===58?(t.enter("definitionMarker"),t.consume(N),t.exit("definitionMarker"),o.includes(u)||o.push(u),We(t,b,"gfmFootnoteDefinitionWhitespace")):l(N)}function b(N){return a(N)}}function hj(t,a,l){return t.check(Kr,a,t.attempt(sj,a,l))}function mj(t){t.exit("gfmFootnoteDefinition")}function pj(t,a,l){const r=this;return We(t,o,"gfmFootnoteDefinitionIndent",5);function o(u){const c=r.events[r.events.length-1];return c&&c[1].type==="gfmFootnoteDefinitionIndent"&&c[2].sliceSerialize(c[1],!0).length===4?a(u):l(u)}}function gj(t){let l=(t||{}).singleTilde;const r={name:"strikethrough",tokenize:u,resolveAll:o};return l==null&&(l=!0),{text:{126:r},insideSpan:{null:[r]},attentionMarkers:{null:[126]}};function o(c,d){let m=-1;for(;++m<c.length;)if(c[m][0]==="enter"&&c[m][1].type==="strikethroughSequenceTemporary"&&c[m][1]._close){let g=m;for(;g--;)if(c[g][0]==="exit"&&c[g][1].type==="strikethroughSequenceTemporary"&&c[g][1]._open&&c[m][1].end.offset-c[m][1].start.offset===c[g][1].end.offset-c[g][1].start.offset){c[m][1].type="strikethroughSequence",c[g][1].type="strikethroughSequence";const _={type:"strikethrough",start:Object.assign({},c[g][1].start),end:Object.assign({},c[m][1].end)},y={type:"strikethroughText",start:Object.assign({},c[g][1].end),end:Object.assign({},c[m][1].start)},x=[["enter",_,d],["enter",c[g][1],d],["exit",c[g][1],d],["enter",y,d]],b=d.parser.constructs.insideSpan.null;b&&En(x,x.length,0,Xo(b,c.slice(g+1,m),d)),En(x,x.length,0,[["exit",y,d],["enter",c[m][1],d],["exit",c[m][1],d],["exit",_,d]]),En(c,g-1,m-g+3,x),m=g+x.length-2;break}}for(m=-1;++m<c.length;)c[m][1].type==="strikethroughSequenceTemporary"&&(c[m][1].type="data");return c}function u(c,d,m){const g=this.previous,_=this.events;let y=0;return x;function x(N){return g===126&&_[_.length-1][1].type!=="characterEscape"?m(N):(c.enter("strikethroughSequenceTemporary"),b(N))}function b(N){const O=zi(g);if(N===126)return y>1?m(N):(c.consume(N),y++,b);if(y<2&&!l)return m(N);const D=c.exit("strikethroughSequenceTemporary"),k=zi(N);return D._open=!k||k===2&&!!O,D._close=!O||O===2&&!!k,d(N)}}}class yj{constructor(){this.map=[]}add(a,l,r){_j(this,a,l,r)}consume(a){if(this.map.sort(function(u,c){return u[0]-c[0]}),this.map.length===0)return;let l=this.map.length;const r=[];for(;l>0;)l-=1,r.push(a.slice(this.map[l][0]+this.map[l][1]),this.map[l][2]),a.length=this.map[l][0];r.push(a.slice()),a.length=0;let o=r.pop();for(;o;){for(const u of o)a.push(u);o=r.pop()}this.map.length=0}}function _j(t,a,l,r){let o=0;if(!(l===0&&r.length===0)){for(;o<t.map.length;){if(t.map[o][0]===a){t.map[o][1]+=l,t.map[o][2].push(...r);return}o+=1}t.map.push([a,l,r])}}function vj(t,a){let l=!1;const r=[];for(;a<t.length;){const o=t[a];if(l){if(o[0]==="enter")o[1].type==="tableContent"&&r.push(t[a+1][1].type==="tableDelimiterMarker"?"left":"none");else if(o[1].type==="tableContent"){if(t[a-1][1].type==="tableDelimiterMarker"){const u=r.length-1;r[u]=r[u]==="left"?"center":"right"}}else if(o[1].type==="tableDelimiterRow")break}else o[0]==="enter"&&o[1].type==="tableDelimiterRow"&&(l=!0);a+=1}return r}function xj(){return{flow:{null:{name:"table",tokenize:bj,resolveAll:Sj}}}}function bj(t,a,l){const r=this;let o=0,u=0,c;return d;function d(w){let P=r.events.length-1;for(;P>-1;){const ne=r.events[P][1].type;if(ne==="lineEnding"||ne==="linePrefix")P--;else break}const ae=P>-1?r.events[P][1].type:null,pe=ae==="tableHead"||ae==="tableRow"?B:m;return pe===B&&r.parser.lazy[r.now().line]?l(w):pe(w)}function m(w){return t.enter("tableHead"),t.enter("tableRow"),g(w)}function g(w){return w===124||(c=!0,u+=1),_(w)}function _(w){return w===null?l(w):Ae(w)?u>1?(u=0,r.interrupt=!0,t.exit("tableRow"),t.enter("lineEnding"),t.consume(w),t.exit("lineEnding"),b):l(w):Fe(w)?We(t,_,"whitespace")(w):(u+=1,c&&(c=!1,o+=1),w===124?(t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),c=!0,_):(t.enter("data"),y(w)))}function y(w){return w===null||w===124||vt(w)?(t.exit("data"),_(w)):(t.consume(w),w===92?x:y)}function x(w){return w===92||w===124?(t.consume(w),y):y(w)}function b(w){return r.interrupt=!1,r.parser.lazy[r.now().line]?l(w):(t.enter("tableDelimiterRow"),c=!1,Fe(w)?We(t,N,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(w):N(w))}function N(w){return w===45||w===58?D(w):w===124?(c=!0,t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),O):V(w)}function O(w){return Fe(w)?We(t,D,"whitespace")(w):D(w)}function D(w){return w===58?(u+=1,c=!0,t.enter("tableDelimiterMarker"),t.consume(w),t.exit("tableDelimiterMarker"),k):w===45?(u+=1,k(w)):w===null||Ae(w)?te(w):V(w)}function k(w){return w===45?(t.enter("tableDelimiterFiller"),M(w)):V(w)}function M(w){return w===45?(t.consume(w),M):w===58?(c=!0,t.exit("tableDelimiterFiller"),t.enter("tableDelimiterMarker"),t.consume(w),t.exit("tableDelimiterMarker"),U):(t.exit("tableDelimiterFiller"),U(w))}function U(w){return Fe(w)?We(t,te,"whitespace")(w):te(w)}function te(w){return w===124?N(w):w===null||Ae(w)?!c||o!==u?V(w):(t.exit("tableDelimiterRow"),t.exit("tableHead"),a(w)):V(w)}function V(w){return l(w)}function B(w){return t.enter("tableRow"),R(w)}function R(w){return w===124?(t.enter("tableCellDivider"),t.consume(w),t.exit("tableCellDivider"),R):w===null||Ae(w)?(t.exit("tableRow"),a(w)):Fe(w)?We(t,R,"whitespace")(w):(t.enter("data"),le(w))}function le(w){return w===null||w===124||vt(w)?(t.exit("data"),R(w)):(t.consume(w),w===92?oe:le)}function oe(w){return w===92||w===124?(t.consume(w),le):le(w)}}function Sj(t,a){let l=-1,r=!0,o=0,u=[0,0,0,0],c=[0,0,0,0],d=!1,m=0,g,_,y;const x=new yj;for(;++l<t.length;){const b=t[l],N=b[1];b[0]==="enter"?N.type==="tableHead"?(d=!1,m!==0&&(Uy(x,a,m,g,_),_=void 0,m=0),g={type:"table",start:Object.assign({},N.start),end:Object.assign({},N.end)},x.add(l,0,[["enter",g,a]])):N.type==="tableRow"||N.type==="tableDelimiterRow"?(r=!0,y=void 0,u=[0,0,0,0],c=[0,l+1,0,0],d&&(d=!1,_={type:"tableBody",start:Object.assign({},N.start),end:Object.assign({},N.end)},x.add(l,0,[["enter",_,a]])),o=N.type==="tableDelimiterRow"?2:_?3:1):o&&(N.type==="data"||N.type==="tableDelimiterMarker"||N.type==="tableDelimiterFiller")?(r=!1,c[2]===0&&(u[1]!==0&&(c[0]=c[1],y=So(x,a,u,o,void 0,y),u=[0,0,0,0]),c[2]=l)):N.type==="tableCellDivider"&&(r?r=!1:(u[1]!==0&&(c[0]=c[1],y=So(x,a,u,o,void 0,y)),u=c,c=[u[1],l,0,0])):N.type==="tableHead"?(d=!0,m=l):N.type==="tableRow"||N.type==="tableDelimiterRow"?(m=l,u[1]!==0?(c[0]=c[1],y=So(x,a,u,o,l,y)):c[1]!==0&&(y=So(x,a,c,o,l,y)),o=0):o&&(N.type==="data"||N.type==="tableDelimiterMarker"||N.type==="tableDelimiterFiller")&&(c[3]=l)}for(m!==0&&Uy(x,a,m,g,_),x.consume(a.events),l=-1;++l<a.events.length;){const b=a.events[l];b[0]==="enter"&&b[1].type==="table"&&(b[1]._align=vj(a.events,l))}return t}function So(t,a,l,r,o,u){const c=r===1?"tableHeader":r===2?"tableDelimiter":"tableData",d="tableContent";l[0]!==0&&(u.end=Object.assign({},Ai(a.events,l[0])),t.add(l[0],0,[["exit",u,a]]));const m=Ai(a.events,l[1]);if(u={type:c,start:Object.assign({},m),end:Object.assign({},m)},t.add(l[1],0,[["enter",u,a]]),l[2]!==0){const g=Ai(a.events,l[2]),_=Ai(a.events,l[3]),y={type:d,start:Object.assign({},g),end:Object.assign({},_)};if(t.add(l[2],0,[["enter",y,a]]),r!==2){const x=a.events[l[2]],b=a.events[l[3]];if(x[1].end=Object.assign({},b[1].end),x[1].type="chunkText",x[1].contentType="text",l[3]>l[2]+1){const N=l[2]+1,O=l[3]-l[2]-1;t.add(N,O,[])}}t.add(l[3]+1,0,[["exit",y,a]])}return o!==void 0&&(u.end=Object.assign({},Ai(a.events,o)),t.add(o,0,[["exit",u,a]]),u=void 0),u}function Uy(t,a,l,r,o){const u=[],c=Ai(a.events,l);o&&(o.end=Object.assign({},c),u.push(["exit",o,a])),r.end=Object.assign({},c),u.push(["exit",r,a]),t.add(l+1,0,u)}function Ai(t,a){const l=t[a],r=l[0]==="enter"?"start":"end";return l[1][r]}const kj={name:"tasklistCheck",tokenize:Nj};function Tj(){return{text:{91:kj}}}function Nj(t,a,l){const r=this;return o;function o(m){return r.previous!==null||!r._gfmTasklistFirstContentOfListItem?l(m):(t.enter("taskListCheck"),t.enter("taskListCheckMarker"),t.consume(m),t.exit("taskListCheckMarker"),u)}function u(m){return vt(m)?(t.enter("taskListCheckValueUnchecked"),t.consume(m),t.exit("taskListCheckValueUnchecked"),c):m===88||m===120?(t.enter("taskListCheckValueChecked"),t.consume(m),t.exit("taskListCheckValueChecked"),c):l(m)}function c(m){return m===93?(t.enter("taskListCheckMarker"),t.consume(m),t.exit("taskListCheckMarker"),t.exit("taskListCheck"),d):l(m)}function d(m){return Ae(m)?a(m):Fe(m)?t.check({tokenize:Ej},a,l)(m):l(m)}}function Ej(t,a,l){return We(t,r,"whitespace");function r(o){return o===null?l(o):a(o)}}function Cj(t){return N_([PA(),oj(),gj(t),xj(),Tj()])}const Aj={};function jj(t){const a=this,l=t||Aj,r=a.data(),o=r.micromarkExtensions||(r.micromarkExtensions=[]),u=r.fromMarkdownExtensions||(r.fromMarkdownExtensions=[]),c=r.toMarkdownExtensions||(r.toMarkdownExtensions=[]);o.push(Cj(l)),u.push(XA()),c.push(QA(l))}const wj="_root_1pdrb_1",Mj="_codeBlockWrapper_1pdrb_49",zj="_codeBlockHeader_1pdrb_70",Rj="_codeBlockLang_1pdrb_80",Oj="_copyBtn_1pdrb_86",Ur={root:wj,codeBlockWrapper:Mj,codeBlockHeader:zj,codeBlockLang:Rj,copyBtn:Oj};function Dj({children:t,className:a,...l}){var c;if(!(/language-(\w+)/.test(a||"")||typeof t=="string"&&t.includes(`
278
278
  `)))return p.jsx("code",{className:a,...l,children:t});const o=String(t).replace(/\n$/,""),u=(c=a==null?void 0:a.match(/language-(\w+)/))==null?void 0:c[1];return p.jsx(Lj,{code:o,lang:u})}function Lj({code:t,lang:a}){const[l,r]=z.useState(!1),o=z.useCallback(()=>{navigator.clipboard.writeText(t).then(()=>{r(!0),setTimeout(()=>r(!1),2e3)}).catch(()=>{})},[t]);return p.jsxs("div",{className:Ur.codeBlockWrapper,children:[p.jsxs("div",{className:Ur.codeBlockHeader,children:[a&&p.jsx("span",{className:Ur.codeBlockLang,children:a}),p.jsx("button",{className:Ur.copyBtn,onClick:o,"aria-label":"Copy code",children:l?p.jsx($f,{size:13}):p.jsx(s_,{size:13})})]}),p.jsx("pre",{children:p.jsx("code",{children:t})})]})}const Bj={code:Dj,a:({children:t,...a})=>p.jsx("a",{...a,target:"_blank",rel:"noopener noreferrer",children:t})};function Ij({content:t}){return p.jsx("div",{className:Ur.root,children:p.jsx(gC,{remarkPlugins:[jj],components:Bj,children:t})})}const Uj="_root_11p18_1",Hj="_pill_11p18_8",qj="_icon_11p18_22",Vj="_separator_11p18_27",Gj="_dim_11p18_31",$j="_cache_11p18_36",ol={root:Uj,pill:Hj,icon:qj,separator:Vj,dim:Gj,cache:$j};function Uf(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function Zj({usage:t}){return p.jsx("div",{className:ol.root,children:p.jsxs("span",{className:ol.pill,children:[p.jsx(pd,{size:10,className:ol.icon}),Uf(t.inputTokens)," ",p.jsx("span",{className:ol.dim,children:"in"}),p.jsx("span",{className:ol.separator,children:"/"}),Uf(t.outputTokens)," ",p.jsx("span",{className:ol.dim,children:"out"}),t.cacheReadInputTokens!==void 0&&t.cacheReadInputTokens>0&&p.jsxs(p.Fragment,{children:[p.jsx("span",{className:ol.separator,children:"/"}),p.jsxs("span",{className:ol.cache,children:[Uf(t.cacheReadInputTokens)," cached"]})]})]})})}function Vt(t){if(!t)return 0;try{return Number(BigInt(t)/1000000n)}catch{return Math.floor(Number(t)/1e6)}}function p1(t,a){const l=[];if(t)for(const r of t)for(const o of r.scopeSpans??[])for(const u of o.spans??[])l.push({type:"span",traceId:u.traceId,spanId:u.spanId,parentSpanId:u.parentSpanId,name:u.name,kind:u.kind,startTimeUnixNano:u.startTimeUnixNano,endTimeUnixNano:u.endTimeUnixNano,attributes:u.attributes,events:u.events,status:u.status,resource:r.resource,scope:o.scope,timestampMs:Vt(u.startTimeUnixNano)||Date.now()});if(a)for(const r of a)for(const o of r.scopeLogs??[])for(const u of o.logRecords??[])l.push({type:"log",traceId:u.traceId,spanId:u.spanId,severityNumber:u.severityNumber,severityText:u.severityText,body:u.body,attributes:u.attributes,timeUnixNano:u.timeUnixNano,observedTimeUnixNano:u.observedTimeUnixNano,resource:r.resource,scope:o.scope,timestampMs:Vt(u.timeUnixNano)||Vt(u.observedTimeUnixNano)||Date.now()});return l.sort((r,o)=>r.timestampMs-o.timestampMs),l}function g1(t){const a=t.filter(u=>u.type==="span"&&u.spanId),l=new Map;for(const u of a)l.set(u.spanId,{span:u,children:[],depth:0,durationMs:Vt(u.endTimeUnixNano)-Vt(u.startTimeUnixNano)});const r=[];for(const u of l.values()){const c=u.span.parentSpanId,d=c?l.get(c):void 0;d?d.children.push(u):r.push(u)}const o=(u,c)=>{u.depth=c,u.children.sort((d,m)=>d.span.timestampMs-m.span.timestampMs);for(const d of u.children)o(d,c+1)};r.sort((u,c)=>u.span.timestampMs-c.span.timestampMs);for(const u of r)o(u,0);return r}function Yj(t){const a=[],l=r=>{a.push(r);for(const o of r.children)l(o)};for(const r of t)l(r);return a}function Fj(t){const a=Yj(t);if(a.length===0)return[];let l=1/0,r=0;for(const u of a){const c=Vt(u.span.startTimeUnixNano),d=Vt(u.span.endTimeUnixNano);c>0&&c<l&&(l=c),d>r&&(r=d)}const o=r-l;return o<=0?a.map(u=>({node:u,offsetPercent:0,widthPercent:100})):a.map(u=>{const c=Vt(u.span.startTimeUnixNano),d=Vt(u.span.endTimeUnixNano),m=(c-l)/o*100,g=Math.max((d-c)/o*100,.5);return{node:u,offsetPercent:Math.max(0,m),widthPercent:Math.min(g,100-m)}})}function Od(t){return t<0?"—":t<1?"<1ms":t<1e3?`${Math.round(t)}ms`:t<6e4?`${(t/1e3).toFixed(2)}s`:`${(t/6e4).toFixed(1)}m`}function Xj(t){return t.map(y1).filter(a=>a!==null)}function Qj(t){const a=t.span.attributes??{};if(Number(a["gen_ai.usage.input_tokens"]??0)>0||Number(a["gen_ai.usage.output_tokens"]??0)>0||Object.keys(a).some(r=>r.startsWith("gen_ai.")))return!0;const l=(t.span.name??"").toLowerCase();return!!(l.includes("invoke")||l.includes("agent")||l.includes("tool")||l.includes("memory"))}function y1(t){const a=t.children.map(y1).filter(l=>l!==null);return Qj(t)||a.length>0?{...t,children:a}:null}function Kj(t){const a=(t.name??"").toLowerCase(),l=t.attributes??{};return a==="tool_use"||a==="tool_call"||a.startsWith("execute_tool")||l["tool.name"]||l["gen_ai.tool.name"]?"tool":t.parentSpanId?a.includes("invoke")||a.includes("agent")?"agent":Object.keys(l).some(r=>r.startsWith("gen_ai."))?"llm":"other":"invocation"}const Jj="_root_ryrat_1",Pj="_pill_ryrat_5",Wj="_cards_ryrat_24",ew="_card_ryrat_24",tw="_cardHeader_ryrat_39",nw="_toolIcon_ryrat_45",aw="_toolName_ryrat_50",lw="_duration_ryrat_57",iw="_toggle_ryrat_64",rw="_json_ryrat_80",Un={root:Jj,pill:Pj,cards:Wj,card:ew,cardHeader:tw,toolIcon:nw,toolName:aw,duration:lw,toggle:iw,json:rw};function Hy(t){if(!t)return null;try{return JSON.stringify(JSON.parse(t),null,2)}catch{return t}}function sw({tool:t}){const[a,l]=z.useState(!0),[r,o]=z.useState(!0),u=Hy(t.input),c=Hy(t.output);return p.jsxs("div",{className:Un.card,children:[p.jsxs("div",{className:Un.cardHeader,children:[p.jsx(Ra,{size:12,className:Un.toolIcon}),p.jsx("span",{className:Un.toolName,children:t.name}),t.durationMs!==void 0&&p.jsx("span",{className:Un.duration,children:Od(t.durationMs)})]}),u&&p.jsxs("button",{className:Un.toggle,onClick:()=>l(d=>!d),children:[a?p.jsx(Ma,{size:12}):p.jsx(dl,{size:12}),"Input"]}),a&&u&&p.jsx("pre",{className:Un.json,children:u}),c&&p.jsxs("button",{className:Un.toggle,onClick:()=>o(d=>!d),children:[r?p.jsx(Ma,{size:12}):p.jsx(dl,{size:12}),"Output"]}),r&&c&&p.jsx("pre",{className:Un.json,children:c})]})}function ow({toolCalls:t}){const[a,l]=z.useState(!1);return t.length===0?null:p.jsxs("div",{className:Un.root,children:[p.jsxs("button",{className:Un.pill,onClick:()=>l(r=>!r),children:[p.jsx(Ra,{size:12}),t.length," tool",t.length===1?"":"s"," used",a?p.jsx(Ma,{size:14}):p.jsx(dl,{size:14})]}),a&&p.jsx("div",{className:Un.cards,children:t.map((r,o)=>p.jsx(sw,{tool:r},`${r.spanId}-${o}`))})]})}const uw="_messages_17zuj_1",cw="_emptyState_17zuj_10",fw="_emptyStateIcon_17zuj_20",dw="_emptyStateAgent_17zuj_26",hw="_emptyStateBadge_17zuj_32",mw="_deployed_17zuj_40",pw="_local_17zuj_44",gw="_emptyStateDetails_17zuj_49",yw="_emptyStateText_17zuj_54",_w="_msg_17zuj_59",vw="_msgUser_17zuj_65",xw="_bodyUser_17zuj_91 _body_17zuj_83",bw="_bodyAssistant_17zuj_98 _body_17zuj_83",Sw="_bodyError_17zuj_104 _body_17zuj_83",kw="_thinking_17zuj_111",Tw="_thinkingDot_17zuj_121",Nw="_spinner_17zuj_144",Ew="_startingText_17zuj_153",rt={messages:uw,emptyState:cw,emptyStateIcon:fw,emptyStateAgent:dw,emptyStateBadge:hw,deployed:mw,local:pw,emptyStateDetails:gw,emptyStateText:yw,msg:_w,msgUser:vw,bodyUser:xw,bodyAssistant:bw,bodyError:Sw,thinking:kw,thinkingDot:Tw,spinner:Nw,startingText:Ew};function Cw(t){return t.replace(/\n?\n?```[^\n`]+\n\n```\n?\n?/g,`
279
- `)}function Aw(t){return t.isError?rt.bodyError:t.role==="user"?rt.bodyUser:rt.bodyAssistant}const jw=z.forwardRef(({messages:t,isStreaming:a,isStarting:l,agentName:r,agentBuildType:o,agentProtocol:u,hasAvailableTargets:c=!0,isDeployed:d=!1},m)=>{if(l)return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.spinner}),p.jsxs("div",{className:rt.startingText,children:["Setting up ",r||"agent",p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."})]})]})});if(t.length===0){if(!c)return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.emptyStateIcon,children:p.jsx(Gf,{size:40,strokeWidth:1.5,color:"#6366f1"})}),p.jsx("div",{className:rt.emptyStateAgent,children:"No agents found"}),p.jsxs("div",{className:rt.emptyStateText,children:["Run ",p.jsx("code",{className:"cmd",children:"agentcore add"})," to add an agent or harness"]})]})});const _=[o==="CodeZip"?"Direct code deploy":o,u??"HTTP"].filter(Boolean).join(" · ");return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.emptyStateIcon,children:p.jsx(Gf,{size:40,strokeWidth:1.5,color:"#6366f1"})}),p.jsx("div",{className:rt.emptyStateAgent,children:r||"Agent"}),p.jsx("div",{className:`${rt.emptyStateBadge} ${d?rt.deployed:rt.local}`,children:d?"DEPLOYED":"LOCAL"}),_&&p.jsx("div",{className:rt.emptyStateDetails,children:_}),p.jsx("div",{className:rt.emptyStateText,children:d?"Send a prompt to invoke this deployed agent":"Send a prompt to test this agent locally"})]})})}return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:t.map((g,_)=>a&&g.role==="assistant"&&g.content===""&&_===t.length-1?p.jsx("div",{className:rt.msg,"data-testid":"thinking-indicator",children:p.jsxs("div",{className:rt.thinking,children:["Thinking",p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."})]})},_):p.jsxs("div",{className:g.role==="user"?rt.msgUser:rt.msg,"data-testid":`chat-message-${_}`,children:[p.jsx("div",{className:Aw(g),children:g.isError?p.jsx(Zf,{content:g.content}):g.role==="assistant"?p.jsx(Ij,{content:g.toolExecutions?Cw(g.content):g.content}):g.content}),g.toolCalls&&g.toolCalls.length>0&&p.jsx(ow,{toolCalls:g.toolCalls}),g.toolExecutions&&Object.keys(g.toolExecutions).length>0&&p.jsx(i2,{toolExecutions:g.toolExecutions}),g.tokenUsage&&p.jsx(Zj,{usage:g.tokenUsage})]},_))})});function ww(){const a=new URLSearchParams(window.location.search).get("port");return a&&/^\d+$/.test(a)?`http://localhost:${a}`:""}const Hn=ww();function pn(t,a){if((a==null?void 0:a.method)==="POST"){const l=new Headers(a.headers);return l.set("X-Agentcore-Local","1"),fetch(t,{...a,headers:l})}return fetch(t,a)}function Mw(){const[t,a]=z.useState([]),[l,r]=z.useState(!1),[o,u]=z.useState(null),[c,d]=z.useState(null),m=z.useCallback(async()=>{try{return(await pn(`${Hn}/api/memory?memoryName=__probe__&namespace=__probe__`)).status===404?(d(!1),!1):(d(!0),!0)}catch{return d(!1),!1}},[]),g=z.useCallback(async(x,b)=>{r(!0),u(null),a([]);try{const N=new URLSearchParams({memoryName:x,namespace:b}),O=await pn(`${Hn}/api/memory?${N.toString()}`);if(O.status===404){u("Memory browsing is only available in invoke mode."),d(!1);return}const D=await O.json();D.success&&D.records?a(D.records):u(D.error||"Failed to load memory records")}catch(N){u(N instanceof Error?N.message:"Failed to load memory records")}finally{r(!1)}},[]),_=z.useCallback(async(x,b,N)=>{r(!0),u(null),a([]);try{const O={memoryName:x,namespace:b,searchQuery:N},D=await pn(`${Hn}/api/memory/search`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(O)});if(D.status===404){u("Memory browsing is only available in invoke mode."),d(!1);return}const k=await D.json();k.success&&k.records?a(k.records):u(k.error||"Failed to search memory records")}catch(O){u(O instanceof Error?O.message:"Failed to search memory records")}finally{r(!1)}},[]),y=z.useCallback(()=>{a([]),u(null)},[]);return{records:t,isLoading:l,error:o,isAvailable:c,checkAvailability:m,listRecords:g,searchRecords:_,clear:y}}function Po(t){try{const a=Number(t),l=Number.isFinite(a)&&a>1e12?new Date(a):new Date(t);return isNaN(l.getTime())?t:l.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return t}}const zw="_notice_1isal_1",Rw="_warning_1isal_12",Ow="_retryBtn_1isal_16",Hf={notice:zw,warning:Rw,retryBtn:Ow};function qy({children:t,variant:a="error",onRetry:l}){return p.jsxs("div",{className:`${Hf.notice} ${a==="warning"?Hf.warning:""}`,children:[t,l&&p.jsx("button",{className:Hf.retryBtn,onClick:l,children:"Retry"})]})}const Dw="_container_qogk5_1",Lw="_content_qogk5_47",Bw="_status_qogk5_55",Iw="_error_qogk5_62",Uw="_detail_qogk5_73",Hw="_detailHeader_qogk5_80",qw="_detailTitle_qogk5_89",Vw="_closeBtn_qogk5_95",Gw="_controls_qogk5_118",$w="_field_qogk5_124",Zw="_fieldLabel_qogk5_130",Yw="_input_qogk5_138",Fw="_select_qogk5_158",Xw="_actions_qogk5_175",Qw="_actionBtn_qogk5_180",Kw="_searchBtn_qogk5_202",Jw="_resultCount_qogk5_213",Pw="_recordList_qogk5_219",Ww="_recordRow_qogk5_228",e3="_recordRowSelected_qogk5_248",t3="_recordMain_qogk5_254",n3="_recordContent_qogk5_261",a3="_scoreBadge_qogk5_271",l3="_recordMeta_qogk5_281",i3="_strategyTag_qogk5_288",r3="_recordTime_qogk5_296",s3="_detailBody_qogk5_302",o3="_detailSection_qogk5_309",u3="_detailLabel_qogk5_315",c3="_detailContent_qogk5_322",f3="_metadataGrid_qogk5_335",d3="_metadataRow_qogk5_341",h3="_metadataKey_qogk5_354",m3="_metadataValue_qogk5_361",p3="_detailId_qogk5_370",g3="_namespacesValue_qogk5_377",y3="_noMetadata_qogk5_383",xe={container:Dw,content:Lw,status:Bw,error:Iw,detail:Uw,detailHeader:Hw,detailTitle:qw,closeBtn:Vw,controls:Gw,field:$w,fieldLabel:Zw,input:Yw,select:Fw,actions:Xw,actionBtn:Qw,searchBtn:Kw,resultCount:Jw,recordList:Pw,recordRow:Ww,recordRowSelected:e3,recordMain:t3,recordContent:n3,scoreBadge:a3,recordMeta:l3,strategyTag:i3,recordTime:r3,detailBody:s3,detailSection:o3,detailLabel:u3,detailContent:c3,metadataGrid:f3,metadataRow:d3,metadataKey:h3,metadataValue:m3,detailId:p3,namespacesValue:g3,noMetadata:y3};function _3({memories:t,sessionId:a,userId:l,isActive:r}){var he;const{records:o,isLoading:u,error:c,isAvailable:d,checkAvailability:m,listRecords:g,searchRecords:_,clear:y}=Mw(),[x,b]=z.useState(((he=t[0])==null?void 0:he.name)??""),[N,O]=z.useState(""),[D,k]=z.useState({}),[M,U]=z.useState(""),[te,V]=z.useState(null),[B,R]=z.useState(!1),[le,oe]=z.useState(!1),w=z.useRef(!1);z.useEffect(()=>{!x&&t.length>0&&b(t[0].name)},[t,x]);const P=t.find(Q=>Q.name===x),ae=(P==null?void 0:P.strategies)??[],pe=ae.find(Q=>Q.type===N),ne=(pe==null?void 0:pe.namespaceTemplates)??(pe==null?void 0:pe.namespaces)??[],Y=z.useMemo(()=>pe?[...new Set(ne.flatMap(Q=>(Q.match(/\{(\w+)\}/g)||[]).map(Be=>Be.slice(1,-1))))]:[],[pe]);z.useEffect(()=>{r&&d===null&&m()},[r,d,m]),z.useEffect(()=>{if(!pe){k({});return}const Q={};for(const ge of Y)ge==="actorId"?Q[ge]=l||"default-user":ge==="sessionId"&&a?Q[ge]=a:Q[ge]="";k(Q)},[pe,Y,a,l]);const I=Q=>{b(Q),O(""),V(null),oe(!1),y()},J=Q=>{O(Q),V(null),oe(!1),y()},ue=(Q,ge)=>{k(Be=>({...Be,[Q]:ge}))},Te=()=>pe?ne.map(Q=>Q.replace(/\{(\w+)\}/g,(ge,Be)=>{var ce;return((ce=D[Be])==null?void 0:ce.trim())||""})).join(","):"",E=pe!=null&&Y.every(Q=>{var ge;return(ge=D[Q])==null?void 0:ge.trim()}),C=()=>{E&&(R(!1),V(null),oe(!0),g(x,Te()))},Z=()=>{!E||!M.trim()||(R(!0),V(null),oe(!0),_(x,Te(),M.trim()))},T=Q=>{Q.key==="Enter"&&!w.current&&(M.trim()?Z():C())},ee=Q=>{V(ge=>(ge==null?void 0:ge.memoryRecordId)===Q.memoryRecordId?null:Q)};return t.length===0?p.jsxs("div",{className:xe.status,children:[p.jsx("div",{children:"No AgentCore Memory found."}),p.jsxs("div",{children:["Run ",p.jsx("code",{className:"cmd",children:"agentcore add"})," to add Memory, then"," ",p.jsx("code",{className:"cmd",children:"agentcore deploy"})," to deploy it."]})]}):p.jsx("div",{className:xe.container,children:p.jsxs("div",{className:xe.content,children:[t.some(Q=>Q.deploymentStatus!=="deployed")&&p.jsxs(qy,{variant:"warning",children:[p.jsx("span",{children:"AgentCore Memory must be deployed before it can be used."}),p.jsxs("span",{children:["To test memory, run ",p.jsx("code",{className:"cmd",children:"agentcore deploy"})," and restart dev."]})]}),t.some(Q=>Q.deploymentStatus==="deployed")&&p.jsx(qy,{variant:"warning",children:"Memories may take 1-2 minutes to update after an invocation."}),d!==!1&&p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:xe.controls,children:[p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:"memory-selector",children:"Memory"}),p.jsx("select",{id:"memory-selector",className:xe.select,value:x,onChange:Q=>I(Q.target.value),children:t.map(Q=>p.jsx("option",{value:Q.name,children:Q.name},Q.name))})]}),p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`strat-${x}`,children:"Strategy"}),p.jsxs("select",{id:`strat-${x}`,className:xe.select,value:N,onChange:Q=>J(Q.target.value),children:[p.jsx("option",{value:"",disabled:!0,children:"Select a strategy…"}),ae.map(Q=>p.jsx("option",{value:Q.type,children:Q.type},Q.type))]})]}),Y.map(Q=>p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`ns-${x}-${Q}`,children:Q}),p.jsx("input",{id:`ns-${x}-${Q}`,className:xe.input,type:"text",placeholder:`Enter ${Q}…`,value:D[Q]||"",onChange:ge=>ue(Q,ge.target.value),onKeyDown:T,onCompositionStart:()=>{w.current=!0},onCompositionEnd:()=>{w.current=!1}})]},Q)),pe&&p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`search-${x}`,children:"Search (optional)"}),p.jsx("input",{id:`search-${x}`,className:xe.input,type:"text",placeholder:"Semantic search query…",value:M,onChange:Q=>U(Q.target.value),onKeyDown:T,onCompositionStart:()=>{w.current=!0},onCompositionEnd:()=>{w.current=!1}})]}),p.jsxs("div",{className:xe.actions,children:[p.jsx("button",{className:xe.actionBtn,onClick:C,disabled:!E||u,children:"List"}),p.jsx("button",{className:`${xe.actionBtn} ${xe.searchBtn}`,onClick:Z,disabled:!E||!M.trim()||u,children:"Search"})]})]})]}),u&&p.jsx("div",{className:xe.status,children:"Loading records…"}),c&&p.jsx("div",{className:xe.error,children:p.jsxs("span",{children:[p.jsx(md,{size:12})," ",c]})}),!u&&!c&&le&&o.length===0&&p.jsx("div",{className:xe.status,children:"No memory records found for this namespace."}),!u&&o.length>0&&p.jsxs("div",{className:xe.recordList,children:[p.jsxs("div",{className:xe.resultCount,children:[o.length," record",o.length!==1?"s":"",B?" (search results)":""]}),o.map(Q=>p.jsx(v3,{record:Q,isSelected:(te==null?void 0:te.memoryRecordId)===Q.memoryRecordId,showScore:B,onClick:()=>ee(Q)},Q.memoryRecordId))]}),te&&p.jsx(x3,{record:te,onClose:()=>V(null)})]})]})})}function v3({record:t,isSelected:a,showScore:l,onClick:r}){const o=t.content?t.content.length>120?t.content.slice(0,120)+"…":t.content:"(no content)";return p.jsxs("button",{className:`${xe.recordRow} ${a?xe.recordRowSelected:""}`,onClick:r,"aria-label":`Memory record ${t.memoryRecordId}`,children:[p.jsxs("div",{className:xe.recordMain,children:[p.jsx("span",{className:xe.recordContent,children:o}),l&&t.score!==null&&t.score!==void 0&&p.jsx("span",{className:xe.scoreBadge,children:t.score.toFixed(3)})]}),p.jsxs("div",{className:xe.recordMeta,children:[p.jsx("span",{className:xe.strategyTag,children:t.memoryStrategyId}),p.jsx("span",{className:xe.recordTime,children:Po(t.createdAt)})]})]})}function x3({record:t,onClose:a}){const l=Object.entries(t.metadata||{});return p.jsxs("div",{className:xe.detail,children:[p.jsxs("div",{className:xe.detailHeader,children:[p.jsx("span",{className:xe.detailTitle,children:"Record Detail"}),p.jsx("button",{className:xe.closeBtn,onClick:a,"aria-label":"Close record detail",children:p.jsx(Ul,{size:12})})]}),p.jsxs("div",{className:xe.detailBody,children:[p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"ID"}),p.jsx("span",{className:xe.detailId,children:t.memoryRecordId})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Content"}),p.jsx("div",{className:xe.detailContent,children:t.content||"(no content)"})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Strategy"}),p.jsx("span",{className:xe.strategyTag,children:t.memoryStrategyId})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Created"}),p.jsx("span",{className:xe.recordTime,children:Po(t.createdAt)})]}),t.score!==null&&t.score!==void 0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Relevance Score"}),p.jsx("span",{className:xe.scoreBadge,children:t.score.toFixed(4)})]}),t.namespaces.length>0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Namespaces"}),p.jsx("span",{className:xe.namespacesValue,children:t.namespaces.join(", ")})]}),l.length>0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Metadata"}),p.jsx("div",{className:xe.metadataGrid,children:l.map(([r,o])=>p.jsxs("div",{className:xe.metadataRow,children:[p.jsx("span",{className:xe.metadataKey,children:r}),p.jsx("span",{className:xe.metadataValue,children:o})]},r))})]}),l.length===0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Metadata"}),p.jsx("span",{className:xe.noMetadata,children:"No metadata"})]})]})]})}const b3="_panel_lfvg8_1",S3="_resizeHandle_lfvg8_13",k3="_header_lfvg8_30",T3="_projectName_lfvg8_39",N3="_headerActions_lfvg8_45",E3="_iconBtn_lfvg8_50",C3="_tabBar_lfvg8_70",A3="_tab_lfvg8_70",j3="_tabActive_lfvg8_93",w3="_body_lfvg8_98",M3="_tabContent_lfvg8_104",z3="_status_lfvg8_114",R3="_error_lfvg8_121",O3="_retryBtn_lfvg8_132",D3="_graph_lfvg8_146",L3="_section_lfvg8_152",B3="_sectionTitle_lfvg8_158",I3="_childNode_lfvg8_167",U3="_node_lfvg8_183",H3="_nodeSelected_lfvg8_201",q3="_nodeIcon_lfvg8_206",V3="_agent_lfvg8_216",G3="_harness_lfvg8_220",$3="_memory_lfvg8_224",Z3="_credential_lfvg8_228",Y3="_gateway_lfvg8_232",F3="_gatewayTarget_lfvg8_236",X3="_mcpTool_lfvg8_240",Q3="_evaluator_lfvg8_244",K3="_onlineEval_lfvg8_248",J3="_policyEngine_lfvg8_252",P3="_policy_lfvg8_252",W3="_unassignedTarget_lfvg8_260",e4="_nodeContent_lfvg8_264",t4="_nodeName_lfvg8_272",n4="_nodeNameRow_lfvg8_281",a4="_deployBadge_lfvg8_288",l4="_deploy_deployed_lfvg8_298",i4="_nodeSubtitle_lfvg8_313",r4="_nodeConnections_lfvg8_321",s4="_connectionTag_lfvg8_328",o4="_infoCard_lfvg8_386",u4="_infoHeader_lfvg8_393",c4="_kindBadge_lfvg8_402",f4="_infoName_lfvg8_461",d4="_infoBody_lfvg8_467",h4="_infoSectionHeader_lfvg8_471",m4="_infoRow_lfvg8_481",p4="_infoKey_lfvg8_494",g4="_infoValue_lfvg8_499",ze={panel:b3,resizeHandle:S3,header:k3,projectName:T3,headerActions:N3,iconBtn:E3,tabBar:C3,tab:A3,tabActive:j3,body:w3,tabContent:M3,status:z3,error:R3,retryBtn:O3,graph:D3,section:L3,sectionTitle:B3,childNode:I3,node:U3,nodeSelected:H3,nodeIcon:q3,agent:V3,harness:G3,memory:$3,credential:Z3,gateway:Y3,gatewayTarget:F3,mcpTool:X3,evaluator:Q3,onlineEval:K3,policyEngine:J3,policy:P3,unassignedTarget:W3,nodeContent:e4,nodeName:t4,nodeNameRow:n4,deployBadge:a4,deploy_deployed:l4,"deploy_local-only":"_deploy_local-only_lfvg8_303","deploy_pending-removal":"_deploy_pending-removal_lfvg8_308",nodeSubtitle:i4,nodeConnections:r4,connectionTag:s4,infoCard:o4,infoHeader:u4,kindBadge:c4,infoName:f4,infoBody:d4,infoSectionHeader:h4,infoRow:m4,infoKey:p4,infoValue:g4},y4={agent:Gf,harness:yx,memory:hx,credential:Gx,gateway:Bx,gatewayTarget:Mx,mcpTool:Ra,evaluator:Ex,onlineEval:cx,policyEngine:Jx,policy:Dx,unassignedTarget:u_},_4={deployed:"Deployed","local-only":"Not deployed","pending-removal":"Removed locally"};function In({kind:t,name:a,subtitle:l,isSelected:r,onClick:o,connections:u,deploymentStatus:c}){const d=y4[t];return p.jsxs("button",{className:`${ze.node} ${ze[t]} ${r?ze.nodeSelected:""}`,onClick:o,"aria-label":`${t}: ${a}`,children:[p.jsx("span",{className:ze.nodeIcon,children:p.jsx(d,{size:14})}),p.jsxs("div",{className:ze.nodeContent,children:[p.jsxs("div",{className:ze.nodeNameRow,children:[p.jsx("span",{className:ze.nodeName,children:a}),c&&p.jsx("span",{className:`${ze.deployBadge} ${ze[`deploy_${c}`]}`,children:_4[c]})]}),l&&p.jsx("span",{className:ze.nodeSubtitle,children:l}),u&&u.length>0&&p.jsx("div",{className:ze.nodeConnections,children:u.map(m=>p.jsx("span",{className:ze.connectionTag,children:m},m))})]})]})}function Vy(t,a){const l=new URLSearchParams;return t!=null&&t.agentName&&l.set("agentName",t.agentName),t!=null&&t.harnessName&&l.set("harnessName",t.harnessName),(a==null?void 0:a.startTime)!==void 0&&l.set("startTime",String(a.startTime)),(a==null?void 0:a.endTime)!==void 0&&l.set("endTime",String(a.endTime)),l}function v4(){const t=Hn,[a,l]=z.useState([]),[r,o]=z.useState([]),[u,c]=z.useState([]),[d,m]=z.useState([]),[g,_]=z.useState(!1),[y,x]=z.useState(!1),[b,N]=z.useState(null),[O,D]=z.useState(null),k=z.useCallback(async(te,V,B)=>{_(!0),N(null),o([]),c([]),m([]);try{const R=Vy(V,B),oe=await pn(`${t}/api/${te==="cloudwatch"?"cloudwatch-traces":"traces"}?${R.toString()}`);if(oe.status===404){D(!1),l([]);return}D(!0);const w=await oe.json();w.success?l(w.traces):(N(w.error),l([]))}catch(R){N(R instanceof Error?R.message:"Failed to load traces"),l([])}finally{_(!1)}},[t]),M=z.useCallback(async(te,V,B,R)=>{x(!0),N(null);try{const le=Vy(B,R),P=await(await pn(`${t}/api/${te==="cloudwatch"?"cloudwatch-traces":"traces"}/${encodeURIComponent(V)}?${le.toString()}`)).json();if(P.success)if(te==="cloudwatch"){const ae=P;c(ae.records??[]),m(ae.spans??[]),o([])}else{const ae=P;o(p1(ae.resourceSpans,ae.resourceLogs)),c([]),m([])}else N(P.error),o([]),c([]),m([])}catch(le){N(le instanceof Error?le.message:"Failed to load trace detail"),o([]),c([]),m([])}finally{x(!1)}},[t]),U=z.useCallback(()=>{o([]),c([]),m([]),N(null)},[]);return{traces:a,spans:r,deployedRecords:u,deployedSpans:d,isLoadingTraces:g,isLoadingDetail:y,error:b,isAvailable:O,fetchTraces:k,fetchTraceDetail:M,clearDetail:U}}function Yr(t){if(!t)return{};if(!Array.isArray(t))return t;const a={};for(const l of t){if(!l.key||!l.value)continue;const r=l.value;r.stringValue!==void 0?a[l.key]=r.stringValue:r.intValue!==void 0?a[l.key]=r.intValue:r.doubleValue!==void 0?a[l.key]=r.doubleValue:r.boolValue!==void 0&&(a[l.key]=r.boolValue)}return a}function Nn(t){if(t!=null){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}}function x4(t){if(!t||!t.startsWith("["))return null;try{const a=JSON.parse(t);if(Array.isArray(a)&&a.length>0&&typeof a[0]=="object")return a}catch{}return null}function Gy(t){if(!t||!t.startsWith("{")&&!t.startsWith("["))return null;try{return JSON.parse(t)}catch{return null}}const b4="_dimText_rs5f0_1",S4="_assistantMsg_rs5f0_5",k4="_toolCalls_rs5f0_9",T4="_toolCall_rs5f0_9",N4="_toolIcon_rs5f0_22",E4="_toolName_rs5f0_26",C4="_toolArgs_rs5f0_32",A4="_toolResult_rs5f0_45",j4="_toolResultStatus_rs5f0_51",w4="_toolResultError_rs5f0_58",M4="_finishReason_rs5f0_62",z4="_genAiContent_rs5f0_68",R4="_contentText_rs5f0_74",O4="_strandsEvent_rs5f0_78",D4="_strandsSection_rs5f0_84",L4="_strandsLabel_rs5f0_90",B4="_messageList_rs5f0_97",I4="_msgRow_rs5f0_103",U4="_roleBadge_rs5f0_109",H4="_role_user_rs5f0_120",q4="_role_assistant_rs5f0_125",V4="_role_system_rs5f0_130",G4="_role_tool_rs5f0_135",$4="_msgText_rs5f0_140",Z4="_msgContent_rs5f0_146",Y4="_parsedContent_rs5f0_151",F4="_spanScope_rs5f0_157",X4="_spanRaw_rs5f0_163",Re={dimText:b4,assistantMsg:S4,toolCalls:k4,toolCall:T4,toolIcon:N4,toolName:E4,toolArgs:C4,toolResult:A4,toolResultStatus:j4,toolResultError:w4,finishReason:M4,genAiContent:z4,contentText:R4,strandsEvent:O4,strandsSection:D4,strandsLabel:L4,messageList:B4,msgRow:I4,roleBadge:U4,role_user:H4,role_assistant:q4,role_system:V4,role_tool:G4,msgText:$4,msgContent:Z4,parsedContent:Y4,spanScope:F4,spanRaw:X4};function Dd({body:t}){if(t==null)return p.jsx("span",{className:Re.dimText,children:"—"});if(typeof t=="string")return p.jsx("span",{children:t});if(typeof t!="object")return p.jsx("span",{children:String(t)});const a=t;if(typeof a.message=="string"&&!a.content&&!a.input&&!a.output)return p.jsx("span",{children:a.message});if(Array.isArray(a.content))return p.jsx(Ld,{content:a.content});if(a.message&&typeof a.message=="object"){const l=a.message;if(l.role==="assistant"&&Array.isArray(l.content)){const r=l.content.map(o=>o.text).filter(Boolean).join("");if(r)return p.jsx("div",{className:Re.assistantMsg,children:r})}if(Array.isArray(l.tool_calls))return p.jsxs("div",{className:Re.toolCalls,children:[l.tool_calls.map((r,o)=>{const u=r.function;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String((u==null?void 0:u.name)??"unknown")}),p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(u==null?void 0:u.arguments,null,2)})]},o)}),a.finish_reason!==null&&a.finish_reason!==void 0&&p.jsx("span",{className:Re.finishReason,children:String(a.finish_reason)})]});if(l.role==="assistant"&&typeof l.content=="string")return p.jsx("div",{className:Re.assistantMsg,children:l.content})}return a.input||a.output?p.jsx(Q4,{input:a.input,output:a.output}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(a,null,2)})}function Ld({content:t}){return p.jsx("div",{className:Re.genAiContent,children:t.map((a,l)=>{const r=a;if(r.text)return p.jsx("div",{className:Re.contentText,children:String(r.text)},l);if(r.toolUse){const o=r.toolUse;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String(o.name)}),p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(o.input,null,2)})]},l)}if(r.toolResult){const o=r.toolResult;return p.jsxs("div",{className:Re.toolResult,children:[p.jsx("span",{className:`${Re.toolResultStatus} ${String(o.status).toLowerCase()==="error"?Re.toolResultError:""}`,children:String(o.status||"result")}),Array.isArray(o.content)&&o.content.map((u,c)=>p.jsx("pre",{className:Re.toolArgs,children:String(u.text??JSON.stringify(u))},c))]},l)}return p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(r,null,2)},l)})})}function $y(t){if(t&&typeof t=="object"&&!Array.isArray(t)){const a=t.messages;if(Array.isArray(a))return a}}function Q4({input:t,output:a}){const l=$y(t),r=$y(a);return p.jsxs("div",{className:Re.strandsEvent,children:[t!=null&&p.jsxs("div",{className:Re.strandsSection,children:[p.jsx("span",{className:Re.strandsLabel,children:"Input"}),l?p.jsx(Zy,{messages:l}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(t,null,2)})]}),a!=null&&p.jsxs("div",{className:Re.strandsSection,children:[p.jsx("span",{className:Re.strandsLabel,children:"Output"}),r?p.jsx(Zy,{messages:r}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(a,null,2)})]})]})}function Zy({messages:t}){return!t||!Array.isArray(t)?null:p.jsx("div",{className:Re.messageList,children:t.map((a,l)=>{const r=a,o=String(r.role||""),u=r.content;let c="";typeof u=="string"?c=u:u&&typeof u=="object"&&(c=u.message||u.content||"");const d=x4(c);return p.jsxs("div",{className:Re.msgRow,children:[p.jsx("span",{className:`${Re.roleBadge} ${Re[`role_${o}`]||""}`,children:o}),p.jsx("div",{className:Re.msgContent,children:d?p.jsx(K4,{items:d}):p.jsx("span",{className:Re.msgText,children:c||JSON.stringify(u)})})]},l)})})}function K4({items:t}){return p.jsx("div",{className:Re.parsedContent,children:t.map((a,l)=>{if(a.text){const r=String(a.text),o=Gy(r);return o?p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(o,null,2)},l):p.jsx("div",{className:Re.contentText,children:r},l)}if(a.toolUse){const r=a.toolUse;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String(r.name)}),r.input!==null&&r.input!==void 0&&Object.keys(r.input).length>0&&p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(r.input,null,2)})]},l)}if(a.toolResult){const r=a.toolResult,o=String(r.status||"result");return p.jsxs("div",{className:Re.toolResult,children:[p.jsx("span",{className:`${Re.toolResultStatus} ${o.toLowerCase()==="error"?Re.toolResultError:""}`,children:o}),Array.isArray(r.content)&&r.content.map((u,c)=>{const d=String(u.text??""),m=Gy(d);return m?p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(m,null,2)},c):p.jsx("pre",{className:Re.toolArgs,children:d},c)})]},l)}return p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(a,null,2)},l)})})}const J4="_container_c3i5z_1",P4="_toggleRow_c3i5z_6",W4="_toggle_c3i5z_6",eM="_chevron_c3i5z_32",tM="_icon_c3i5z_38",nM="_label_c3i5z_43",aM="_content_c3i5z_47",lM="_status_c3i5z_55",iM="_error_c3i5z_62",rM="_detail_c3i5z_73",sM="_logPanel_c3i5z_73",oM="_traceDetail_c3i5z_73",uM="_detailHeader_c3i5z_80",cM="_detailTitle_c3i5z_89",fM="_closeBtn_c3i5z_95",dM="_controls_c3i5z_115",hM="_controlRow_c3i5z_122",mM="_refreshBtn_c3i5z_128",pM="_retryBtn_c3i5z_148",gM="_timeFilter_c3i5z_162",yM="_timeFilterHeader_c3i5z_168",_M="_timeModeToggle_c3i5z_174",vM="_timeModeBtn_c3i5z_183",xM="_timeModeBtnActive_c3i5z_198",bM="_dateRange_c3i5z_203",SM="_dateField_c3i5z_210",kM="_dateLabel_c3i5z_218",TM="_dateInput_c3i5z_226",NM="_cloudwatchNote_c3i5z_248",EM="_traceList_c3i5z_255",CM="_traceRow_c3i5z_264",AM="_traceRowSelected_c3i5z_284",jM="_traceMain_c3i5z_290",wM="_traceId_c3i5z_296",MM="_spanCount_c3i5z_308",zM="_traceMeta_c3i5z_316",RM="_traceTime_c3i5z_322",OM="_sessionId_c3i5z_327",DM="_detailControls_c3i5z_344",LM="_quickFilter_c3i5z_350",BM="_spanList_c3i5z_365",IM="_tokenPill_c3i5z_370",UM="_tokenIcon_c3i5z_385",HM="_tokenSep_c3i5z_390",qM="_tokenDim_c3i5z_394",VM="_durationPill_c3i5z_399",GM="_spanTimestamp_c3i5z_414",$M="_severityBadge_c3i5z_419",ZM="_sevINFO_c3i5z_429",YM="_sevWARN_c3i5z_434",FM="_sevERROR_c3i5z_439",XM="_spanScope_c3i5z_444",QM="_spanBody_c3i5z_450",KM="_rawToggle_c3i5z_456",JM="_spanRaw_c3i5z_471",PM="_treeNode_c3i5z_486",WM="_treeRow_c3i5z_493",ez="_treeRowExpandable_c3i5z_502",tz="_treeRowSelected_c3i5z_509",nz="_treeToggle_c3i5z_514",az="_treeName_c3i5z_521",lz="_treeError_c3i5z_530",iz="_treeMetrics_c3i5z_540",rz="_treeChildren_c3i5z_548",sz="_treeLogRow_c3i5z_552",oz="_treeLogHeader_c3i5z_562",de={container:J4,toggleRow:P4,toggle:W4,chevron:eM,icon:tM,label:nM,content:aM,status:lM,error:iM,detail:rM,logPanel:sM,traceDetail:oM,detailHeader:uM,detailTitle:cM,closeBtn:fM,controls:dM,controlRow:hM,refreshBtn:mM,retryBtn:pM,timeFilter:gM,timeFilterHeader:yM,timeModeToggle:_M,timeModeBtn:vM,timeModeBtnActive:xM,dateRange:bM,dateField:SM,dateLabel:kM,dateInput:TM,cloudwatchNote:NM,traceList:EM,traceRow:CM,traceRowSelected:AM,traceMain:jM,traceId:wM,spanCount:MM,traceMeta:zM,traceTime:RM,sessionId:OM,detailControls:DM,quickFilter:LM,spanList:BM,tokenPill:IM,tokenIcon:UM,tokenSep:HM,tokenDim:qM,durationPill:VM,spanTimestamp:GM,severityBadge:$M,sevINFO:ZM,sevWARN:YM,sevERROR:FM,spanScope:XM,spanBody:QM,rawToggle:KM,spanRaw:JM,treeNode:PM,treeRow:WM,treeRowExpandable:ez,treeRowSelected:tz,treeToggle:nz,treeName:az,treeError:lz,treeMetrics:iz,treeChildren:rz,treeLogRow:sz,treeLogHeader:oz};function uz({spanName:t,logs:a,onClose:l}){return p.jsxs("div",{className:de.logPanel,"data-testid":"traces-log-panel",children:[p.jsxs("div",{className:de.detailHeader,children:[p.jsx("span",{className:de.detailTitle,children:t}),p.jsx("button",{className:de.closeBtn,onClick:l,"aria-label":"Close logs",children:p.jsx(Ul,{size:12})})]}),a.length===0?p.jsx("div",{className:de.status,children:"No logs for this span."}):p.jsx("div",{children:a.map((r,o)=>p.jsx(cz,{log:r},o))})]})}function cz({log:t}){const[a,l]=z.useState(!1);return p.jsxs("div",{className:de.treeLogRow,children:[p.jsxs("div",{className:de.treeLogHeader,children:[p.jsx("span",{className:de.spanTimestamp,children:t.timestamp}),t.scopeName&&p.jsx("span",{className:de.spanScope,children:t.scopeName}),t.severity&&p.jsx("span",{className:`${de.severityBadge} ${de[`sev${t.severity.toUpperCase()}`]||""}`,children:t.severity})]}),t.body!==void 0&&p.jsx("div",{className:de.spanBody,children:p.jsx(Dd,{body:t.body})}),p.jsx("button",{className:de.rawToggle,onClick:()=>l(r=>!r),children:a?p.jsxs(p.Fragment,{children:[p.jsx(Ma,{size:10})," Hide raw"]}):p.jsxs(p.Fragment,{children:[p.jsx(dl,{size:10})," Raw JSON"]})}),a&&p.jsx("pre",{className:de.spanRaw,children:JSON.stringify(t,null,2)})]})}function ul(t){const a=Date.now();return{startTime:a-t,endTime:a}}function ko(t,a){const l=t?new Date(t).getTime():void 0,r=a?new Date(a).getTime():void 0,o=l!==void 0&&!Number.isNaN(l)?l:void 0,u=r!==void 0&&!Number.isNaN(r)?r:void 0;if(!(o===void 0&&u===void 0))return{startTime:o,endTime:u}}function To(t){const a=l=>String(l).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}T${a(t.getHours())}:${a(t.getMinutes())}`}function Yy(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function Co(t){return(t==null?void 0:t.kind)==="agent"}function Ao(t){return!!(t!=null&&t.isDeployed)}function Fy(t){return(t==null?void 0:t.kind)==="harness"||Ao(t)&&!Co(t)?"cloudwatch":"local"}function Xy(t){if(t)return t.kind==="harness"?{harnessName:t.name}:{agentName:t.name}}function fz(t){const a=t.body;return typeof a=="object"&&a!==null&&"input"in a&&"output"in a}function dz(t,a){return a==="all"?t:t.map(l=>_1(l,a)).filter(l=>l!==null)}function _1(t,a){const l=t.children.map(o=>_1(o,a)).filter(o=>o!==null);return hz(t,a)||l.length>0?{...t,children:l}:null}function hz(t,a){return a==="errors"?t.statusCode==="ERROR":a==="with-tokens"?t.logs.some(fz)||(t.inputTokens??0)>0||(t.outputTokens??0)>0:!0}const mz=20;function pz({roots:t,selectedSpanId:a,onSelectSpan:l}){return t.length===0?p.jsx("div",{className:de.status,children:"No spans found."}):p.jsx("div",{className:de.spanList,"data-testid":"traces-span-tree",children:t.map(r=>p.jsx(v1,{node:r,selectedSpanId:a,onSelectSpan:l},r.spanId))})}function v1({node:t,selectedSpanId:a,onSelectSpan:l}){const[r,o]=z.useState(!0),u=t.children.length>0,c=a===t.spanId,d=(t.inputTokens??0)>0||(t.outputTokens??0)>0,m=t.durationMs>0;return p.jsxs("div",{className:de.treeNode,"data-testid":"traces-span-node",children:[p.jsxs("div",{className:`${de.treeRow} ${de.treeRowExpandable} ${c?de.treeRowSelected:""}`,style:{paddingLeft:`${t.depth*mz+8}px`},onClick:()=>l(t.spanId),role:"button",tabIndex:0,onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&l(t.spanId)},children:[p.jsx("span",{className:de.treeToggle,onClick:u?g=>{g.stopPropagation(),o(_=>!_)}:void 0,children:u?r?p.jsx(Ma,{size:12}):p.jsx(dl,{size:12}):p.jsx("span",{style:{width:12}})}),p.jsx("span",{className:de.treeName,children:t.name}),t.statusCode==="ERROR"&&p.jsx("span",{className:de.treeError,children:"ERR"}),p.jsxs("div",{className:de.treeMetrics,children:[d&&p.jsxs("span",{className:de.tokenPill,children:[p.jsx(pd,{size:9,className:de.tokenIcon}),Yy(t.inputTokens??0)," ",p.jsx("span",{className:de.tokenDim,children:"in"}),p.jsx("span",{className:de.tokenSep,children:"/"}),Yy(t.outputTokens??0)," ",p.jsx("span",{className:de.tokenDim,children:"out"})]}),m&&p.jsxs("span",{className:de.durationPill,children:[p.jsx(Ax,{size:9}),Od(t.durationMs)]})]})]}),r&&u&&p.jsx("div",{className:de.treeChildren,children:t.children.map(g=>p.jsx(v1,{node:g,selectedSpanId:a,onSelectSpan:l},g.spanId))})]})}function gz({trace:t,isSelected:a,onClick:l}){return p.jsxs("button",{className:`${de.traceRow} ${a?de.traceRowSelected:""}`,onClick:l,"aria-label":`Trace ${t.traceId}`,children:[p.jsxs("div",{className:de.traceMain,children:[p.jsx("span",{className:de.traceId,children:t.traceId}),p.jsxs("span",{className:de.spanCount,children:[t.spanCount," spans"]})]}),p.jsxs("div",{className:de.traceMeta,children:[p.jsx("span",{className:de.traceTime,children:Po(t.timestamp)}),t.sessionId&&p.jsxs("span",{className:de.sessionId,children:["session: ",t.sessionId]})]})]})}function yz(t){var o,u,c,d;const a=t.filter(m=>m.type==="span"&&m.spanId),l=t.filter(m=>m.type==="log"&&m.spanId),r=new Map;for(const m of a){const g=m.attributes??{};r.set(m.spanId,{spanId:m.spanId,parentSpanId:m.parentSpanId,name:m.name||((o=m.scope)==null?void 0:o.name)||"span",depth:0,startMs:Vt(m.startTimeUnixNano),durationMs:Vt(m.endTimeUnixNano)-Vt(m.startTimeUnixNano),inputTokens:Number(g["gen_ai.usage.input_tokens"]??0)||void 0,outputTokens:Number(g["gen_ai.usage.output_tokens"]??0)||void 0,statusCode:typeof((u=m.status)==null?void 0:u.code)=="number"?m.status.code===2?"ERROR":"OK":(c=m.status)==null?void 0:c.code,children:[],logs:[]})}for(const m of l){const g=r.get(m.spanId);g&&g.logs.push({timestamp:m.timestampMs>0?new Date(m.timestampMs).toISOString():"",scopeName:(d=m.scope)==null?void 0:d.name,severity:m.severityText,body:m.body})}return x1(r)}function _z(t,a){var r;const l=new Map;for(const o of t){const u=o.durationNano?Vt(o.durationNano):0;l.set(o.spanId,{spanId:o.spanId,parentSpanId:o.parentSpanId,name:o.name||"span",depth:0,startMs:o.startTimeUnixNano?Vt(o.startTimeUnixNano):0,durationMs:u,inputTokens:o.inputTokens||void 0,outputTokens:o.outputTokens||void 0,statusCode:o.statusCode,children:[],logs:[]})}for(const o of a){const u=o["@message"];if(typeof u!="object"||u===null)continue;const c=u,d=c.spanId;if(!d)continue;const m=l.get(d);m&&m.logs.push({timestamp:o["@timestamp"],scopeName:(r=c.scope)==null?void 0:r.name,severity:c.severityText,body:c.body})}return x1(l)}function x1(t){const a=[];for(const r of t.values()){const o=r.parentSpanId?t.get(r.parentSpanId):void 0;o?o.children.push(r):a.push(r)}const l=(r,o)=>{r.depth=o,r.children.sort((u,c)=>u.startMs-c.startMs);for(const u of r.children)l(u,o+1)};a.sort((r,o)=>r.startMs-o.startMs);for(const r of a)l(r,0);return a}const vz=[{label:"Last 1 hour",ms:3600*1e3},{label:"Last 6 hours",ms:360*60*1e3},{label:"Last 12 hours",ms:720*60*1e3},{label:"Last 24 hours",ms:1440*60*1e3},{label:"Last 3 days",ms:4320*60*1e3},{label:"Last 7 days",ms:10080*60*1e3}],xz=720*60*1e3;function bz({agents:t,harnesses:a=[],isActive:l}){const{traces:r,spans:o,deployedRecords:u,deployedSpans:c,isLoadingTraces:d,isLoadingDetail:m,error:g,isAvailable:_,fetchTraces:y,fetchTraceDetail:x,clearDetail:b}=v4(),N=z.useMemo(()=>[...t.map(me=>({value:`agent:${me.name}`,name:me.name,kind:"agent",isDeployed:me.deploymentStatus==="deployed"})),...a.map(me=>({value:`harness:${me.name}`,name:me.name,kind:"harness",isDeployed:me.deploymentStatus==="deployed"}))],[t,a]),[O,D]=z.useState(""),[k,M]=z.useState("local"),[U,te]=z.useState(null),[V,B]=z.useState(null),[R,le]=z.useState("with-tokens"),oe=z.useRef(!1);z.useEffect(()=>{if(!(O===""||!N.find(Nt=>Nt.value===O)))return;const bt=N[0];bt&&(D(bt.value),M(Fy(bt)))},[N,O]);const w=N.find(me=>me.value===O),P=!Co(w)&&!Ao(w),[ae,pe]=z.useState("relative"),[ne,Y]=z.useState(xz),[I,J]=z.useState(""),[ue,Te]=z.useState(""),E=z.useCallback(()=>ae==="relative"?ul(ne):ko(I,ue)??ul(ne),[ae,ne,I,ue]),C=z.useCallback((me,bt,Nt)=>{te(null),B(null),b(),y(me,Xy(bt),Nt)},[b,y]);z.useEffect(()=>{l&&!oe.current&&w&&!P&&C(k,w,ul(ne)),oe.current=!!l},[l,C,k,w,P,ne]);const Z=me=>{D(me);const bt=N.find(Gn=>Gn.value===me);if(!Co(bt)&&!Ao(bt))return;const Nt=Fy(bt);M(Nt),C(Nt,bt,E())},T=me=>{M(me),C(me,w,E())},ee=()=>{C(k,w,E())},he=me=>{B(null),U===me.traceId?(te(null),b()):(te(me.traceId),x(k,me.traceId,Xy(w),E()))},Q=me=>{if(pe(me),me==="relative")C(k,w,ul(ne));else{const bt=new Date,Nt=new Date(bt.getTime()-ne);J(To(Nt)),Te(To(bt)),C(k,w,ko(To(Nt),To(bt))??ul(ne))}},ge=me=>{Y(me),C(k,w,ul(me))},Be=me=>{J(me),C(k,w,ko(me,ue)??ul(ne))},ce=me=>{Te(me),C(k,w,ko(I,me)??ul(ne))},et=z.useMemo(()=>k==="cloudwatch"?_z(c,u):yz(o),[k,o,c,u]),Ut=z.useMemo(()=>dz(et,R),[et,R]),rn=z.useMemo(()=>{if(!V)return null;const me=bt=>{for(const Nt of bt){if(Nt.spanId===V)return Nt;const Gn=me(Nt.children);if(Gn)return Gn}return null};return me(et)},[V,et]);if(N.length===0)return p.jsx("div",{className:de.status,children:"No traces available."});const sa=et.length>0;return p.jsxs("div",{className:de.container,children:[p.jsx("div",{className:de.controls,children:p.jsxs("div",{className:de.controlRow,children:[p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-resource",children:"Resource"}),p.jsx("select",{id:"traces-resource",className:de.dateInput,value:O,onChange:me=>Z(me.target.value),children:N.map(me=>p.jsxs("option",{value:me.value,children:[me.name," (",me.kind,")"]},me.value))})]}),p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-source",children:"Source"}),p.jsxs("select",{id:"traces-source",className:de.dateInput,value:k,onChange:me=>T(me.target.value),children:[p.jsx("option",{value:"local",disabled:!Co(w),children:"Local traces"}),p.jsx("option",{value:"cloudwatch",disabled:!Ao(w),children:"CloudWatch"})]})]}),p.jsx("button",{className:de.refreshBtn,onClick:ee,title:"Refresh traces","aria-label":"Refresh traces",children:p.jsx(hd,{size:12})})]})}),k==="cloudwatch"&&!P&&p.jsx("div",{className:de.cloudwatchNote,children:"Note: Traces may take 2-3 minutes to appear in CloudWatch"}),p.jsx("div",{className:de.content,children:P?p.jsx("div",{className:de.status,children:"No traces available — deploy this resource to view CloudWatch traces."}):p.jsxs(p.Fragment,{children:[_!==!1&&p.jsxs("div",{className:de.timeFilter,children:[p.jsxs("div",{className:de.timeFilterHeader,children:[p.jsx("label",{className:de.dateLabel,children:"Time range"}),p.jsxs("div",{className:de.timeModeToggle,children:[p.jsx("button",{className:`${de.timeModeBtn} ${ae==="relative"?de.timeModeBtnActive:""}`,onClick:()=>Q("relative"),children:"Relative"}),p.jsx("button",{className:`${de.timeModeBtn} ${ae==="absolute"?de.timeModeBtnActive:""}`,onClick:()=>Q("absolute"),children:"Absolute"})]})]}),ae==="relative"?p.jsx("div",{className:de.dateField,children:p.jsx("select",{id:"traces-time-range",className:de.dateInput,value:ne,onChange:me=>ge(Number(me.target.value)),children:vz.map(me=>p.jsx("option",{value:me.ms,children:me.label},me.ms))})}):p.jsxs("div",{className:de.dateRange,children:[p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-start",children:"Start"}),p.jsx("input",{id:"traces-start",className:de.dateInput,type:"datetime-local",value:I,onChange:me=>Be(me.target.value)})]}),p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-end",children:"End"}),p.jsx("input",{id:"traces-end",className:de.dateInput,type:"datetime-local",value:ue,onChange:me=>ce(me.target.value)})]})]})]}),d&&p.jsx("div",{className:de.status,children:"Loading traces…"}),g&&p.jsxs("div",{className:de.error,children:[p.jsxs("span",{children:[p.jsx(md,{size:12})," ",g]}),p.jsx("button",{className:de.retryBtn,onClick:ee,children:"Retry"})]}),!d&&!g&&_!==!1&&r.length===0&&p.jsx("div",{className:de.status,children:"No traces found."}),!d&&r.length>0&&p.jsx("div",{className:de.traceList,"data-testid":"traces-trace-list",children:r.map(me=>p.jsx(gz,{trace:me,isSelected:U===me.traceId,onClick:()=>he(me)},me.traceId))}),U&&p.jsxs("div",{className:de.traceDetail,children:[p.jsxs("div",{className:de.detailHeader,children:[p.jsx("span",{className:de.detailTitle,children:"Spans"}),p.jsxs("div",{className:de.detailControls,children:[p.jsxs("select",{className:de.quickFilter,value:R,onChange:me=>le(me.target.value),children:[p.jsx("option",{value:"all",children:"All"}),p.jsx("option",{value:"errors",children:"Errors"}),p.jsx("option",{value:"with-tokens",children:"Agent spans"})]}),p.jsx("button",{className:de.closeBtn,onClick:()=>{te(null),b()},"aria-label":"Close detail",children:p.jsx(Ul,{size:12})})]})]}),m&&p.jsx("div",{className:de.status,children:"Loading…"}),!m&&!sa&&!g&&p.jsx("div",{className:de.status,children:"No data found."}),!m&&sa&&Ut.length===0&&R!=="all"&&p.jsx("div",{className:de.status,children:"No matching spans."}),!m&&Ut.length>0&&p.jsx(pz,{roots:Ut,selectedSpanId:V,onSelectSpan:B})]}),rn&&p.jsx(uz,{spanName:rn.name,logs:rn.logs,onClose:()=>B(null)})]})})]})}function Sz({resources:t,sessionId:a,userId:l,onClose:r}){const{data:o,isLoading:u,error:c,fetch:d}=t,[m,g]=z.useState(null),[_,y]=z.useState("resources"),[x,b]=z.useState(620),N=z.useRef(null),O=z.useCallback(k=>{k.preventDefault();const M=te=>{const V=window.innerWidth-te.clientX;b(Math.max(320,Math.min(V,window.innerWidth*.8)))},U=()=>{N.current=null,document.removeEventListener("mousemove",M),document.removeEventListener("mouseup",U),document.body.style.cursor="",document.body.style.userSelect=""};N.current={move:M,up:U},document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",M),document.addEventListener("mouseup",U)},[]);z.useEffect(()=>()=>{N.current&&(document.removeEventListener("mousemove",N.current.move),document.removeEventListener("mouseup",N.current.up),document.body.style.cursor="",document.body.style.userSelect="")},[]);const D=(k,M)=>{g(U=>(U==null?void 0:U.kind)===k&&U.resource.name===M.name?null:{kind:k,resource:M})};return p.jsxs("div",{className:ze.panel,style:{width:x},"data-testid":"resource-panel",children:[p.jsx("div",{className:ze.resizeHandle,onMouseDown:O,role:"separator","aria-label":"Resize panel"}),p.jsxs("div",{className:ze.header,children:[p.jsx("span",{className:ze.projectName,children:(o==null?void 0:o.project)||"Resources"}),p.jsxs("div",{className:ze.headerActions,children:[p.jsx("button",{className:ze.iconBtn,onClick:d,title:"Refresh","aria-label":"Refresh resources",children:p.jsx(hd,{size:12})}),p.jsx("button",{className:ze.iconBtn,onClick:r,title:"Close","aria-label":"Close resource panel",children:p.jsx(Ul,{size:12})})]})]}),p.jsx("div",{className:ze.tabBar,role:"tablist",children:["resources","traces","memories"].map(k=>p.jsx("button",{role:"tab","aria-selected":_===k,className:`${ze.tab} ${_===k?ze.tabActive:""}`,onClick:()=>y(k),children:k.charAt(0).toUpperCase()+k.slice(1)},k))}),p.jsxs("div",{className:ze.body,children:[p.jsxs("div",{className:ze.tabContent,hidden:_!=="resources",children:[u&&!o&&p.jsx("div",{className:ze.status,children:"Loading resources…"}),c&&!o&&p.jsxs("div",{className:ze.error,children:[p.jsxs("span",{children:[p.jsx(md,{size:12})," ",c]}),p.jsx("button",{className:ze.retryBtn,onClick:d,children:"Retry"})]}),o&&p.jsxs("div",{className:ze.graph,children:[o.agents.length>0&&p.jsx(na,{title:"Agents",children:o.agents.map(k=>p.jsx(In,{kind:"agent",name:k.name,subtitle:k.build,isSelected:(m==null?void 0:m.kind)==="agent"&&m.resource.name===k.name,onClick:()=>D("agent",k),connections:kz(k,o.mcpRuntimeTools),deploymentStatus:k.deploymentStatus},k.name))}),(o.harnesses??[]).length>0&&p.jsx(na,{title:"Harnesses",children:(o.harnesses??[]).map(k=>p.jsx(In,{kind:"harness",name:k.name,subtitle:k.modelConfig?`${k.modelConfig.provider}/${k.modelConfig.modelId}`:"",isSelected:(m==null?void 0:m.kind)==="harness"&&m.resource.name===k.name,onClick:()=>D("harness",k),deploymentStatus:k.deploymentStatus},k.name))}),o.memories.length>0&&p.jsx(na,{title:"Memories",children:o.memories.map(k=>p.jsx(In,{kind:"memory",name:k.name,subtitle:k.strategies.map(M=>M.type).join(", "),isSelected:(m==null?void 0:m.kind)==="memory"&&m.resource.name===k.name,onClick:()=>D("memory",k),deploymentStatus:k.deploymentStatus},k.name))}),o.credentials.length>0&&p.jsx(na,{title:"Credentials",children:o.credentials.map(k=>p.jsx(In,{kind:"credential",name:k.name,subtitle:k.type,isSelected:(m==null?void 0:m.kind)==="credential"&&m.resource.name===k.name,onClick:()=>D("credential",k),deploymentStatus:k.deploymentStatus},k.name))}),o.gateways.length>0&&p.jsx(na,{title:"Gateways",children:o.gateways.map(k=>p.jsxs("div",{children:[p.jsx(In,{kind:"gateway",name:k.name,subtitle:`${k.targets.length} target(s)`,isSelected:(m==null?void 0:m.kind)==="gateway"&&m.resource.name===k.name,onClick:()=>D("gateway",k),deploymentStatus:k.deploymentStatus}),k.targets.map(M=>p.jsx("div",{className:ze.childNode,children:p.jsx(In,{kind:"gatewayTarget",name:M.name,subtitle:M.targetType,isSelected:(m==null?void 0:m.kind)==="gatewayTarget"&&m.resource.name===M.name,onClick:()=>D("gatewayTarget",M)})},M.name))]},k.name))}),o.mcpRuntimeTools.length>0&&p.jsx(na,{title:"MCP Runtime Tools",children:o.mcpRuntimeTools.map(k=>p.jsx(In,{kind:"mcpTool",name:k.name,subtitle:k.bindings.map(M=>M.runtimeName).join(", "),isSelected:(m==null?void 0:m.kind)==="mcpTool"&&m.resource.name===k.name,onClick:()=>D("mcpTool",k),connections:k.bindings.map(M=>`→ ${M.runtimeName}`),deploymentStatus:k.deploymentStatus},k.name))}),o.evaluators.length>0&&p.jsx(na,{title:"Evaluators",children:o.evaluators.map(k=>p.jsx(In,{kind:"evaluator",name:k.name,subtitle:`${k.level} — ${k.configType}`,isSelected:(m==null?void 0:m.kind)==="evaluator"&&m.resource.name===k.name,onClick:()=>D("evaluator",k),deploymentStatus:k.deploymentStatus},k.name))}),o.onlineEvalConfigs.length>0&&p.jsx(na,{title:"Online Eval Configs",children:o.onlineEvalConfigs.map(k=>{var M;return p.jsx(In,{kind:"onlineEval",name:k.name,subtitle:`${((M=k.evaluators)==null?void 0:M.length)??0} evaluator(s), ${k.samplingRate}% sampling`,isSelected:(m==null?void 0:m.kind)==="onlineEval"&&m.resource.name===k.name,onClick:()=>D("onlineEval",k),connections:[`→ ${k.agent}`],deploymentStatus:k.deploymentStatus},k.name)})}),o.policyEngines.length>0&&p.jsx(na,{title:"Policy Engines",children:o.policyEngines.map(k=>p.jsxs("div",{children:[p.jsx(In,{kind:"policyEngine",name:k.name,subtitle:`${k.policies.length} polic${k.policies.length!==1?"ies":"y"}`,isSelected:(m==null?void 0:m.kind)==="policyEngine"&&m.resource.name===k.name,onClick:()=>D("policyEngine",k),deploymentStatus:k.deploymentStatus}),k.policies.map(M=>p.jsx("div",{className:ze.childNode,children:p.jsx(In,{kind:"policy",name:M.name,subtitle:M.description,isSelected:(m==null?void 0:m.kind)==="policy"&&m.resource.name===M.name,onClick:()=>D("policy",M),deploymentStatus:M.deploymentStatus})},M.name))]},k.name))}),o.unassignedTargets.length>0&&p.jsx(na,{title:"Unassigned Targets",children:o.unassignedTargets.map(k=>p.jsx(In,{kind:"unassignedTarget",name:k.name,subtitle:k.targetType,isSelected:(m==null?void 0:m.kind)==="unassignedTarget"&&m.resource.name===k.name,onClick:()=>D("unassignedTarget",k)},k.name))})]}),m&&p.jsxs("div",{className:ze.infoCard,children:[p.jsxs("div",{className:ze.infoHeader,children:[p.jsx("span",{className:`${ze.kindBadge} ${ze[m.kind]}`,children:Nz(m.kind)}),p.jsx("span",{className:ze.infoName,children:m.resource.name})]}),p.jsxs("div",{className:ze.infoBody,children:[Object.entries(m.resource).filter(([k,M])=>k!=="deployed"&&!Tz(M)).map(([k,M])=>p.jsxs("div",{className:ze.infoRow,children:[p.jsx("span",{className:ze.infoKey,children:k}),p.jsx("span",{className:ze.infoValue,children:Qy(M)})]},k)),"deployed"in m.resource&&m.resource.deployed!==null&&p.jsxs(p.Fragment,{children:[p.jsx("div",{className:ze.infoSectionHeader,children:"Deployed State"}),Object.entries(m.resource.deployed).map(([k,M])=>p.jsxs("div",{className:ze.infoRow,children:[p.jsx("span",{className:ze.infoKey,children:k}),p.jsx("span",{className:ze.infoValue,children:Qy(M)})]},k))]})]})]})]}),p.jsx("div",{className:ze.tabContent,hidden:_!=="traces",children:p.jsx(bz,{agents:(o==null?void 0:o.agents)??[],harnesses:(o==null?void 0:o.harnesses)??[],isActive:_==="traces"})}),p.jsx("div",{className:ze.tabContent,hidden:_!=="memories",children:p.jsx(_3,{memories:(o==null?void 0:o.memories)??[],sessionId:a,userId:l,isActive:_==="memories"})})]})]})}function na({title:t,children:a}){return p.jsxs("div",{className:ze.section,children:[p.jsx("div",{className:ze.sectionTitle,children:t}),a]})}function kz(t,a){const l=[];for(const r of a)r.bindings.some(o=>o.runtimeName===t.name)&&l.push(`← ${r.name}`);return l}function Tz(t){return!!(t===null||t===""||t===void 0||Array.isArray(t)&&t.length===0)}function Qy(t){if(t==null)return"—";if(Array.isArray(t))return t.map(l=>typeof l=="object"?JSON.stringify(l):l).join(", ")||"—";if(typeof t=="object")return JSON.stringify(t);const a=String(t);return a===""?"—":a}function Nz(t){return{agent:"Agent",harness:"Harness",memory:"Memory",credential:"Credential",gateway:"Gateway",gatewayTarget:"Target",mcpTool:"MCP Tool",evaluator:"Evaluator",onlineEval:"Online Eval",policyEngine:"Policy Engine",policy:"Policy",unassignedTarget:"Unassigned Target"}[t]}const Ez="_body_sadpk_1",Cz="_interactionsList_sadpk_9",Az="_interactionItem_sadpk_17",jz="_interactionItemSelected_sadpk_36",wz="_interactionPrompt_sadpk_41",Mz="_interactionMeta_sadpk_49",zz="_interactionTraceId_sadpk_55",Rz="_interactionTime_sadpk_61",Oz="_interactionSpanCount_sadpk_66",Dz="_rightArea_sadpk_75",Lz="_waterfall_sadpk_84",Bz="_userPromptRow_sadpk_90",Iz="_userPromptText_sadpk_101",Uz="_waterfallRow_sadpk_108",Hz="_waterfallRowSelected_sadpk_122",qz="_spanIcon_sadpk_128",Vz="_spanLabel_sadpk_135",Gz="_barContainer_sadpk_145",$z="_bar_sadpk_145",Zz="_barInvocation_sadpk_160",Yz="_barAgent_sadpk_164",Fz="_barLlm_sadpk_168",Xz="_barTool_sadpk_172",Qz="_barOther_sadpk_176",Kz="_duration_sadpk_180",Jz="_detailPane_sadpk_190",Pz="_detailHeader_sadpk_197",Wz="_iconBtn_sadpk_209",eR="_tabBar_sadpk_224",tR="_tab_sadpk_224",nR="_tabActive_sadpk_244",aR="_detailBody_sadpk_249",lR="_attrTable_sadpk_254",iR="_attrKey_sadpk_265",rR="_attrValue_sadpk_273",sR="_emptyState_sadpk_280",Ue={body:Ez,interactionsList:Cz,interactionItem:Az,interactionItemSelected:jz,interactionPrompt:wz,interactionMeta:Mz,interactionTraceId:zz,interactionTime:Rz,interactionSpanCount:Oz,rightArea:Dz,waterfall:Lz,userPromptRow:Bz,userPromptText:Iz,waterfallRow:Uz,waterfallRowSelected:Hz,spanIcon:qz,spanLabel:Vz,barContainer:Gz,bar:$z,barInvocation:Zz,barAgent:Yz,barLlm:Fz,barTool:Xz,barOther:Qz,duration:Kz,detailPane:Jz,detailHeader:Pz,iconBtn:Wz,tabBar:eR,tab:tR,tabActive:nR,detailBody:aR,attrTable:lR,attrKey:iR,attrValue:rR,emptyState:sR};function oR({invocations:t,selectedTraceId:a,onSelect:l}){return t.length===0?p.jsx("div",{className:Ue.emptyState,children:"No interactions yet"}):p.jsx("div",{className:Ue.interactionsList,"data-testid":"trace-list",children:t.map(r=>p.jsxs("button",{className:`${Ue.interactionItem} ${a===r.traceId?Ue.interactionItemSelected:""}`,onClick:()=>l(r.traceId),"aria-label":`Trace ${r.traceId}`,children:[r.userPrompt&&p.jsx("span",{className:Ue.interactionPrompt,title:r.userPrompt,children:r.userPrompt}),p.jsxs("div",{className:Ue.interactionMeta,children:[p.jsxs("span",{className:Ue.interactionTraceId,children:[r.traceId.slice(0,12),"..."]}),p.jsx("span",{className:Ue.interactionSpanCount,children:r.spanCount})]}),p.jsx("span",{className:Ue.interactionTime,children:Po(r.timestamp)})]},r.traceId))})}function jo(t){if(typeof t=="string"){const a=Nn(t);return typeof a!="string"?jo(a)??t:t}if(Array.isArray(t)){const a=t.filter(l=>l.text).map(l=>String(l.text));if(a.length>0)return a.join(" ")}return null}function b1(t){var l;for(const r of t){if(!((l=r.name)!=null&&l.startsWith("invoke_agent")))continue;const o=r.events;if(o)for(const u of o){if(u.name!=="gen_ai.user.message")continue;const c=Yr(u.attributes),d=jo(c.content);if(d)return d}}let a=null;for(const r of t){const o=r.events;if(o)for(const u of o){if(u.name!=="gen_ai.user.message")continue;const c=Yr(u.attributes),d=jo(c.content);d&&(a=d)}}if(a)return a;for(const r of t){const o=r.attributes??{};if(o["gen_ai.content.prompt"]){const u=jo(o["gen_ai.content.prompt"]);if(u)return u}}for(const r of t){const o=r.attributes??{};if(o["gen_ai.input.messages"]){const u=o["gen_ai.input.messages"],c=typeof u=="string"?Nn(u):u;if(Array.isArray(c)){const d=c.find(m=>m.role==="user");if(d!=null&&d.parts&&Array.isArray(d.parts)){const m=d.parts.filter(g=>g.type==="text"&&g.content).map(g=>String(g.content));if(m.length>0)return m.join(" ")}}}}return null}function uR(t){switch(t){case 1:return"SERVER";case 2:return"CLIENT";case 3:return"PRODUCER";case 4:return"CONSUMER";default:return"INTERNAL"}}function cR(t){var u;const a={...t.attributes??{}},l=Vt(t.startTimeUnixNano),o=Vt(t.endTimeUnixNano)-l;return{attributes:a,status:t.status,kind:t.type==="span"?uR(t.kind):void 0,scope:(u=t.scope)==null?void 0:u.name,duration:o>0?`${o}ms`:void 0}}function fR(t){const a=t.events;if(a){let r=null;for(const o of a){const u=o.name,c=Yr(o.attributes);u==="gen_ai.user.message"&&(r={type:"genai",content:Nn(c.content)??c.content})}if(r)return r}const l=t.attributes??{};return l["gen_ai.content.prompt"]?{type:"genai",content:Nn(l["gen_ai.content.prompt"])}:l["gen_ai.tool.call.arguments"]?{type:"tool",content:Nn(l["gen_ai.tool.call.arguments"])}:l["gen_ai.input.messages"]?{type:"genai",content:Nn(l["gen_ai.input.messages"])}:l["gen_ai.task.input"]?{type:"raw",content:Nn(l["gen_ai.task.input"])}:t.type==="log"&&t.body?{type:"raw",content:t.body}:null}function dR(t){const a=t.events;if(a){let r=null;for(const o of a){const u=o.name,c=Yr(o.attributes);u==="gen_ai.choice"&&(r={type:"genai",content:Nn(c.message)??c})}if(r)return r}const l=t.attributes??{};if(l["tool.name"]&&a){for(const r of a)if(r.name==="gen_ai.tool.message"){const u=Yr(r.attributes);return{type:"tool",content:Nn(u.content)??u.content}}}return l["gen_ai.content.completion"]?{type:"genai",content:Nn(l["gen_ai.content.completion"])}:l["gen_ai.tool.call.result"]?{type:"tool",content:Nn(l["gen_ai.tool.call.result"])}:l["gen_ai.output.messages"]?{type:"genai",content:Nn(l["gen_ai.output.messages"])}:l["gen_ai.task.output"]?{type:"raw",content:Nn(l["gen_ai.task.output"])}:null}function hR({span:t,onClose:a}){const[l,r]=z.useState("event");return p.jsxs("div",{className:Ue.detailPane,children:[p.jsxs("div",{className:Ue.detailHeader,children:[p.jsx("div",{className:Ue.tabBar,children:["event","request","response"].map(o=>p.jsx("button",{className:`${Ue.tab} ${l===o?Ue.tabActive:""}`,onClick:()=>r(o),children:o.charAt(0).toUpperCase()+o.slice(1)},o))}),p.jsx("button",{className:Ue.iconBtn,onClick:a,"aria-label":"Close detail",children:p.jsx(Ul,{size:14})})]}),p.jsxs("div",{className:Ue.detailBody,children:[l==="event"&&p.jsx(mR,{span:t}),l==="request"&&p.jsx(pR,{span:t}),l==="response"&&p.jsx(gR,{span:t})]})]})}function mR({span:t}){const a=cR(t),l=[];t.name&&l.push(["name",t.name]),a.kind&&l.push(["kind",a.kind]),a.scope&&l.push(["scope",a.scope]),a.duration&&l.push(["duration",a.duration]),a.status&&(l.push(["status.code",String(a.status.code??"OK")]),a.status.message&&l.push(["status.message",a.status.message]));const r=new Set(l.map(([o])=>o));for(const[o,u]of Object.entries(a.attributes))u!=null&&!r.has(o)&&l.push([o,typeof u=="object"?JSON.stringify(u):String(u)]);return l.length===0?p.jsx("div",{className:Ue.emptyState,children:"No event data"}):p.jsx("table",{className:Ue.attrTable,children:p.jsx("tbody",{children:l.map(([o,u])=>p.jsxs("tr",{children:[p.jsx("td",{className:Ue.attrKey,children:o}),p.jsx("td",{className:Ue.attrValue,children:u})]},o))})})}function pR({span:t}){const a=fR(t);return a?a.type==="genai"&&Array.isArray(a.content)?p.jsx(Ld,{content:a.content}):p.jsx(Dd,{body:a.content}):p.jsx("div",{className:Ue.emptyState,children:"No request data"})}function gR({span:t}){const a=dR(t);return a?a.type==="genai"&&Array.isArray(a.content)?p.jsx(Ld,{content:a.content}):p.jsx(Dd,{body:a.content}):p.jsx("div",{className:Ue.emptyState,children:"No response data"})}const yR=16,_R={invocation:p.jsx(pd,{size:12}),agent:p.jsx(Rx,{size:12}),llm:p.jsx(Yx,{size:12}),tool:p.jsx(Ra,{size:12}),other:p.jsx(Tx,{size:10})},vR={invocation:Ue.barInvocation,agent:Ue.barAgent,llm:Ue.barLlm,tool:Ue.barTool,other:Ue.barOther};function xR({tree:t,selectedSpanId:a,onSelectSpan:l,userPrompt:r}){const o=Fj(Xj(t));return o.length===0?p.jsx("div",{className:Ue.emptyState,children:"No spans"}):p.jsxs("div",{className:Ue.waterfall,children:[r&&p.jsxs("div",{className:Ue.userPromptRow,children:[p.jsx("span",{className:Ue.spanIcon,children:p.jsx(ab,{size:12})}),p.jsx("span",{className:Ue.userPromptText,title:r,children:r})]}),o.map((u,c)=>p.jsx(bR,{entry:u,isSelected:a===u.node.span.spanId,onSelect:()=>l(u.node.span)},u.node.span.spanId??c))]})}function bR({entry:t,isSelected:a,onSelect:l}){var _;const{node:r,offsetPercent:o,widthPercent:u}=t,c=Kj(r.span),d=_R[c],m=vR[c],g=r.span.name||((_=r.span.scope)==null?void 0:_.name)||"span";return p.jsxs("div",{className:`${Ue.waterfallRow} ${a?Ue.waterfallRowSelected:""}`,style:{paddingLeft:`${10+r.depth*yR}px`},onClick:l,role:"button",tabIndex:0,onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&l()},children:[p.jsx("span",{className:Ue.spanIcon,children:d}),p.jsx("span",{className:Ue.spanLabel,title:g,children:g}),p.jsx("div",{className:Ue.barContainer,children:p.jsx("div",{className:`${Ue.bar} ${m}`,style:{left:`${o}%`,width:`${u}%`}})}),p.jsx("span",{className:Ue.duration,children:Od(r.durationMs)})]})}function SR({traces:t}){const{invocations:a,selectedInvocation:l,isLoading:r,selectTrace:o,refresh:u}=t,[c,d]=z.useState(null);return z.useEffect(()=>{d(null)},[l==null?void 0:l.traceId]),p.jsx(Yo,{title:"Timeline view",status:r?"Loading...":void 0,onRefresh:u,children:p.jsxs("div",{className:Ue.body,children:[p.jsx(oR,{invocations:a,selectedTraceId:(l==null?void 0:l.traceId)??null,onSelect:o}),p.jsxs("div",{className:Ue.rightArea,children:[!l&&a.length>0&&p.jsx("div",{className:Ue.emptyState,children:"Select an interaction to view"}),l&&p.jsxs(p.Fragment,{children:[p.jsx(xR,{tree:l.tree,selectedSpanId:(c==null?void 0:c.spanId)??null,onSelectSpan:d,userPrompt:l.userPrompt}),c&&p.jsx(hR,{span:c,onClose:()=>d(null)})]})]})]})})}const kR="_error_1vxci_1",TR="_toolListItems_1vxci_7",NR="_toolItem_1vxci_14",ER="_toolItemSelected_1vxci_34",CR="_toolName_1vxci_39",AR="_toolDesc_1vxci_45",jR="_toolForm_1vxci_53",wR="_toolFormHeader_1vxci_58",MR="_toolFormDesc_1vxci_66",zR="_noParams_1vxci_72",RR="_field_1vxci_78",OR="_fieldLabel_1vxci_82",DR="_fieldType_1vxci_92",LR="_fieldInput_1vxci_98",BR="_fieldTextarea_1vxci_115",IR="_fieldHint_1vxci_122",UR="_callBtn_1vxci_128",HR="_spinning_1vxci_153",wt={error:kR,toolListItems:TR,toolItem:NR,toolItemSelected:ER,toolName:CR,toolDesc:AR,toolForm:jR,toolFormHeader:wR,toolFormDesc:MR,noParams:zR,field:RR,fieldLabel:OR,fieldType:DR,fieldInput:LR,fieldTextarea:BR,fieldHint:IR,callBtn:UR,spinning:HR};function qR(t,a){if(a.type==="integer"){const l=parseInt(t,10);return Number.isNaN(l)?0:l}if(a.type==="number"){const l=parseFloat(t);return Number.isNaN(l)?0:l}if(a.type==="boolean")return t==="true";if(a.type==="object"||a.type==="array")try{return JSON.parse(t)}catch{return t}return t}function VR(t){return t.type==="integer"||t.type==="number"?"number":"text"}function GR({tool:t,isCalling:a,onCall:l}){var g,_;const r=((g=t.inputSchema)==null?void 0:g.properties)??{},o=new Set(((_=t.inputSchema)==null?void 0:_.required)??[]),u=Object.keys(r),[c,d]=z.useState(()=>{const y={};for(const x of u){const b=r[x];y[x]=b.default!==void 0?String(b.default):""}return y}),m=y=>{y.preventDefault();const x={};for(const b of u){const N=c[b];N===""&&!o.has(b)||(x[b]=qR(N,r[b]))}l(t.name,x)};return p.jsxs("form",{className:wt.toolForm,onSubmit:m,children:[p.jsx("div",{className:wt.toolFormHeader,children:t.name}),t.description&&p.jsx("div",{className:wt.toolFormDesc,children:t.description}),u.length===0&&p.jsx("div",{className:wt.noParams,children:"No parameters"}),u.map(y=>{const x=r[y],b=o.has(y);return p.jsxs("div",{className:wt.field,children:[p.jsxs("label",{className:wt.fieldLabel,children:[y,p.jsxs("span",{className:wt.fieldType,children:[x.type,b?", required":""]})]}),x.enum?p.jsxs("select",{className:wt.fieldInput,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),children:[p.jsx("option",{value:"",children:"Select..."}),x.enum.map(N=>p.jsx("option",{value:N,children:N},N))]}):x.type==="boolean"?p.jsxs("select",{className:wt.fieldInput,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),children:[p.jsx("option",{value:"",children:"Select..."}),p.jsx("option",{value:"true",children:"true"}),p.jsx("option",{value:"false",children:"false"})]}):x.type==="object"||x.type==="array"?p.jsx("textarea",{className:`${wt.fieldInput} ${wt.fieldTextarea}`,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),placeholder:"JSON",rows:3}):p.jsx("input",{className:wt.fieldInput,type:VR(x),value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),placeholder:x.description??""}),x.description&&p.jsx("div",{className:wt.fieldHint,children:x.description})]},y)}),p.jsx("button",{type:"submit",className:wt.callBtn,disabled:a,children:a?p.jsxs(p.Fragment,{children:[p.jsx(o_,{size:14,className:wt.spinning}),"Calling..."]}):"Call Tool"})]})}function $R({tools:t,isLoading:a,error:l,onRefresh:r,onCallTool:o,onToolCallMessage:u}){const[c,d]=z.useState(null),[m,g]=z.useState(!1),_=t.find(x=>x.name===c),y=async(x,b)=>{var D;g(!0);const N=Object.keys(b).length>0?`(${JSON.stringify(b)})`:"()",O=`Called ${x}${N}`;try{const k=await o(x,b),M=((D=k.content)==null?void 0:D.filter(te=>te.text!==void 0).map(te=>te.text))??[],U=M.length>0?M.join(`
279
+ `)}function Aw(t){return t.isError?rt.bodyError:t.role==="user"?rt.bodyUser:rt.bodyAssistant}const jw=z.forwardRef(({messages:t,isStreaming:a,isStarting:l,agentName:r,agentBuildType:o,agentProtocol:u,hasAvailableTargets:c=!0,isDeployed:d=!1},m)=>{if(l)return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.spinner}),p.jsxs("div",{className:rt.startingText,children:["Setting up ",r||"agent",p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."})]})]})});if(t.length===0){if(!c)return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.emptyStateIcon,children:p.jsx(Gf,{size:40,strokeWidth:1.5,color:"#6366f1"})}),p.jsx("div",{className:rt.emptyStateAgent,children:"No agents found"}),p.jsxs("div",{className:rt.emptyStateText,children:["Run ",p.jsx("code",{className:"cmd",children:"agentcore add"})," to add an agent or harness"]})]})});const _=[o==="CodeZip"?"Direct code deploy":o,u??"HTTP"].filter(Boolean).join(" · ");return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:p.jsxs("div",{className:rt.emptyState,children:[p.jsx("div",{className:rt.emptyStateIcon,children:p.jsx(Gf,{size:40,strokeWidth:1.5,color:"#6366f1"})}),p.jsx("div",{className:rt.emptyStateAgent,children:r||"Agent"}),p.jsx("div",{className:`${rt.emptyStateBadge} ${d?rt.deployed:rt.local}`,children:d?"DEPLOYED":"LOCAL"}),_&&p.jsx("div",{className:rt.emptyStateDetails,children:_}),p.jsx("div",{className:rt.emptyStateText,children:d?"Send a prompt to invoke this deployed agent":"Send a prompt to test this agent locally"})]})})}return p.jsx("div",{className:rt.messages,ref:m,"data-testid":"message-list",children:t.map((g,_)=>a&&g.role==="assistant"&&g.content===""&&_===t.length-1?p.jsx("div",{className:rt.msg,"data-testid":"thinking-indicator",children:p.jsxs("div",{className:rt.thinking,children:["Thinking",p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."}),p.jsx("span",{className:rt.thinkingDot,children:"."})]})},_):p.jsxs("div",{className:g.role==="user"?rt.msgUser:rt.msg,"data-testid":`chat-message-${_}`,children:[p.jsx("div",{className:Aw(g),children:g.isError?p.jsx(Zf,{content:g.content}):g.role==="assistant"?p.jsx(Ij,{content:g.toolExecutions?Cw(g.content):g.content}):g.content}),g.toolCalls&&g.toolCalls.length>0&&p.jsx(ow,{toolCalls:g.toolCalls}),g.toolExecutions&&Object.keys(g.toolExecutions).length>0&&p.jsx(i2,{toolExecutions:g.toolExecutions}),g.tokenUsage&&p.jsx(Zj,{usage:g.tokenUsage})]},_))})});function ww(){const a=new URLSearchParams(window.location.search).get("port");return a&&/^\d+$/.test(a)?`http://localhost:${a}`:""}const Hn=ww();function pn(t,a){if((a==null?void 0:a.method)==="POST"){const l=new Headers(a.headers);return l.set("X-Agentcore-Local","1"),fetch(t,{...a,headers:l})}return fetch(t,a)}function Mw(){const[t,a]=z.useState([]),[l,r]=z.useState(!1),[o,u]=z.useState(null),[c,d]=z.useState(null),m=z.useCallback(async()=>{try{return(await pn(`${Hn}/api/memory?memoryName=__probe__&namespace=__probe__`)).status===404?(d(!1),!1):(d(!0),!0)}catch{return d(!1),!1}},[]),g=z.useCallback(async(x,b)=>{r(!0),u(null),a([]);try{const N=new URLSearchParams({memoryName:x,namespace:b}),O=await pn(`${Hn}/api/memory?${N.toString()}`);if(O.status===404){u("Memory browsing is only available in invoke mode."),d(!1);return}const D=await O.json();D.success&&D.records?a(D.records):u(D.error||"Failed to load memory records")}catch(N){u(N instanceof Error?N.message:"Failed to load memory records")}finally{r(!1)}},[]),_=z.useCallback(async(x,b,N)=>{r(!0),u(null),a([]);try{const O={memoryName:x,namespace:b,searchQuery:N},D=await pn(`${Hn}/api/memory/search`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(O)});if(D.status===404){u("Memory browsing is only available in invoke mode."),d(!1);return}const k=await D.json();k.success&&k.records?a(k.records):u(k.error||"Failed to search memory records")}catch(O){u(O instanceof Error?O.message:"Failed to search memory records")}finally{r(!1)}},[]),y=z.useCallback(()=>{a([]),u(null)},[]);return{records:t,isLoading:l,error:o,isAvailable:c,checkAvailability:m,listRecords:g,searchRecords:_,clear:y}}function Po(t){try{const a=Number(t),l=Number.isFinite(a)&&a>1e12?new Date(a):new Date(t);return isNaN(l.getTime())?t:l.toLocaleString(void 0,{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return t}}const zw="_notice_1isal_1",Rw="_warning_1isal_12",Ow="_retryBtn_1isal_16",Hf={notice:zw,warning:Rw,retryBtn:Ow};function qy({children:t,variant:a="error",onRetry:l}){return p.jsxs("div",{className:`${Hf.notice} ${a==="warning"?Hf.warning:""}`,children:[t,l&&p.jsx("button",{className:Hf.retryBtn,onClick:l,children:"Retry"})]})}const Dw="_container_qogk5_1",Lw="_content_qogk5_47",Bw="_status_qogk5_55",Iw="_error_qogk5_62",Uw="_detail_qogk5_73",Hw="_detailHeader_qogk5_80",qw="_detailTitle_qogk5_89",Vw="_closeBtn_qogk5_95",Gw="_controls_qogk5_118",$w="_field_qogk5_124",Zw="_fieldLabel_qogk5_130",Yw="_input_qogk5_138",Fw="_select_qogk5_158",Xw="_actions_qogk5_175",Qw="_actionBtn_qogk5_180",Kw="_searchBtn_qogk5_202",Jw="_resultCount_qogk5_213",Pw="_recordList_qogk5_219",Ww="_recordRow_qogk5_228",e3="_recordRowSelected_qogk5_248",t3="_recordMain_qogk5_254",n3="_recordContent_qogk5_261",a3="_scoreBadge_qogk5_271",l3="_recordMeta_qogk5_281",i3="_strategyTag_qogk5_288",r3="_recordTime_qogk5_296",s3="_detailBody_qogk5_302",o3="_detailSection_qogk5_309",u3="_detailLabel_qogk5_315",c3="_detailContent_qogk5_322",f3="_metadataGrid_qogk5_335",d3="_metadataRow_qogk5_341",h3="_metadataKey_qogk5_354",m3="_metadataValue_qogk5_361",p3="_detailId_qogk5_370",g3="_namespacesValue_qogk5_377",y3="_noMetadata_qogk5_383",xe={container:Dw,content:Lw,status:Bw,error:Iw,detail:Uw,detailHeader:Hw,detailTitle:qw,closeBtn:Vw,controls:Gw,field:$w,fieldLabel:Zw,input:Yw,select:Fw,actions:Xw,actionBtn:Qw,searchBtn:Kw,resultCount:Jw,recordList:Pw,recordRow:Ww,recordRowSelected:e3,recordMain:t3,recordContent:n3,scoreBadge:a3,recordMeta:l3,strategyTag:i3,recordTime:r3,detailBody:s3,detailSection:o3,detailLabel:u3,detailContent:c3,metadataGrid:f3,metadataRow:d3,metadataKey:h3,metadataValue:m3,detailId:p3,namespacesValue:g3,noMetadata:y3};function _3({memories:t,sessionId:a,userId:l,isActive:r}){var he;const{records:o,isLoading:u,error:c,isAvailable:d,checkAvailability:m,listRecords:g,searchRecords:_,clear:y}=Mw(),[x,b]=z.useState(((he=t[0])==null?void 0:he.name)??""),[N,O]=z.useState(""),[D,k]=z.useState({}),[M,U]=z.useState(""),[te,V]=z.useState(null),[B,R]=z.useState(!1),[le,oe]=z.useState(!1),w=z.useRef(!1);z.useEffect(()=>{!x&&t.length>0&&b(t[0].name)},[t,x]);const P=t.find(Q=>Q.name===x),ae=(P==null?void 0:P.strategies)??[],pe=ae.find(Q=>Q.type===N),ne=(pe==null?void 0:pe.namespaceTemplates)??(pe==null?void 0:pe.namespaces)??[],Y=z.useMemo(()=>pe?[...new Set(ne.flatMap(Q=>(Q.match(/\{(\w+)\}/g)||[]).map(Be=>Be.slice(1,-1))))]:[],[pe]);z.useEffect(()=>{r&&d===null&&m()},[r,d,m]),z.useEffect(()=>{if(!pe){k({});return}const Q={};for(const ge of Y)ge==="actorId"?Q[ge]=l||"default-user":ge==="sessionId"&&a?Q[ge]=a:Q[ge]="";k(Q)},[pe,Y,a,l]);const I=Q=>{b(Q),O(""),V(null),oe(!1),y()},J=Q=>{O(Q),V(null),oe(!1),y()},ue=(Q,ge)=>{k(Be=>({...Be,[Q]:ge}))},Te=()=>pe?ne.map(Q=>Q.replace(/\{(\w+)\}/g,(ge,Be)=>{var ce;return((ce=D[Be])==null?void 0:ce.trim())||""})).join(","):"",E=pe!=null&&Y.every(Q=>{var ge;return(ge=D[Q])==null?void 0:ge.trim()}),C=()=>{E&&(R(!1),V(null),oe(!0),g(x,Te()))},Z=()=>{!E||!M.trim()||(R(!0),V(null),oe(!0),_(x,Te(),M.trim()))},T=Q=>{Q.key==="Enter"&&!w.current&&(M.trim()?Z():C())},ee=Q=>{V(ge=>(ge==null?void 0:ge.memoryRecordId)===Q.memoryRecordId?null:Q)};return t.length===0?p.jsxs("div",{className:xe.status,children:[p.jsx("div",{children:"No AgentCore Memory found."}),p.jsxs("div",{children:["Run ",p.jsx("code",{className:"cmd",children:"agentcore add"})," to add Memory, then"," ",p.jsx("code",{className:"cmd",children:"agentcore deploy"})," to deploy it."]})]}):p.jsx("div",{className:xe.container,children:p.jsxs("div",{className:xe.content,children:[t.some(Q=>Q.deploymentStatus!=="deployed")&&p.jsxs(qy,{variant:"warning",children:[p.jsx("span",{children:"AgentCore Memory must be deployed before it can be used."}),p.jsxs("span",{children:["To test memory, run ",p.jsx("code",{className:"cmd",children:"agentcore deploy"})," and restart dev."]})]}),t.some(Q=>Q.deploymentStatus==="deployed")&&p.jsx(qy,{variant:"warning",children:"Memories may take 1-2 minutes to update after an invocation."}),d!==!1&&p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:xe.controls,children:[p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:"memory-selector",children:"Memory"}),p.jsx("select",{id:"memory-selector",className:xe.select,value:x,onChange:Q=>I(Q.target.value),children:t.map(Q=>p.jsx("option",{value:Q.name,children:Q.name},Q.name))})]}),p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`strat-${x}`,children:"Strategy"}),p.jsxs("select",{id:`strat-${x}`,className:xe.select,value:N,onChange:Q=>J(Q.target.value),children:[p.jsx("option",{value:"",disabled:!0,children:"Select a strategy…"}),ae.map(Q=>p.jsx("option",{value:Q.type,children:Q.type},Q.type))]})]}),Y.map(Q=>p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`ns-${x}-${Q}`,children:Q}),p.jsx("input",{id:`ns-${x}-${Q}`,className:xe.input,type:"text",placeholder:`Enter ${Q}…`,value:D[Q]||"",onChange:ge=>ue(Q,ge.target.value),onKeyDown:T,onCompositionStart:()=>{w.current=!0},onCompositionEnd:()=>{w.current=!1}})]},Q)),pe&&p.jsxs(p.Fragment,{children:[p.jsxs("div",{className:xe.field,children:[p.jsx("label",{className:xe.fieldLabel,htmlFor:`search-${x}`,children:"Search (optional)"}),p.jsx("input",{id:`search-${x}`,className:xe.input,type:"text",placeholder:"Semantic search query…",value:M,onChange:Q=>U(Q.target.value),onKeyDown:T,onCompositionStart:()=>{w.current=!0},onCompositionEnd:()=>{w.current=!1}})]}),p.jsxs("div",{className:xe.actions,children:[p.jsx("button",{className:xe.actionBtn,onClick:C,disabled:!E||u,children:"List"}),p.jsx("button",{className:`${xe.actionBtn} ${xe.searchBtn}`,onClick:Z,disabled:!E||!M.trim()||u,children:"Search"})]})]})]}),u&&p.jsx("div",{className:xe.status,children:"Loading records…"}),c&&p.jsx("div",{className:xe.error,children:p.jsxs("span",{children:[p.jsx(md,{size:12})," ",c]})}),!u&&!c&&le&&o.length===0&&p.jsx("div",{className:xe.status,children:"No memory records found for this namespace."}),!u&&o.length>0&&p.jsxs("div",{className:xe.recordList,children:[p.jsxs("div",{className:xe.resultCount,children:[o.length," record",o.length!==1?"s":"",B?" (search results)":""]}),o.map(Q=>p.jsx(v3,{record:Q,isSelected:(te==null?void 0:te.memoryRecordId)===Q.memoryRecordId,showScore:B,onClick:()=>ee(Q)},Q.memoryRecordId))]}),te&&p.jsx(x3,{record:te,onClose:()=>V(null)})]})]})})}function v3({record:t,isSelected:a,showScore:l,onClick:r}){const o=t.content?t.content.length>120?t.content.slice(0,120)+"…":t.content:"(no content)";return p.jsxs("button",{className:`${xe.recordRow} ${a?xe.recordRowSelected:""}`,onClick:r,"aria-label":`Memory record ${t.memoryRecordId}`,children:[p.jsxs("div",{className:xe.recordMain,children:[p.jsx("span",{className:xe.recordContent,children:o}),l&&t.score!==null&&t.score!==void 0&&p.jsx("span",{className:xe.scoreBadge,children:t.score.toFixed(3)})]}),p.jsxs("div",{className:xe.recordMeta,children:[p.jsx("span",{className:xe.strategyTag,children:t.memoryStrategyId}),p.jsx("span",{className:xe.recordTime,children:Po(t.createdAt)})]})]})}function x3({record:t,onClose:a}){const l=Object.entries(t.metadata||{});return p.jsxs("div",{className:xe.detail,children:[p.jsxs("div",{className:xe.detailHeader,children:[p.jsx("span",{className:xe.detailTitle,children:"Record Detail"}),p.jsx("button",{className:xe.closeBtn,onClick:a,"aria-label":"Close record detail",children:p.jsx(Ul,{size:12})})]}),p.jsxs("div",{className:xe.detailBody,children:[p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"ID"}),p.jsx("span",{className:xe.detailId,children:t.memoryRecordId})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Content"}),p.jsx("div",{className:xe.detailContent,children:t.content||"(no content)"})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Strategy"}),p.jsx("span",{className:xe.strategyTag,children:t.memoryStrategyId})]}),p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Created"}),p.jsx("span",{className:xe.recordTime,children:Po(t.createdAt)})]}),t.score!==null&&t.score!==void 0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Relevance Score"}),p.jsx("span",{className:xe.scoreBadge,children:t.score.toFixed(4)})]}),t.namespaces.length>0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Namespaces"}),p.jsx("span",{className:xe.namespacesValue,children:t.namespaces.join(", ")})]}),l.length>0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Metadata"}),p.jsx("div",{className:xe.metadataGrid,children:l.map(([r,o])=>p.jsxs("div",{className:xe.metadataRow,children:[p.jsx("span",{className:xe.metadataKey,children:r}),p.jsx("span",{className:xe.metadataValue,children:o})]},r))})]}),l.length===0&&p.jsxs("div",{className:xe.detailSection,children:[p.jsx("span",{className:xe.detailLabel,children:"Metadata"}),p.jsx("span",{className:xe.noMetadata,children:"No metadata"})]})]})]})}const b3="_panel_lfvg8_1",S3="_resizeHandle_lfvg8_13",k3="_header_lfvg8_30",T3="_projectName_lfvg8_39",N3="_headerActions_lfvg8_45",E3="_iconBtn_lfvg8_50",C3="_tabBar_lfvg8_70",A3="_tab_lfvg8_70",j3="_tabActive_lfvg8_93",w3="_body_lfvg8_98",M3="_tabContent_lfvg8_104",z3="_status_lfvg8_114",R3="_error_lfvg8_121",O3="_retryBtn_lfvg8_132",D3="_graph_lfvg8_146",L3="_section_lfvg8_152",B3="_sectionTitle_lfvg8_158",I3="_childNode_lfvg8_167",U3="_node_lfvg8_183",H3="_nodeSelected_lfvg8_201",q3="_nodeIcon_lfvg8_206",V3="_agent_lfvg8_216",G3="_harness_lfvg8_220",$3="_memory_lfvg8_224",Z3="_credential_lfvg8_228",Y3="_gateway_lfvg8_232",F3="_gatewayTarget_lfvg8_236",X3="_mcpTool_lfvg8_240",Q3="_evaluator_lfvg8_244",K3="_onlineEval_lfvg8_248",J3="_policyEngine_lfvg8_252",P3="_policy_lfvg8_252",W3="_unassignedTarget_lfvg8_260",e4="_nodeContent_lfvg8_264",t4="_nodeName_lfvg8_272",n4="_nodeNameRow_lfvg8_281",a4="_deployBadge_lfvg8_288",l4="_deploy_deployed_lfvg8_298",i4="_nodeSubtitle_lfvg8_313",r4="_nodeConnections_lfvg8_321",s4="_connectionTag_lfvg8_328",o4="_infoCard_lfvg8_386",u4="_infoHeader_lfvg8_393",c4="_kindBadge_lfvg8_402",f4="_infoName_lfvg8_461",d4="_infoBody_lfvg8_467",h4="_infoSectionHeader_lfvg8_471",m4="_infoRow_lfvg8_481",p4="_infoKey_lfvg8_494",g4="_infoValue_lfvg8_499",ze={panel:b3,resizeHandle:S3,header:k3,projectName:T3,headerActions:N3,iconBtn:E3,tabBar:C3,tab:A3,tabActive:j3,body:w3,tabContent:M3,status:z3,error:R3,retryBtn:O3,graph:D3,section:L3,sectionTitle:B3,childNode:I3,node:U3,nodeSelected:H3,nodeIcon:q3,agent:V3,harness:G3,memory:$3,credential:Z3,gateway:Y3,gatewayTarget:F3,mcpTool:X3,evaluator:Q3,onlineEval:K3,policyEngine:J3,policy:P3,unassignedTarget:W3,nodeContent:e4,nodeName:t4,nodeNameRow:n4,deployBadge:a4,deploy_deployed:l4,"deploy_local-only":"_deploy_local-only_lfvg8_303","deploy_pending-removal":"_deploy_pending-removal_lfvg8_308",nodeSubtitle:i4,nodeConnections:r4,connectionTag:s4,infoCard:o4,infoHeader:u4,kindBadge:c4,infoName:f4,infoBody:d4,infoSectionHeader:h4,infoRow:m4,infoKey:p4,infoValue:g4},y4={agent:Gf,harness:yx,memory:hx,credential:Gx,gateway:Bx,gatewayTarget:Mx,mcpTool:Ra,evaluator:Ex,onlineEval:cx,policyEngine:Jx,policy:Dx,unassignedTarget:u_},_4={deployed:"Deployed","local-only":"Not deployed","pending-removal":"Removed locally"};function In({kind:t,name:a,subtitle:l,isSelected:r,onClick:o,connections:u,deploymentStatus:c}){const d=y4[t];return p.jsxs("button",{className:`${ze.node} ${ze[t]} ${r?ze.nodeSelected:""}`,onClick:o,"aria-label":`${t}: ${a}`,children:[p.jsx("span",{className:ze.nodeIcon,children:p.jsx(d,{size:14})}),p.jsxs("div",{className:ze.nodeContent,children:[p.jsxs("div",{className:ze.nodeNameRow,children:[p.jsx("span",{className:ze.nodeName,children:a}),c&&p.jsx("span",{className:`${ze.deployBadge} ${ze[`deploy_${c}`]}`,children:_4[c]})]}),l&&p.jsx("span",{className:ze.nodeSubtitle,children:l}),u&&u.length>0&&p.jsx("div",{className:ze.nodeConnections,children:u.map(m=>p.jsx("span",{className:ze.connectionTag,children:m},m))})]})]})}function Vy(t,a){const l=new URLSearchParams;return t!=null&&t.agentName&&l.set("agentName",t.agentName),t!=null&&t.harnessName&&l.set("harnessName",t.harnessName),(a==null?void 0:a.startTime)!==void 0&&l.set("startTime",String(a.startTime)),(a==null?void 0:a.endTime)!==void 0&&l.set("endTime",String(a.endTime)),l}function v4(){const t=Hn,[a,l]=z.useState([]),[r,o]=z.useState([]),[u,c]=z.useState([]),[d,m]=z.useState([]),[g,_]=z.useState(!1),[y,x]=z.useState(!1),[b,N]=z.useState(null),[O,D]=z.useState(null),k=z.useCallback(async(te,V,B)=>{_(!0),N(null),o([]),c([]),m([]);try{const R=Vy(V,B),oe=await pn(`${t}/api/${te==="cloudwatch"?"cloudwatch-traces":"traces"}?${R.toString()}`);if(oe.status===404){D(!1),l([]);return}D(!0);const w=await oe.json();w.success?l(w.traces):(N(w.error),l([]))}catch(R){N(R instanceof Error?R.message:"Failed to load traces"),l([])}finally{_(!1)}},[t]),M=z.useCallback(async(te,V,B,R)=>{x(!0),N(null);try{const le=Vy(B,R),P=await(await pn(`${t}/api/${te==="cloudwatch"?"cloudwatch-traces":"traces"}/${encodeURIComponent(V)}?${le.toString()}`)).json();if(P.success)if(te==="cloudwatch"){const ae=P;c(ae.records??[]),m(ae.spans??[]),o([])}else{const ae=P;o(p1(ae.resourceSpans,ae.resourceLogs)),c([]),m([])}else N(P.error),o([]),c([]),m([])}catch(le){N(le instanceof Error?le.message:"Failed to load trace detail"),o([]),c([]),m([])}finally{x(!1)}},[t]),U=z.useCallback(()=>{o([]),c([]),m([]),N(null)},[]);return{traces:a,spans:r,deployedRecords:u,deployedSpans:d,isLoadingTraces:g,isLoadingDetail:y,error:b,isAvailable:O,fetchTraces:k,fetchTraceDetail:M,clearDetail:U}}function Yr(t){if(!t)return{};if(!Array.isArray(t))return t;const a={};for(const l of t){if(!l.key||!l.value)continue;const r=l.value;r.stringValue!==void 0?a[l.key]=r.stringValue:r.intValue!==void 0?a[l.key]=r.intValue:r.doubleValue!==void 0?a[l.key]=r.doubleValue:r.boolValue!==void 0&&(a[l.key]=r.boolValue)}return a}function Nn(t){if(t!=null){if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return t}}}function x4(t){if(!t||!t.startsWith("["))return null;try{const a=JSON.parse(t);if(Array.isArray(a)&&a.length>0&&typeof a[0]=="object")return a}catch{}return null}function Gy(t){if(!t||!t.startsWith("{")&&!t.startsWith("["))return null;try{return JSON.parse(t)}catch{return null}}const b4="_dimText_rs5f0_1",S4="_assistantMsg_rs5f0_5",k4="_toolCalls_rs5f0_9",T4="_toolCall_rs5f0_9",N4="_toolIcon_rs5f0_22",E4="_toolName_rs5f0_26",C4="_toolArgs_rs5f0_32",A4="_toolResult_rs5f0_45",j4="_toolResultStatus_rs5f0_51",w4="_toolResultError_rs5f0_58",M4="_finishReason_rs5f0_62",z4="_genAiContent_rs5f0_68",R4="_contentText_rs5f0_74",O4="_strandsEvent_rs5f0_78",D4="_strandsSection_rs5f0_84",L4="_strandsLabel_rs5f0_90",B4="_messageList_rs5f0_97",I4="_msgRow_rs5f0_103",U4="_roleBadge_rs5f0_109",H4="_role_user_rs5f0_120",q4="_role_assistant_rs5f0_125",V4="_role_system_rs5f0_130",G4="_role_tool_rs5f0_135",$4="_msgText_rs5f0_140",Z4="_msgContent_rs5f0_146",Y4="_parsedContent_rs5f0_151",F4="_spanScope_rs5f0_157",X4="_spanRaw_rs5f0_163",Re={dimText:b4,assistantMsg:S4,toolCalls:k4,toolCall:T4,toolIcon:N4,toolName:E4,toolArgs:C4,toolResult:A4,toolResultStatus:j4,toolResultError:w4,finishReason:M4,genAiContent:z4,contentText:R4,strandsEvent:O4,strandsSection:D4,strandsLabel:L4,messageList:B4,msgRow:I4,roleBadge:U4,role_user:H4,role_assistant:q4,role_system:V4,role_tool:G4,msgText:$4,msgContent:Z4,parsedContent:Y4,spanScope:F4,spanRaw:X4};function Dd({body:t}){if(t==null)return p.jsx("span",{className:Re.dimText,children:"—"});if(typeof t=="string")return p.jsx("span",{children:t});if(typeof t!="object")return p.jsx("span",{children:String(t)});const a=t;if(typeof a.message=="string"&&!a.content&&!a.input&&!a.output)return p.jsx("span",{children:a.message});if(Array.isArray(a.content))return p.jsx(Ld,{content:a.content});if(a.message&&typeof a.message=="object"){const l=a.message;if(l.role==="assistant"&&Array.isArray(l.content)){const r=l.content.map(o=>o.text).filter(Boolean).join("");if(r)return p.jsx("div",{className:Re.assistantMsg,children:r})}if(Array.isArray(l.tool_calls))return p.jsxs("div",{className:Re.toolCalls,children:[l.tool_calls.map((r,o)=>{const u=r.function;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String((u==null?void 0:u.name)??"unknown")}),p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(u==null?void 0:u.arguments,null,2)})]},o)}),a.finish_reason!==null&&a.finish_reason!==void 0&&p.jsx("span",{className:Re.finishReason,children:String(a.finish_reason)})]});if(l.role==="assistant"&&typeof l.content=="string")return p.jsx("div",{className:Re.assistantMsg,children:l.content})}return a.input||a.output?p.jsx(Q4,{input:a.input,output:a.output}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(a,null,2)})}function Ld({content:t}){return p.jsx("div",{className:Re.genAiContent,children:t.map((a,l)=>{const r=a;if(r.text)return p.jsx("div",{className:Re.contentText,children:String(r.text)},l);if(r.toolUse){const o=r.toolUse;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String(o.name)}),p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(o.input,null,2)})]},l)}if(r.toolResult){const o=r.toolResult;return p.jsxs("div",{className:Re.toolResult,children:[p.jsx("span",{className:`${Re.toolResultStatus} ${String(o.status).toLowerCase()==="error"?Re.toolResultError:""}`,children:String(o.status||"result")}),Array.isArray(o.content)&&o.content.map((u,c)=>p.jsx("pre",{className:Re.toolArgs,children:String(u.text??JSON.stringify(u))},c))]},l)}return p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(r,null,2)},l)})})}function $y(t){if(t&&typeof t=="object"&&!Array.isArray(t)){const a=t.messages;if(Array.isArray(a))return a}}function Q4({input:t,output:a}){const l=$y(t),r=$y(a);return p.jsxs("div",{className:Re.strandsEvent,children:[t!=null&&p.jsxs("div",{className:Re.strandsSection,children:[p.jsx("span",{className:Re.strandsLabel,children:"Input"}),l?p.jsx(Zy,{messages:l}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(t,null,2)})]}),a!=null&&p.jsxs("div",{className:Re.strandsSection,children:[p.jsx("span",{className:Re.strandsLabel,children:"Output"}),r?p.jsx(Zy,{messages:r}):p.jsx("pre",{className:Re.spanRaw,children:JSON.stringify(a,null,2)})]})]})}function Zy({messages:t}){return!t||!Array.isArray(t)?null:p.jsx("div",{className:Re.messageList,children:t.map((a,l)=>{const r=a,o=String(r.role||""),u=r.content;let c="";typeof u=="string"?c=u:u&&typeof u=="object"&&(c=u.message||u.content||"");const d=x4(c);return p.jsxs("div",{className:Re.msgRow,children:[p.jsx("span",{className:`${Re.roleBadge} ${Re[`role_${o}`]||""}`,children:o}),p.jsx("div",{className:Re.msgContent,children:d?p.jsx(K4,{items:d}):p.jsx("span",{className:Re.msgText,children:c||JSON.stringify(u)})})]},l)})})}function K4({items:t}){return p.jsx("div",{className:Re.parsedContent,children:t.map((a,l)=>{if(a.text){const r=String(a.text),o=Gy(r);return o?p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(o,null,2)},l):p.jsx("div",{className:Re.contentText,children:r},l)}if(a.toolUse){const r=a.toolUse;return p.jsxs("div",{className:Re.toolCall,children:[p.jsx("span",{className:Re.toolIcon,children:p.jsx(Ra,{size:12})}),p.jsx("span",{className:Re.toolName,children:String(r.name)}),r.input!==null&&r.input!==void 0&&Object.keys(r.input).length>0&&p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(r.input,null,2)})]},l)}if(a.toolResult){const r=a.toolResult,o=String(r.status||"result");return p.jsxs("div",{className:Re.toolResult,children:[p.jsx("span",{className:`${Re.toolResultStatus} ${o.toLowerCase()==="error"?Re.toolResultError:""}`,children:o}),Array.isArray(r.content)&&r.content.map((u,c)=>{const d=String(u.text??""),m=Gy(d);return m?p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(m,null,2)},c):p.jsx("pre",{className:Re.toolArgs,children:d},c)})]},l)}return p.jsx("pre",{className:Re.toolArgs,children:JSON.stringify(a,null,2)},l)})})}const J4="_container_c3i5z_1",P4="_toggleRow_c3i5z_6",W4="_toggle_c3i5z_6",eM="_chevron_c3i5z_32",tM="_icon_c3i5z_38",nM="_label_c3i5z_43",aM="_content_c3i5z_47",lM="_status_c3i5z_55",iM="_error_c3i5z_62",rM="_detail_c3i5z_73",sM="_logPanel_c3i5z_73",oM="_traceDetail_c3i5z_73",uM="_detailHeader_c3i5z_80",cM="_detailTitle_c3i5z_89",fM="_closeBtn_c3i5z_95",dM="_controls_c3i5z_115",hM="_controlRow_c3i5z_122",mM="_refreshBtn_c3i5z_128",pM="_retryBtn_c3i5z_148",gM="_timeFilter_c3i5z_162",yM="_timeFilterHeader_c3i5z_168",_M="_timeModeToggle_c3i5z_174",vM="_timeModeBtn_c3i5z_183",xM="_timeModeBtnActive_c3i5z_198",bM="_dateRange_c3i5z_203",SM="_dateField_c3i5z_210",kM="_dateLabel_c3i5z_218",TM="_dateInput_c3i5z_226",NM="_cloudwatchNote_c3i5z_248",EM="_traceList_c3i5z_255",CM="_traceRow_c3i5z_264",AM="_traceRowSelected_c3i5z_284",jM="_traceMain_c3i5z_290",wM="_traceId_c3i5z_296",MM="_spanCount_c3i5z_308",zM="_traceMeta_c3i5z_316",RM="_traceTime_c3i5z_322",OM="_sessionId_c3i5z_327",DM="_detailControls_c3i5z_344",LM="_quickFilter_c3i5z_350",BM="_spanList_c3i5z_365",IM="_tokenPill_c3i5z_370",UM="_tokenIcon_c3i5z_385",HM="_tokenSep_c3i5z_390",qM="_tokenDim_c3i5z_394",VM="_durationPill_c3i5z_399",GM="_spanTimestamp_c3i5z_414",$M="_severityBadge_c3i5z_419",ZM="_sevINFO_c3i5z_429",YM="_sevWARN_c3i5z_434",FM="_sevERROR_c3i5z_439",XM="_spanScope_c3i5z_444",QM="_spanBody_c3i5z_450",KM="_rawToggle_c3i5z_456",JM="_spanRaw_c3i5z_471",PM="_treeNode_c3i5z_486",WM="_treeRow_c3i5z_493",ez="_treeRowExpandable_c3i5z_502",tz="_treeRowSelected_c3i5z_509",nz="_treeToggle_c3i5z_514",az="_treeName_c3i5z_521",lz="_treeError_c3i5z_530",iz="_treeMetrics_c3i5z_540",rz="_treeChildren_c3i5z_548",sz="_treeLogRow_c3i5z_552",oz="_treeLogHeader_c3i5z_562",de={container:J4,toggleRow:P4,toggle:W4,chevron:eM,icon:tM,label:nM,content:aM,status:lM,error:iM,detail:rM,logPanel:sM,traceDetail:oM,detailHeader:uM,detailTitle:cM,closeBtn:fM,controls:dM,controlRow:hM,refreshBtn:mM,retryBtn:pM,timeFilter:gM,timeFilterHeader:yM,timeModeToggle:_M,timeModeBtn:vM,timeModeBtnActive:xM,dateRange:bM,dateField:SM,dateLabel:kM,dateInput:TM,cloudwatchNote:NM,traceList:EM,traceRow:CM,traceRowSelected:AM,traceMain:jM,traceId:wM,spanCount:MM,traceMeta:zM,traceTime:RM,sessionId:OM,detailControls:DM,quickFilter:LM,spanList:BM,tokenPill:IM,tokenIcon:UM,tokenSep:HM,tokenDim:qM,durationPill:VM,spanTimestamp:GM,severityBadge:$M,sevINFO:ZM,sevWARN:YM,sevERROR:FM,spanScope:XM,spanBody:QM,rawToggle:KM,spanRaw:JM,treeNode:PM,treeRow:WM,treeRowExpandable:ez,treeRowSelected:tz,treeToggle:nz,treeName:az,treeError:lz,treeMetrics:iz,treeChildren:rz,treeLogRow:sz,treeLogHeader:oz};function uz({spanName:t,logs:a,onClose:l}){return p.jsxs("div",{className:de.logPanel,"data-testid":"traces-log-panel",children:[p.jsxs("div",{className:de.detailHeader,children:[p.jsx("span",{className:de.detailTitle,children:t}),p.jsx("button",{className:de.closeBtn,onClick:l,"aria-label":"Close logs",children:p.jsx(Ul,{size:12})})]}),a.length===0?p.jsx("div",{className:de.status,children:"No logs for this span."}):p.jsx("div",{children:a.map((r,o)=>p.jsx(cz,{log:r},o))})]})}function cz({log:t}){const[a,l]=z.useState(!1);return p.jsxs("div",{className:de.treeLogRow,children:[p.jsxs("div",{className:de.treeLogHeader,children:[p.jsx("span",{className:de.spanTimestamp,children:t.timestamp}),t.scopeName&&p.jsx("span",{className:de.spanScope,children:t.scopeName}),t.severity&&p.jsx("span",{className:`${de.severityBadge} ${de[`sev${t.severity.toUpperCase()}`]||""}`,children:t.severity})]}),t.body!==void 0&&p.jsx("div",{className:de.spanBody,children:p.jsx(Dd,{body:t.body})}),p.jsx("button",{className:de.rawToggle,onClick:()=>l(r=>!r),children:a?p.jsxs(p.Fragment,{children:[p.jsx(Ma,{size:10})," Hide raw"]}):p.jsxs(p.Fragment,{children:[p.jsx(dl,{size:10})," Raw JSON"]})}),a&&p.jsx("pre",{className:de.spanRaw,children:JSON.stringify(t,null,2)})]})}function ul(t){const a=Date.now();return{startTime:a-t,endTime:a}}function ko(t,a){const l=t?new Date(t).getTime():void 0,r=a?new Date(a).getTime():void 0,o=l!==void 0&&!Number.isNaN(l)?l:void 0,u=r!==void 0&&!Number.isNaN(r)?r:void 0;if(!(o===void 0&&u===void 0))return{startTime:o,endTime:u}}function To(t){const a=l=>String(l).padStart(2,"0");return`${t.getFullYear()}-${a(t.getMonth()+1)}-${a(t.getDate())}T${a(t.getHours())}:${a(t.getMinutes())}`}function Yy(t){return t>=1e3?`${(t/1e3).toFixed(1)}k`:String(t)}function Co(t){return(t==null?void 0:t.kind)==="agent"}function Ao(t){return!!(t!=null&&t.isDeployed)}function Fy(t){return(t==null?void 0:t.kind)==="harness"||Ao(t)&&!Co(t)?"cloudwatch":"local"}function Xy(t){if(t)return t.kind==="harness"?{harnessName:t.name}:{agentName:t.name}}function fz(t){const a=t.body;return typeof a=="object"&&a!==null&&"input"in a&&"output"in a}function dz(t,a){return a==="all"?t:t.map(l=>_1(l,a)).filter(l=>l!==null)}function _1(t,a){const l=t.children.map(o=>_1(o,a)).filter(o=>o!==null);return hz(t,a)||l.length>0?{...t,children:l}:null}function hz(t,a){return a==="errors"?t.statusCode==="ERROR":a==="with-tokens"?t.logs.some(fz)||(t.inputTokens??0)>0||(t.outputTokens??0)>0:!0}const mz=20;function pz({roots:t,selectedSpanId:a,onSelectSpan:l}){return t.length===0?p.jsx("div",{className:de.status,children:"No spans found."}):p.jsx("div",{className:de.spanList,"data-testid":"traces-span-tree",children:t.map(r=>p.jsx(v1,{node:r,selectedSpanId:a,onSelectSpan:l},r.spanId))})}function v1({node:t,selectedSpanId:a,onSelectSpan:l}){const[r,o]=z.useState(!0),u=t.children.length>0,c=a===t.spanId,d=(t.inputTokens??0)>0||(t.outputTokens??0)>0,m=t.durationMs>0;return p.jsxs("div",{className:de.treeNode,"data-testid":"traces-span-node",children:[p.jsxs("div",{className:`${de.treeRow} ${de.treeRowExpandable} ${c?de.treeRowSelected:""}`,style:{paddingLeft:`${t.depth*mz+8}px`},onClick:()=>l(t.spanId),role:"button",tabIndex:0,onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&l(t.spanId)},children:[p.jsx("span",{className:de.treeToggle,onClick:u?g=>{g.stopPropagation(),o(_=>!_)}:void 0,children:u?r?p.jsx(Ma,{size:12}):p.jsx(dl,{size:12}):p.jsx("span",{style:{width:12}})}),p.jsx("span",{className:de.treeName,children:t.name}),t.statusCode==="ERROR"&&p.jsx("span",{className:de.treeError,children:"ERR"}),p.jsxs("div",{className:de.treeMetrics,children:[d&&p.jsxs("span",{className:de.tokenPill,children:[p.jsx(pd,{size:9,className:de.tokenIcon}),Yy(t.inputTokens??0)," ",p.jsx("span",{className:de.tokenDim,children:"in"}),p.jsx("span",{className:de.tokenSep,children:"/"}),Yy(t.outputTokens??0)," ",p.jsx("span",{className:de.tokenDim,children:"out"})]}),m&&p.jsxs("span",{className:de.durationPill,children:[p.jsx(Ax,{size:9}),Od(t.durationMs)]})]})]}),r&&u&&p.jsx("div",{className:de.treeChildren,children:t.children.map(g=>p.jsx(v1,{node:g,selectedSpanId:a,onSelectSpan:l},g.spanId))})]})}function gz({trace:t,isSelected:a,onClick:l}){return p.jsxs("button",{className:`${de.traceRow} ${a?de.traceRowSelected:""}`,onClick:l,"aria-label":`Trace ${t.traceId}`,children:[p.jsxs("div",{className:de.traceMain,children:[p.jsx("span",{className:de.traceId,children:t.traceId}),p.jsxs("span",{className:de.spanCount,children:[t.spanCount," spans"]})]}),p.jsxs("div",{className:de.traceMeta,children:[p.jsx("span",{className:de.traceTime,children:Po(t.timestamp)}),t.sessionId&&p.jsxs("span",{className:de.sessionId,children:["session: ",t.sessionId]})]})]})}function yz(t){var o,u,c,d;const a=t.filter(m=>m.type==="span"&&m.spanId),l=t.filter(m=>m.type==="log"&&m.spanId),r=new Map;for(const m of a){const g=m.attributes??{};r.set(m.spanId,{spanId:m.spanId,parentSpanId:m.parentSpanId,name:m.name||((o=m.scope)==null?void 0:o.name)||"span",depth:0,startMs:Vt(m.startTimeUnixNano),durationMs:Vt(m.endTimeUnixNano)-Vt(m.startTimeUnixNano),inputTokens:Number(g["gen_ai.usage.input_tokens"]??0)||void 0,outputTokens:Number(g["gen_ai.usage.output_tokens"]??0)||void 0,statusCode:typeof((u=m.status)==null?void 0:u.code)=="number"?m.status.code===2?"ERROR":"OK":(c=m.status)==null?void 0:c.code,children:[],logs:[]})}for(const m of l){const g=r.get(m.spanId);g&&g.logs.push({timestamp:m.timestampMs>0?new Date(m.timestampMs).toISOString():"",scopeName:(d=m.scope)==null?void 0:d.name,severity:m.severityText,body:m.body})}return x1(r)}function _z(t,a){var r;const l=new Map;for(const o of t){const u=o.durationNano?Vt(o.durationNano):0;l.set(o.spanId,{spanId:o.spanId,parentSpanId:o.parentSpanId,name:o.name||"span",depth:0,startMs:o.startTimeUnixNano?Vt(o.startTimeUnixNano):0,durationMs:u,inputTokens:o.inputTokens||void 0,outputTokens:o.outputTokens||void 0,statusCode:o.statusCode,children:[],logs:[]})}for(const o of a){const u=o["@message"];if(typeof u!="object"||u===null)continue;const c=u,d=c.spanId;if(!d)continue;const m=l.get(d);m&&m.logs.push({timestamp:o["@timestamp"],scopeName:(r=c.scope)==null?void 0:r.name,severity:c.severityText,body:c.body})}return x1(l)}function x1(t){const a=[];for(const r of t.values()){const o=r.parentSpanId?t.get(r.parentSpanId):void 0;o?o.children.push(r):a.push(r)}const l=(r,o)=>{r.depth=o,r.children.sort((u,c)=>u.startMs-c.startMs);for(const u of r.children)l(u,o+1)};a.sort((r,o)=>r.startMs-o.startMs);for(const r of a)l(r,0);return a}const vz=[{label:"Last 1 hour",ms:3600*1e3},{label:"Last 6 hours",ms:360*60*1e3},{label:"Last 12 hours",ms:720*60*1e3},{label:"Last 24 hours",ms:1440*60*1e3},{label:"Last 3 days",ms:4320*60*1e3},{label:"Last 7 days",ms:10080*60*1e3}],xz=720*60*1e3;function bz({agents:t,harnesses:a=[],isActive:l}){const{traces:r,spans:o,deployedRecords:u,deployedSpans:c,isLoadingTraces:d,isLoadingDetail:m,error:g,isAvailable:_,fetchTraces:y,fetchTraceDetail:x,clearDetail:b}=v4(),N=z.useMemo(()=>[...t.map(me=>({value:`agent:${me.name}`,name:me.name,kind:"agent",isDeployed:me.deploymentStatus==="deployed"})),...a.map(me=>({value:`harness:${me.name}`,name:me.name,kind:"harness",isDeployed:me.deploymentStatus==="deployed"}))],[t,a]),[O,D]=z.useState(""),[k,M]=z.useState("local"),[U,te]=z.useState(null),[V,B]=z.useState(null),[R,le]=z.useState("with-tokens"),oe=z.useRef(!1);z.useEffect(()=>{if(!(O===""||!N.find(Nt=>Nt.value===O)))return;const bt=N[0];bt&&(D(bt.value),M(Fy(bt)))},[N,O]);const w=N.find(me=>me.value===O),P=!Co(w)&&!Ao(w),[ae,pe]=z.useState("relative"),[ne,Y]=z.useState(xz),[I,J]=z.useState(""),[ue,Te]=z.useState(""),E=z.useCallback(()=>ae==="relative"?ul(ne):ko(I,ue)??ul(ne),[ae,ne,I,ue]),C=z.useCallback((me,bt,Nt)=>{te(null),B(null),b(),y(me,Xy(bt),Nt)},[b,y]);z.useEffect(()=>{l&&!oe.current&&w&&!P&&C(k,w,ul(ne)),oe.current=!!l},[l,C,k,w,P,ne]);const Z=me=>{D(me);const bt=N.find(Gn=>Gn.value===me);if(!Co(bt)&&!Ao(bt))return;const Nt=Fy(bt);M(Nt),C(Nt,bt,E())},T=me=>{M(me),C(me,w,E())},ee=()=>{C(k,w,E())},he=me=>{B(null),U===me.traceId?(te(null),b()):(te(me.traceId),x(k,me.traceId,Xy(w),E()))},Q=me=>{if(pe(me),me==="relative")C(k,w,ul(ne));else{const bt=new Date,Nt=new Date(bt.getTime()-ne);J(To(Nt)),Te(To(bt)),C(k,w,ko(To(Nt),To(bt))??ul(ne))}},ge=me=>{Y(me),C(k,w,ul(me))},Be=me=>{J(me),C(k,w,ko(me,ue)??ul(ne))},ce=me=>{Te(me),C(k,w,ko(I,me)??ul(ne))},et=z.useMemo(()=>k==="cloudwatch"?_z(c,u):yz(o),[k,o,c,u]),Ut=z.useMemo(()=>dz(et,R),[et,R]),rn=z.useMemo(()=>{if(!V)return null;const me=bt=>{for(const Nt of bt){if(Nt.spanId===V)return Nt;const Gn=me(Nt.children);if(Gn)return Gn}return null};return me(et)},[V,et]);if(N.length===0)return p.jsx("div",{className:de.status,children:"No traces available."});const sa=et.length>0;return p.jsxs("div",{className:de.container,children:[p.jsx("div",{className:de.controls,children:p.jsxs("div",{className:de.controlRow,children:[p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-resource",children:"Resource"}),p.jsx("select",{id:"traces-resource",className:de.dateInput,value:O,onChange:me=>Z(me.target.value),children:N.map(me=>p.jsxs("option",{value:me.value,children:[me.name," (",me.kind,")"]},me.value))})]}),p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-source",children:"Source"}),p.jsxs("select",{id:"traces-source",className:de.dateInput,value:k,onChange:me=>T(me.target.value),children:[p.jsx("option",{value:"local",disabled:!Co(w),children:"Local traces"}),p.jsx("option",{value:"cloudwatch",disabled:!Ao(w),children:"CloudWatch"})]})]}),p.jsx("button",{className:de.refreshBtn,onClick:ee,title:"Refresh traces","aria-label":"Refresh traces",children:p.jsx(hd,{size:12})})]})}),k==="cloudwatch"&&!P&&p.jsx("div",{className:de.cloudwatchNote,children:"Note: Traces may take 2-3 minutes to appear in CloudWatch"}),p.jsx("div",{className:de.content,children:P?p.jsx("div",{className:de.status,children:"No traces available — deploy this resource to view CloudWatch traces."}):p.jsxs(p.Fragment,{children:[_!==!1&&p.jsxs("div",{className:de.timeFilter,children:[p.jsxs("div",{className:de.timeFilterHeader,children:[p.jsx("label",{className:de.dateLabel,children:"Time range"}),p.jsxs("div",{className:de.timeModeToggle,children:[p.jsx("button",{className:`${de.timeModeBtn} ${ae==="relative"?de.timeModeBtnActive:""}`,onClick:()=>Q("relative"),children:"Relative"}),p.jsx("button",{className:`${de.timeModeBtn} ${ae==="absolute"?de.timeModeBtnActive:""}`,onClick:()=>Q("absolute"),children:"Absolute"})]})]}),ae==="relative"?p.jsx("div",{className:de.dateField,children:p.jsx("select",{id:"traces-time-range",className:de.dateInput,value:ne,onChange:me=>ge(Number(me.target.value)),children:vz.map(me=>p.jsx("option",{value:me.ms,children:me.label},me.ms))})}):p.jsxs("div",{className:de.dateRange,children:[p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-start",children:"Start"}),p.jsx("input",{id:"traces-start",className:de.dateInput,type:"datetime-local",value:I,onChange:me=>Be(me.target.value)})]}),p.jsxs("div",{className:de.dateField,children:[p.jsx("label",{className:de.dateLabel,htmlFor:"traces-end",children:"End"}),p.jsx("input",{id:"traces-end",className:de.dateInput,type:"datetime-local",value:ue,onChange:me=>ce(me.target.value)})]})]})]}),d&&p.jsx("div",{className:de.status,children:"Loading traces…"}),g&&p.jsxs("div",{className:de.error,children:[p.jsxs("span",{children:[p.jsx(md,{size:12})," ",g]}),p.jsx("button",{className:de.retryBtn,onClick:ee,children:"Retry"})]}),!d&&!g&&_!==!1&&r.length===0&&p.jsx("div",{className:de.status,children:"No traces found."}),!d&&r.length>0&&p.jsx("div",{className:de.traceList,"data-testid":"traces-trace-list",children:r.map(me=>p.jsx(gz,{trace:me,isSelected:U===me.traceId,onClick:()=>he(me)},me.traceId))}),U&&p.jsxs("div",{className:de.traceDetail,children:[p.jsxs("div",{className:de.detailHeader,children:[p.jsx("span",{className:de.detailTitle,children:"Spans"}),p.jsxs("div",{className:de.detailControls,children:[p.jsxs("select",{className:de.quickFilter,value:R,onChange:me=>le(me.target.value),children:[p.jsx("option",{value:"all",children:"All"}),p.jsx("option",{value:"errors",children:"Errors"}),p.jsx("option",{value:"with-tokens",children:"Agent spans"})]}),p.jsx("button",{className:de.closeBtn,onClick:()=>{te(null),b()},"aria-label":"Close detail",children:p.jsx(Ul,{size:12})})]})]}),m&&p.jsx("div",{className:de.status,children:"Loading…"}),!m&&!sa&&!g&&p.jsx("div",{className:de.status,children:"No data found."}),!m&&sa&&Ut.length===0&&R!=="all"&&p.jsx("div",{className:de.status,children:"No matching spans."}),!m&&Ut.length>0&&p.jsx(pz,{roots:Ut,selectedSpanId:V,onSelectSpan:B})]}),rn&&p.jsx(uz,{spanName:rn.name,logs:rn.logs,onClose:()=>B(null)})]})})]})}function Sz({resources:t,sessionId:a,userId:l,onClose:r}){const{data:o,isLoading:u,error:c,fetch:d}=t,[m,g]=z.useState(null),[_,y]=z.useState("resources"),[x,b]=z.useState(620),N=z.useRef(null),O=z.useCallback(k=>{k.preventDefault();const M=te=>{const V=window.innerWidth-te.clientX;b(Math.max(320,Math.min(V,window.innerWidth*.8)))},U=()=>{N.current=null,document.removeEventListener("mousemove",M),document.removeEventListener("mouseup",U),document.body.style.cursor="",document.body.style.userSelect=""};N.current={move:M,up:U},document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",M),document.addEventListener("mouseup",U)},[]);z.useEffect(()=>()=>{N.current&&(document.removeEventListener("mousemove",N.current.move),document.removeEventListener("mouseup",N.current.up),document.body.style.cursor="",document.body.style.userSelect="")},[]);const D=(k,M)=>{g(U=>(U==null?void 0:U.kind)===k&&U.resource.name===M.name?null:{kind:k,resource:M})};return p.jsxs("div",{className:ze.panel,style:{width:x},"data-testid":"resource-panel",children:[p.jsx("div",{className:ze.resizeHandle,onMouseDown:O,role:"separator","aria-label":"Resize panel"}),p.jsxs("div",{className:ze.header,children:[p.jsx("span",{className:ze.projectName,children:(o==null?void 0:o.project)||"Resources"}),p.jsxs("div",{className:ze.headerActions,children:[p.jsx("button",{className:ze.iconBtn,onClick:d,title:"Refresh","aria-label":"Refresh resources",children:p.jsx(hd,{size:12})}),p.jsx("button",{className:ze.iconBtn,onClick:r,title:"Close","aria-label":"Close resource panel",children:p.jsx(Ul,{size:12})})]})]}),p.jsx("div",{className:ze.tabBar,role:"tablist",children:["resources","traces","memories"].map(k=>p.jsx("button",{role:"tab","aria-selected":_===k,className:`${ze.tab} ${_===k?ze.tabActive:""}`,onClick:()=>y(k),children:k.charAt(0).toUpperCase()+k.slice(1)},k))}),p.jsxs("div",{className:ze.body,children:[p.jsxs("div",{className:ze.tabContent,hidden:_!=="resources",children:[u&&!o&&p.jsx("div",{className:ze.status,children:"Loading resources…"}),c&&!o&&p.jsxs("div",{className:ze.error,children:[p.jsxs("span",{children:[p.jsx(md,{size:12})," ",c]}),p.jsx("button",{className:ze.retryBtn,onClick:d,children:"Retry"})]}),o&&p.jsxs("div",{className:ze.graph,children:[o.agents.length>0&&p.jsx(na,{title:"Agents",children:o.agents.map(k=>p.jsx(In,{kind:"agent",name:k.name,subtitle:k.build,isSelected:(m==null?void 0:m.kind)==="agent"&&m.resource.name===k.name,onClick:()=>D("agent",k),connections:kz(k,o.toolRuntimes),deploymentStatus:k.deploymentStatus},k.name))}),(o.harnesses??[]).length>0&&p.jsx(na,{title:"Harnesses",children:(o.harnesses??[]).map(k=>p.jsx(In,{kind:"harness",name:k.name,subtitle:k.modelConfig?`${k.modelConfig.provider}/${k.modelConfig.modelId}`:"",isSelected:(m==null?void 0:m.kind)==="harness"&&m.resource.name===k.name,onClick:()=>D("harness",k),deploymentStatus:k.deploymentStatus},k.name))}),o.memories.length>0&&p.jsx(na,{title:"Memories",children:o.memories.map(k=>p.jsx(In,{kind:"memory",name:k.name,subtitle:k.strategies.map(M=>M.type).join(", "),isSelected:(m==null?void 0:m.kind)==="memory"&&m.resource.name===k.name,onClick:()=>D("memory",k),deploymentStatus:k.deploymentStatus},k.name))}),o.credentials.length>0&&p.jsx(na,{title:"Credentials",children:o.credentials.map(k=>p.jsx(In,{kind:"credential",name:k.name,subtitle:k.type,isSelected:(m==null?void 0:m.kind)==="credential"&&m.resource.name===k.name,onClick:()=>D("credential",k),deploymentStatus:k.deploymentStatus},k.name))}),o.gateways.length>0&&p.jsx(na,{title:"Gateways",children:o.gateways.map(k=>p.jsxs("div",{children:[p.jsx(In,{kind:"gateway",name:k.name,subtitle:`${k.targets.length} target(s)`,isSelected:(m==null?void 0:m.kind)==="gateway"&&m.resource.name===k.name,onClick:()=>D("gateway",k),deploymentStatus:k.deploymentStatus}),k.targets.map(M=>p.jsx("div",{className:ze.childNode,children:p.jsx(In,{kind:"gatewayTarget",name:M.name,subtitle:M.targetType,isSelected:(m==null?void 0:m.kind)==="gatewayTarget"&&m.resource.name===M.name,onClick:()=>D("gatewayTarget",M)})},M.name))]},k.name))}),o.toolRuntimes.length>0&&p.jsx(na,{title:"MCP Runtime Tools",children:o.toolRuntimes.map(k=>p.jsx(In,{kind:"mcpTool",name:k.name,subtitle:k.bindings.map(M=>M.runtimeName).join(", "),isSelected:(m==null?void 0:m.kind)==="mcpTool"&&m.resource.name===k.name,onClick:()=>D("mcpTool",k),connections:k.bindings.map(M=>`→ ${M.runtimeName}`),deploymentStatus:k.deploymentStatus},k.name))}),o.evaluators.length>0&&p.jsx(na,{title:"Evaluators",children:o.evaluators.map(k=>p.jsx(In,{kind:"evaluator",name:k.name,subtitle:`${k.level} — ${k.configType}`,isSelected:(m==null?void 0:m.kind)==="evaluator"&&m.resource.name===k.name,onClick:()=>D("evaluator",k),deploymentStatus:k.deploymentStatus},k.name))}),o.onlineEvalConfigs.length>0&&p.jsx(na,{title:"Online Eval Configs",children:o.onlineEvalConfigs.map(k=>{var M;return p.jsx(In,{kind:"onlineEval",name:k.name,subtitle:`${((M=k.evaluators)==null?void 0:M.length)??0} evaluator(s), ${k.samplingRate}% sampling`,isSelected:(m==null?void 0:m.kind)==="onlineEval"&&m.resource.name===k.name,onClick:()=>D("onlineEval",k),connections:[`→ ${k.agent}`],deploymentStatus:k.deploymentStatus},k.name)})}),o.policyEngines.length>0&&p.jsx(na,{title:"Policy Engines",children:o.policyEngines.map(k=>p.jsxs("div",{children:[p.jsx(In,{kind:"policyEngine",name:k.name,subtitle:`${k.policies.length} polic${k.policies.length!==1?"ies":"y"}`,isSelected:(m==null?void 0:m.kind)==="policyEngine"&&m.resource.name===k.name,onClick:()=>D("policyEngine",k),deploymentStatus:k.deploymentStatus}),k.policies.map(M=>p.jsx("div",{className:ze.childNode,children:p.jsx(In,{kind:"policy",name:M.name,subtitle:M.description,isSelected:(m==null?void 0:m.kind)==="policy"&&m.resource.name===M.name,onClick:()=>D("policy",M),deploymentStatus:M.deploymentStatus})},M.name))]},k.name))}),o.unassignedTargets.length>0&&p.jsx(na,{title:"Unassigned Targets",children:o.unassignedTargets.map(k=>p.jsx(In,{kind:"unassignedTarget",name:k.name,subtitle:k.targetType,isSelected:(m==null?void 0:m.kind)==="unassignedTarget"&&m.resource.name===k.name,onClick:()=>D("unassignedTarget",k)},k.name))})]}),m&&p.jsxs("div",{className:ze.infoCard,children:[p.jsxs("div",{className:ze.infoHeader,children:[p.jsx("span",{className:`${ze.kindBadge} ${ze[m.kind]}`,children:Nz(m.kind)}),p.jsx("span",{className:ze.infoName,children:m.resource.name})]}),p.jsxs("div",{className:ze.infoBody,children:[Object.entries(m.resource).filter(([k,M])=>k!=="deployed"&&!Tz(M)).map(([k,M])=>p.jsxs("div",{className:ze.infoRow,children:[p.jsx("span",{className:ze.infoKey,children:k}),p.jsx("span",{className:ze.infoValue,children:Qy(M)})]},k)),"deployed"in m.resource&&m.resource.deployed!==null&&p.jsxs(p.Fragment,{children:[p.jsx("div",{className:ze.infoSectionHeader,children:"Deployed State"}),Object.entries(m.resource.deployed).map(([k,M])=>p.jsxs("div",{className:ze.infoRow,children:[p.jsx("span",{className:ze.infoKey,children:k}),p.jsx("span",{className:ze.infoValue,children:Qy(M)})]},k))]})]})]})]}),p.jsx("div",{className:ze.tabContent,hidden:_!=="traces",children:p.jsx(bz,{agents:(o==null?void 0:o.agents)??[],harnesses:(o==null?void 0:o.harnesses)??[],isActive:_==="traces"})}),p.jsx("div",{className:ze.tabContent,hidden:_!=="memories",children:p.jsx(_3,{memories:(o==null?void 0:o.memories)??[],sessionId:a,userId:l,isActive:_==="memories"})})]})]})}function na({title:t,children:a}){return p.jsxs("div",{className:ze.section,children:[p.jsx("div",{className:ze.sectionTitle,children:t}),a]})}function kz(t,a){const l=[];for(const r of a)r.bindings.some(o=>o.runtimeName===t.name)&&l.push(`← ${r.name}`);return l}function Tz(t){return!!(t===null||t===""||t===void 0||Array.isArray(t)&&t.length===0)}function Qy(t){if(t==null)return"—";if(Array.isArray(t))return t.map(l=>typeof l=="object"?JSON.stringify(l):l).join(", ")||"—";if(typeof t=="object")return JSON.stringify(t);const a=String(t);return a===""?"—":a}function Nz(t){return{agent:"Agent",harness:"Harness",memory:"Memory",credential:"Credential",gateway:"Gateway",gatewayTarget:"Target",mcpTool:"MCP Tool",evaluator:"Evaluator",onlineEval:"Online Eval",policyEngine:"Policy Engine",policy:"Policy",unassignedTarget:"Unassigned Target"}[t]}const Ez="_body_sadpk_1",Cz="_interactionsList_sadpk_9",Az="_interactionItem_sadpk_17",jz="_interactionItemSelected_sadpk_36",wz="_interactionPrompt_sadpk_41",Mz="_interactionMeta_sadpk_49",zz="_interactionTraceId_sadpk_55",Rz="_interactionTime_sadpk_61",Oz="_interactionSpanCount_sadpk_66",Dz="_rightArea_sadpk_75",Lz="_waterfall_sadpk_84",Bz="_userPromptRow_sadpk_90",Iz="_userPromptText_sadpk_101",Uz="_waterfallRow_sadpk_108",Hz="_waterfallRowSelected_sadpk_122",qz="_spanIcon_sadpk_128",Vz="_spanLabel_sadpk_135",Gz="_barContainer_sadpk_145",$z="_bar_sadpk_145",Zz="_barInvocation_sadpk_160",Yz="_barAgent_sadpk_164",Fz="_barLlm_sadpk_168",Xz="_barTool_sadpk_172",Qz="_barOther_sadpk_176",Kz="_duration_sadpk_180",Jz="_detailPane_sadpk_190",Pz="_detailHeader_sadpk_197",Wz="_iconBtn_sadpk_209",eR="_tabBar_sadpk_224",tR="_tab_sadpk_224",nR="_tabActive_sadpk_244",aR="_detailBody_sadpk_249",lR="_attrTable_sadpk_254",iR="_attrKey_sadpk_265",rR="_attrValue_sadpk_273",sR="_emptyState_sadpk_280",Ue={body:Ez,interactionsList:Cz,interactionItem:Az,interactionItemSelected:jz,interactionPrompt:wz,interactionMeta:Mz,interactionTraceId:zz,interactionTime:Rz,interactionSpanCount:Oz,rightArea:Dz,waterfall:Lz,userPromptRow:Bz,userPromptText:Iz,waterfallRow:Uz,waterfallRowSelected:Hz,spanIcon:qz,spanLabel:Vz,barContainer:Gz,bar:$z,barInvocation:Zz,barAgent:Yz,barLlm:Fz,barTool:Xz,barOther:Qz,duration:Kz,detailPane:Jz,detailHeader:Pz,iconBtn:Wz,tabBar:eR,tab:tR,tabActive:nR,detailBody:aR,attrTable:lR,attrKey:iR,attrValue:rR,emptyState:sR};function oR({invocations:t,selectedTraceId:a,onSelect:l}){return t.length===0?p.jsx("div",{className:Ue.emptyState,children:"No interactions yet"}):p.jsx("div",{className:Ue.interactionsList,"data-testid":"trace-list",children:t.map(r=>p.jsxs("button",{className:`${Ue.interactionItem} ${a===r.traceId?Ue.interactionItemSelected:""}`,onClick:()=>l(r.traceId),"aria-label":`Trace ${r.traceId}`,children:[r.userPrompt&&p.jsx("span",{className:Ue.interactionPrompt,title:r.userPrompt,children:r.userPrompt}),p.jsxs("div",{className:Ue.interactionMeta,children:[p.jsxs("span",{className:Ue.interactionTraceId,children:[r.traceId.slice(0,12),"..."]}),p.jsx("span",{className:Ue.interactionSpanCount,children:r.spanCount})]}),p.jsx("span",{className:Ue.interactionTime,children:Po(r.timestamp)})]},r.traceId))})}function jo(t){if(typeof t=="string"){const a=Nn(t);return typeof a!="string"?jo(a)??t:t}if(Array.isArray(t)){const a=t.filter(l=>l.text).map(l=>String(l.text));if(a.length>0)return a.join(" ")}return null}function b1(t){var l;for(const r of t){if(!((l=r.name)!=null&&l.startsWith("invoke_agent")))continue;const o=r.events;if(o)for(const u of o){if(u.name!=="gen_ai.user.message")continue;const c=Yr(u.attributes),d=jo(c.content);if(d)return d}}let a=null;for(const r of t){const o=r.events;if(o)for(const u of o){if(u.name!=="gen_ai.user.message")continue;const c=Yr(u.attributes),d=jo(c.content);d&&(a=d)}}if(a)return a;for(const r of t){const o=r.attributes??{};if(o["gen_ai.content.prompt"]){const u=jo(o["gen_ai.content.prompt"]);if(u)return u}}for(const r of t){const o=r.attributes??{};if(o["gen_ai.input.messages"]){const u=o["gen_ai.input.messages"],c=typeof u=="string"?Nn(u):u;if(Array.isArray(c)){const d=c.find(m=>m.role==="user");if(d!=null&&d.parts&&Array.isArray(d.parts)){const m=d.parts.filter(g=>g.type==="text"&&g.content).map(g=>String(g.content));if(m.length>0)return m.join(" ")}}}}return null}function uR(t){switch(t){case 1:return"SERVER";case 2:return"CLIENT";case 3:return"PRODUCER";case 4:return"CONSUMER";default:return"INTERNAL"}}function cR(t){var u;const a={...t.attributes??{}},l=Vt(t.startTimeUnixNano),o=Vt(t.endTimeUnixNano)-l;return{attributes:a,status:t.status,kind:t.type==="span"?uR(t.kind):void 0,scope:(u=t.scope)==null?void 0:u.name,duration:o>0?`${o}ms`:void 0}}function fR(t){const a=t.events;if(a){let r=null;for(const o of a){const u=o.name,c=Yr(o.attributes);u==="gen_ai.user.message"&&(r={type:"genai",content:Nn(c.content)??c.content})}if(r)return r}const l=t.attributes??{};return l["gen_ai.content.prompt"]?{type:"genai",content:Nn(l["gen_ai.content.prompt"])}:l["gen_ai.tool.call.arguments"]?{type:"tool",content:Nn(l["gen_ai.tool.call.arguments"])}:l["gen_ai.input.messages"]?{type:"genai",content:Nn(l["gen_ai.input.messages"])}:l["gen_ai.task.input"]?{type:"raw",content:Nn(l["gen_ai.task.input"])}:t.type==="log"&&t.body?{type:"raw",content:t.body}:null}function dR(t){const a=t.events;if(a){let r=null;for(const o of a){const u=o.name,c=Yr(o.attributes);u==="gen_ai.choice"&&(r={type:"genai",content:Nn(c.message)??c})}if(r)return r}const l=t.attributes??{};if(l["tool.name"]&&a){for(const r of a)if(r.name==="gen_ai.tool.message"){const u=Yr(r.attributes);return{type:"tool",content:Nn(u.content)??u.content}}}return l["gen_ai.content.completion"]?{type:"genai",content:Nn(l["gen_ai.content.completion"])}:l["gen_ai.tool.call.result"]?{type:"tool",content:Nn(l["gen_ai.tool.call.result"])}:l["gen_ai.output.messages"]?{type:"genai",content:Nn(l["gen_ai.output.messages"])}:l["gen_ai.task.output"]?{type:"raw",content:Nn(l["gen_ai.task.output"])}:null}function hR({span:t,onClose:a}){const[l,r]=z.useState("event");return p.jsxs("div",{className:Ue.detailPane,children:[p.jsxs("div",{className:Ue.detailHeader,children:[p.jsx("div",{className:Ue.tabBar,children:["event","request","response"].map(o=>p.jsx("button",{className:`${Ue.tab} ${l===o?Ue.tabActive:""}`,onClick:()=>r(o),children:o.charAt(0).toUpperCase()+o.slice(1)},o))}),p.jsx("button",{className:Ue.iconBtn,onClick:a,"aria-label":"Close detail",children:p.jsx(Ul,{size:14})})]}),p.jsxs("div",{className:Ue.detailBody,children:[l==="event"&&p.jsx(mR,{span:t}),l==="request"&&p.jsx(pR,{span:t}),l==="response"&&p.jsx(gR,{span:t})]})]})}function mR({span:t}){const a=cR(t),l=[];t.name&&l.push(["name",t.name]),a.kind&&l.push(["kind",a.kind]),a.scope&&l.push(["scope",a.scope]),a.duration&&l.push(["duration",a.duration]),a.status&&(l.push(["status.code",String(a.status.code??"OK")]),a.status.message&&l.push(["status.message",a.status.message]));const r=new Set(l.map(([o])=>o));for(const[o,u]of Object.entries(a.attributes))u!=null&&!r.has(o)&&l.push([o,typeof u=="object"?JSON.stringify(u):String(u)]);return l.length===0?p.jsx("div",{className:Ue.emptyState,children:"No event data"}):p.jsx("table",{className:Ue.attrTable,children:p.jsx("tbody",{children:l.map(([o,u])=>p.jsxs("tr",{children:[p.jsx("td",{className:Ue.attrKey,children:o}),p.jsx("td",{className:Ue.attrValue,children:u})]},o))})})}function pR({span:t}){const a=fR(t);return a?a.type==="genai"&&Array.isArray(a.content)?p.jsx(Ld,{content:a.content}):p.jsx(Dd,{body:a.content}):p.jsx("div",{className:Ue.emptyState,children:"No request data"})}function gR({span:t}){const a=dR(t);return a?a.type==="genai"&&Array.isArray(a.content)?p.jsx(Ld,{content:a.content}):p.jsx(Dd,{body:a.content}):p.jsx("div",{className:Ue.emptyState,children:"No response data"})}const yR=16,_R={invocation:p.jsx(pd,{size:12}),agent:p.jsx(Rx,{size:12}),llm:p.jsx(Yx,{size:12}),tool:p.jsx(Ra,{size:12}),other:p.jsx(Tx,{size:10})},vR={invocation:Ue.barInvocation,agent:Ue.barAgent,llm:Ue.barLlm,tool:Ue.barTool,other:Ue.barOther};function xR({tree:t,selectedSpanId:a,onSelectSpan:l,userPrompt:r}){const o=Fj(Xj(t));return o.length===0?p.jsx("div",{className:Ue.emptyState,children:"No spans"}):p.jsxs("div",{className:Ue.waterfall,children:[r&&p.jsxs("div",{className:Ue.userPromptRow,children:[p.jsx("span",{className:Ue.spanIcon,children:p.jsx(ab,{size:12})}),p.jsx("span",{className:Ue.userPromptText,title:r,children:r})]}),o.map((u,c)=>p.jsx(bR,{entry:u,isSelected:a===u.node.span.spanId,onSelect:()=>l(u.node.span)},u.node.span.spanId??c))]})}function bR({entry:t,isSelected:a,onSelect:l}){var _;const{node:r,offsetPercent:o,widthPercent:u}=t,c=Kj(r.span),d=_R[c],m=vR[c],g=r.span.name||((_=r.span.scope)==null?void 0:_.name)||"span";return p.jsxs("div",{className:`${Ue.waterfallRow} ${a?Ue.waterfallRowSelected:""}`,style:{paddingLeft:`${10+r.depth*yR}px`},onClick:l,role:"button",tabIndex:0,onKeyDown:y=>{(y.key==="Enter"||y.key===" ")&&l()},children:[p.jsx("span",{className:Ue.spanIcon,children:d}),p.jsx("span",{className:Ue.spanLabel,title:g,children:g}),p.jsx("div",{className:Ue.barContainer,children:p.jsx("div",{className:`${Ue.bar} ${m}`,style:{left:`${o}%`,width:`${u}%`}})}),p.jsx("span",{className:Ue.duration,children:Od(r.durationMs)})]})}function SR({traces:t}){const{invocations:a,selectedInvocation:l,isLoading:r,selectTrace:o,refresh:u}=t,[c,d]=z.useState(null);return z.useEffect(()=>{d(null)},[l==null?void 0:l.traceId]),p.jsx(Yo,{title:"Timeline view",status:r?"Loading...":void 0,onRefresh:u,children:p.jsxs("div",{className:Ue.body,children:[p.jsx(oR,{invocations:a,selectedTraceId:(l==null?void 0:l.traceId)??null,onSelect:o}),p.jsxs("div",{className:Ue.rightArea,children:[!l&&a.length>0&&p.jsx("div",{className:Ue.emptyState,children:"Select an interaction to view"}),l&&p.jsxs(p.Fragment,{children:[p.jsx(xR,{tree:l.tree,selectedSpanId:(c==null?void 0:c.spanId)??null,onSelectSpan:d,userPrompt:l.userPrompt}),c&&p.jsx(hR,{span:c,onClose:()=>d(null)})]})]})]})})}const kR="_error_1vxci_1",TR="_toolListItems_1vxci_7",NR="_toolItem_1vxci_14",ER="_toolItemSelected_1vxci_34",CR="_toolName_1vxci_39",AR="_toolDesc_1vxci_45",jR="_toolForm_1vxci_53",wR="_toolFormHeader_1vxci_58",MR="_toolFormDesc_1vxci_66",zR="_noParams_1vxci_72",RR="_field_1vxci_78",OR="_fieldLabel_1vxci_82",DR="_fieldType_1vxci_92",LR="_fieldInput_1vxci_98",BR="_fieldTextarea_1vxci_115",IR="_fieldHint_1vxci_122",UR="_callBtn_1vxci_128",HR="_spinning_1vxci_153",wt={error:kR,toolListItems:TR,toolItem:NR,toolItemSelected:ER,toolName:CR,toolDesc:AR,toolForm:jR,toolFormHeader:wR,toolFormDesc:MR,noParams:zR,field:RR,fieldLabel:OR,fieldType:DR,fieldInput:LR,fieldTextarea:BR,fieldHint:IR,callBtn:UR,spinning:HR};function qR(t,a){if(a.type==="integer"){const l=parseInt(t,10);return Number.isNaN(l)?0:l}if(a.type==="number"){const l=parseFloat(t);return Number.isNaN(l)?0:l}if(a.type==="boolean")return t==="true";if(a.type==="object"||a.type==="array")try{return JSON.parse(t)}catch{return t}return t}function VR(t){return t.type==="integer"||t.type==="number"?"number":"text"}function GR({tool:t,isCalling:a,onCall:l}){var g,_;const r=((g=t.inputSchema)==null?void 0:g.properties)??{},o=new Set(((_=t.inputSchema)==null?void 0:_.required)??[]),u=Object.keys(r),[c,d]=z.useState(()=>{const y={};for(const x of u){const b=r[x];y[x]=b.default!==void 0?String(b.default):""}return y}),m=y=>{y.preventDefault();const x={};for(const b of u){const N=c[b];N===""&&!o.has(b)||(x[b]=qR(N,r[b]))}l(t.name,x)};return p.jsxs("form",{className:wt.toolForm,onSubmit:m,children:[p.jsx("div",{className:wt.toolFormHeader,children:t.name}),t.description&&p.jsx("div",{className:wt.toolFormDesc,children:t.description}),u.length===0&&p.jsx("div",{className:wt.noParams,children:"No parameters"}),u.map(y=>{const x=r[y],b=o.has(y);return p.jsxs("div",{className:wt.field,children:[p.jsxs("label",{className:wt.fieldLabel,children:[y,p.jsxs("span",{className:wt.fieldType,children:[x.type,b?", required":""]})]}),x.enum?p.jsxs("select",{className:wt.fieldInput,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),children:[p.jsx("option",{value:"",children:"Select..."}),x.enum.map(N=>p.jsx("option",{value:N,children:N},N))]}):x.type==="boolean"?p.jsxs("select",{className:wt.fieldInput,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),children:[p.jsx("option",{value:"",children:"Select..."}),p.jsx("option",{value:"true",children:"true"}),p.jsx("option",{value:"false",children:"false"})]}):x.type==="object"||x.type==="array"?p.jsx("textarea",{className:`${wt.fieldInput} ${wt.fieldTextarea}`,value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),placeholder:"JSON",rows:3}):p.jsx("input",{className:wt.fieldInput,type:VR(x),value:c[y],onChange:N=>d(O=>({...O,[y]:N.target.value})),placeholder:x.description??""}),x.description&&p.jsx("div",{className:wt.fieldHint,children:x.description})]},y)}),p.jsx("button",{type:"submit",className:wt.callBtn,disabled:a,children:a?p.jsxs(p.Fragment,{children:[p.jsx(o_,{size:14,className:wt.spinning}),"Calling..."]}):"Call Tool"})]})}function $R({tools:t,isLoading:a,error:l,onRefresh:r,onCallTool:o,onToolCallMessage:u}){const[c,d]=z.useState(null),[m,g]=z.useState(!1),_=t.find(x=>x.name===c),y=async(x,b)=>{var D;g(!0);const N=Object.keys(b).length>0?`(${JSON.stringify(b)})`:"()",O=`Called ${x}${N}`;try{const k=await o(x,b),M=((D=k.content)==null?void 0:D.filter(te=>te.text!==void 0).map(te=>te.text))??[],U=M.length>0?M.join(`
280
280
  `):JSON.stringify(k,null,2);u(O,U,k.isError)}catch(k){u(O,k.message,!0)}finally{g(!1)}};return p.jsxs(Yo,{title:`Tools (${t.length})`,onRefresh:r,isRefreshing:a,children:[l&&p.jsx("div",{className:wt.error,children:l}),p.jsx("div",{className:wt.toolListItems,children:t.map(x=>p.jsxs("button",{className:`${wt.toolItem} ${c===x.name?wt.toolItemSelected:""}`,onClick:()=>d(c===x.name?null:x.name),children:[p.jsx("span",{className:wt.toolName,children:x.name}),p.jsx("span",{className:wt.toolDesc,children:x.description??""})]},x.name))}),_&&p.jsx(GR,{tool:_,isCalling:m,onCall:y},_.name)]})}function ZR(t,a,l,r){const[o,u]=z.useState(null),[c,d]=z.useState(!1),[m,g]=z.useState(null);z.useEffect(()=>{u(null),g(null)},[a]);const _=z.useCallback(async()=>{if(!(!a||l!=="A2A")){d(!0),g(null);try{const y=await pn(`${t}/api/a2a/agent-card?agentName=${encodeURIComponent(a)}`);if(!y.ok){const b=await y.text();throw new Error(`Failed to fetch agent card (${y.status}): ${b}`)}const x=await y.json();if(!x.success||!x.card)throw new Error(x.error??"Agent card not available");u(x.card)}catch(y){g(y.message)}finally{d(!1)}}},[t,a,l]);return z.useEffect(()=>{a&&l==="A2A"&&r&&_()},[a,l,r,_]),{card:o,isLoading:c,error:m,fetchCard:_}}function YR(t){const[a,l]=z.useState([]),[r,o]=z.useState([]),[u,c]=z.useState([]),[d,m]=z.useState(void 0),[g,_]=z.useState(!1),[y,x]=z.useState(!1);return z.useEffect(()=>{let b,N=!1;async function O(){try{const k=await(await pn(`${t}/api/status`)).json();if(N)return;l(k.agents),o(k.harnesses??[]),c(k.errors??[]),m(M=>M??k.selectedAgent),_(!0),x(!0)}catch{if(N)return;_(!1)}N||(b=setTimeout(O,5e3))}return O(),()=>{N=!0,clearTimeout(b)}},[t]),{agents:a,harnesses:r,errors:u,selectedAgent:d,isConnected:g,hasConnected:y}}const FR=60;function XR(t,a){const l=z.useRef(null),r=z.useRef(!1),o=()=>{const d=l.current;return d?d.scrollHeight-d.scrollTop-d.clientHeight<=FR:!0},u=z.useCallback(()=>{const d=l.current;d&&(r.current=!1,d.scrollTop=d.scrollHeight)},[]),c=z.useCallback(()=>{const d=l.current;!d||r.current||(a?d.scrollTop=d.scrollHeight:d.scrollTo({top:d.scrollHeight,behavior:"smooth"}))},[a]);return z.useLayoutEffect(()=>{const d=l.current;if(!d)return;const m=()=>{requestAnimationFrame(()=>{l.current&&(r.current=!o())})},g=()=>{o()&&r.current&&(r.current=!1)};return d.addEventListener("wheel",m,{passive:!0}),d.addEventListener("touchmove",m,{passive:!0}),d.addEventListener("scroll",g,{passive:!0}),()=>{d.removeEventListener("wheel",m),d.removeEventListener("touchmove",m),d.removeEventListener("scroll",g)}},[]),z.useEffect(()=>{c()},[t,c]),{containerRef:l,forceScrollToBottom:u}}function QR(t){if(!t.startsWith("data: "))return null;const a=t.slice(6);try{const l=JSON.parse(a);return typeof l.type!="string"?null:l}catch{return null}}function KR(t,a,l){const[r,o]=z.useState([]),[u,c]=z.useState(!1),[d,m]=z.useState(null),[g,_]=z.useState({}),y=z.useRef(null),x=z.useRef({}),b=z.useRef(null);z.useEffect(()=>{_({})},[a]);const N=z.useCallback(async k=>{var U,te;(U=b.current)==null||U.abort();const M=new AbortController;b.current=M,c(!0);try{const V=await pn(`${t}/invocations`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(k),signal:M.signal});if(!V.ok){const J=await V.text();o(ue=>{const Te=[...ue];return Te[Te.length-1]={role:"assistant",content:J||`Error: ${V.status}`,isError:!0},Te});return}const B=V.headers.get("x-session-id");if(B&&(y.current=B,m(B)),!V.body){o(J=>{const ue=[...J];return ue[ue.length-1]={role:"assistant",content:"(empty response)"},ue});return}const R=V.body.getReader(),le=new TextDecoder;let oe="",w="",P=null,ae;const pe=new Map,ne=()=>{P=null;const J=Object.keys(x.current).length>0?{...x.current}:void 0;o(ue=>{const Te=[...ue];return Te[Te.length-1]={role:"assistant",content:w,...J?{toolExecutions:J}:{}},Te})},Y=()=>{P===null&&(P=requestAnimationFrame(ne))};for(;;){const{done:J,value:ue}=await R.read();if(J)break;oe+=le.decode(ue,{stream:!0});const Te=oe.split(`
281
281
  `);oe=Te.pop()||"";for(const E of Te){const C=QR(E);if(!C)continue;const Z=C,T=Z.contentBlockIndex;switch(C.type){case"messageStart":break;case"contentBlockStart":{const ee=Z.start;if((ee==null?void 0:ee.type)==="toolUse"){const he=ee.toolUse;x.current[he.toolUseId]={toolName:he.name,serverName:he.serverName,input:"",result:""},T!==void 0&&pe.set(T,he.toolUseId)}else if((ee==null?void 0:ee.type)==="toolResult"){const he=ee.toolResult;he!=null&&he.toolUseId&&x.current[he.toolUseId]&&(he.status&&(x.current[he.toolUseId].resultStatus=he.status),T!==void 0&&pe.set(T,he.toolUseId))}Y();break}case"contentBlockDelta":{const ee=Z.delta;if((ee==null?void 0:ee.type)==="text")w+=ee.text;else if((ee==null?void 0:ee.type)==="toolUse"){const he=T!==void 0?pe.get(T):void 0;he&&x.current[he]&&(x.current[he].input+=ee.input)}else if((ee==null?void 0:ee.type)==="toolResult"){const he=T!==void 0?pe.get(T):void 0,Q=ee.results;if(he&&x.current[he]&&Q)for(const ge of Q)typeof ge.text=="string"&&(x.current[he].result+=ge.text)}Y();break}case"contentBlockStop":{const ee=T!==void 0?pe.get(T):void 0;ee&&((te=x.current[ee])!=null&&te.result)&&(w+=`
282
282
 
@@ -1,29 +1,52 @@
1
- # AgentCore CDK Project
1
+ # AgentCore CDK app
2
2
 
3
- This CDK project is managed by the AgentCore CLI. It deploys your agent infrastructure into AWS using the `@aws/agentcore-cdk` L3 constructs.
3
+ This CDK app is managed by the AgentCore CLI. It deploys everything declared in `agentcore/agentcore.json` into AWS
4
+ through the `@aws/agentcore-cdk` constructs. It is two files:
4
5
 
5
- ## Structure
6
+ - `bin/cdk.ts` — the entry point. It reads the project once (`readAgentCoreProject`), creates one stack per deployment
7
+ target (`resolveTargetStacks`), and turns `agentcore.json` into the application's props (`transformAgentCoreJson`).
8
+ Everything about how `agentcore.json` is interpreted lives in the library, so it changes with the library version, not
9
+ with this file.
10
+ - `lib/cdk-stack.ts` — `AgentCoreStack`, which instantiates one `AgentCoreApplication`. This is the file you edit.
6
11
 
7
- - `bin/cdk.ts` — Entry point. Reads project configuration from `agentcore/` and creates a stack per deployment target.
8
- - `lib/cdk-stack.ts` — Defines `AgentCoreStack`, which wraps the `AgentCoreApplication` L3 construct.
9
- - `test/cdk.test.ts` — Unit tests for stack synthesis.
12
+ Harness settings are read from `harness.yaml`. Inline `systemPrompt` text overrides
13
+ the conventional `system-prompt.md` file in the harness directory.
10
14
 
11
- ## Useful commands
15
+ ## The CLI runs it for you
12
16
 
13
- - `npm run build` compile TypeScript to JavaScript
14
- - `npm run test` run unit tests
15
- - `npx cdk synth` emit the synthesized CloudFormation template
16
- - `npx cdk deploy` deploy this stack to your default AWS account/region
17
- - `npx cdk diff` compare deployed stack with current state
17
+ You normally do not run this app directly:
18
18
 
19
- ## Usage
19
+ ```bash
20
+ agentcore project build # synthesizes the CloudFormation templates into agentcore/cdk/cdk.out
21
+ agentcore project deploy # synthesizes, then deploys the stack for the selected target
22
+ agentcore project status # reports the resources agentcore.json declares
23
+ ```
20
24
 
21
- You typically don't need to interact with this directory directly. The AgentCore CLI handles synthesis and deployment:
25
+ `npm run build` compiles the app, and `npx cdk synth` / `npx cdk diff` work from this directory too.
22
26
 
23
- <!-- TODO: revisit these commands once the project CLI surface is final —
24
- they may need a project prefix (e.g. --project / cwd) to disambiguate. -->
27
+ ## Extending the stack
25
28
 
26
- ```bash
27
- agentcore deploy # synthesizes and deploys via CDK
28
- agentcore status # checks deployment status
29
+ Add your own AWS resources in `lib/cdk-stack.ts` after the application and wire them to a runtime or harness through the
30
+ application's accessors. Runtimes and harnesses implement `iam.IGrantable`, so any AWS L2 grant accepts them, and they
31
+ expose `grantRead` / `grantWrite` / `grantReadWrite` for DynamoDB tables, S3 buckets and Secrets Manager secrets plus
32
+ `addEnvironmentVariable`:
33
+
34
+ ```ts
35
+ import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
36
+
37
+ const orders = new dynamodb.Table(this, 'Orders', {
38
+ partitionKey: { name: 'pk', type: dynamodb.AttributeType.STRING },
39
+ });
40
+ const checkout = this.application.runtime('checkout'); // or this.application.harness('support')
41
+ checkout.grantReadWrite(orders); // updates the runtime's execution role
42
+ checkout.addEnvironmentVariable('ORDERS_TABLE', orders.tableName);
43
+ orders.grantReadData(this.application.harness('support')); // any AWS L2 grant works too
29
44
  ```
45
+
46
+ Then run `agentcore project deploy` again. An unknown name fails at synth and lists the names that exist.
47
+
48
+ If a runtime or harness is configured with an `executionRoleArn`, CDK cannot modify that imported role: every grant
49
+ emits a synth-time warning listing the permissions that were not attached, and the role must already carry them.
50
+
51
+ `agentcore project status` reports only the resources `agentcore.json` declares; resources you add here are visible
52
+ through CloudFormation (`aws cloudformation describe-stack-resources`).