@next-bricks/ai-portal 0.38.1 → 0.39.0

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 (30) hide show
  1. package/dist/bricks.json +29 -15
  2. package/dist/chunks/1004.2c74661c.js +2 -0
  3. package/dist/chunks/1004.2c74661c.js.map +1 -0
  4. package/dist/chunks/{main.e20d5ad9.js → main.0d29ea95.js} +2 -2
  5. package/dist/chunks/{main.e20d5ad9.js.map → main.0d29ea95.js.map} +1 -1
  6. package/dist/chunks/project-conversations.8ea09318.js +3 -0
  7. package/dist/chunks/project-conversations.8ea09318.js.LICENSE.txt +5 -0
  8. package/dist/chunks/project-conversations.8ea09318.js.map +1 -0
  9. package/dist/chunks/project-knowledges.bbbed4a6.js +3 -0
  10. package/dist/chunks/project-knowledges.bbbed4a6.js.LICENSE.txt +5 -0
  11. package/dist/chunks/project-knowledges.bbbed4a6.js.map +1 -0
  12. package/dist/examples.json +14 -8
  13. package/dist/index.0ead77e3.js +2 -0
  14. package/dist/index.0ead77e3.js.map +1 -0
  15. package/dist/manifest.json +178 -110
  16. package/dist/types.json +327 -12
  17. package/dist-types/bootstrap.d.ts +2 -0
  18. package/dist-types/project-conversations/i18n.d.ts +15 -0
  19. package/dist-types/project-conversations/index.d.ts +30 -0
  20. package/dist-types/project-conversations/index.spec.d.ts +1 -0
  21. package/dist-types/project-knowledges/i18n.d.ts +15 -0
  22. package/dist-types/project-knowledges/index.d.ts +29 -0
  23. package/dist-types/project-knowledges/index.spec.d.ts +1 -0
  24. package/docs/project-conversations.md +25 -0
  25. package/docs/project-knowledges.md +24 -0
  26. package/package.json +2 -2
  27. package/dist/chunks/9981.fc6a1b64.js +0 -2
  28. package/dist/chunks/9981.fc6a1b64.js.map +0 -1
  29. package/dist/index.d30def34.js +0 -2
  30. package/dist/index.d30def34.js.map +0 -1
@@ -0,0 +1,3 @@
1
+ /*! For license information please see project-knowledges.bbbed4a6.js.LICENSE.txt */
2
+ (globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[]).push([[2052,7908],{5536:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(12559);function r(t,e,n){return n((0,i.A)(t,e))}},11369:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(17545);function r(t){var e=function(t){if("object"!=(0,i.A)(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,"string");if("object"!=(0,i.A)(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==(0,i.A)(e)?e:e+""}},12559:(t,e,n)=>{"use strict";function i(t,e,n){if("function"==typeof t?t===e:t.has(e))return arguments.length<3?e:n;throw new TypeError("Private element is not present on this object")}n.d(e,{A:()=>i})},17347:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(19024);const r={[i.K.YESTERDAY]:"昨天",[i.K.TODAY]:"今天",[i.K.FUTURE_AFTER]:"{{time}}后",[i.K.FORMAT_MEDIUM_DATETIME]:"LL ah:mm",[i.K.FORMAT_MEDIUM_DATE]:"LL",[i.K.FORMAT_SHORT_DATETIME]:"MMMD日 ah:mm",[i.K.FORMAT_SHORT_DATE]:"MMMD日",[i.K.FORMAT_SHORT_DAY_DATETIME]:"MMMD日 HH:mm",[i.K.FORMAT_SHORT_DAY_DATE]:"MMMD日",[i.K.MONTHS]:"个月",[i.K.HOURS]:"小时",[i.K.SECONDS]:"秒",[i.K.MILL_SECONDS]:"毫秒",[i.K.DAYS]:"天",[i.K.MINUTES]:"分钟"}},17545:(t,e,n)=>{"use strict";function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}n.d(e,{A:()=>i})},19024:(t,e,n)=>{"use strict";n.d(e,{K:()=>r,h:()=>i});const i="libs-datetime";let r=function(t){return t.TODAY="TODAY",t.YESTERDAY="YESTERDAY",t.FUTURE_AFTER="FUTURE_AFTER",t.FORMAT_MEDIUM_DATETIME="FORMAT_MEDIUM_DATETIME",t.FORMAT_MEDIUM_DATE="FORMAT_MEDIUM_DATE",t.FORMAT_SHORT_DATETIME="FORMAT_SHORT_DATETIME",t.FORMAT_SHORT_DATE="FORMAT_SHORT_DATE",t.FORMAT_SHORT_DAY_DATETIME="FORMAT_SHORT_DAY_DATETIME",t.FORMAT_SHORT_DAY_DATE="FORMAT_SHORT_DAY_DATE",t.SECONDS="SECONDS",t.MILL_SECONDS="MILL_SECONDS",t.MINUTES="MINUTES",t.HOURS="HOURS",t.DAYS="DARS",t.MONTHS="MONTHS",t}({})},19974:(t,e,n)=>{"use strict";n.d(e,{P:()=>c,c:()=>o});var i=n(21302),r=n(87117),a=n(19024);(0,n(80361).e)();let o=function(t){return t.full="full",t.default="default",t.relative="relative",t.past="past",t.future="future",t.accurate="accurate",t.auto="auto",t}({});const c=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.auto,n=arguments.length>2?arguments[2]:void 0;if(null==t||t===-1/0||t===1/0)return null;const c=i(t),s=i().add(0),l="date"===n?"LL":"LL HH:mm",u=r.i18n.t(`${a.h}:${"date"===n?a.K.FORMAT_MEDIUM_DATE:a.K.FORMAT_MEDIUM_DATETIME}`),d=r.i18n.t(`${a.h}:${"date"===n?a.K.FORMAT_SHORT_DATE:a.K.FORMAT_SHORT_DATETIME}`),f=r.i18n.t(`${a.h}:${"date"===n?a.K.FORMAT_SHORT_DAY_DATE:a.K.FORMAT_SHORT_DAY_DATETIME}`),m="date"===n?"LL":"LL HH:mm:ss";let A;switch(e){case o.full:A=c.format(l);break;case o.default:A=c.format(m);break;case o.relative:{const t=+c-+s;A=t<=0?i.duration(t).humanize(!0):r.i18n.t(`${a.h}:${a.K.FUTURE_AFTER}`,{time:i.duration(t).humanize()});break}case o.past:A=i.duration(Math.min(+c-+s,0)).humanize(!0);break;case o.future:A=r.i18n.t(`${a.h}:${a.K.FUTURE_AFTER}`,{time:i.duration(Math.max(+c-+s,0)).humanize()});break;case o.accurate:A=(()=>{const t=+c.diff(s,"days",!0).toFixed(1);let e="";const i=c.year()<s.year()?"lastYear":t<-2||c.isBefore(s.clone().add(-1,"day"),"day")?"twoDaysBefore":c.isSame(s.clone().add(-1,"day"),"day")?"yesterday":c.isSame(s,"day")?"sameDay":t<2&&c.isSame(s.clone().add(1,"day"),"day")?"nextDay":t<7?"nextWeek":"default";switch(i){case"sameDay":case"yesterday":e=`${r.i18n.t(`${a.h}:${"yesterday"===i?a.K.YESTERDAY:a.K.TODAY}`)}${"date"===n?"":` ${c.format("HH:mm")}`}`;break;case"lastYear":default:e=c.format(l);break;case"twoDaysBefore":e=c.format(f)}return e})();break;default:A=c.format(c.year()===s.year()?d:u)}return A}},23677:(t,e,n)=>{"use strict";n.d(e,{A:()=>c});var i=n(36758),r=n.n(i),a=n(40935),o=n.n(a)()(r());o.push([t.id,":host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;padding:12px 24px;color:#262626}.item:not(:last-child) .link::part(link){border-bottom:1px solid rgba(0,0,0,0.1)}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05)}.icon{font-size:20px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment{color:#1a7aff;margin-left:16px}.header{display:flex;align-items:center}.description{color:#595959;margin-top:6px;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);margin:0 16px}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:center;width:32px;height:32px}.link.actions-active .avatar,\n.link:hover .avatar,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}",""]);const c=o.toString()},26902:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(17545);function r(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(null!==t?(0,i.A)(t):"null"));return t}},36758:t=>{"use strict";t.exports=function(t){return t[1]}},38702:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(19024);const r={[i.K.YESTERDAY]:"Yesterday",[i.K.TODAY]:"Today",[i.K.FUTURE_AFTER]:"After {{time}}",[i.K.FORMAT_MEDIUM_DATETIME]:"LLL",[i.K.FORMAT_MEDIUM_DATE]:"LL",[i.K.FORMAT_SHORT_DATETIME]:"MMM D ah:mm",[i.K.FORMAT_SHORT_DATE]:"MMM D",[i.K.FORMAT_SHORT_DAY_DATETIME]:"MMM D HH:mm",[i.K.FORMAT_SHORT_DAY_DATE]:"MMM D",[i.K.MONTHS]:"months",[i.K.HOURS]:"hours",[i.K.SECONDS]:"seconds",[i.K.MILL_SECONDS]:"millseconds",[i.K.DAYS]:"days",[i.K.MINUTES]:"minutes"}},40935:t=>{"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",i=void 0!==e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),i&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),i&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,i,r,a){"string"==typeof t&&(t=[[null,t,void 0]]);var o={};if(i)for(var c=0;c<this.length;c++){var s=this[c][0];null!=s&&(o[s]=!0)}for(var l=0;l<t.length;l++){var u=[].concat(t[l]);i&&o[u[0]]||(void 0!==a&&(void 0===u[5]||(u[1]="@layer".concat(u[5].length>0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=a),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),r&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=r):u[4]="".concat(r)),e.push(u))}},e}},53373:(t,e)=>{var n;!function(){"use strict";var i={}.hasOwnProperty;function r(){for(var t="",e=0;e<arguments.length;e++){var n=arguments[e];n&&(t=o(t,a(n)))}return t}function a(t){if("string"==typeof t||"number"==typeof t)return t;if("object"!=typeof t)return"";if(Array.isArray(t))return r.apply(null,t);if(t.toString!==Object.prototype.toString&&!t.toString.toString().includes("[native code]"))return t.toString();var e="";for(var n in t)i.call(t,n)&&t[n]&&(e=o(e,n));return e}function o(t,e){return e?t?t+" "+e:t+e:t}t.exports?(r.default=r,t.exports=r):void 0===(n=function(){return r}.apply(e,[]))||(t.exports=n)}()},62740:(t,e,n)=>{"use strict";n.d(e,{A:()=>c});var i=n(17545),r=n(26902);function a(t,e,n){"symbol"==(0,i.A)(e)&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch(t){}return t}var o=n(11369);function c(t,e,n,c,s,l){var u,d,f,m,A,p,T,h=Symbol.metadata||Symbol.for("Symbol.metadata"),E=Object.defineProperty,M=Object.create,v=[M(null),M(null)],y=e.length;function D(e,n,i){return function(r,a){n&&(a=r,r=t);for(var o=0;o<e.length;o++)a=e[o].apply(r,i?[a]:[]);return i?a:r}}function _(t,e,n,i){if("function"!=typeof t&&(i||void 0!==t))throw new TypeError(e+" must "+(n||"be")+" a function"+(i?"":" or undefined"));return t}function g(t,e,n,r,o,c,s,l,f,m,A){function p(t){if(!A(t))throw new TypeError("Attempted to access private element on non-instance")}var T=[].concat(e[0]),h=e[3],M=!s,y=1===o,g=3===o,O=4===o,S=2===o;function R(e,n,i){return function(r,a){return n&&(a=r,r=t),i&&i(r),b[e].call(r,a)}}if(!M){var b={},k=[],w=g?"get":O||y?"set":"value";if(f?(m||y?b={get:a((function(){return h(this)}),r,"get"),set:function(t){e[4](this,t)}}:b[w]=h,m||a(b[w],r,S?"":w)):m||(b=Object.getOwnPropertyDescriptor(t,r)),!m&&!f){if((d=v[+l][r])&&7!=(d^o))throw Error("Decorating two elements with the same name ("+b[w].name+") is not supported yet");v[+l][r]=o<3?1:o}}for(var F=t,K=T.length-1;K>=0;K-=n?2:1){var x=_(T[K],"A decorator","be",!0),H=n?T[K-1]:void 0,I={},N={kind:["field","accessor","method","getter","setter","class"][o],name:r,metadata:u,addInitializer:function(t,e){if(t.v)throw Error("attempted to call addInitializer after decoration was finished");_(e,"An initializer","be",!0),c.push(e)}.bind(null,I)};if(M)d=x.call(H,F,N),I.v=1,_(d,"class decorators","return")&&(F=d);else if(N.static=l,N.private=f,d=N.access={has:f?A.bind():function(t){return r in t}},O||(d.get=f?S?function(t){return p(t),b.value}:R("get",0,p):function(t){return t[r]}),S||g||(d.set=f?R("set",0,p):function(t,e){t[r]=e}),F=x.call(H,y?{get:b.get,set:b.set}:b[w],N),I.v=1,y){if("object"==(0,i.A)(F)&&F)(d=_(F.get,"accessor.get"))&&(b.get=d),(d=_(F.set,"accessor.set"))&&(b.set=d),(d=_(F.init,"accessor.init"))&&k.unshift(d);else if(void 0!==F)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else _(F,(m?"field":"method")+" decorators","return")&&(m?k.unshift(F):b[w]=F)}return o<2&&s.push(D(k,l,1),D(c,l,0)),m||M||(f?y?s.splice(-1,0,R("get",l),R("set",l)):s.push(S?b[w]:_.call.bind(b[w])):E(t,r,b)),F}function O(t){return E(t,h,{configurable:!0,enumerable:!0,value:u})}return void 0!==l&&(u=l[h]),u=M(null==u?null:u),A=[],p=function(t){t&&A.push(D(t))},T=function(e,i){for(var a=0;a<n.length;a++){var c=n[a],l=c[1],u=7&l;if((8&l)==e&&!u==i){var d=c[2],p=!!c[3],T=16&l;g(e?t:t.prototype,c,T,p?"#"+d:(0,o.A)(d),u,u<2?[]:e?m=m||[]:f=f||[],A,!!e,p,i,e&&p?function(e){return(0,r.A)(e)===t}:s)}}},T(8,0),T(0,0),T(8,1),T(0,1),p(f),p(m),d=A,y||O(t),{e:d,get c(){var n=[];return y&&[O(t=g(t,[e],c,t.name,5,n)),D(n,1)]}}}},70829:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(12559);function r(t,e){return t.get((0,i.A)(t,e))}},70918:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(72016);function r(t,e,n){(0,i.A)(t,e),e.set(t,n)}},72016:(t,e,n)=>{"use strict";function i(t,e){if(e.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}n.d(e,{A:()=>i})},74635:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(72016);function r(t,e){(0,i.A)(t,e),e.add(t)}},76734:(t,e,n)=>{"use strict";n.r(e),n.d(e,{ProjectKnowledges:()=>U});var i,r=n(74635),a=n(70918),o=n(26902),c=n(5536),s=n(86121),l=n(70829),u=n(62740),d=n(18769),f=n.n(d),m=n(7921),A=n(11280),p=(n(65168),n(19974)),T=n(53373),h=n.n(T),E=n(23677),M=n(98343);let v,y,D,_,g,O,S,R,b,k,w;const F=(0,A.wrapBrick)("eo-link"),K=(0,A.wrapBrick)("eo-icon"),x=(0,A.wrapBrick)("eo-avatar"),H=(0,A.wrapBrick)("eo-mini-actions",{onActionClick:"action.click",onVisibleChange:"visible.change"}),{defineElement:I,property:N,event:Y}=(0,m.createDecorators)();let U;var L=new WeakMap,C=new WeakMap,j=new WeakMap,z=new WeakMap,$=new WeakSet,P=new WeakMap;class B extends A.ReactNextElement{constructor(){super(...arguments),(0,r.A)(this,$),(0,a.A)(this,L,y(this)),(0,a.A)(this,C,(D(this),_(this))),(0,a.A)(this,j,(g(this),O(this))),(0,a.A)(this,z,(S(this),R(this))),(0,a.A)(this,P,(w(this),t=>{(0,c.A)($,this,b).emit(t)}))}get list(){return(0,l.A)(L,this)}set list(t){(0,s.A)(L,this,t)}get urlTemplate(){return(0,l.A)(C,this)}set urlTemplate(t){(0,s.A)(C,this,t)}get actions(){return(0,l.A)(j,this)}set actions(t){(0,s.A)(j,this,t)}render(){return f().createElement(W,{list:this.list,urlTemplate:this.urlTemplate,actions:this.actions,onActionClick:(0,l.A)(P,this)})}}function W(t){let{list:e,urlTemplate:n,actions:i,onActionClick:r}=t;return e?f().createElement("ul",null,null==e?void 0:e.map((t=>f().createElement("li",{className:"item",key:t.knowledgeId},f().createElement(Q,{knowledge:t,urlTemplate:n,actions:i,onActionClick:r}))))):f().createElement("div",{className:"loading"},f().createElement(K,{lib:"antd",icon:"loading-3-quarters",spinning:!0}))}function Q(t){let{knowledge:e,urlTemplate:n,actions:i,onActionClick:r}=t;const[a,o]=(0,d.useState)(!1);return f().createElement(F,{className:h()("link",{"actions-active":a}),url:(0,M.Q)(n,e)},f().createElement("div",{className:"main"},f().createElement("div",{className:"header"},f().createElement(K,{className:"icon",lib:"lucide",icon:"clock"}),f().createElement("span",{className:"title"},e.title),f().createElement(K,{className:"attachment",lib:"lucide",icon:"paperclip"})),e.description&&f().createElement("div",{className:"description"},e.description)),f().createElement("div",{className:"time"},(0,p.P)(1e3*e.time,p.c.relative)),f().createElement("div",{className:"operations"},f().createElement(H,{className:"actions",actions:i,onActionClick:t=>{r({action:t.detail,item:e})},onVisibleChange:t=>{o(t.detail)}}),f().createElement(x,{className:"avatar",size:"small"})))}i=B,({e:[y,D,_,g,O,S,R,b,k,w],c:[U,v]}=(0,u.A)(i,[I("ai-portal.project-knowledges",{styleTexts:[E.A]})],[[N({attribute:!1}),1,"list"],[N(),1,"urlTemplate"],[N({attribute:!1}),1,"actions"],[Y({type:"action.click"}),1,"actionClick",t=>(0,l.A)(z,t),(t,e)=>(0,s.A)(z,t,e)]],0,(t=>P.has((0,o.A)(t))),A.ReactNextElement)),v()},80361:(t,e,n)=>{"use strict";n.d(e,{e:()=>c});var i=n(87117),r=n(19024),a=n(38702),o=n(17347);function c(){(0,i.initializeI18n)(r.h,{en:a.A,zh:o.A})}},86121:(t,e,n)=>{"use strict";n.d(e,{A:()=>r});var i=n(12559);function r(t,e,n){return t.set((0,i.A)(t,e),n),n}},98343:(t,e,n)=>{"use strict";n.d(e,{Q:()=>r});var i=n(41030);function r(t,e){return null==t?void 0:t.replace(/{{(.*?)}}/g,((t,n)=>(0,i.get)(e,n.trim())))}}}]);
3
+ //# sourceMappingURL=project-knowledges.bbbed4a6.js.map
@@ -0,0 +1,5 @@
1
+ /*!
2
+ Copyright (c) 2018 Jed Watson.
3
+ Licensed under the MIT License (MIT), see
4
+ http://jedwatson.github.io/classnames
5
+ */
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunks/project-knowledges.bbbed4a6.js","mappings":"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","sources":["webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateGetter.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/assertClassBrand.js","webpack:///../../../../src/i18n/locales/zh.ts","webpack:///../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///../../../src/i18n/constants.ts","webpack:///../../src/humanizeTime.ts","webpack:///./src/project-knowledges/styles.shadow.css","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkInRHS.js","webpack:///../../node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack:///../../../../src/i18n/locales/en.ts","webpack:///../../node_modules/css-loader/dist/runtime/api.js","webpack:///../../node_modules/classnames/index.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/setFunctionName.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/applyDecs2311.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldGet2.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldInitSpec.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/checkPrivateRedeclaration.js","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateMethodInitSpec.js","webpack:///./src/project-knowledges/index.tsx","webpack:///../../../src/i18n/index.ts","webpack:///../../node_modules/@babel/runtime/helpers/esm/classPrivateFieldSet2.js","webpack:///./src/shared/parseTemplate.ts"],"sourcesContent":["import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateGetter(s, r, a) {\n return a(assertClassBrand(s, r));\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","export default function _assertClassBrand(e, t, n) {\n if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n;\n throw new TypeError(\"Private element is not present on this object\");\n}","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"昨天\",\n [K.TODAY]: \"今天\",\n [K.FUTURE_AFTER]: \"{{time}}后\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LL ah:mm\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMMD日 ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMMD日\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMMD日 HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMMD日\",\n [K.MONTHS]: \"个月\",\n [K.HOURS]: \"小时\",\n [K.SECONDS]: \"秒\",\n [K.MILL_SECONDS]: \"毫秒\",\n [K.DAYS]: \"天\",\n [K.MINUTES]: \"分钟\",\n};\n\nexport default locale;\n","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export const NS_LIBS_DATETIME = \"libs-datetime\";\n\nexport enum K {\n TODAY = \"TODAY\",\n YESTERDAY = \"YESTERDAY\",\n FUTURE_AFTER = \"FUTURE_AFTER\",\n FORMAT_MEDIUM_DATETIME = \"FORMAT_MEDIUM_DATETIME\",\n FORMAT_MEDIUM_DATE = \"FORMAT_MEDIUM_DATE\",\n FORMAT_SHORT_DATETIME = \"FORMAT_SHORT_DATETIME\",\n FORMAT_SHORT_DATE = \"FORMAT_SHORT_DATE\",\n FORMAT_SHORT_DAY_DATETIME = \"FORMAT_SHORT_DAY_DATETIME\",\n FORMAT_SHORT_DAY_DATE = \"FORMAT_SHORT_DAY_DATE\",\n SECONDS = \"SECONDS\",\n MILL_SECONDS = \"MILL_SECONDS\",\n MINUTES = \"MINUTES\",\n HOURS = \"HOURS\",\n DAYS = \"DARS\",\n MONTHS = \"MONTHS\",\n}\n\nexport type Locale = { [key in K]: string };\n","import moment from \"moment\";\nimport { i18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME, K } from \"./i18n/constants.js\";\nimport { addResourceBundle } from \"./i18n/index.js\";\n\naddResourceBundle();\n\nconst TIME_OFFSET = 0;\n\nexport enum HumanizeTimeFormat {\n full = \"full\",\n default = \"default\",\n relative = \"relative\",\n past = \"past\",\n future = \"future\",\n accurate = \"accurate\",\n auto = \"auto\",\n}\n\nexport const humanizeTime = (\n time: moment.MomentInput,\n format: HumanizeTimeFormat = HumanizeTimeFormat.auto,\n /** 默认为 \"datetime\" */\n type?: \"datetime\" | \"date\"\n): string | null => {\n if (\n time === undefined ||\n time === null ||\n time === -Infinity ||\n time === Infinity\n ) {\n return null;\n }\n const m = moment(time);\n const now = moment().add(TIME_OFFSET);\n const fFull = type === \"date\" ? \"LL\" : \"LL HH:mm\";\n const fMedium = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_MEDIUM_DATE : K.FORMAT_MEDIUM_DATETIME}`\n );\n const fShort = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DATE : K.FORMAT_SHORT_DATETIME}`\n );\n const fShort24 = i18n.t(\n `${NS_LIBS_DATETIME}:${type === \"date\" ? K.FORMAT_SHORT_DAY_DATE : K.FORMAT_SHORT_DAY_DATETIME}`\n );\n const fDefault = type === \"date\" ? \"LL\" : \"LL HH:mm:ss\";\n const fHourMinute = \"HH:mm\";\n let text;\n\n /* 用于精确显示时间的参数\n * 今天与昨天,显示:今天(昨天)x:x的格式,如:今天12:21、昨天16:33\n * 昨天以前的时间,显示:x月x日x时:x分,如:11月23日11:22\n * 今年以前的时间,显示:x年x月x日x时:x分,如:2016年11月11日11:11\n */\n const getAccurateTime = () => {\n const diff = +m.diff(now, \"days\", true).toFixed(1);\n let _text = \"\";\n const retVal =\n m.year() < now.year()\n ? \"lastYear\"\n : diff < -2 || m.isBefore(now.clone().add(-1, \"day\"), \"day\")\n ? \"twoDaysBefore\"\n : m.isSame(now.clone().add(-1, \"day\"), \"day\")\n ? \"yesterday\"\n : m.isSame(now, \"day\")\n ? \"sameDay\"\n : diff < 2 && m.isSame(now.clone().add(1, \"day\"), \"day\")\n ? \"nextDay\"\n : diff < 7\n ? \"nextWeek\"\n : \"default\";\n switch (retVal) {\n case \"sameDay\":\n case \"yesterday\":\n _text = `${i18n.t(`${NS_LIBS_DATETIME}:${retVal === \"yesterday\" ? K.YESTERDAY : K.TODAY}`)}${\n type === \"date\" ? \"\" : ` ${m.format(fHourMinute)}`\n }`;\n break;\n case \"lastYear\":\n _text = m.format(fFull);\n break;\n case \"twoDaysBefore\":\n _text = m.format(fShort24);\n break;\n default:\n _text = m.format(fFull);\n }\n\n return _text;\n };\n\n switch (format) {\n case HumanizeTimeFormat.full:\n text = m.format(fFull);\n break;\n case HumanizeTimeFormat.default:\n text = m.format(fDefault);\n break;\n case HumanizeTimeFormat.relative: {\n const diff = +m - +now;\n text =\n diff <= 0\n ? moment.duration(diff).humanize(true)\n : i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(diff).humanize(),\n });\n break;\n }\n case HumanizeTimeFormat.past:\n text = moment.duration(Math.min(+m - +now, 0)).humanize(true);\n break;\n case HumanizeTimeFormat.future:\n text = i18n.t(`${NS_LIBS_DATETIME}:${K.FUTURE_AFTER}`, {\n time: moment.duration(Math.max(+m - +now, 0)).humanize(),\n });\n break;\n case HumanizeTimeFormat.accurate:\n text = getAccurateTime();\n break;\n default:\n text = m.format(m.year() === now.year() ? fShort : fMedium);\n }\n return text;\n};\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `:host{display:block}:host([hidden]){display:none}*{box-sizing:border-box}ul{list-style:none;margin:0;padding:0}.link{display:block}.link::part(link){display:flex;align-items:center;padding:12px 24px;color:#262626}.item:not(:last-child) .link::part(link){border-bottom:1px solid rgba(0,0,0,0.1)}.link.actions-active::part(link),\n.link::part(link):hover{background:rgba(0,0,0,0.05)}.icon{font-size:20px;margin-right:8px}.title{font-weight:500;font-size:16px}.title,\n.description{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment{color:#1a7aff;margin-left:16px}.header{display:flex;align-items:center}.description{color:#595959;margin-top:6px;padding-left:28px;line-height:20px}.time{color:rgba(0,0,0,0.45);margin:0 16px}.main{flex:1;min-width:0}.operations{display:flex;align-items:center;justify-content:center;width:32px;height:32px}.link.actions-active .avatar,\n.link:hover .avatar,\n.link:not(:hover):not(.actions-active) .actions{display:none}.loading{display:flex;align-items:center;justify-content:center;padding:24px;font-size:20px;color:#595959}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import _typeof from \"./typeof.js\";\nexport default function _checkInRHS(e) {\n if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? _typeof(e) : \"null\"));\n return e;\n}","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","import { Locale, K } from \"../constants.js\";\n\nconst locale: Locale = {\n [K.YESTERDAY]: \"Yesterday\",\n [K.TODAY]: \"Today\",\n [K.FUTURE_AFTER]: \"After {{time}}\",\n [K.FORMAT_MEDIUM_DATETIME]: \"LLL\",\n [K.FORMAT_MEDIUM_DATE]: \"LL\",\n [K.FORMAT_SHORT_DATETIME]: \"MMM D ah:mm\",\n [K.FORMAT_SHORT_DATE]: \"MMM D\",\n [K.FORMAT_SHORT_DAY_DATETIME]: \"MMM D HH:mm\",\n [K.FORMAT_SHORT_DAY_DATE]: \"MMM D\",\n [K.MONTHS]: \"months\",\n [K.HOURS]: \"hours\",\n [K.SECONDS]: \"seconds\",\n [K.MILL_SECONDS]: \"millseconds\",\n [K.DAYS]: \"days\",\n [K.MINUTES]: \"minutes\",\n};\n\nexport default locale;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import _typeof from \"./typeof.js\";\nexport default function setFunctionName(e, t, n) {\n \"symbol\" == _typeof(t) && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\");\n try {\n Object.defineProperty(e, \"name\", {\n configurable: !0,\n value: n ? n + \" \" + t : t\n });\n } catch (e) {}\n return e;\n}","import _typeof from \"./typeof.js\";\nimport checkInRHS from \"./checkInRHS.js\";\nimport setFunctionName from \"./setFunctionName.js\";\nimport toPropertyKey from \"./toPropertyKey.js\";\nexport default function applyDecs2311(e, t, n, r, o, i) {\n var a,\n c,\n u,\n s,\n f,\n l,\n p,\n d = Symbol.metadata || Symbol[\"for\"](\"Symbol.metadata\"),\n m = Object.defineProperty,\n h = Object.create,\n y = [h(null), h(null)],\n v = t.length;\n function g(t, n, r) {\n return function (o, i) {\n n && (i = o, o = e);\n for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []);\n return r ? i : o;\n };\n }\n function b(e, t, n, r) {\n if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\"));\n return e;\n }\n function applyDec(e, t, n, r, o, i, u, s, f, l, p) {\n function d(e) {\n if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n var h = [].concat(t[0]),\n v = t[3],\n w = !u,\n D = 1 === o,\n S = 3 === o,\n j = 4 === o,\n E = 2 === o;\n function I(t, n, r) {\n return function (o, i) {\n return n && (i = o, o = e), r && r(o), P[t].call(o, i);\n };\n }\n if (!w) {\n var P = {},\n k = [],\n F = S ? \"get\" : j || D ? \"set\" : \"value\";\n if (f ? (l || D ? P = {\n get: setFunctionName(function () {\n return v(this);\n }, r, \"get\"),\n set: function set(e) {\n t[4](this, e);\n }\n } : P[F] = v, l || setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) {\n if ((c = y[+s][r]) && 7 != (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\");\n y[+s][r] = o < 3 ? 1 : o;\n }\n }\n for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) {\n var z = b(h[O], \"A decorator\", \"be\", !0),\n A = n ? h[O - 1] : void 0,\n H = {},\n K = {\n kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o],\n name: r,\n metadata: a,\n addInitializer: function (e, t) {\n if (e.v) throw Error(\"attempted to call addInitializer after decoration was finished\");\n b(t, \"An initializer\", \"be\", !0), i.push(t);\n }.bind(null, H)\n };\n if (w) c = z.call(A, N, K), H.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (K[\"static\"] = s, K[\"private\"] = f, c = K.access = {\n has: f ? p.bind() : function (e) {\n return r in e;\n }\n }, j || (c.get = f ? E ? function (e) {\n return d(e), P.value;\n } : I(\"get\", 0, d) : function (e) {\n return e[r];\n }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) {\n e[r] = t;\n }), N = z.call(A, D ? {\n get: P.get,\n set: P.set\n } : P[F], K), H.v = 1, D) {\n if (\"object\" == _typeof(N) && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\");\n } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N);\n }\n return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N;\n }\n function w(e) {\n return m(e, d, {\n configurable: !0,\n enumerable: !0,\n value: a\n });\n }\n return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function l(e) {\n e && f.push(g(e));\n }, p = function p(t, r) {\n for (var i = 0; i < n.length; i++) {\n var a = n[i],\n c = a[1],\n l = 7 & c;\n if ((8 & c) == t && !l == r) {\n var p = a[2],\n d = !!a[3],\n m = 16 & c;\n applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) {\n return checkInRHS(t) === e;\n } : o);\n }\n }\n }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), {\n e: c,\n get c() {\n var n = [];\n return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)];\n }\n };\n}","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldGet2(s, a) {\n return s.get(assertClassBrand(s, a));\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}","export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}","import checkPrivateRedeclaration from \"./checkPrivateRedeclaration.js\";\nexport default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n}","import React, { useState } from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement, wrapBrick } from \"@next-core/react-element\";\nimport \"@next-core/theme\";\n// import { initializeI18n } from \"@next-core/i18n\";\nimport type { Link, LinkProps } from \"@next-bricks/basic/link\";\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\nimport type { AvatarProps, EoAvatar } from \"@next-bricks/basic/avatar\";\nimport type {\n ActionType,\n EoMiniActions,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping,\n EoMiniActionsProps,\n SimpleActionType,\n} from \"@next-bricks/basic/mini-actions\";\nimport { humanizeTime, HumanizeTimeFormat } from \"@next-shared/datetime\";\nimport classNames from \"classnames\";\n// import { K, NS, locales, t } from \"./i18n.js\";\nimport styleText from \"./styles.shadow.css\";\nimport { parseTemplate } from \"../shared/parseTemplate.js\";\n\n// initializeI18n(NS, locales);\n\nconst WrappedLink = wrapBrick<Link, LinkProps>(\"eo-link\");\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\nconst WrappedAvatar = wrapBrick<EoAvatar, AvatarProps>(\"eo-avatar\");\nconst WrappedMiniActions = wrapBrick<\n EoMiniActions,\n EoMiniActionsProps,\n EoMiniActionsEvents,\n EoMiniActionsEventsMapping\n>(\"eo-mini-actions\", {\n onActionClick: \"action.click\",\n onVisibleChange: \"visible.change\",\n});\n\nconst { defineElement, property, event } = createDecorators();\n\nexport interface ProjectKnowledgesProps {\n list?: Knowledge[];\n urlTemplate?: string;\n actions?: ActionType[];\n}\n\nexport interface Knowledge {\n knowledgeId: string;\n title: string;\n time: number;\n description?: string;\n}\n\nexport interface ActionClickDetail {\n action: SimpleActionType;\n item: Knowledge;\n}\n\n/**\n * 构件 `ai-portal.project-knowledges`\n */\nexport\n@defineElement(\"ai-portal.project-knowledges\", {\n styleTexts: [styleText],\n})\nclass ProjectKnowledges\n extends ReactNextElement\n implements ProjectKnowledgesProps\n{\n @property({ attribute: false })\n accessor list: Knowledge[] | undefined;\n\n @property()\n accessor urlTemplate: string | undefined;\n\n @property({ attribute: false })\n accessor actions: ActionType[] | undefined;\n\n @event({ type: \"action.click\" })\n accessor #actionClick!: EventEmitter<ActionClickDetail>;\n\n #handleActionClick = (detail: ActionClickDetail) => {\n this.#actionClick.emit(detail);\n };\n\n render() {\n return (\n <ProjectKnowledgesComponent\n list={this.list}\n urlTemplate={this.urlTemplate}\n actions={this.actions}\n onActionClick={this.#handleActionClick}\n />\n );\n }\n}\n\ninterface ProjectKnowledgesComponentProps extends ProjectKnowledgesProps {\n onActionClick: (detail: ActionClickDetail) => void;\n}\n\nfunction ProjectKnowledgesComponent({\n list,\n urlTemplate,\n actions,\n onActionClick,\n}: ProjectKnowledgesComponentProps) {\n if (!list) {\n return (\n <div className=\"loading\">\n <WrappedIcon lib=\"antd\" icon=\"loading-3-quarters\" spinning />\n </div>\n );\n }\n\n return (\n <ul>\n {list?.map((item) => (\n <li className=\"item\" key={item.knowledgeId}>\n <KnowledgeLink\n knowledge={item}\n urlTemplate={urlTemplate}\n actions={actions}\n onActionClick={onActionClick}\n />\n </li>\n ))}\n </ul>\n );\n}\n\ninterface KnowledgeLinkProps\n extends Pick<\n ProjectKnowledgesComponentProps,\n \"urlTemplate\" | \"actions\" | \"onActionClick\"\n > {\n knowledge: Knowledge;\n}\n\nfunction KnowledgeLink({\n knowledge,\n urlTemplate,\n actions,\n onActionClick,\n}: KnowledgeLinkProps) {\n const [actionsVisible, setActionsVisible] = useState(false);\n\n return (\n <WrappedLink\n className={classNames(\"link\", { \"actions-active\": actionsVisible })}\n url={parseTemplate(urlTemplate, knowledge)}\n >\n <div className=\"main\">\n <div className=\"header\">\n <WrappedIcon className=\"icon\" lib=\"lucide\" icon=\"clock\" />\n <span className=\"title\">{knowledge.title}</span>\n <WrappedIcon className=\"attachment\" lib=\"lucide\" icon=\"paperclip\" />\n </div>\n {knowledge.description && (\n <div className=\"description\">{knowledge.description}</div>\n )}\n </div>\n <div className=\"time\">\n {humanizeTime(knowledge.time * 1000, HumanizeTimeFormat.relative)}\n </div>\n <div className=\"operations\">\n <WrappedMiniActions\n className=\"actions\"\n actions={actions}\n onActionClick={(e) => {\n onActionClick({ action: e.detail, item: knowledge });\n }}\n onVisibleChange={(e) => {\n setActionsVisible(e.detail);\n }}\n />\n <WrappedAvatar className=\"avatar\" size=\"small\" /* bordered */ />\n </div>\n </WrappedLink>\n );\n}\n","import { initializeI18n } from \"@next-core/i18n\";\nimport { NS_LIBS_DATETIME } from \"./constants.js\";\nimport en from \"./locales/en.js\";\nimport zh from \"./locales/zh.js\";\n\nexport function addResourceBundle(): void {\n initializeI18n(NS_LIBS_DATETIME, { en, zh });\n}\n","import assertClassBrand from \"./assertClassBrand.js\";\nexport default function _classPrivateFieldSet2(s, a, r) {\n return s.set(assertClassBrand(s, a), r), r;\n}","import { get } from \"lodash\";\n\nexport function parseTemplate(\n template: string | undefined,\n context: Record<string, any>\n) {\n return template?.replace(/{{(.*?)}}/g, (_match: string, key: string) => {\n const value = get(context, key.trim());\n return value;\n });\n}\n"],"names":["_classPrivateGetter","s","r","a","toPropertyKey","t","i","e","Symbol","toPrimitive","call","TypeError","String","_assertClassBrand","n","has","arguments","length","K","YESTERDAY","TODAY","FUTURE_AFTER","FORMAT_MEDIUM_DATETIME","FORMAT_MEDIUM_DATE","FORMAT_SHORT_DATETIME","FORMAT_SHORT_DATE","FORMAT_SHORT_DAY_DATETIME","FORMAT_SHORT_DAY_DATE","MONTHS","HOURS","SECONDS","MILL_SECONDS","DAYS","MINUTES","_typeof","o","iterator","constructor","prototype","NS_LIBS_DATETIME","addResourceBundle","HumanizeTimeFormat","humanizeTime","time","format","undefined","auto","type","Infinity","m","moment","now","add","fFull","fMedium","i18n","fShort","fShort24","fDefault","text","full","default","relative","diff","humanize","past","Math","min","future","max","accurate","getAccurateTime","toFixed","_text","retVal","year","isBefore","clone","isSame","___CSS_LOADER_EXPORT___","push","module","id","toString","_checkInRHS","Object","exports","cssWithMappingToString","list","this","map","item","content","needLayer","concat","join","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","hasOwn","hasOwnProperty","classNames","classes","arg","appendClass","parseValue","Array","isArray","apply","includes","key","value","newClass","setFunctionName","description","defineProperty","configurable","applyDecs2311","c","u","f","l","p","d","metadata","h","create","y","v","g","b","applyDec","w","D","S","j","E","I","P","F","get","set","getOwnPropertyDescriptor","Error","name","N","O","z","A","H","kind","addInitializer","bind","access","init","unshift","splice","enumerable","checkInRHS","_classPrivateFieldGet2","_classPrivateFieldInitSpec","obj","privateMap","_checkPrivateRedeclaration","privateCollection","_classPrivateMethodInitSpec","privateSet","WrappedLink","wrapBrick","WrappedIcon","WrappedAvatar","WrappedMiniActions","onActionClick","onVisibleChange","defineElement","property","event","createDecorators","_ProjectKnowledges","_A","WeakMap","_B","_C","_D","_ProjectKnowledges_brand","WeakSet","_handleActionClick","ProjectKnowledges","ReactNextElement","_init_list","_init_extra_list","_init_urlTemplate","_init_extra_urlTemplate","_init_actions","_init_extra_actions","_init_actionClick","_init_extra_actionClick","detail","_get_actionClick","emit","_classPrivateFieldGet","_classPrivateFieldSet","urlTemplate","actions","render","React","ProjectKnowledgesComponent","_ref","className","knowledgeId","KnowledgeLink","knowledge","lib","icon","spinning","_ref2","actionsVisible","setActionsVisible","useState","url","parseTemplate","title","action","size","_ProjectKnowledges2","_set_actionClick","_initClass","_applyDecs","styleTexts","styleText","attribute","_","initializeI18n","en","zh","_classPrivateFieldSet2","template","context","replace","_match","trim"],"sourceRoot":""}
@@ -1,22 +1,19 @@
1
1
  {
2
- "ai-portal.chat-box": {
3
- "doc": "构件 `ai-portal.chat-box`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.chat-box\nproperties:\n textContent: Hello world\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.chat-box>Hello world</ai-portal.chat-box>\n# \n```\n\n### With cruise canvas\n\n```yaml preview minHeight=\"600px\"\nbrick: div\nproperties:\n style:\n width: 100vw\n height: 100vh\n position: fixed\n top: 0\n left: 0\ncontext:\n - name: task\nchildren:\n - brick: ai-portal.chat-box\n if: <%= !CTX.task %>\n properties:\n style:\n position: absolute\n width: 500px\n maxWidth: 90vw\n maxHeight: 90vh\n top: 50%\n left: 50%\n transform: translate(-50%, -50%)\n events:\n message.submit:\n useProvider: basic.http-request\n args:\n - \"<% `${BASE_URL}/api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/create` %>\"\n # - /api/mocks/task/send\n # - \"http://localhost:8888/.netlify/functions/task-send\"\n # - \"https://serverless-mocks.netlify.app/.netlify/functions/task-send\"\n - method: POST\n body: |\n <%\n JSON.stringify({\n input: EVENT.detail\n })\n %>\n headers:\n Content-Type: application/json\n callback:\n error:\n action: handleHttpError\n success:\n action: context.replace\n args:\n - task\n - <% EVENT.detail %>\n - brick: ai-portal.cruise-canvas\n if: <%= !!CTX.task %>\n properties:\n taskId: <% CTX.task.id %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 100vw; height: 100vh; position: fixed; top: 0; left: 0\">\n# <ai-portal.chat-box\n# style=\"\n# position: absolute;\n# width: 500px;\n# max-width: 90vw;\n# max-height: 90vh;\n# top: 50%;\n# left: 50%;\n# transform: translate(-50%, -50%);\n# \"\n# id=\"brick-1\"\n# ></ai-portal.chat-box>\n# <ai-portal.cruise-canvas\n# task-id=\"&lt;% CTX.task.id %&gt;\"\n# ></ai-portal.cruise-canvas>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"message.submit\", (e) => {\n# const provider = document.createElement(\"basic.http-request\");\n# const promise = Promise.resolve(\n# provider.resolve(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% `${BASE_URL}/api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/create` %>\",\n# {\n# method: \"POST\",\n# body: \"<%\\n JSON.stringify({\\n input: EVENT.detail\\n })\\n%>\\n\",\n# headers: { \"Content-Type\": \"application/json\" },\n# }\n# )\n# );\n# promise.then((r) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# promise.catch((r) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# });\n# </script>\n# \n```\n"
4
- },
5
- "ai-portal.cruise-canvas": {
6
- "doc": "构件 `ai-portal.cruise-canvas`\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\nbrick: div\nproperties:\n style:\n width: 100vw\n height: 100vh\n position: fixed\n top: 0\n left: 0\nchildren:\n - brick: ai-portal.cruise-canvas\n properties:\n task:\n state: completed\n requirement: |-\n 帮我在CMDB中完成手机银行系统的资源纳管\n plan:\n - id: \"2\"\n state: completed\n instruction: |-\n 深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\n - id: \"8\"\n state: completed\n instruction: |-\n 深度搜素CMDB给出资源的纳管现状\n - id: \"10\"\n state: completed\n instruction: |-\n 利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\n - id: \"12\"\n state: completed\n instruction: |-\n 在CMDB中完成手机银行系统的资源纳管\n - id: \"14\"\n state: completed\n instruction: |-\n 生成纳管后手机银行系统的逻辑架构和部署架构图\n jobs:\n - id: \"2\"\n state: completed\n instruction: |-\n 深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\n - id: \"4\"\n upstream: [\"2\"]\n toolCall:\n name: online_search\n originalArguments: |-\n {\"keywords\":\"手机银行系统\"}\n state: completed\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n {\"content\":\"手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\"}\n - role: assistant\n parts:\n - type: text\n text: |-\n 《手机银行系统》\n\n 依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\n - id: \"5\"\n upstream: [\"2\"]\n state: completed\n toolCall:\n name: online_search\n originalArguments: |-\n {\"keywords\":\"XX公司运维管理文件\"}\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 《XX公司运维管理文件》\n\n 依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\n - role: tool\n parts:\n - type: data\n data:\n type: cmdb_instance_detail\n objectId: HOST\n detail:\n hostname: dev-01\n env:\n - id: prod\n name: 生产\n - id: test\n name: 测试\n backupOwners:\n - username: Jerry\n email: jerry@example.com\n - username: Lucy\n email: lucy@example.com\n - username: Mark\n email: mark@example.com\n owner:\n username: Jim\n email: jim@example.com\n - id: dev\n name: 开发\n owner:\n username: Tom\n email: tom@example.com\n system:\n id: web\n name: Web\n outputSchema:\n type: object\n properties:\n hostname:\n description: 主机名\n type: string\n system:\n type: object\n properties:\n id:\n type: string\n description: ID\n name:\n type: string\n env:\n type: array\n description: 环境\n items:\n type: object\n properties:\n id:\n description: ID\n type: string\n name:\n description: 环境名称\n type: string\n owner:\n type: object\n properties:\n username:\n type: string\n description: 用户名\n email:\n type: string\n description: 邮箱\n backupOwners:\n type: array\n items:\n type: object\n properties:\n username:\n type: string\n description: 用户名\n email:\n type: string\n description: 邮箱\n - id: \"7\"\n upstream: [\"4\", \"5\"]\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\n - id: \"8\"\n upstream: [\"7\"]\n instruction: |-\n 深度搜素CMDB给出资源的纳管现状\n state: completed\n toolCall:\n name: create_view\n originalArguments: |-\n {\"requirement\":\"创建一个 XX 视图\"}\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n <%\n JSON.stringify({\n \"viewId\": \"view-123\",\n \"code\": `// 调用监控数据查询接口查询该主机该时间段内的 CPU 使用率、磁盘使用率和网络流量的指标数据\n defineDataSource(\"hostMetrics\", {\n api: \"easyops.api.data_exchange.olap@Query\",\n objectId: \"HOST\",\n params: {\n model: \"easyops.HOST\",\n filters: [\n {\n name: \"ip\",\n operator: \"==\",\n value: \"1.2.3.4\"\n },\n {\n name: \"time\",\n operator: \">=\",\n value: \"now-2d\"\n },\n {\n name: \"time\",\n operator: \"<=\",\n value: \"now-1s\"\n }\n ],\n dims: [\"time(auto)\"],\n measures: [\n {\n function: {\n args: [\"system_cpu_total_norm_pct\"],\n expression: \"avg\"\n },\n name: \"system_cpu_total_norm_pct\"\n },\n {\n function: {\n args: [\"system_filesystem_usage_pct\"],\n expression: \"avg\"\n },\n name: \"system_filesystem_usage_pct\"\n },\n {\n function: {\n args: [\"system_network_in_bits_per_sec\"],\n expression: \"avg\"\n },\n name: \"system_network_in_bits_per_sec\"\n },\n {\n function: {\n args: [\"system_network_out_bits_per_sec\"],\n expression: \"avg\"\n },\n name: \"system_network_out_bits_per_sec\"\n }\n ]\n }\n });\n\n export default (\n <eo-view title=\"主机 1.2.3.4 监控趋势\">\n <eo-dashboard\n dataSource={CTX.hostMetrics}\n widgets={[\n {\n widget: \"chart\",\n type: \"line\",\n title: \"CPU 使用率\",\n metric: {\n id: \"system_cpu_total_norm_pct\",\n unit: \"percent(1)\"\n }\n },\n {\n widget: \"chart\",\n type: \"area\",\n title: \"磁盘使用率\",\n metric: {\n id: \"system_filesystem_usage_pct\",\n unit: \"percent(1)\"\n }\n },\n {\n widget: \"chart\",\n type: \"line\",\n title: \"网络流量 (入)\",\n metric: {\n id: \"system_network_in_bits_per_sec\",\n unit: \"bits/sec\"\n }\n },\n {\n widget: \"chart\",\n type: \"line\",\n title: \"网络流量 (出)\",\n metric: {\n id: \"system_network_out_bits_per_sec\",\n unit: \"bits/sec\"\n }\n }\n ]}\n />\n </eo-view>\n );`\n })\n %>\n - role: assistant\n parts:\n - type: text\n text: |-\n 基于CMDB查询手机银行的资源纳管情况,纳管现状总结如下:\n\n 实例数据的完整性\n 1. 系统录入(已完成)\n 2. 模块录入(部分完成),交易接入模块未录入\n 3. 环境录入(已完成)\n 4. 主机录入(部分完成),交易接入模块主机未录入\n 5. 部署实例录入(部分完成),交易接入模块的部署实例未录入\n\n 关系数据的完整性\n 1. 系统和模块(部分完成),系统和交易接入模块的关系未建立\n 2. 系统和环境(√)\n 3. 模块和主机(部分完成)\n 4. ...\n - id: \"10\"\n upstream: [\"8\"]\n toolCall:\n name: ask_human\n arguments:\n command: ask_user_more\n question: |-\n - 交易接入模块的录入;\n - 系统和交易接入模块的关系创建 ;\n - 部署实例自动采集特征录入。\n instruction: |-\n 利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\n state: completed\n messages:\n - role: user\n parts:\n - type: text\n text: |-\n 我补充下...\n - id: \"12\"\n upstream: [\"10\"]\n instruction: |-\n 在CMDB中完成手机银行系统的资源纳管\n toolCall:\n name: ask_human\n arguments:\n command: ask_user_confirm\n question: |-\n 方案执行的过程信息\n state: completed\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n 确认\n - id: \"14\"\n upstream: [\"12\"]\n instruction: |-\n 生成纳管后手机银行系统的逻辑架构和部署架构图\n tag: topology\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n https://example.com/topology\n - id: \"16\"\n upstream: [\"14\"]\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 该手机银行系统的资源纳管已经完成,本次纳管新增了交易接入模块和该模块相关的主机,以及部署实例信息,模块的纳管建议和架构管理平台打通,部署实例的纳管建议和自动发布平台打通,以便自动完成数据变更,确保数据的准确性,降低架构维护成本。\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 100vw; height: 100vh; position: fixed; top: 0; left: 0\">\n# <ai-portal.cruise-canvas id=\"brick-1\"></ai-portal.cruise-canvas>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.task = {\n# state: \"completed\",\n# requirement: \"帮我在CMDB中完成手机银行系统的资源纳管\",\n# plan: [\n# {\n# id: \"2\",\n# state: \"completed\",\n# instruction:\n# \"深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\",\n# },\n# {\n# id: \"8\",\n# state: \"completed\",\n# instruction: \"深度搜素CMDB给出资源的纳管现状\",\n# },\n# {\n# id: \"10\",\n# state: \"completed\",\n# instruction:\n# \"利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\",\n# },\n# {\n# id: \"12\",\n# state: \"completed\",\n# instruction: \"在CMDB中完成手机银行系统的资源纳管\",\n# },\n# {\n# id: \"14\",\n# state: \"completed\",\n# instruction: \"生成纳管后手机银行系统的逻辑架构和部署架构图\",\n# },\n# ],\n# };\n# brick_1.jobs = [\n# {\n# id: \"2\",\n# state: \"completed\",\n# instruction:\n# \"深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\",\n# },\n# {\n# id: \"4\",\n# upstream: [\"2\"],\n# toolCall: {\n# name: \"online_search\",\n# originalArguments: '{\"keywords\":\"手机银行系统\"}',\n# },\n# state: \"completed\",\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: '{\"content\":\"手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\"}',\n# },\n# ],\n# },\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"《手机银行系统》\\n\\n依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"5\",\n# upstream: [\"2\"],\n# state: \"completed\",\n# toolCall: {\n# name: \"online_search\",\n# originalArguments: '{\"keywords\":\"XX公司运维管理文件\"}',\n# },\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"《XX公司运维管理文件》\\n\\n依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\",\n# },\n# ],\n# },\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"data\",\n# data: {\n# type: \"cmdb_instance_detail\",\n# objectId: \"HOST\",\n# detail: {\n# hostname: \"dev-01\",\n# env: [\n# {\n# id: \"prod\",\n# name: \"生产\",\n# },\n# {\n# id: \"test\",\n# name: \"测试\",\n# backupOwners: [\n# {\n# username: \"Jerry\",\n# email: \"jerry@example.com\",\n# },\n# {\n# username: \"Lucy\",\n# email: \"lucy@example.com\",\n# },\n# {\n# username: \"Mark\",\n# email: \"mark@example.com\",\n# },\n# ],\n# owner: {\n# username: \"Jim\",\n# email: \"jim@example.com\",\n# },\n# },\n# {\n# id: \"dev\",\n# name: \"开发\",\n# owner: {\n# username: \"Tom\",\n# email: \"tom@example.com\",\n# },\n# },\n# ],\n# system: {\n# id: \"web\",\n# name: \"Web\",\n# },\n# },\n# outputSchema: {\n# type: \"object\",\n# properties: {\n# hostname: {\n# description: \"主机名\",\n# type: \"string\",\n# },\n# system: {\n# type: \"object\",\n# properties: {\n# id: {\n# type: \"string\",\n# description: \"ID\",\n# },\n# name: {\n# type: \"string\",\n# },\n# },\n# },\n# env: {\n# type: \"array\",\n# description: \"环境\",\n# items: {\n# type: \"object\",\n# properties: {\n# id: {\n# description: \"ID\",\n# type: \"string\",\n# },\n# name: {\n# description: \"环境名称\",\n# type: \"string\",\n# },\n# owner: {\n# type: \"object\",\n# properties: {\n# username: {\n# type: \"string\",\n# description: \"用户名\",\n# },\n# email: {\n# type: \"string\",\n# description: \"邮箱\",\n# },\n# },\n# },\n# backupOwners: {\n# type: \"array\",\n# items: {\n# type: \"object\",\n# properties: {\n# username: {\n# type: \"string\",\n# description: \"用户名\",\n# },\n# email: {\n# type: \"string\",\n# description: \"邮箱\",\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"7\",\n# upstream: [\"4\", \"5\"],\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"8\",\n# upstream: [\"7\"],\n# instruction: \"深度搜素CMDB给出资源的纳管现状\",\n# state: \"completed\",\n# toolCall: {\n# name: \"create_view\",\n# originalArguments: '{\"requirement\":\"创建一个 XX 视图\"}',\n# },\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: '<%\\n JSON.stringify({\\n \"viewId\": \"view-123\",\\n \"code\": `// 调用监控数据查询接口查询该主机该时间段内的 CPU 使用率、磁盘使用率和网络流量的指标数据\\ndefineDataSource(\"hostMetrics\", {\\n api: \"easyops.api.data_exchange.olap@Query\",\\n objectId: \"HOST\",\\n params: {\\n model: \"easyops.HOST\",\\n filters: [\\n {\\n name: \"ip\",\\n operator: \"==\",\\n value: \"1.2.3.4\"\\n },\\n {\\n name: \"time\",\\n operator: \">=\",\\n value: \"now-2d\"\\n },\\n {\\n name: \"time\",\\n operator: \"<=\",\\n value: \"now-1s\"\\n }\\n ],\\n dims: [\"time(auto)\"],\\n measures: [\\n {\\n function: {\\n args: [\"system_cpu_total_norm_pct\"],\\n expression: \"avg\"\\n },\\n name: \"system_cpu_total_norm_pct\"\\n },\\n {\\n function: {\\n args: [\"system_filesystem_usage_pct\"],\\n expression: \"avg\"\\n },\\n name: \"system_filesystem_usage_pct\"\\n },\\n {\\n function: {\\n args: [\"system_network_in_bits_per_sec\"],\\n expression: \"avg\"\\n },\\n name: \"system_network_in_bits_per_sec\"\\n },\\n {\\n function: {\\n args: [\"system_network_out_bits_per_sec\"],\\n expression: \"avg\"\\n },\\n name: \"system_network_out_bits_per_sec\"\\n }\\n ]\\n }\\n});\\n\\nexport default (\\n <eo-view title=\"主机 1.2.3.4 监控趋势\">\\n <eo-dashboard\\n dataSource={CTX.hostMetrics}\\n widgets={[\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"CPU 使用率\",\\n metric: {\\n id: \"system_cpu_total_norm_pct\",\\n unit: \"percent(1)\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"area\",\\n title: \"磁盘使用率\",\\n metric: {\\n id: \"system_filesystem_usage_pct\",\\n unit: \"percent(1)\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"网络流量 (入)\",\\n metric: {\\n id: \"system_network_in_bits_per_sec\",\\n unit: \"bits/sec\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"网络流量 (出)\",\\n metric: {\\n id: \"system_network_out_bits_per_sec\",\\n unit: \"bits/sec\"\\n }\\n }\\n ]}\\n />\\n </eo-view>\\n);`\\n })\\n%>',\n# },\n# ],\n# },\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"基于CMDB查询手机银行的资源纳管情况,纳管现状总结如下:\\n\\n实例数据的完整性\\n1. 系统录入(已完成)\\n2. 模块录入(部分完成),交易接入模块未录入\\n3. 环境录入(已完成)\\n4. 主机录入(部分完成),交易接入模块主机未录入\\n5. 部署实例录入(部分完成),交易接入模块的部署实例未录入\\n\\n关系数据的完整性\\n1. 系统和模块(部分完成),系统和交易接入模块的关系未建立\\n2. 系统和环境(√)\\n3. 模块和主机(部分完成)\\n4. ...\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"10\",\n# upstream: [\"8\"],\n# toolCall: {\n# name: \"ask_human\",\n# arguments: {\n# command: \"ask_user_more\",\n# question:\n# \"- 交易接入模块的录入;\\n- 系统和交易接入模块的关系创建 ;\\n- 部署实例自动采集特征录入。\",\n# },\n# },\n# instruction:\n# \"利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\",\n# state: \"completed\",\n# messages: [\n# {\n# role: \"user\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"我补充下...\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"12\",\n# upstream: [\"10\"],\n# instruction: \"在CMDB中完成手机银行系统的资源纳管\",\n# toolCall: {\n# name: \"ask_human\",\n# arguments: {\n# command: \"ask_user_confirm\",\n# question: \"方案执行的过程信息\",\n# },\n# },\n# state: \"completed\",\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"确认\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"14\",\n# upstream: [\"12\"],\n# instruction: \"生成纳管后手机银行系统的逻辑架构和部署架构图\",\n# tag: \"topology\",\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"https://example.com/topology\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"16\",\n# upstream: [\"14\"],\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"该手机银行系统的资源纳管已经完成,本次纳管新增了交易接入模块和该模块相关的主机,以及部署实例信息,模块的纳管建议和架构管理平台打通,部署实例的纳管建议和自动发布平台打通,以便自动完成数据变更,确保数据的准确性,降低架构维护成本。\",\n# },\n# ],\n# },\n# ],\n# },\n# ];\n# </script>\n# \n```\n"
7
- },
8
2
  "ai-portal.home-container": {
9
3
  "doc": "构件 `ai-portal.home-container`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.home-container\nproperties:\n textContent: Hello world\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.home-container>Hello world</ai-portal.home-container>\n# \n```\n"
10
4
  },
11
5
  "ai-portal.stat-with-mini-chart": {
12
6
  "doc": "构件 `ai-portal.stat-with-mini-chart`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.stat-with-mini-chart\nproperties:\n label: 请求数\n value: \"563.5\"\n xField: time\n yField: request_total\n lineColor: \"#295DFF\"\n data:\n - request_total: 642.2\n time: 1730597995.403\n - request_total: 621.3\n time: 1730599200\n - request_total: 600.2\n time: 1730601000\n - request_total: 601.9666666666667\n time: 1730602800\n - request_total: 592.4\n time: 1730604600\n - request_total: 567.8666666666667\n time: 1730606400\n - request_total: 651.3333333333334\n time: 1730608200\n - request_total: 571.9677419354839\n time: 1730610000\n - request_total: 550.2\n time: 1730611800\n - request_total: 556.5666666666667\n time: 1730613600\n - request_total: 565.6333333333333\n time: 1730615400\n - request_total: 586.5666666666667\n time: 1730617200\n - request_total: 611.7\n time: 1730619000\n - request_total: 540.0645161290323\n time: 1730620800\n - request_total: 595.9333333333333\n time: 1730622600\n - request_total: 560.0333333333333\n time: 1730624400\n - request_total: 565.2333333333333\n time: 1730626200\n - request_total: 609.5806451612904\n time: 1730628000\n - request_total: 598.8\n time: 1730629800\n - request_total: 594.5333333333333\n time: 1730631600\n - request_total: 525.7\n time: 1730633400\n - request_total: 602.3666666666667\n time: 1730635200\n - request_total: 557.7333333333333\n time: 1730637000\n - request_total: 595.8666666666667\n time: 1730638800\n - request_total: 638.7\n time: 1730640600\n - request_total: 635.8333333333334\n time: 1730642400\n - request_total: 563.9\n time: 1730644200\n - request_total: 606.4516129032259\n time: 1730646000\n - request_total: 660.1\n time: 1730647800\n - request_total: 606.2666666666667\n time: 1730649600\n - request_total: 504.43333333333334\n time: 1730651400\n - request_total: 651.7333333333333\n time: 1730653200\n - request_total: 583.5\n time: 1730655000\n - request_total: 566.2333333333333\n time: 1730656800\n - request_total: 519.2333333333333\n time: 1730658600\n - request_total: 621.6333333333333\n time: 1730660400\n - request_total: 530.9333333333333\n time: 1730662200\n - request_total: 685.3\n time: 1730664000\n - request_total: 616.3333333333334\n time: 1730665800\n - request_total: 580.3333333333334\n time: 1730667600\n - request_total: 568.5666666666667\n time: 1730669400\n - request_total: 619.3\n time: 1730671200\n - request_total: 636.2333333333333\n time: 1730673000\n - request_total: 630.4666666666667\n time: 1730674800\n - request_total: 621.4666666666667\n time: 1730676600\n - request_total: 587.5333333333333\n time: 1730678400\n - request_total: 542.8666666666667\n time: 1730680200\n - request_total: 579\n time: 1730682000\n - request_total: 563.5\n time: 1730683800\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.stat-with-mini-chart\n# label=\"请求数\"\n# value=\"563.5\"\n# x-field=\"time\"\n# y-field=\"request_total\"\n# line-color=\"#295DFF\"\n# id=\"brick-1\"\n# ></ai-portal.stat-with-mini-chart>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.data = [\n# {\n# request_total: 642.2,\n# time: 1730597995.403,\n# },\n# {\n# request_total: 621.3,\n# time: 1730599200,\n# },\n# {\n# request_total: 600.2,\n# time: 1730601000,\n# },\n# {\n# request_total: 601.9666666666667,\n# time: 1730602800,\n# },\n# {\n# request_total: 592.4,\n# time: 1730604600,\n# },\n# {\n# request_total: 567.8666666666667,\n# time: 1730606400,\n# },\n# {\n# request_total: 651.3333333333334,\n# time: 1730608200,\n# },\n# {\n# request_total: 571.9677419354839,\n# time: 1730610000,\n# },\n# {\n# request_total: 550.2,\n# time: 1730611800,\n# },\n# {\n# request_total: 556.5666666666667,\n# time: 1730613600,\n# },\n# {\n# request_total: 565.6333333333333,\n# time: 1730615400,\n# },\n# {\n# request_total: 586.5666666666667,\n# time: 1730617200,\n# },\n# {\n# request_total: 611.7,\n# time: 1730619000,\n# },\n# {\n# request_total: 540.0645161290323,\n# time: 1730620800,\n# },\n# {\n# request_total: 595.9333333333333,\n# time: 1730622600,\n# },\n# {\n# request_total: 560.0333333333333,\n# time: 1730624400,\n# },\n# {\n# request_total: 565.2333333333333,\n# time: 1730626200,\n# },\n# {\n# request_total: 609.5806451612904,\n# time: 1730628000,\n# },\n# {\n# request_total: 598.8,\n# time: 1730629800,\n# },\n# {\n# request_total: 594.5333333333333,\n# time: 1730631600,\n# },\n# {\n# request_total: 525.7,\n# time: 1730633400,\n# },\n# {\n# request_total: 602.3666666666667,\n# time: 1730635200,\n# },\n# {\n# request_total: 557.7333333333333,\n# time: 1730637000,\n# },\n# {\n# request_total: 595.8666666666667,\n# time: 1730638800,\n# },\n# {\n# request_total: 638.7,\n# time: 1730640600,\n# },\n# {\n# request_total: 635.8333333333334,\n# time: 1730642400,\n# },\n# {\n# request_total: 563.9,\n# time: 1730644200,\n# },\n# {\n# request_total: 606.4516129032259,\n# time: 1730646000,\n# },\n# {\n# request_total: 660.1,\n# time: 1730647800,\n# },\n# {\n# request_total: 606.2666666666667,\n# time: 1730649600,\n# },\n# {\n# request_total: 504.43333333333334,\n# time: 1730651400,\n# },\n# {\n# request_total: 651.7333333333333,\n# time: 1730653200,\n# },\n# {\n# request_total: 583.5,\n# time: 1730655000,\n# },\n# {\n# request_total: 566.2333333333333,\n# time: 1730656800,\n# },\n# {\n# request_total: 519.2333333333333,\n# time: 1730658600,\n# },\n# {\n# request_total: 621.6333333333333,\n# time: 1730660400,\n# },\n# {\n# request_total: 530.9333333333333,\n# time: 1730662200,\n# },\n# {\n# request_total: 685.3,\n# time: 1730664000,\n# },\n# {\n# request_total: 616.3333333333334,\n# time: 1730665800,\n# },\n# {\n# request_total: 580.3333333333334,\n# time: 1730667600,\n# },\n# {\n# request_total: 568.5666666666667,\n# time: 1730669400,\n# },\n# {\n# request_total: 619.3,\n# time: 1730671200,\n# },\n# {\n# request_total: 636.2333333333333,\n# time: 1730673000,\n# },\n# {\n# request_total: 630.4666666666667,\n# time: 1730674800,\n# },\n# {\n# request_total: 621.4666666666667,\n# time: 1730676600,\n# },\n# {\n# request_total: 587.5333333333333,\n# time: 1730678400,\n# },\n# {\n# request_total: 542.8666666666667,\n# time: 1730680200,\n# },\n# {\n# request_total: 579,\n# time: 1730682000,\n# },\n# {\n# request_total: 563.5,\n# time: 1730683800,\n# },\n# ];\n# </script>\n# \n```\n\n### Size\n\n```yaml preview\nbrick: ai-portal.stat-with-mini-chart\nproperties:\n label: 请求数\n value: \"563.5\"\n size: small\n xField: time\n yField: request_total\n lineColor: \"#295DFF\"\n data:\n - request_total: 642.2\n time: 1730597995.403\n - request_total: 621.3\n time: 1730599200\n - request_total: 600.2\n time: 1730601000\n - request_total: 601.9666666666667\n time: 1730602800\n - request_total: 592.4\n time: 1730604600\n - request_total: 567.8666666666667\n time: 1730606400\n - request_total: 651.3333333333334\n time: 1730608200\n - request_total: 571.9677419354839\n time: 1730610000\n - request_total: 550.2\n time: 1730611800\n - request_total: 556.5666666666667\n time: 1730613600\n - request_total: 565.6333333333333\n time: 1730615400\n - request_total: 586.5666666666667\n time: 1730617200\n - request_total: 611.7\n time: 1730619000\n - request_total: 540.0645161290323\n time: 1730620800\n - request_total: 595.9333333333333\n time: 1730622600\n - request_total: 560.0333333333333\n time: 1730624400\n - request_total: 565.2333333333333\n time: 1730626200\n - request_total: 609.5806451612904\n time: 1730628000\n - request_total: 598.8\n time: 1730629800\n - request_total: 594.5333333333333\n time: 1730631600\n - request_total: 525.7\n time: 1730633400\n - request_total: 602.3666666666667\n time: 1730635200\n - request_total: 557.7333333333333\n time: 1730637000\n - request_total: 595.8666666666667\n time: 1730638800\n - request_total: 638.7\n time: 1730640600\n - request_total: 635.8333333333334\n time: 1730642400\n - request_total: 563.9\n time: 1730644200\n - request_total: 606.4516129032259\n time: 1730646000\n - request_total: 660.1\n time: 1730647800\n - request_total: 606.2666666666667\n time: 1730649600\n - request_total: 504.43333333333334\n time: 1730651400\n - request_total: 651.7333333333333\n time: 1730653200\n - request_total: 583.5\n time: 1730655000\n - request_total: 566.2333333333333\n time: 1730656800\n - request_total: 519.2333333333333\n time: 1730658600\n - request_total: 621.6333333333333\n time: 1730660400\n - request_total: 530.9333333333333\n time: 1730662200\n - request_total: 685.3\n time: 1730664000\n - request_total: 616.3333333333334\n time: 1730665800\n - request_total: 580.3333333333334\n time: 1730667600\n - request_total: 568.5666666666667\n time: 1730669400\n - request_total: 619.3\n time: 1730671200\n - request_total: 636.2333333333333\n time: 1730673000\n - request_total: 630.4666666666667\n time: 1730674800\n - request_total: 621.4666666666667\n time: 1730676600\n - request_total: 587.5333333333333\n time: 1730678400\n - request_total: 542.8666666666667\n time: 1730680200\n - request_total: 579\n time: 1730682000\n - request_total: 563.5\n time: 1730683800\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.stat-with-mini-chart\n# label=\"请求数\"\n# value=\"563.5\"\n# size=\"small\"\n# x-field=\"time\"\n# y-field=\"request_total\"\n# line-color=\"#295DFF\"\n# id=\"brick-1\"\n# ></ai-portal.stat-with-mini-chart>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.data = [\n# {\n# request_total: 642.2,\n# time: 1730597995.403,\n# },\n# {\n# request_total: 621.3,\n# time: 1730599200,\n# },\n# {\n# request_total: 600.2,\n# time: 1730601000,\n# },\n# {\n# request_total: 601.9666666666667,\n# time: 1730602800,\n# },\n# {\n# request_total: 592.4,\n# time: 1730604600,\n# },\n# {\n# request_total: 567.8666666666667,\n# time: 1730606400,\n# },\n# {\n# request_total: 651.3333333333334,\n# time: 1730608200,\n# },\n# {\n# request_total: 571.9677419354839,\n# time: 1730610000,\n# },\n# {\n# request_total: 550.2,\n# time: 1730611800,\n# },\n# {\n# request_total: 556.5666666666667,\n# time: 1730613600,\n# },\n# {\n# request_total: 565.6333333333333,\n# time: 1730615400,\n# },\n# {\n# request_total: 586.5666666666667,\n# time: 1730617200,\n# },\n# {\n# request_total: 611.7,\n# time: 1730619000,\n# },\n# {\n# request_total: 540.0645161290323,\n# time: 1730620800,\n# },\n# {\n# request_total: 595.9333333333333,\n# time: 1730622600,\n# },\n# {\n# request_total: 560.0333333333333,\n# time: 1730624400,\n# },\n# {\n# request_total: 565.2333333333333,\n# time: 1730626200,\n# },\n# {\n# request_total: 609.5806451612904,\n# time: 1730628000,\n# },\n# {\n# request_total: 598.8,\n# time: 1730629800,\n# },\n# {\n# request_total: 594.5333333333333,\n# time: 1730631600,\n# },\n# {\n# request_total: 525.7,\n# time: 1730633400,\n# },\n# {\n# request_total: 602.3666666666667,\n# time: 1730635200,\n# },\n# {\n# request_total: 557.7333333333333,\n# time: 1730637000,\n# },\n# {\n# request_total: 595.8666666666667,\n# time: 1730638800,\n# },\n# {\n# request_total: 638.7,\n# time: 1730640600,\n# },\n# {\n# request_total: 635.8333333333334,\n# time: 1730642400,\n# },\n# {\n# request_total: 563.9,\n# time: 1730644200,\n# },\n# {\n# request_total: 606.4516129032259,\n# time: 1730646000,\n# },\n# {\n# request_total: 660.1,\n# time: 1730647800,\n# },\n# {\n# request_total: 606.2666666666667,\n# time: 1730649600,\n# },\n# {\n# request_total: 504.43333333333334,\n# time: 1730651400,\n# },\n# {\n# request_total: 651.7333333333333,\n# time: 1730653200,\n# },\n# {\n# request_total: 583.5,\n# time: 1730655000,\n# },\n# {\n# request_total: 566.2333333333333,\n# time: 1730656800,\n# },\n# {\n# request_total: 519.2333333333333,\n# time: 1730658600,\n# },\n# {\n# request_total: 621.6333333333333,\n# time: 1730660400,\n# },\n# {\n# request_total: 530.9333333333333,\n# time: 1730662200,\n# },\n# {\n# request_total: 685.3,\n# time: 1730664000,\n# },\n# {\n# request_total: 616.3333333333334,\n# time: 1730665800,\n# },\n# {\n# request_total: 580.3333333333334,\n# time: 1730667600,\n# },\n# {\n# request_total: 568.5666666666667,\n# time: 1730669400,\n# },\n# {\n# request_total: 619.3,\n# time: 1730671200,\n# },\n# {\n# request_total: 636.2333333333333,\n# time: 1730673000,\n# },\n# {\n# request_total: 630.4666666666667,\n# time: 1730674800,\n# },\n# {\n# request_total: 621.4666666666667,\n# time: 1730676600,\n# },\n# {\n# request_total: 587.5333333333333,\n# time: 1730678400,\n# },\n# {\n# request_total: 542.8666666666667,\n# time: 1730680200,\n# },\n# {\n# request_total: 579,\n# time: 1730682000,\n# },\n# {\n# request_total: 563.5,\n# time: 1730683800,\n# },\n# ];\n# </script>\n# \n```\n"
13
7
  },
14
- "ai-portal.icon-button": {
15
- "doc": "构件 `ai-portal.icon-button`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.icon-button\nproperties:\n icon:\n lib: antd\n icon: download\n tooltip: Go to homepage\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.icon-button\n# tooltip=\"Go to homepage\"\n# id=\"brick-1\"\n# ></ai-portal.icon-button>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"antd\",\n# icon: \"download\",\n# };\n# </script>\n# \n```\n"
8
+ "ai-portal.cruise-canvas": {
9
+ "doc": "构件 `ai-portal.cruise-canvas`\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\nbrick: div\nproperties:\n style:\n width: 100vw\n height: 100vh\n position: fixed\n top: 0\n left: 0\nchildren:\n - brick: ai-portal.cruise-canvas\n properties:\n task:\n state: completed\n requirement: |-\n 帮我在CMDB中完成手机银行系统的资源纳管\n plan:\n - id: \"2\"\n state: completed\n instruction: |-\n 深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\n - id: \"8\"\n state: completed\n instruction: |-\n 深度搜素CMDB给出资源的纳管现状\n - id: \"10\"\n state: completed\n instruction: |-\n 利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\n - id: \"12\"\n state: completed\n instruction: |-\n 在CMDB中完成手机银行系统的资源纳管\n - id: \"14\"\n state: completed\n instruction: |-\n 生成纳管后手机银行系统的逻辑架构和部署架构图\n jobs:\n - id: \"2\"\n state: completed\n instruction: |-\n 深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\n - id: \"4\"\n upstream: [\"2\"]\n toolCall:\n name: online_search\n originalArguments: |-\n {\"keywords\":\"手机银行系统\"}\n state: completed\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n {\"content\":\"手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\"}\n - role: assistant\n parts:\n - type: text\n text: |-\n 《手机银行系统》\n\n 依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\n - id: \"5\"\n upstream: [\"2\"]\n state: completed\n toolCall:\n name: online_search\n originalArguments: |-\n {\"keywords\":\"XX公司运维管理文件\"}\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 《XX公司运维管理文件》\n\n 依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\n - role: tool\n parts:\n - type: data\n data:\n type: cmdb_instance_detail\n objectId: HOST\n detail:\n hostname: dev-01\n env:\n - id: prod\n name: 生产\n - id: test\n name: 测试\n backupOwners:\n - username: Jerry\n email: jerry@example.com\n - username: Lucy\n email: lucy@example.com\n - username: Mark\n email: mark@example.com\n owner:\n username: Jim\n email: jim@example.com\n - id: dev\n name: 开发\n owner:\n username: Tom\n email: tom@example.com\n system:\n id: web\n name: Web\n outputSchema:\n type: object\n properties:\n hostname:\n description: 主机名\n type: string\n system:\n type: object\n properties:\n id:\n type: string\n description: ID\n name:\n type: string\n env:\n type: array\n description: 环境\n items:\n type: object\n properties:\n id:\n description: ID\n type: string\n name:\n description: 环境名称\n type: string\n owner:\n type: object\n properties:\n username:\n type: string\n description: 用户名\n email:\n type: string\n description: 邮箱\n backupOwners:\n type: array\n items:\n type: object\n properties:\n username:\n type: string\n description: 用户名\n email:\n type: string\n description: 邮箱\n - id: \"7\"\n upstream: [\"4\", \"5\"]\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\n - id: \"8\"\n upstream: [\"7\"]\n instruction: |-\n 深度搜素CMDB给出资源的纳管现状\n state: completed\n toolCall:\n name: create_view\n originalArguments: |-\n {\"requirement\":\"创建一个 XX 视图\"}\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n <%\n JSON.stringify({\n \"viewId\": \"view-123\",\n \"code\": `// 调用监控数据查询接口查询该主机该时间段内的 CPU 使用率、磁盘使用率和网络流量的指标数据\n defineDataSource(\"hostMetrics\", {\n api: \"easyops.api.data_exchange.olap@Query\",\n objectId: \"HOST\",\n params: {\n model: \"easyops.HOST\",\n filters: [\n {\n name: \"ip\",\n operator: \"==\",\n value: \"1.2.3.4\"\n },\n {\n name: \"time\",\n operator: \">=\",\n value: \"now-2d\"\n },\n {\n name: \"time\",\n operator: \"<=\",\n value: \"now-1s\"\n }\n ],\n dims: [\"time(auto)\"],\n measures: [\n {\n function: {\n args: [\"system_cpu_total_norm_pct\"],\n expression: \"avg\"\n },\n name: \"system_cpu_total_norm_pct\"\n },\n {\n function: {\n args: [\"system_filesystem_usage_pct\"],\n expression: \"avg\"\n },\n name: \"system_filesystem_usage_pct\"\n },\n {\n function: {\n args: [\"system_network_in_bits_per_sec\"],\n expression: \"avg\"\n },\n name: \"system_network_in_bits_per_sec\"\n },\n {\n function: {\n args: [\"system_network_out_bits_per_sec\"],\n expression: \"avg\"\n },\n name: \"system_network_out_bits_per_sec\"\n }\n ]\n }\n });\n\n export default (\n <eo-view title=\"主机 1.2.3.4 监控趋势\">\n <eo-dashboard\n dataSource={CTX.hostMetrics}\n widgets={[\n {\n widget: \"chart\",\n type: \"line\",\n title: \"CPU 使用率\",\n metric: {\n id: \"system_cpu_total_norm_pct\",\n unit: \"percent(1)\"\n }\n },\n {\n widget: \"chart\",\n type: \"area\",\n title: \"磁盘使用率\",\n metric: {\n id: \"system_filesystem_usage_pct\",\n unit: \"percent(1)\"\n }\n },\n {\n widget: \"chart\",\n type: \"line\",\n title: \"网络流量 (入)\",\n metric: {\n id: \"system_network_in_bits_per_sec\",\n unit: \"bits/sec\"\n }\n },\n {\n widget: \"chart\",\n type: \"line\",\n title: \"网络流量 (出)\",\n metric: {\n id: \"system_network_out_bits_per_sec\",\n unit: \"bits/sec\"\n }\n }\n ]}\n />\n </eo-view>\n );`\n })\n %>\n - role: assistant\n parts:\n - type: text\n text: |-\n 基于CMDB查询手机银行的资源纳管情况,纳管现状总结如下:\n\n 实例数据的完整性\n 1. 系统录入(已完成)\n 2. 模块录入(部分完成),交易接入模块未录入\n 3. 环境录入(已完成)\n 4. 主机录入(部分完成),交易接入模块主机未录入\n 5. 部署实例录入(部分完成),交易接入模块的部署实例未录入\n\n 关系数据的完整性\n 1. 系统和模块(部分完成),系统和交易接入模块的关系未建立\n 2. 系统和环境(√)\n 3. 模块和主机(部分完成)\n 4. ...\n - id: \"10\"\n upstream: [\"8\"]\n toolCall:\n name: ask_human\n arguments:\n command: ask_user_more\n question: |-\n - 交易接入模块的录入;\n - 系统和交易接入模块的关系创建 ;\n - 部署实例自动采集特征录入。\n instruction: |-\n 利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\n state: completed\n messages:\n - role: user\n parts:\n - type: text\n text: |-\n 我补充下...\n - id: \"12\"\n upstream: [\"10\"]\n instruction: |-\n 在CMDB中完成手机银行系统的资源纳管\n toolCall:\n name: ask_human\n arguments:\n command: ask_user_confirm\n question: |-\n 方案执行的过程信息\n state: completed\n messages:\n - role: tool\n parts:\n - type: text\n text: |-\n 确认\n - id: \"14\"\n upstream: [\"12\"]\n instruction: |-\n 生成纳管后手机银行系统的逻辑架构和部署架构图\n tag: topology\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n https://example.com/topology\n - id: \"16\"\n upstream: [\"14\"]\n state: completed\n messages:\n - role: assistant\n parts:\n - type: text\n text: |-\n 该手机银行系统的资源纳管已经完成,本次纳管新增了交易接入模块和该模块相关的主机,以及部署实例信息,模块的纳管建议和架构管理平台打通,部署实例的纳管建议和自动发布平台打通,以便自动完成数据变更,确保数据的准确性,降低架构维护成本。\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 100vw; height: 100vh; position: fixed; top: 0; left: 0\">\n# <ai-portal.cruise-canvas id=\"brick-1\"></ai-portal.cruise-canvas>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.task = {\n# state: \"completed\",\n# requirement: \"帮我在CMDB中完成手机银行系统的资源纳管\",\n# plan: [\n# {\n# id: \"2\",\n# state: \"completed\",\n# instruction:\n# \"深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\",\n# },\n# {\n# id: \"8\",\n# state: \"completed\",\n# instruction: \"深度搜素CMDB给出资源的纳管现状\",\n# },\n# {\n# id: \"10\",\n# state: \"completed\",\n# instruction:\n# \"利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\",\n# },\n# {\n# id: \"12\",\n# state: \"completed\",\n# instruction: \"在CMDB中完成手机银行系统的资源纳管\",\n# },\n# {\n# id: \"14\",\n# state: \"completed\",\n# instruction: \"生成纳管后手机银行系统的逻辑架构和部署架构图\",\n# },\n# ],\n# };\n# brick_1.jobs = [\n# {\n# id: \"2\",\n# state: \"completed\",\n# instruction:\n# \"深度搜素内部知识库,确认手机银行系统包含的逻辑组件和部署要求\",\n# },\n# {\n# id: \"4\",\n# upstream: [\"2\"],\n# toolCall: {\n# name: \"online_search\",\n# originalArguments: '{\"keywords\":\"手机银行系统\"}',\n# },\n# state: \"completed\",\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: '{\"content\":\"手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\"}',\n# },\n# ],\n# },\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"《手机银行系统》\\n\\n依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"5\",\n# upstream: [\"2\"],\n# state: \"completed\",\n# toolCall: {\n# name: \"online_search\",\n# originalArguments: '{\"keywords\":\"XX公司运维管理文件\"}',\n# },\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"《XX公司运维管理文件》\\n\\n依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\",\n# },\n# ],\n# },\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"data\",\n# data: {\n# type: \"cmdb_instance_detail\",\n# objectId: \"HOST\",\n# detail: {\n# hostname: \"dev-01\",\n# env: [\n# {\n# id: \"prod\",\n# name: \"生产\",\n# },\n# {\n# id: \"test\",\n# name: \"测试\",\n# backupOwners: [\n# {\n# username: \"Jerry\",\n# email: \"jerry@example.com\",\n# },\n# {\n# username: \"Lucy\",\n# email: \"lucy@example.com\",\n# },\n# {\n# username: \"Mark\",\n# email: \"mark@example.com\",\n# },\n# ],\n# owner: {\n# username: \"Jim\",\n# email: \"jim@example.com\",\n# },\n# },\n# {\n# id: \"dev\",\n# name: \"开发\",\n# owner: {\n# username: \"Tom\",\n# email: \"tom@example.com\",\n# },\n# },\n# ],\n# system: {\n# id: \"web\",\n# name: \"Web\",\n# },\n# },\n# outputSchema: {\n# type: \"object\",\n# properties: {\n# hostname: {\n# description: \"主机名\",\n# type: \"string\",\n# },\n# system: {\n# type: \"object\",\n# properties: {\n# id: {\n# type: \"string\",\n# description: \"ID\",\n# },\n# name: {\n# type: \"string\",\n# },\n# },\n# },\n# env: {\n# type: \"array\",\n# description: \"环境\",\n# items: {\n# type: \"object\",\n# properties: {\n# id: {\n# description: \"ID\",\n# type: \"string\",\n# },\n# name: {\n# description: \"环境名称\",\n# type: \"string\",\n# },\n# owner: {\n# type: \"object\",\n# properties: {\n# username: {\n# type: \"string\",\n# description: \"用户名\",\n# },\n# email: {\n# type: \"string\",\n# description: \"邮箱\",\n# },\n# },\n# },\n# backupOwners: {\n# type: \"array\",\n# items: {\n# type: \"object\",\n# properties: {\n# username: {\n# type: \"string\",\n# description: \"用户名\",\n# },\n# email: {\n# type: \"string\",\n# description: \"邮箱\",\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"7\",\n# upstream: [\"4\", \"5\"],\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"依据内部知识库,手机银行系统的逻辑组件包含用户认证,交易接入和理财中心三个模块组成。依据《XX公司运维管理文件》该系统的重要等级为一级,可用性要求99.999%,MTTR为小于3分钟,该系统部署需要实现异地容灾,建议采用双中心部署,且单中心内核心模块无单点。\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"8\",\n# upstream: [\"7\"],\n# instruction: \"深度搜素CMDB给出资源的纳管现状\",\n# state: \"completed\",\n# toolCall: {\n# name: \"create_view\",\n# originalArguments: '{\"requirement\":\"创建一个 XX 视图\"}',\n# },\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: '<%\\n JSON.stringify({\\n \"viewId\": \"view-123\",\\n \"code\": `// 调用监控数据查询接口查询该主机该时间段内的 CPU 使用率、磁盘使用率和网络流量的指标数据\\ndefineDataSource(\"hostMetrics\", {\\n api: \"easyops.api.data_exchange.olap@Query\",\\n objectId: \"HOST\",\\n params: {\\n model: \"easyops.HOST\",\\n filters: [\\n {\\n name: \"ip\",\\n operator: \"==\",\\n value: \"1.2.3.4\"\\n },\\n {\\n name: \"time\",\\n operator: \">=\",\\n value: \"now-2d\"\\n },\\n {\\n name: \"time\",\\n operator: \"<=\",\\n value: \"now-1s\"\\n }\\n ],\\n dims: [\"time(auto)\"],\\n measures: [\\n {\\n function: {\\n args: [\"system_cpu_total_norm_pct\"],\\n expression: \"avg\"\\n },\\n name: \"system_cpu_total_norm_pct\"\\n },\\n {\\n function: {\\n args: [\"system_filesystem_usage_pct\"],\\n expression: \"avg\"\\n },\\n name: \"system_filesystem_usage_pct\"\\n },\\n {\\n function: {\\n args: [\"system_network_in_bits_per_sec\"],\\n expression: \"avg\"\\n },\\n name: \"system_network_in_bits_per_sec\"\\n },\\n {\\n function: {\\n args: [\"system_network_out_bits_per_sec\"],\\n expression: \"avg\"\\n },\\n name: \"system_network_out_bits_per_sec\"\\n }\\n ]\\n }\\n});\\n\\nexport default (\\n <eo-view title=\"主机 1.2.3.4 监控趋势\">\\n <eo-dashboard\\n dataSource={CTX.hostMetrics}\\n widgets={[\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"CPU 使用率\",\\n metric: {\\n id: \"system_cpu_total_norm_pct\",\\n unit: \"percent(1)\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"area\",\\n title: \"磁盘使用率\",\\n metric: {\\n id: \"system_filesystem_usage_pct\",\\n unit: \"percent(1)\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"网络流量 (入)\",\\n metric: {\\n id: \"system_network_in_bits_per_sec\",\\n unit: \"bits/sec\"\\n }\\n },\\n {\\n widget: \"chart\",\\n type: \"line\",\\n title: \"网络流量 (出)\",\\n metric: {\\n id: \"system_network_out_bits_per_sec\",\\n unit: \"bits/sec\"\\n }\\n }\\n ]}\\n />\\n </eo-view>\\n);`\\n })\\n%>',\n# },\n# ],\n# },\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"基于CMDB查询手机银行的资源纳管情况,纳管现状总结如下:\\n\\n实例数据的完整性\\n1. 系统录入(已完成)\\n2. 模块录入(部分完成),交易接入模块未录入\\n3. 环境录入(已完成)\\n4. 主机录入(部分完成),交易接入模块主机未录入\\n5. 部署实例录入(部分完成),交易接入模块的部署实例未录入\\n\\n关系数据的完整性\\n1. 系统和模块(部分完成),系统和交易接入模块的关系未建立\\n2. 系统和环境(√)\\n3. 模块和主机(部分完成)\\n4. ...\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"10\",\n# upstream: [\"8\"],\n# toolCall: {\n# name: \"ask_human\",\n# arguments: {\n# command: \"ask_user_more\",\n# question:\n# \"- 交易接入模块的录入;\\n- 系统和交易接入模块的关系创建 ;\\n- 部署实例自动采集特征录入。\",\n# },\n# },\n# instruction:\n# \"利用深度思考能力,给出手机银行系统的资源纳管优化方案,该方案用户可以微调或确认\",\n# state: \"completed\",\n# messages: [\n# {\n# role: \"user\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"我补充下...\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"12\",\n# upstream: [\"10\"],\n# instruction: \"在CMDB中完成手机银行系统的资源纳管\",\n# toolCall: {\n# name: \"ask_human\",\n# arguments: {\n# command: \"ask_user_confirm\",\n# question: \"方案执行的过程信息\",\n# },\n# },\n# state: \"completed\",\n# messages: [\n# {\n# role: \"tool\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"确认\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"14\",\n# upstream: [\"12\"],\n# instruction: \"生成纳管后手机银行系统的逻辑架构和部署架构图\",\n# tag: \"topology\",\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"https://example.com/topology\",\n# },\n# ],\n# },\n# ],\n# },\n# {\n# id: \"16\",\n# upstream: [\"14\"],\n# state: \"completed\",\n# messages: [\n# {\n# role: \"assistant\",\n# parts: [\n# {\n# type: \"text\",\n# text: \"该手机银行系统的资源纳管已经完成,本次纳管新增了交易接入模块和该模块相关的主机,以及部署实例信息,模块的纳管建议和架构管理平台打通,部署实例的纳管建议和自动发布平台打通,以便自动完成数据变更,确保数据的准确性,降低架构维护成本。\",\n# },\n# ],\n# },\n# ],\n# },\n# ];\n# </script>\n# \n```\n"
16
10
  },
17
11
  "ai-portal.elevo-sidebar": {
18
12
  "doc": "构件 `ai-portal.elevo-sidebar`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.elevo-sidebar\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.elevo-sidebar></ai-portal.elevo-sidebar>\n# \n```\n"
19
13
  },
14
+ "ai-portal.icon-button": {
15
+ "doc": "构件 `ai-portal.icon-button`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.icon-button\nproperties:\n icon:\n lib: antd\n icon: download\n tooltip: Go to homepage\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.icon-button\n# tooltip=\"Go to homepage\"\n# id=\"brick-1\"\n# ></ai-portal.icon-button>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.icon = {\n# lib: \"antd\",\n# icon: \"download\",\n# };\n# </script>\n# \n```\n"
16
+ },
20
17
  "ai-portal.show-cases": {
21
18
  "doc": "构件 `ai-portal.show-cases`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.show-cases\nproperties:\n textContent: Hello world\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.show-cases>Hello world</ai-portal.show-cases>\n# \n```\n"
22
19
  },
@@ -44,6 +41,9 @@
44
41
  "ai-portal.dropdown-select": {
45
42
  "doc": "构件 `ai-portal.dropdown-select`\n\n下拉选择器组件,提供选项列表供用户选择,支持搜索过滤功能。\n\n## Examples\n\n### Basic\n\n基础用法,提供选项列表:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n options:\n - label: \"选项1\"\n value: \"option1\"\n - label: \"选项2\"\n value: \"option2\"\n - label: \"选项3\"\n value: \"option3\"\n value: \"option1\"\nevents:\n change:\n action: \"console.log\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select\n# value=\"option1\"\n# id=\"brick-1\"\n# ></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.options = [\n# {\n# label: \"选项1\",\n# value: \"option1\",\n# },\n# {\n# label: \"选项2\",\n# value: \"option2\",\n# },\n# {\n# label: \"选项3\",\n# value: \"option3\",\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### With Search\n\n启用搜索功能:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n showSearch: true\n searchPlaceholder: \"请输入关键词搜索\"\n options:\n - label: \"北京市\"\n value: \"beijing\"\n - label: \"上海市\"\n value: \"shanghai\"\n - label: \"广州市\"\n value: \"guangzhou\"\n - label: \"深圳市\"\n value: \"shenzhen\"\n - label: \"杭州市\"\n value: \"hangzhou\"\nevents:\n change:\n action: \"console.log\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select show-search id=\"brick-1\"></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.searchPlaceholder = \"请输入关键词搜索\";\n# brick_1.options = [\n# {\n# label: \"北京市\",\n# value: \"beijing\",\n# },\n# {\n# label: \"上海市\",\n# value: \"shanghai\",\n# },\n# {\n# label: \"广州市\",\n# value: \"guangzhou\",\n# },\n# {\n# label: \"深圳市\",\n# value: \"shenzhen\",\n# },\n# {\n# label: \"杭州市\",\n# value: \"hangzhou\",\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Loading State\n\n加载状态显示:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n loading: true\n options:\n - label: \"加载中...\"\n value: \"loading\"\nevents:\n change:\n action: \"console.log\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select loading id=\"brick-1\"></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.options = [\n# {\n# label: \"加载中...\",\n# value: \"loading\",\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Custom Width\n\n自定义标签和下拉框宽度:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n labelMaxWidth: \"150px\"\n dropdownMaxWidth: \"300px\"\n options:\n - label: \"这是一个很长的选项标签文本\"\n value: \"long-option\"\n - label: \"短选项\"\n value: \"short\"\n - label: \"中等长度的选项\"\n value: \"medium\"\n value: \"long-option\"\nevents:\n change:\n action: \"console.log\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select\n# value=\"long-option\"\n# id=\"brick-1\"\n# ></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.labelMaxWidth = \"150px\";\n# brick_1.dropdownMaxWidth = \"300px\";\n# brick_1.options = [\n# {\n# label: \"这是一个很长的选项标签文本\",\n# value: \"long-option\",\n# },\n# {\n# label: \"短选项\",\n# value: \"short\",\n# },\n# {\n# label: \"中等长度的选项\",\n# value: \"medium\",\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### With Disabled Options\n\n包含禁用选项:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n options:\n - label: \"可用选项1\"\n value: \"enabled1\"\n - label: \"禁用选项\"\n value: \"disabled1\"\n disabled: true\n - label: \"可用选项2\"\n value: \"enabled2\"\n - label: \"禁用选项2\"\n value: \"disabled2\"\n disabled: true\nevents:\n change:\n action: \"console.log\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select id=\"brick-1\"></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.options = [\n# {\n# label: \"可用选项1\",\n# value: \"enabled1\",\n# },\n# {\n# label: \"禁用选项\",\n# value: \"disabled1\",\n# disabled: true,\n# },\n# {\n# label: \"可用选项2\",\n# value: \"enabled2\",\n# },\n# {\n# label: \"禁用选项2\",\n# value: \"disabled2\",\n# disabled: true,\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(e.detail);\n# });\n# </script>\n# \n```\n\n### Complex Example\n\n综合示例,包含所有功能:\n\n```yaml preview\nbrick: ai-portal.dropdown-select\nproperties:\n value: \"frontend\"\n showSearch: true\n searchPlaceholder: \"搜索技术栈\"\n labelMaxWidth: \"200px\"\n dropdownMaxWidth: \"400px\"\n options:\n - label: \"前端开发 - React\"\n value: \"frontend\"\n - label: \"后端开发 - Node.js\"\n value: \"backend\"\n - label: \"移动开发 - React Native\"\n value: \"mobile\"\n - label: \"数据库 - MongoDB\"\n value: \"database\"\n - label: \"DevOps - Docker\"\n value: \"devops\"\n disabled: true\n - label: \"机器学习 - Python\"\n value: \"ml\"\n - label: \"云计算 - AWS\"\n value: \"cloud\"\nevents:\n change:\n - action: \"console.log\"\n args:\n - \"选择了:\"\n - \"<% EVENT.detail %>\"\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.dropdown-select\n# value=\"frontend\"\n# show-search\n# id=\"brick-1\"\n# ></ai-portal.dropdown-select>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.searchPlaceholder = \"搜索技术栈\";\n# brick_1.labelMaxWidth = \"200px\";\n# brick_1.dropdownMaxWidth = \"400px\";\n# brick_1.options = [\n# {\n# label: \"前端开发 - React\",\n# value: \"frontend\",\n# },\n# {\n# label: \"后端开发 - Node.js\",\n# value: \"backend\",\n# },\n# {\n# label: \"移动开发 - React Native\",\n# value: \"mobile\",\n# },\n# {\n# label: \"数据库 - MongoDB\",\n# value: \"database\",\n# },\n# {\n# label: \"DevOps - Docker\",\n# value: \"devops\",\n# disabled: true,\n# },\n# {\n# label: \"机器学习 - Python\",\n# value: \"ml\",\n# },\n# {\n# label: \"云计算 - AWS\",\n# value: \"cloud\",\n# },\n# ];\n# brick_1.addEventListener(\"change\", (e) => {\n# console.log(\"选择了:\", e.detail);\n# });\n# </script>\n# \n```\n"
46
43
  },
44
+ "ai-portal.chat-box": {
45
+ "doc": "构件 `ai-portal.chat-box`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.chat-box\nproperties:\n textContent: Hello world\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.chat-box>Hello world</ai-portal.chat-box>\n# \n```\n\n### With cruise canvas\n\n```yaml preview minHeight=\"600px\"\nbrick: div\nproperties:\n style:\n width: 100vw\n height: 100vh\n position: fixed\n top: 0\n left: 0\ncontext:\n - name: task\nchildren:\n - brick: ai-portal.chat-box\n if: <%= !CTX.task %>\n properties:\n style:\n position: absolute\n width: 500px\n maxWidth: 90vw\n maxHeight: 90vh\n top: 50%\n left: 50%\n transform: translate(-50%, -50%)\n events:\n message.submit:\n useProvider: basic.http-request\n args:\n - \"<% `${BASE_URL}/api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/create` %>\"\n # - /api/mocks/task/send\n # - \"http://localhost:8888/.netlify/functions/task-send\"\n # - \"https://serverless-mocks.netlify.app/.netlify/functions/task-send\"\n - method: POST\n body: |\n <%\n JSON.stringify({\n input: EVENT.detail\n })\n %>\n headers:\n Content-Type: application/json\n callback:\n error:\n action: handleHttpError\n success:\n action: context.replace\n args:\n - task\n - <% EVENT.detail %>\n - brick: ai-portal.cruise-canvas\n if: <%= !!CTX.task %>\n properties:\n taskId: <% CTX.task.id %>\n# -- YAML DELIMITER (1nbbm8) --\n# <div style=\"width: 100vw; height: 100vh; position: fixed; top: 0; left: 0\">\n# <ai-portal.chat-box\n# style=\"\n# position: absolute;\n# width: 500px;\n# max-width: 90vw;\n# max-height: 90vh;\n# top: 50%;\n# left: 50%;\n# transform: translate(-50%, -50%);\n# \"\n# id=\"brick-1\"\n# ></ai-portal.chat-box>\n# <ai-portal.cruise-canvas\n# task-id=\"&lt;% CTX.task.id %&gt;\"\n# ></ai-portal.cruise-canvas>\n# </div>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.addEventListener(\"message.submit\", (e) => {\n# const provider = document.createElement(\"basic.http-request\");\n# const promise = Promise.resolve(\n# provider.resolve(\n# /* WARN: incompatible expressions in HTML, please try YAML: */\n# \"<% `${BASE_URL}/api/gateway/logic.llm.aiops_service/api/v1/llm/agent/flow/create` %>\",\n# {\n# method: \"POST\",\n# body: \"<%\\n JSON.stringify({\\n input: EVENT.detail\\n })\\n%>\\n\",\n# headers: { \"Content-Type\": \"application/json\" },\n# }\n# )\n# );\n# promise.then((r) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# promise.catch((r) => {\n# // WARN: encountered incompatible event handlers in HTML mode, please try YAML.\n# });\n# });\n# </script>\n# \n```\n"
46
+ },
47
47
  "ai-portal.preview-container": {
48
48
  "doc": "构件 `ai-portal.preview-container`\n\n## Examples\n\n### Basic\n\n```yaml preview minHeight=\"600px\"\nbrick: ai-portal.preview-container\nproperties:\n style:\n position: fixed\n inset: 0\n overflowY: auto\n source: |\n const RESPONSE = {\n \"list\": [\n {\n \"inode_usage\": [\n {\n \"total_inodes\": 21162000,\n \"used_inodes\": 1385716,\n \"free_inodes\": 19776284,\n \"percent\": \"7%\",\n \"device\": \"/dev/sda1\",\n \"mount_point\": \"/\"\n },\n {\n \"mount_point\": \"/boot\",\n \"total_inodes\": 524288,\n \"used_inodes\": 333,\n \"free_inodes\": 523955,\n \"percent\": \"1%\",\n \"device\": \"/dev/vda1\"\n }\n ],\n \"ip\": \"172.30.0.134\",\n \"disk_usage\": [\n {\n \"total\": \"95.00GB\",\n \"used\": \"85.00GB\",\n \"free\": \"9.00GB\",\n \"percent\": \"91%\",\n \"rw_status\": \"rw\",\n \"large_files\": [\n {\n \"size\": \"1.00GB\",\n \"path\": \"/temp/1\"\n },\n {\n \"path\": \"/temp/2\",\n \"size\": \"759.00MB\"\n },\n {\n \"size\": \"360.00MB\",\n \"path\": \"/temp/3\"\n }\n ],\n \"device\": \"/dev/sda1\",\n \"mount_point\": \"/\"\n },\n {\n \"rw_status\": \"rw\",\n \"device\": \"/dev/vda1\",\n \"mount_point\": \"/boot\",\n \"total\": \"1014.00MB\",\n \"used\": \"181.00MB\",\n \"free\": \"834.00MB\",\n \"percent\": \"18%\"\n }\n ]\n }\n ]\n };\n\n export default (\n <View title=\"磁盘使用情况\">\n {RESPONSE.list.map((item) => (\n <Card title={item.ip}>\n {/* 磁盘空间使用情况 */}\n <Plaintext>磁盘空间使用</Plaintext>\n <Table\n dataSource={{ list: item.disk_usage }}\n columns={[\n { dataIndex: \"device\", key: \"device\", title: \"设备\" },\n { dataIndex: \"mount_point\", key: \"mount_point\", title: \"挂载点\" },\n { dataIndex: \"total\", key: \"total\", title: \"总大小\" },\n { dataIndex: \"used\", key: \"used\", title: \"已用空间\" },\n { dataIndex: \"free\", key: \"free\", title: \"可用空间\" },\n { dataIndex: \"percent\", key: \"percent\", title: \"使用率\" },\n { dataIndex: \"rw_status\", key: \"rw_status\", title: \"读写状态\" }\n ]}\n rowKey=\"device\"\n pagination={false}\n />\n\n {/* Inode 使用情况 */}\n <Plaintext>Inode 使用情况</Plaintext>\n <Table\n dataSource={{ list: item.inode_usage }}\n columns={[\n { dataIndex: \"device\", key: \"device\", title: \"设备\" },\n { dataIndex: \"mount_point\", key: \"mount_point\", title: \"挂载点\" },\n { dataIndex: \"total_inodes\", key: \"total_inodes\", title: \"Inode 总数\" },\n { dataIndex: \"used_inodes\", key: \"used_inodes\", title: \"已用 Inode\" },\n { dataIndex: \"free_inodes\", key: \"free_inodes\", title: \"空闲 Inode\" },\n {\n dataIndex: \"percent\", key: \"percent\", title: \"使用率\",\n render: (cell, record) => (\n // <Plaintext>{record.percent}%</Plaintext>\n `~${record.percent}`\n )\n }\n ]}\n rowKey=\"device\"\n pagination={false}\n />\n\n {/* 大文件列表(仅当存在 large_files 且有内容时) */}\n {item.disk_usage\n .filter(disk => disk.large_files && disk.large_files.length > 0)\n .map(disk =>\n disk.large_files ? (\n <Fragment key={disk.device}>\n <Plaintext>{`大文件列表 (${disk.mount_point})`}</Plaintext>\n <Table\n dataSource={{ list: disk.large_files }}\n columns={[\n { dataIndex: \"path\", key: \"path\", title: \"路径\" },\n { dataIndex: \"size\", key: \"size\", title: \"大小\" }\n ]}\n rowKey=\"path\"\n pagination={false}\n />\n </Fragment>\n ) : null\n )}\n </Card>\n ))}\n </View>\n );\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.preview-container\n# style=\"position: fixed; inset: 0; overflow-y: auto\"\n# id=\"brick-1\"\n# ></ai-portal.preview-container>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.source =\n# 'const RESPONSE = {\\n \"list\": [\\n {\\n \"inode_usage\": [\\n {\\n \"total_inodes\": 21162000,\\n \"used_inodes\": 1385716,\\n \"free_inodes\": 19776284,\\n \"percent\": \"7%\",\\n \"device\": \"/dev/sda1\",\\n \"mount_point\": \"/\"\\n },\\n {\\n \"mount_point\": \"/boot\",\\n \"total_inodes\": 524288,\\n \"used_inodes\": 333,\\n \"free_inodes\": 523955,\\n \"percent\": \"1%\",\\n \"device\": \"/dev/vda1\"\\n }\\n ],\\n \"ip\": \"172.30.0.134\",\\n \"disk_usage\": [\\n {\\n \"total\": \"95.00GB\",\\n \"used\": \"85.00GB\",\\n \"free\": \"9.00GB\",\\n \"percent\": \"91%\",\\n \"rw_status\": \"rw\",\\n \"large_files\": [\\n {\\n \"size\": \"1.00GB\",\\n \"path\": \"/temp/1\"\\n },\\n {\\n \"path\": \"/temp/2\",\\n \"size\": \"759.00MB\"\\n },\\n {\\n \"size\": \"360.00MB\",\\n \"path\": \"/temp/3\"\\n }\\n ],\\n \"device\": \"/dev/sda1\",\\n \"mount_point\": \"/\"\\n },\\n {\\n \"rw_status\": \"rw\",\\n \"device\": \"/dev/vda1\",\\n \"mount_point\": \"/boot\",\\n \"total\": \"1014.00MB\",\\n \"used\": \"181.00MB\",\\n \"free\": \"834.00MB\",\\n \"percent\": \"18%\"\\n }\\n ]\\n }\\n ]\\n};\\n\\nexport default (\\n <View title=\"磁盘使用情况\">\\n {RESPONSE.list.map((item) => (\\n <Card title={item.ip}>\\n {/* 磁盘空间使用情况 */}\\n <Plaintext>磁盘空间使用</Plaintext>\\n <Table\\n dataSource={{ list: item.disk_usage }}\\n columns={[\\n { dataIndex: \"device\", key: \"device\", title: \"设备\" },\\n { dataIndex: \"mount_point\", key: \"mount_point\", title: \"挂载点\" },\\n { dataIndex: \"total\", key: \"total\", title: \"总大小\" },\\n { dataIndex: \"used\", key: \"used\", title: \"已用空间\" },\\n { dataIndex: \"free\", key: \"free\", title: \"可用空间\" },\\n { dataIndex: \"percent\", key: \"percent\", title: \"使用率\" },\\n { dataIndex: \"rw_status\", key: \"rw_status\", title: \"读写状态\" }\\n ]}\\n rowKey=\"device\"\\n pagination={false}\\n />\\n\\n {/* Inode 使用情况 */}\\n <Plaintext>Inode 使用情况</Plaintext>\\n <Table\\n dataSource={{ list: item.inode_usage }}\\n columns={[\\n { dataIndex: \"device\", key: \"device\", title: \"设备\" },\\n { dataIndex: \"mount_point\", key: \"mount_point\", title: \"挂载点\" },\\n { dataIndex: \"total_inodes\", key: \"total_inodes\", title: \"Inode 总数\" },\\n { dataIndex: \"used_inodes\", key: \"used_inodes\", title: \"已用 Inode\" },\\n { dataIndex: \"free_inodes\", key: \"free_inodes\", title: \"空闲 Inode\" },\\n {\\n dataIndex: \"percent\", key: \"percent\", title: \"使用率\",\\n render: (cell, record) => (\\n // <Plaintext>{record.percent}%</Plaintext>\\n `~${record.percent}`\\n )\\n }\\n ]}\\n rowKey=\"device\"\\n pagination={false}\\n />\\n\\n {/* 大文件列表(仅当存在 large_files 且有内容时) */}\\n {item.disk_usage\\n .filter(disk => disk.large_files && disk.large_files.length > 0)\\n .map(disk =>\\n disk.large_files ? (\\n <Fragment key={disk.device}>\\n <Plaintext>{`大文件列表 (${disk.mount_point})`}</Plaintext>\\n <Table\\n dataSource={{ list: disk.large_files }}\\n columns={[\\n { dataIndex: \"path\", key: \"path\", title: \"路径\" },\\n { dataIndex: \"size\", key: \"size\", title: \"大小\" }\\n ]}\\n rowKey=\"path\"\\n pagination={false}\\n />\\n </Fragment>\\n ) : null\\n )}\\n </Card>\\n ))}\\n </View>\\n);\\n';\n# </script>\n# \n```\n"
49
49
  },
@@ -52,5 +52,11 @@
52
52
  },
53
53
  "ai-portal.goal-card-list": {
54
54
  "doc": "构件 `ai-portal.goal-card-list`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.goal-card-list\nproperties:\n style:\n width: 600px\n goalList:\n - title: 页面流程绘制\n index: 100124\n state: ready\n instanceId: abc1\n conversations:\n - 会话1\n - 会话2\n - 会话3\n - title: 原型与设计绘制\n index: 100125\n state: working\n instanceId: bdc9\n conversations:\n - 会话4\n - title: 设计稿绘制\n index: 100126\n state: completed\n instanceId: d76a\n conversations:\n - 会话5\n - 会话6\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.goal-card-list\n# style=\"width: 600px\"\n# id=\"brick-1\"\n# ></ai-portal.goal-card-list>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.goalList = [\n# {\n# title: \"页面流程绘制\",\n# index: 100124,\n# state: \"ready\",\n# instanceId: \"abc1\",\n# conversations: [\"会话1\", \"会话2\", \"会话3\"],\n# },\n# {\n# title: \"原型与设计绘制\",\n# index: 100125,\n# state: \"working\",\n# instanceId: \"bdc9\",\n# conversations: [\"会话4\"],\n# },\n# {\n# title: \"设计稿绘制\",\n# index: 100126,\n# state: \"completed\",\n# instanceId: \"d76a\",\n# conversations: [\"会话5\", \"会话6\"],\n# },\n# ];\n# </script>\n# \n```\n"
55
+ },
56
+ "ai-portal.project-conversations": {
57
+ "doc": "构件 `ai-portal.project-conversations`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.project-conversations\nproperties:\n list:\n - conversationId: \"conv-a\"\n title: 标题一\n description: 这是一段描述\n startTime: 1757904096\n goal: GOAL0005\n - conversationId: \"conv-b\"\n title: 标题二\n startTime: 1757863597\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.project-conversations id=\"brick-1\"></ai-portal.project-conversations>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.list = [\n# {\n# conversationId: \"conv-a\",\n# title: \"标题一\",\n# description: \"这是一段描述\",\n# startTime: 1757904096,\n# goal: \"GOAL0005\",\n# },\n# {\n# conversationId: \"conv-b\",\n# title: \"标题二\",\n# startTime: 1757863597,\n# },\n# ];\n# </script>\n# \n```\n\n### Loading\n\n```yaml preview\nbrick: ai-portal.project-conversations\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.project-conversations></ai-portal.project-conversations>\n# \n```\n"
58
+ },
59
+ "ai-portal.project-knowledges": {
60
+ "doc": "构件 `ai-portal.project-knowledges`\n\n## Examples\n\n### Basic\n\n```yaml preview\nbrick: ai-portal.project-knowledges\nproperties:\n list:\n - knowledgeId: \"knowledge-a\"\n title: 标题一\n description: 这是一段描述\n time: 1757904096\n - knowledgeId: \"knowledge-b\"\n title: 标题二\n time: 1757863597\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.project-knowledges id=\"brick-1\"></ai-portal.project-knowledges>\n# \n# <script>\n# const brick_1 = document.getElementById(\"brick-1\");\n# brick_1.list = [\n# {\n# knowledgeId: \"knowledge-a\",\n# title: \"标题一\",\n# description: \"这是一段描述\",\n# time: 1757904096,\n# },\n# {\n# knowledgeId: \"knowledge-b\",\n# title: \"标题二\",\n# time: 1757863597,\n# },\n# ];\n# </script>\n# \n```\n\n### Loading\n\n```yaml preview\nbrick: ai-portal.project-knowledges\n# -- YAML DELIMITER (1nbbm8) --\n# <ai-portal.project-knowledges></ai-portal.project-knowledges>\n# \n```\n"
55
61
  }
56
62
  }
@@ -0,0 +1,2 @@
1
+ (()=>{"use strict";var e,t,r,a,n,o,l,i,c,s,d,f,h,u,m,b,p,v,g,P,x,y,w,k={8429:(e,t,r)=>{var a={"./home-container":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(3172)]).then((()=>()=>r(67494))),"./stat-with-mini-chart":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(7345)]).then((()=>()=>r(57687))),"./cruise-canvas":()=>Promise.all([r.e(5521),r.e(6977),r.e(4994),r.e(8794),r.e(8324),r.e(9828),r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(4558),r.e(1302),r.e(9475),r.e(7372),r.e(1321),r.e(9435),r.e(0),r.e(1919),r.e(2940),r.e(1967),r.e(453),r.e(2267)]).then((()=>()=>r(16185))),"./elevo-sidebar":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(1302),r.e(9475),r.e(7372),r.e(8616),r.e(7771)]).then((()=>()=>r(86833))),"./icon-button":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1541)]).then((()=>()=>r(99011))),"./show-cases":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(9475),r.e(4332)]).then((()=>()=>r(32118))),"./mcp-tools":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(7117),r.e(7087)]).then((()=>()=>r(72789))),"./ai-employees":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(6729)]).then((()=>()=>r(61159))),"./chat-stream":()=>Promise.all([r.e(5521),r.e(6977),r.e(4994),r.e(8794),r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(4558),r.e(1302),r.e(9475),r.e(7372),r.e(1321),r.e(9435),r.e(0),r.e(1919),r.e(2940),r.e(1967),r.e(3554),r.e(366)]).then((()=>()=>r(38208))),"./entity-sdk-get":()=>Promise.all([r.e(4558),r.e(7372),r.e(8858)]).then((()=>()=>r(53725))),"./entity-sdk-list":()=>Promise.all([r.e(4558),r.e(7372),r.e(4330)]).then((()=>()=>r(61417))),"./save-request-store":()=>Promise.all([r.e(4558),r.e(8539)]).then((()=>()=>r(10917))),"./load-request-store":()=>Promise.all([r.e(4558),r.e(8539)]).then((()=>()=>r(10917))),"./clear-request-store":()=>Promise.all([r.e(4558),r.e(8539)]).then((()=>()=>r(10917))),"./ai-agents":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(304)]).then((()=>()=>r(72714))),"./page-container":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(9475),r.e(5020)]).then((()=>()=>r(75142))),"./project-summary":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(1302),r.e(2677)]).then((()=>()=>r(39051))),"./tab-list":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(9873)]).then((()=>()=>r(1911))),"./dropdown-select":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(9053)]).then((()=>()=>r(63651))),"./chat-box":()=>Promise.all([r.e(4994),r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(7117),r.e(9435),r.e(6573)]).then((()=>()=>r(67707))),"./preview-container":()=>Promise.all([r.e(5521),r.e(6977),r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(4558),r.e(9475),r.e(7372),r.e(1321),r.e(0),r.e(1919),r.e(2940),r.e(8775)]).then((()=>()=>r(67693))),"./action-buttons":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(7117),r.e(6109)]).then((()=>()=>r(24059))),"./goal-card-list":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(7117),r.e(4322)]).then((()=>()=>r(30404))),"./project-conversations":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(1302),r.e(2697)]).then((()=>()=>r(57855))),"./project-knowledges":()=>Promise.all([r.e(8769),r.e(7921),r.e(1280),r.e(5168),r.e(1030),r.e(7117),r.e(1302),r.e(7908)]).then((()=>()=>r(76734)))},n=(e,t)=>(r.R=t,t=r.o(a,e)?a[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),r.R=void 0,t),o=(e,t)=>{if(r.S){var a="default",n=r.S[a];if(n&&n!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return r.S[a]=e,r.I(a,t)}};r.d(t,{get:()=>n,init:()=>o})}},j={};function S(e){var t=j[e];if(void 0!==t)return t.exports;var r=j[e]={id:e,loaded:!1,exports:{}};return k[e].call(r.exports,r,r.exports,S),r.loaded=!0,r.exports}S.m=k,S.c=j,S.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return S.d(t,{a:t}),t},S.d=(e,t)=>{for(var r in t)S.o(t,r)&&!S.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},S.f={},S.e=e=>Promise.all(Object.keys(S.f).reduce(((t,r)=>(S.f[r](e,t),t)),[])),S.u=e=>"chunks/"+({304:"ai-agents",366:"chat-stream",1541:"icon-button",2267:"cruise-canvas",2677:"project-summary",2697:"project-conversations",3172:"home-container",4322:"goal-card-list",4330:"entity-sdk-list",4332:"show-cases",5020:"page-container",6109:"action-buttons",6573:"chat-box",6729:"ai-employees",7087:"mcp-tools",7345:"stat-with-mini-chart",7771:"elevo-sidebar",7908:"project-knowledges",8539:"load-request-store",8775:"preview-container",8858:"entity-sdk-get",9053:"dropdown-select",9873:"tab-list"}[e]||e)+"."+{114:"86e10cdd",304:"8bc0db39",366:"88ec601e",453:"91b3c698",721:"f43de0ef",726:"392de709",833:"0f19f121",843:"9b7325c3",871:"42c14164",879:"a469d051",1045:"0906fc23",1097:"56d301a5",1120:"fd177648",1122:"95231c39",1136:"456f1c68",1215:"78630d79",1541:"1f657055",1889:"218ea7ea",1931:"2abee15e",1940:"afcdea49",1967:"9af40d13",2052:"ef23d12a",2260:"9564eb16",2267:"f715731a",2277:"b026624f",2432:"352ae272",2449:"b46fc22a",2508:"15c05669",2510:"91062655",2593:"783fb42e",2677:"9483f9d4",2697:"8ea09318",2940:"8640e146",3003:"a607b32b",3144:"4088b5d1",3171:"f486ac82",3172:"9f9ca1ca",3208:"0796f5be",3331:"bb7b4c1c",3419:"28287d23",3554:"3bd4e85e",3744:"327905d1",3816:"fc867cd4",3935:"3b6a2f5d",4041:"6b503155",4190:"7612613e",4228:"fb9278c3",4281:"ddad94d5",4306:"bae21d5d",4322:"80cea354",4330:"0b8120ce",4332:"5d37311e",4474:"5fd3e9c8",4491:"539d30f8",4609:"e21567a0",4658:"18d5ee4d",4735:"24157512",4765:"ae81ae59",4837:"ef36f6e2",4994:"58c51a7a",5020:"a637a6c4",5032:"2e4fb116",5065:"9616e9d3",5191:"ce5dfec4",5250:"5294dc23",5307:"28ab7643",5384:"564ae2e4",5399:"501fc322",5498:"298984c7",5521:"ef48a4d3",5548:"498b312d",5552:"57a9edba",5727:"93a1388d",5807:"0b926b80",5936:"5bba7f2f",6023:"843ea4a1",6029:"6fe4c192",6109:"646a069f",6161:"d7e3ea42",6519:"3ce478ef",6530:"dd7ab536",6573:"8bcfda44",6729:"b4cfaf9c",6773:"afd27a30",6977:"3f6d97bc",7087:"457ff64a",7146:"c0ae3b12",7218:"13c19b72",7302:"3117acc5",7345:"0c308dd8",7353:"02afd00b",7367:"26e21493",7721:"c985db03",7733:"0615ed85",7771:"199ad1c6",7842:"d5a94411",7908:"bbbed4a6",8231:"89b65f56",8263:"d9eaafab",8311:"69ab488d",8324:"71f13678",8348:"2fbb3b7e",8539:"eb92f754",8588:"0bce58e7",8616:"00ec7d55",8633:"1b8bb39e",8755:"1525c38d",8757:"5cde95c7",8775:"be444668",8794:"dc43f083",8858:"37c62d5f",8936:"b9a73775",8989:"ddf83737",9034:"7ff08734",9053:"60c8ff0c",9140:"8e69fcb4",9251:"52df4857",9263:"affcdb7b",9515:"468a8527",9559:"3db56cb0",9634:"71192f72",9828:"6afc1a0f",9831:"f659ce60",9844:"c3062a6b",9848:"ab8ad988",9873:"acfe1ff4"}[e]+".js",S.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),S.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="@next-bricks/ai-portal:",S.l=(r,a,n,o)=>{if(e[r])e[r].push(a);else{var l,i;if(void 0!==n)for(var c=document.getElementsByTagName("script"),s=0;s<c.length;s++){var d=c[s];if(d.getAttribute("src")==r||d.getAttribute("data-webpack")==t+n){l=d;break}}l||(i=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,S.nc&&l.setAttribute("nonce",S.nc),l.setAttribute("data-webpack",t+n),l.src=r),e[r]=[a];var f=(t,a)=>{l.onerror=l.onload=null,clearTimeout(h);var n=e[r];if(delete e[r],l.parentNode&&l.parentNode.removeChild(l),n&&n.forEach((e=>e(a))),t)return t(a)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=f.bind(null,l.onerror),l.onload=f.bind(null,l.onload),i&&document.head.appendChild(l)}},S.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},S.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{S.S={};var e={},t={};S.I=(r,a)=>{a||(a=[]);var n=t[r];if(n||(n=t[r]={}),!(a.indexOf(n)>=0)){if(a.push(n),e[r])return e[r];S.o(S.S,r)||(S.S[r]={});var o=S.S[r],l="@next-bricks/ai-portal",i=(e,t,r,a)=>{var n=o[e]=o[e]||{},i=n[t];(!i||!i.loaded&&(!a!=!i.eager?a:l>i.from))&&(n[t]={get:r,from:l,eager:!!a})},c=[];return"default"===r&&(i("@babel/parser","7.27.2",(()=>S.e(6773).then((()=>()=>S(46773))))),i("@easyops-cn/brick-next-pipes","0.7.3",(()=>Promise.all([S.e(4306),S.e(1030),S.e(1302),S.e(5310)]).then((()=>()=>S(34306))))),i("@next-core/cook","2.5.10",(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),i("@next-core/easyops-runtime","0.15.8",(()=>Promise.all([S.e(1097),S.e(1030),S.e(7117),S.e(4558),S.e(9475),S.e(7372),S.e(1321),S.e(0),S.e(9933),S.e(5310),S.e(1732),S.e(9848)]).then((()=>()=>S(11097))))),i("@next-core/element","1.2.18",(()=>S.e(1045).then((()=>()=>S(21045))))),i("@next-core/http","1.2.13",(()=>S.e(8989).then((()=>()=>S(48989))))),i("@next-core/i18n","1.0.83",(()=>Promise.all([S.e(7117),S.e(4558),S.e(671),S.e(5552)]).then((()=>()=>S(75552))))),i("@next-core/inject","1.0.58",(()=>Promise.all([S.e(1030),S.e(9933),S.e(2277)]).then((()=>()=>S(72277))))),i("@next-core/loader","1.6.16",(()=>S.e(5399).then((()=>()=>S(35399))))),i("@next-core/pipes","2.0.34",(()=>Promise.all([S.e(1919),S.e(6519)]).then((()=>()=>S(76519))))),i("@next-core/react-element","1.0.37",(()=>Promise.all([S.e(8769),S.e(7921),S.e(9435),S.e(114)]).then((()=>()=>S(20114))))),i("@next-core/react-runtime","1.7.28",(()=>Promise.all([S.e(8769),S.e(1280),S.e(1030),S.e(9475),S.e(4837)]).then((()=>()=>S(64837))))),i("@next-core/runtime","1.65.6",(()=>Promise.all([S.e(9140),S.e(1030),S.e(7117),S.e(4558),S.e(1302),S.e(7372),S.e(1321),S.e(0),S.e(1732),S.e(9718)]).then((()=>()=>S(19140))))),i("@next-core/supply","2.3.7",(()=>Promise.all([S.e(1030),S.e(1302),S.e(9933),S.e(9559)]).then((()=>()=>S(49559))))),i("@next-core/theme","1.6.0",(()=>Promise.all([S.e(1889),S.e(2052)]).then((()=>()=>S(51889))))),i("@next-core/utils/general","1.8.4",(()=>S.e(871).then((()=>()=>S(40871))))),i("@next-core/utils/storyboard","1.8.4",(()=>Promise.all([S.e(1030),S.e(4558),S.e(1321),S.e(7146)]).then((()=>()=>S(97146))))),i("history","4.10.1",(()=>S.e(3003).then((()=>()=>S(65384))))),i("i18next-browser-languagedetector","7.2.2",(()=>S.e(726).then((()=>()=>S(50726))))),i("i18next","22.5.1",(()=>S.e(843).then((()=>()=>S(20843))))),i("js-yaml","3.14.1",(()=>S.e(9515).then((()=>()=>S(19515))))),i("lodash","4.17.21",(()=>S.e(5250).then((()=>()=>S(45250))))),i("moment/locale/zh-cn.js","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),i("moment","2.30.1",(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),i("react-dom","0.0.0-experimental-ee8509801-20230117",(()=>Promise.all([S.e(3144),S.e(8769)]).then((()=>()=>S(43144))))),i("react","0.0.0-experimental-ee8509801-20230117",(()=>S.e(4041).then((()=>()=>S(14041)))))),e[r]=c.length?Promise.all(c).then((()=>e[r]=1)):1}}})(),(()=>{var e;S.g.importScripts&&(e=S.g.location+"");var t=S.g.document;if(!e&&t&&(t.currentScript&&"SCRIPT"===t.currentScript.tagName.toUpperCase()&&(e=t.currentScript.src),!e)){var r=t.getElementsByTagName("script");if(r.length)for(var a=r.length-1;a>-1&&(!e||!/^http(s?):/.test(e));)e=r[a--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),S.p=e})(),r=e=>{var t=e=>e.split(".").map((e=>+e==e?+e:e)),r=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),a=r[1]?t(r[1]):[];return r[2]&&(a.length++,a.push.apply(a,t(r[2]))),r[3]&&(a.push([]),a.push.apply(a,t(r[3]))),a},a=(e,t)=>{e=r(e),t=r(t);for(var a=0;;){if(a>=e.length)return a<t.length&&"u"!=(typeof t[a])[0];var n=e[a],o=(typeof n)[0];if(a>=t.length)return"u"==o;var l=t[a],i=(typeof l)[0];if(o!=i)return"o"==o&&"n"==i||"s"==i||"u"==o;if("o"!=o&&"u"!=o&&n!=l)return n<l;a++}},n=e=>{var t=e[0],r="";if(1===e.length)return"*";if(t+.5){r+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var a=1,o=1;o<e.length;o++)a--,r+="u"==(typeof(i=e[o]))[0]?"-":(a>0?".":"")+(a=2,i);return r}var l=[];for(o=1;o<e.length;o++){var i=e[o];l.push(0===i?"not("+c()+")":1===i?"("+c()+" || "+c()+")":2===i?l.pop()+" "+l.pop():n(i))}return c();function c(){return l.pop().replace(/^\((.+)\)$/,"$1")}},o=(e,t)=>{if(0 in e){t=r(t);var a=e[0],n=a<0;n&&(a=-a-1);for(var l=0,i=1,c=!0;;i++,l++){var s,d,f=i<e.length?(typeof e[i])[0]:"";if(l>=t.length||"o"==(d=(typeof(s=t[l]))[0]))return!c||("u"==f?i>a&&!n:""==f!=n);if("u"==d){if(!c||"u"!=f)return!1}else if(c)if(f==d)if(i<=a){if(s!=e[i])return!1}else{if(n?s>e[i]:s<e[i])return!1;s!=e[i]&&(c=!1)}else if("s"!=f&&"n"!=f){if(n||i<=a)return!1;c=!1,i--}else{if(i<=a||d<f!=n)return!1;c=!1}else"s"!=f&&"n"!=f&&(c=!1,i--)}}var h=[],u=h.pop.bind(h);for(l=1;l<e.length;l++){var m=e[l];h.push(1==m?u()|u():2==m?u()&u():m?o(m,t):!u())}return!!u()},l=(e,t)=>e&&S.o(e,t),i=e=>(e.loaded=1,e.get()),c=e=>Object.keys(e).reduce(((t,r)=>(e[r].eager&&(t[r]=e[r]),t)),{}),s=(e,t,r,n)=>{var l=n?c(e[t]):e[t];return(t=Object.keys(l).reduce(((e,t)=>!o(r,t)||e&&!a(e,t)?e:t),0))&&l[t]},d=(e,t,r)=>{var n=r?c(e[t]):e[t];return Object.keys(n).reduce(((e,t)=>!e||!n[e].loaded&&a(e,t)?t:e),0)},f=(e,t,r,a)=>"Unsatisfied version "+r+" from "+(r&&e[t][r].from)+" of shared singleton module "+t+" (required "+n(a)+")",h=(e,t,r,a,o)=>{var l=e[r];return"No satisfying version ("+n(a)+")"+(o?" for eager consumption":"")+" of shared module "+r+" found in shared scope "+t+".\nAvailable versions: "+Object.keys(l).map((e=>e+" from "+l[e].from)).join(", ")},u=e=>{throw new Error(e)},m=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},p=(e,t,r)=>r?r():((e,t)=>u("Shared module "+t+" doesn't exist in shared scope "+e))(e,t),v=(b=e=>function(t,r,a,n,o){var l=S.I(t);return l&&l.then&&!a?l.then(e.bind(e,t,S.S[t],r,!1,n,o)):e(t,S.S[t],r,a,n,o)})(((e,t,r,a,n,o)=>{if(!l(t,r))return p(e,r,o);var c=s(t,r,n,a);return c?i(c):o?o():void u(h(t,e,r,n,a))})),g=b(((e,t,r,a,n,c)=>{if(!l(t,r))return p(e,r,c);var s=d(t,r,a);return o(n,s)||m(f(t,r,s,n)),i(t[r][s])})),P={},x={41030:()=>g("default","lodash",!1,[1,4,17,21],(()=>S.e(5250).then((()=>()=>S(45250))))),21302:()=>g("default","moment",!1,[1,2,30,1],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(99420))))),55310:()=>g("default","js-yaml",!1,[0],(()=>S.e(9515).then((()=>()=>S(19515))))),40580:()=>g("default","@babel/parser",!1,[0],(()=>S.e(6773).then((()=>()=>S(46773))))),87117:()=>g("default","@next-core/i18n",!1,[1,1,0,83],(()=>Promise.all([S.e(4558),S.e(671),S.e(3171)]).then((()=>()=>S(75552))))),94558:()=>g("default","@next-core/utils/general",!1,[1,1,8,4],(()=>S.e(871).then((()=>()=>S(40871))))),29475:()=>g("default","@next-core/runtime",!1,[1,1,65,6],(()=>Promise.all([S.e(9140),S.e(1030),S.e(7117),S.e(4558),S.e(1302),S.e(7372),S.e(1321),S.e(0),S.e(1732),S.e(9718)]).then((()=>()=>S(19140))))),57372:()=>g("default","@next-core/http",!1,[1,1,2,13],(()=>S.e(8989).then((()=>()=>S(48989))))),71321:()=>g("default","@next-core/cook",!1,[0],(()=>Promise.all([S.e(1122),S.e(580)]).then((()=>()=>S(61122))))),7e4:()=>g("default","@next-core/utils/storyboard",!1,[1,1,8,4],(()=>S.e(4765).then((()=>()=>S(97146))))),59933:()=>g("default","@next-core/pipes",!1,[0],(()=>Promise.all([S.e(1919),S.e(6519)]).then((()=>()=>S(76519))))),11732:()=>g("default","history",!1,[0],(()=>S.e(3003).then((()=>()=>S(65384))))),848:()=>g("default","i18next-browser-languagedetector",!1,[0],(()=>S.e(726).then((()=>()=>S(50726))))),75630:()=>g("default","i18next",!1,[0],(()=>S.e(843).then((()=>()=>S(20843))))),61919:()=>g("default","@easyops-cn/brick-next-pipes",!1,[2,0,7,3],(()=>Promise.all([S.e(4306),S.e(1030),S.e(1302),S.e(5310)]).then((()=>()=>S(34306))))),18769:()=>v("default","react",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(4041).then((()=>()=>S(14041))))),7921:()=>v("default","@next-core/element",!1,[1,1,2,18],(()=>S.e(1045).then((()=>()=>S(21045))))),59435:()=>v("default","react-dom",!1,[6,0,0,0,,"experimental-ee8509801-20230117"],(()=>S.e(3144).then((()=>()=>S(43144))))),11280:()=>v("default","@next-core/react-element",!1,[1,1,0,37],(()=>Promise.all([S.e(7921),S.e(9435),S.e(7733)]).then((()=>()=>S(20114))))),26036:()=>g("default","moment/locale/zh-cn.js",!1,[1,2,30,1],(()=>Promise.all([S.e(7721),S.e(9844)]).then((()=>()=>S(61329))))),29283:()=>g("default","@next-core/inject",!1,[0],(()=>Promise.all([S.e(9933),S.e(4658)]).then((()=>()=>S(72277))))),45599:()=>g("default","@next-core/loader",!1,[0],(()=>S.e(5399).then((()=>()=>S(35399))))),94167:()=>g("default","@next-core/supply",!1,[0],(()=>Promise.all([S.e(9933),S.e(1940)]).then((()=>()=>S(49559))))),65168:()=>g("default","@next-core/theme",!1,[1,1,6,0],(()=>S.e(1889).then((()=>()=>S(51889))))),28247:()=>v("default","@next-core/react-runtime",!1,[1,1,7,28],(()=>S.e(7218).then((()=>()=>S(64837))))),92775:()=>g("default","@next-core/easyops-runtime",!1,[2,0,15,8],(()=>Promise.all([S.e(1097),S.e(9933),S.e(5310),S.e(1732)]).then((()=>()=>S(11097)))))},y={0:[7e4],453:[92775],580:[40580],671:[848,75630],1030:[41030],1280:[11280],1302:[21302],1321:[71321],1732:[11732],1919:[61919],1967:[28247],4558:[94558],5168:[65168],5310:[55310],7117:[87117],7372:[57372],7921:[7921],8769:[18769],9435:[59435],9475:[29475],9718:[26036,29283,45599,94167],9933:[59933]},w={},S.f.consumes=(e,t)=>{S.o(y,e)&&y[e].forEach((e=>{if(S.o(P,e))return t.push(P[e]);if(!w[e]){var r=t=>{P[e]=0,S.m[e]=r=>{delete S.c[e],r.exports=t()}};w[e]=!0;var a=t=>{delete P[e],S.m[e]=r=>{throw delete S.c[e],t}};try{var n=x[e]();n.then?t.push(P[e]=n.then(r).catch(a)):r(n)}catch(e){a(e)}}}))},(()=>{S.b=document.baseURI||self.location.href;var e={2641:0};S.f.j=(t,r)=>{var a=S.o(e,t)?e[t]:void 0;if(0!==a)if(a)r.push(a[2]);else if(/^(1(030|280|302|321|732|919)|5(168|310|80)|7(117|372|921)|9(435|475|718|933)|0|4558|671|8769)$/.test(t))e[t]=0;else{var n=new Promise(((r,n)=>a=e[t]=[r,n]));r.push(a[2]=n);var o=S.p+S.u(t),l=new Error;S.l(o,(r=>{if(S.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=r&&("load"===r.type?"missing":r.type),o=r&&r.target&&r.target.src;l.message="Loading chunk "+t+" failed.\n("+n+": "+o+")",l.name="ChunkLoadError",l.type=n,l.request=o,a[1](l)}}),"chunk-"+t,t)}};var t=(t,r)=>{var a,n,[o,l,i]=r,c=0;if(o.some((t=>0!==e[t]))){for(a in l)S.o(l,a)&&(S.m[a]=l[a]);i&&i(S)}for(t&&t(r);c<o.length;c++)n=o[c],S.o(e,n)&&e[n]&&e[n][0](),e[n]=0},r=globalThis.webpackChunk_next_bricks_ai_portal=globalThis.webpackChunk_next_bricks_ai_portal||[];r.forEach(t.bind(null,0)),r.push=t.bind(null,r.push.bind(r))})(),S.nc=void 0;var E=S(8429);window["bricks/ai-portal"]=E})();
2
+ //# sourceMappingURL=index.0ead77e3.js.map