@next-bricks/ai 1.31.7 → 1.31.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bricks.json +3 -3
- package/dist/chunks/{114.a2a09a47.js → 114.6dcfb279.js} +2 -2
- package/dist/chunks/{114.a2a09a47.js.map → 114.6dcfb279.js.map} +1 -1
- package/dist/chunks/{1940.a3ae0aee.js → 1940.0a2913cd.js} +2 -2
- package/dist/chunks/{9559.a09cb5a8.js.map → 1940.0a2913cd.js.map} +1 -1
- package/dist/chunks/{2277.739626ca.js → 2277.220826d5.js} +2 -2
- package/dist/chunks/{2277.739626ca.js.map → 2277.220826d5.js.map} +1 -1
- package/dist/chunks/{2742.c0d82b69.js → 2742.6200cb62.js} +2 -2
- package/dist/chunks/{2742.c0d82b69.js.map → 2742.6200cb62.js.map} +1 -1
- package/dist/chunks/3171.880829fd.js +2 -0
- package/dist/chunks/{3171.4bff8583.js.map → 3171.880829fd.js.map} +1 -1
- package/dist/chunks/3933.6cf72eca.js +2 -0
- package/dist/chunks/{3933.3a4ec1ca.js.map → 3933.6cf72eca.js.map} +1 -1
- package/dist/chunks/{4145.7506f60e.js → 4145.b6a82f3f.js} +2 -2
- package/dist/chunks/{4145.7506f60e.js.map → 4145.b6a82f3f.js.map} +1 -1
- package/dist/chunks/{4658.f561871e.js → 4658.e3a0db7e.js} +2 -2
- package/dist/chunks/{4658.f561871e.js.map → 4658.e3a0db7e.js.map} +1 -1
- package/dist/chunks/{4837.2d8717ce.js → 4837.65e41f81.js} +2 -2
- package/dist/chunks/{7218.d2d9e54b.js.map → 4837.65e41f81.js.map} +1 -1
- package/dist/chunks/5552.eb3bfadb.js +2 -0
- package/dist/chunks/{5552.b151a352.js.map → 5552.eb3bfadb.js.map} +1 -1
- package/dist/chunks/5582.277bf397.js +3 -0
- package/dist/chunks/5582.277bf397.js.map +1 -0
- package/dist/chunks/{5693.70cfaefc.js → 5693.f2eeff71.js} +3 -3
- package/dist/chunks/{5693.70cfaefc.js.map → 5693.f2eeff71.js.map} +1 -1
- package/dist/chunks/6314.6f899fbf.js +2 -0
- package/dist/chunks/{6314.aaa76a88.js.map → 6314.6f899fbf.js.map} +1 -1
- package/dist/chunks/{7218.d2d9e54b.js → 7218.3a5b48d9.js} +2 -2
- package/dist/chunks/{4837.2d8717ce.js.map → 7218.3a5b48d9.js.map} +1 -1
- package/dist/chunks/{7733.1e86775d.js → 7733.a217c4db.js} +2 -2
- package/dist/chunks/{7733.1e86775d.js.map → 7733.a217c4db.js.map} +1 -1
- package/dist/chunks/{9559.a09cb5a8.js → 9559.e0ce3165.js} +2 -2
- package/dist/chunks/{1940.a3ae0aee.js.map → 9559.e0ce3165.js.map} +1 -1
- package/dist/chunks/chat-agent.4c1af6f6.js +2 -0
- package/dist/chunks/{chat-agent.2805148b.js.map → chat-agent.4c1af6f6.js.map} +1 -1
- package/dist/chunks/{chat-view.4b6a7ba6.js → chat-view.78f5f489.js} +2 -2
- package/dist/chunks/{chat-view.4b6a7ba6.js.map → chat-view.78f5f489.js.map} +1 -1
- package/dist/chunks/main.26e640e9.js +2 -0
- package/dist/chunks/{main.0b3f1788.js.map → main.26e640e9.js.map} +1 -1
- package/dist/index.1e7df7a4.js +2 -0
- package/dist/{index.771883df.js.map → index.1e7df7a4.js.map} +1 -1
- package/dist/manifest.json +99 -99
- package/package.json +3 -3
- package/dist/chunks/3171.4bff8583.js +0 -2
- package/dist/chunks/3933.3a4ec1ca.js +0 -2
- package/dist/chunks/5552.b151a352.js +0 -2
- package/dist/chunks/5582.7b189438.js +0 -3
- package/dist/chunks/5582.7b189438.js.map +0 -1
- package/dist/chunks/6314.aaa76a88.js +0 -2
- package/dist/chunks/chat-agent.2805148b.js +0 -2
- package/dist/chunks/main.0b3f1788.js +0 -2
- package/dist/index.771883df.js +0 -2
- /package/dist/chunks/{5582.7b189438.js.LICENSE.txt → 5582.277bf397.js.LICENSE.txt} +0 -0
- /package/dist/chunks/{5693.70cfaefc.js.LICENSE.txt → 5693.f2eeff71.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[3171,5552],{5552:(n,e,t)=>{t.r(e),t.d(e,{i18n:()=>p,i18nText:()=>l,initializeI18n:()=>u});var i=t(2350),s=t(413),r=t(7072);let a=!1;const o=new Set;function u(n,e){if(a||(a=!0,s.i18n.use(r.default).init({fallbackLng:"zh",debug:!1,supportedLngs:["zh","en"],nonExplicitSupportedLngs:!0,interpolation:{escapeValue:!1},react:{useSuspense:!1},compatibilityJSON:"v3",resources:{}})),n&&e&&!o.has(n)){o.add(n);for(const[t,i]of Object.entries(e))s.i18n.addResourceBundle(t,n,i)}}var c=t(6878);function l(n){var e;if(!n)return;const t=null!==(e=s.i18n.language)&&void 0!==e?e:"zh-CN";if((0,c.hasOwnProperty)(n,t))return n[t];const i=t.split("-")[0];if(i!==t)return(0,c.hasOwnProperty)(n,i)?n[i]:void 0;const r=`${i}-`;for(const e of Object.keys(n))if(e.startsWith(r))return n[e]}const p=i.default}}]);
|
|
2
|
+
//# sourceMappingURL=3171.880829fd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/3171.
|
|
1
|
+
{"version":3,"file":"chunks/3171.880829fd.js","mappings":"mOAEA,IAAIA,GAAc,EAClB,MAAMC,EAAwB,IAAIC,IAC3B,SAASC,EAAeC,EAAIC,GAwBjC,GAvBKL,IACHA,GAAc,EACd,EAAAM,KAICC,IAAmF,WAEnFC,KAAK,CACJC,YAAa,KACbC,OAAO,EACPC,cAAe,CAAC,KAAM,MACtBC,0BAA0B,EAC1BC,cAAe,CACbC,aAAa,GAEfC,MAAO,CACLC,aAAa,GAEfC,kBAAmB,KACnBC,UAAW,CAAC,KAGXd,GAAOC,IAAWJ,EAAsBkB,IAAIf,GAAjD,CAGAH,EAAsBmB,IAAIhB,GAC1B,IAAK,MAAOiB,EAAMH,KAAcI,OAAOC,QAAQlB,GAC7C,EAAAC,KAAKkB,kBAAkBH,EAAMjB,EAAIc,EAHnC,CAKF,C,cCjCO,SAASO,EAASC,GACvB,IAAIC,EACJ,IAAKD,EACH,OAEF,MAAME,EAAgD,QAApCD,EAAiB,EAAArB,KAAKsB,gBAAyC,IAAnBD,EAA4BA,EAAiB,QAE3G,IAAI,IAAAE,gBAAeH,EAAME,GACvB,OAAOF,EAAKE,GAGd,MAAME,EAAkBF,EAASG,MAAM,KAAK,GAC5C,GAAID,IAAoBF,EAGtB,OAAO,IAAAC,gBAAeH,EAAMI,GAAmBJ,EAAKI,QAAmBE,EAKzE,MAAMC,EAAS,GAAGH,KAClB,IAAK,MAAMI,KAAOZ,OAAOa,KAAKT,GAC5B,GAAIQ,EAAIE,WAAWH,GACjB,OAAOP,EAAKQ,EAGlB,CC3BO,MAAM5B,EAA6E,S","sources":["webpack:///../../node_modules/@next-core/i18n/dist/esm/init.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/text.js","webpack:///../../node_modules/@next-core/i18n/dist/esm/index.js"],"sourcesContent":["import { i18n } from \"@next-core/i18n\";\nimport LanguageDetector from \"i18next-browser-languagedetector\";\nlet initialized = false;\nconst initializedNamespaces = new Set();\nexport function initializeI18n(NS, locales) {\n if (!initialized) {\n initialized = true;\n i18n\n // learn more: https://github.com/i18next/i18next-xhr-backend\n // .use(Backend)\n // learn more: https://github.com/i18next/i18next-browser-languageDetector\n .use(process.env.NODE_ENV === \"test\" ? LanguageDetector : /* istanbul ignore next */LanguageDetector.default)\n // for all options read: https://www.i18next.com/overview/configuration-options\n .init({\n fallbackLng: \"zh\",\n debug: process.env.NODE_ENV === \"development\",\n supportedLngs: [\"zh\", \"en\"],\n nonExplicitSupportedLngs: true,\n interpolation: {\n escapeValue: false // not needed for react as it escapes by default\n },\n react: {\n useSuspense: false\n },\n compatibilityJSON: \"v3\",\n resources: {}\n });\n }\n if (!NS || !locales || initializedNamespaces.has(NS)) {\n return;\n }\n initializedNamespaces.add(NS);\n for (const [lang, resources] of Object.entries(locales)) {\n i18n.addResourceBundle(lang, NS, resources);\n }\n}\n//# sourceMappingURL=init.js.map","import { i18n } from \"@next-core/i18n\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nexport function i18nText(data) {\n var _i18n$language;\n if (!data) {\n return;\n }\n const language = (_i18n$language = i18n.language) !== null && _i18n$language !== void 0 ? _i18n$language : \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage) ? data[primaryLanguage] : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n//# sourceMappingURL=text.js.map","import i18next from \"i18next\";\nexport const i18n = process.env.NODE_ENV === \"test\" ? i18next : /* istanbul ignore next */i18next.default;\nexport * from \"./init.js\";\nexport * from \"./text.js\";\n//# sourceMappingURL=index.js.map"],"names":["initialized","initializedNamespaces","Set","initializeI18n","NS","locales","i18n","use","init","fallbackLng","debug","supportedLngs","nonExplicitSupportedLngs","interpolation","escapeValue","react","useSuspense","compatibilityJSON","resources","has","add","lang","Object","entries","addResourceBundle","i18nText","data","_i18n$language","language","hasOwnProperty","primaryLanguage","split","undefined","prefix","key","keys","startsWith"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[3933,6314],{3933:(e,t,o)=>{function n(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return function(r,s){if("string"==typeof t?r.name===t:t.includes(r.name)){const t=[];for(let i=1;i<=o;i++){const o=s[s.length-i];if("MemberExpression"===(null==o?void 0:o.node.type)&&"object"===o.key){const s=o.node;s.computed||"Identifier"!==s.property.type?s.computed&&"Literal"===s.property.type&&"string"==typeof s.property.value?t.push(n?`${r.name}.${s.property.value}`:s.property.value):e.hasNonStaticUsage=!0:t.push(n?`${r.name}.${s.property.name}`:s.property.name)}else e.hasNonStaticUsage=!0}t.length===o&&e.usedProperties.add(t.join("."))}}}function r(e,t){return function(o,n,r){if(n.name===e){const e=r[r.length-1],n=r[r.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==e?void 0:e.node.type)&&"object"===e.key&&(e.node.computed?"Literal"===e.node.property.type&&e.node.property.value===t:"Identifier"===e.node.property.type&&e.node.property.name===t)){const e=n.node.arguments;if(e.length>0){const t=e[0];"Literal"===t.type&&"string"==typeof t.value?o.usedArgs.add(t.value):o.hasNonStaticUsage=!0}}}}}o.r(t),o.d(t,{beforeVisitGlobalMember:()=>n,collectAppGetMenuUsage:()=>s,collectInstalledAppsHasUsage:()=>i,collectMemberUsage:()=>p,collectMemberUsageInFunction:()=>S,createProviderClass:()=>c.createProviderClass,scanPermissionActionsInAny:()=>P,scanPermissionActionsInStoryboard:()=>v,strictCollectMemberUsage:()=>l,track:()=>f,trackAll:()=>y,traverseStoryboardExpressions:()=>u,traverseStoryboardFunction:()=>g,traverseStoryboardFunctions:()=>h,unwrapProvider:()=>c.unwrapProvider});const s=r("APP","getMenu"),i=r("INSTALLED_APPS","has");var a=o(5585),c=o(6878);function u(e,t,o){const n=new WeakSet,{matchExpressionString:r,visitNotMatchedExpressionString:s,visitNonExpressionString:i,visitObject:u}="string"==typeof o?{matchExpressionString:e=>e.includes(o)}:o;!function e(o){if("string"==typeof o)if((0,a.isEvaluable)(o))if(r(o))try{(0,a.preevaluate)(o,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal(e,n){t(e,n,o)}}})}catch(e){console.error("Parse storyboard expression failed:",e)}else null==s||s(o);else null==i||i(o);else if((0,c.isObject)(o)){if(n.has(o))return;n.add(o),null==u||u(o);for(const t of Array.isArray(o)?o:Object.values(o))e(t)}}(e)}function l(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const{hasNonStaticUsage:n,nonStaticUsage:r,usedProperties:s}=p(e,t,o);if(n)throw new Error(`Non-static usage of ${t} is prohibited, check your expression: "${r}"`);return s}function p(e,t){let o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const r={usedProperties:new Set,hasNonStaticUsage:!1},s=n(r,t,o);return u(e,((e,t,o)=>{s(e,t),r.hasNonStaticUsage&&(r.nonStaticUsage=o)}),t),r}const d=["CTX","STATE","FORM_STATE"];function f(e,t,o){if(e.includes(t)){const r={usedProperties:new Set,hasNonStaticUsage:!1},{expression:s}=(0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(r,o)}});let i;if("SequenceExpression"===s.type&&(i=s.expressions[0])&&"Literal"===i.type&&i.value===t){if(r.usedProperties.size>0)return r.usedProperties;console.warn(`You are using "${t}" but no \`${o}\` usage found in your expression: ${JSON.stringify(e)}`)}}return!1}function y(e){if(d.some((t=>e.includes(t)))){const t={usedProperties:new Set,hasNonStaticUsage:!1};if((0,a.preevaluate)(e,{cache:!0,withParent:!0,hooks:{beforeVisitGlobal:n(t,d,1,!0)}}),t.usedProperties.size>0){const e=[...t.usedProperties],o={context:!1,state:!1,formState:!1},n={CTX:"context",STATE:"state",FORM_STATE:"formState"};return e.forEach((e=>{const[t,r]=e.split(".");o[n[t]]||(o[n[t]]=[]),o[n[t]].push(r)})),o}console.warn(`You are using track all but no "CTX" or "STATE" or "FORM_STATE" usage found in your expression: ${JSON.stringify(e)}`)}return!1}function h(e,t,o){if(Array.isArray(e))for(const n of e)null!=o&&o.matchSource&&!o.matchSource(n.source)||g(n,t)}function g(e,t,o){try{(0,a.precookFunction)(e.source,{typescript:e.typescript,withParent:!0,hooks:{beforeVisitGlobal:t},cacheKey:e})}catch(t){o||console.error(`Parse storyboard function "${e.name}" failed:`,t)}}function S(e,t,o){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;const s={usedProperties:new Set,hasNonStaticUsage:!1};if(e.source.includes(t)&&g(e,n(s,t,r),o),s.hasNonStaticUsage&&!o)throw new Error(`Non-static usage of ${t} is prohibited, check your function: "${e.name}"`);return s.usedProperties.delete(e.name),s.usedProperties}const m="PERMISSIONS",b="check";function v(e){var t;const o=new Set,n=k(o),{customTemplates:r,functions:s}=null!==(t=e.meta)&&void 0!==t?t:{};return u([e.routes,r],n,m),h(s,n,{matchSource:e=>e.includes(m)}),Array.from(o)}function P(e){const t=new Set;return u(e,k(t),m),Array.from(t)}function k(e){return function(t,o){if(t.name===m){const t=o[o.length-1],n=o[o.length-2];if("CallExpression"===(null==n?void 0:n.node.type)&&"callee"===(null==n?void 0:n.key)&&"MemberExpression"===(null==t?void 0:t.node.type)&&"object"===t.key&&(t.node.computed?"Literal"===t.node.property.type&&t.node.property.value===b:"Identifier"===t.node.property.type&&t.node.property.name===b))for(const t of n.node.arguments)"Literal"===t.type&&"string"==typeof t.value&&e.add(t.value)}}}}}]);
|
|
2
|
+
//# sourceMappingURL=3933.6cf72eca.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/3933.3a4ec1ca.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/3933.6cf72eca.js","mappings":"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","sources":["webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/beforeVisitGlobalMember.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberCallUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/collectMemberUsage.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/expressions/track.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/traverse.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/functions/collectMemberUsageInFunction.js","webpack:///../../node_modules/@next-core/utils/dist/esm/storyboard/permissions.js"],"sourcesContent":["export function beforeVisitGlobalMember(usage, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n let rememberObjectName = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n return function beforeVisitGlobal(node, parent) {\n if (typeof objectName === \"string\" ? node.name === objectName : objectName.includes(node.name)) {\n const segments = [];\n for (let i = 1; i <= level; i++) {\n const memberParent = parent[parent.length - i];\n if ((memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\") {\n const memberNode = memberParent.node;\n if (!memberNode.computed && memberNode.property.type === \"Identifier\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.name}` : memberNode.property.name);\n } else if (memberNode.computed && memberNode.property.type === \"Literal\" && typeof memberNode.property.value === \"string\") {\n segments.push(rememberObjectName ? `${node.name}.${memberNode.property.value}` : memberNode.property.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n if (segments.length === level) {\n usage.usedProperties.add(segments.join(\".\"));\n }\n }\n };\n}\n//# sourceMappingURL=beforeVisitGlobalMember.js.map","function collectMemberCallUsageFactory(object, property) {\n return function collectMemberCallUsage(usage, node, parent) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === property : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === property)) {\n const args = callParent.node.arguments;\n if (args.length > 0) {\n const firstArg = args[0];\n if (firstArg.type === \"Literal\" && typeof firstArg.value === \"string\") {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\"APP\", \"getMenu\");\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\"INSTALLED_APPS\", \"has\");\n//# sourceMappingURL=collectMemberCallUsage.js.map","import { isEvaluable, preevaluate } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nexport function traverseStoryboardExpressions(data, beforeVisitGlobal,\n// If `options` is a string, it means the *keyword*.\noptions) {\n const memo = new WeakSet();\n const {\n matchExpressionString,\n visitNotMatchedExpressionString,\n visitNonExpressionString,\n visitObject\n } = typeof options === \"string\" ? {\n matchExpressionString: v => v.includes(options)\n } : options;\n function traverse(value) {\n if (typeof value === \"string\") {\n if (isEvaluable(value)) {\n if (matchExpressionString(value)) {\n try {\n preevaluate(value, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n beforeVisitGlobal(node, parent, value);\n }\n }\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse storyboard expression failed:\", error);\n }\n } else {\n visitNotMatchedExpressionString === null || visitNotMatchedExpressionString === void 0 || visitNotMatchedExpressionString(value);\n }\n } else {\n visitNonExpressionString === null || visitNonExpressionString === void 0 || visitNonExpressionString(value);\n }\n } else if (isObject(value)) {\n // Avoid call stack overflow.\n if (memo.has(value)) {\n return;\n }\n memo.add(value);\n visitObject === null || visitObject === void 0 || visitObject(value);\n for (const item of Array.isArray(value) ? value : Object.values(value)) {\n traverse(item);\n }\n }\n }\n traverse(data);\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nimport { traverseStoryboardExpressions } from \"./traverse.js\";\nexport function strictCollectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const {\n hasNonStaticUsage,\n nonStaticUsage,\n usedProperties\n } = collectMemberUsage(data, objectName, level);\n if (hasNonStaticUsage) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your expression: \"${nonStaticUsage}\"`);\n }\n return usedProperties;\n}\nexport function collectMemberUsage(data, objectName) {\n let level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const beforeVisitGlobal = beforeVisitGlobalMember(usage, objectName, level);\n traverseStoryboardExpressions(data, (node, parent, expr) => {\n beforeVisitGlobal(node, parent);\n if (usage.hasNonStaticUsage) {\n usage.nonStaticUsage = expr;\n }\n }, objectName);\n return usage;\n}\n//# sourceMappingURL=collectMemberUsage.js.map","import { preevaluate } from \"@next-core/cook\";\nimport { beforeVisitGlobalMember } from \"./beforeVisitGlobalMember.js\";\nconst TRACK_NAMES = [\"CTX\", \"STATE\", \"FORM_STATE\"];\nexport function track(raw, trackText, variableName) {\n if (raw.includes(trackText)) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n const {\n expression\n } = preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, variableName)\n }\n });\n let trackCtxExp;\n if (expression.type === \"SequenceExpression\" && (trackCtxExp = expression.expressions[0]) && trackCtxExp.type === \"Literal\" && trackCtxExp.value === trackText) {\n if (usage.usedProperties.size > 0) {\n return usage.usedProperties;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using \"${trackText}\" but no \\`${variableName}\\` usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n }\n return false;\n}\nexport function trackAll(raw) {\n // Do not pre-evaluate a string if it doesn't include track names.\n if (TRACK_NAMES.some(name => raw.includes(name))) {\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n preevaluate(raw, {\n cache: true,\n withParent: true,\n hooks: {\n beforeVisitGlobal: beforeVisitGlobalMember(usage, TRACK_NAMES, 1, true)\n }\n });\n if (usage.usedProperties.size > 0) {\n const usedProperties = [...usage.usedProperties];\n const result = {\n context: false,\n state: false,\n formState: false\n };\n const keyMap = {\n CTX: \"context\",\n STATE: \"state\",\n FORM_STATE: \"formState\"\n };\n usedProperties.forEach(item => {\n const [key, name] = item.split(\".\");\n if (!result[keyMap[key]]) {\n result[keyMap[key]] = [];\n }\n result[keyMap[key]].push(name);\n });\n return result;\n } else {\n // eslint-disable-next-line no-console\n console.warn(`You are using track all but no \"CTX\" or \"STATE\" or \"FORM_STATE\" usage found in your expression: ${JSON.stringify(raw)}`);\n }\n }\n return false;\n}\n//# sourceMappingURL=track.js.map","import { precookFunction } from \"@next-core/cook\";\nexport function traverseStoryboardFunctions(functions, beforeVisitGlobal, options) {\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n if (!(options !== null && options !== void 0 && options.matchSource) || options.matchSource(fn.source)) {\n traverseStoryboardFunction(fn, beforeVisitGlobal);\n }\n }\n }\n}\nexport function traverseStoryboardFunction(fn, beforeVisitGlobal, silentErrors) {\n try {\n precookFunction(fn.source, {\n typescript: fn.typescript,\n withParent: true,\n hooks: {\n beforeVisitGlobal\n },\n cacheKey: fn\n });\n } catch (error) {\n if (!silentErrors) {\n // eslint-disable-next-line no-console\n console.error(`Parse storyboard function \"${fn.name}\" failed:`, error);\n }\n }\n}\n//# sourceMappingURL=traverse.js.map","import { beforeVisitGlobalMember } from \"../expressions/beforeVisitGlobalMember.js\";\nimport { traverseStoryboardFunction } from \"./traverse.js\";\nexport function collectMemberUsageInFunction(fn, objectName, silentErrors) {\n let level = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n const usage = {\n usedProperties: new Set(),\n hasNonStaticUsage: false\n };\n if (fn.source.includes(objectName)) {\n traverseStoryboardFunction(fn, beforeVisitGlobalMember(usage, objectName, level), silentErrors);\n }\n if (usage.hasNonStaticUsage && !silentErrors) {\n throw new Error(`Non-static usage of ${objectName} is prohibited, check your function: \"${fn.name}\"`);\n }\n usage.usedProperties.delete(fn.name);\n return usage.usedProperties;\n}\n//# sourceMappingURL=collectMemberUsageInFunction.js.map","import { traverseStoryboardExpressions } from \"./expressions/index.js\";\nimport { traverseStoryboardFunctions } from \"./functions/index.js\";\nconst PERMISSIONS = \"PERMISSIONS\";\nconst check = \"check\";\nexport function scanPermissionActionsInStoryboard(storyboard) {\n var _storyboard$meta;\n const collection = new Set();\n const beforeVisitPermissions = beforeVisitPermissionsFactory(collection);\n const {\n customTemplates,\n functions\n } = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};\n traverseStoryboardExpressions([storyboard.routes, customTemplates], beforeVisitPermissions, PERMISSIONS);\n traverseStoryboardFunctions(functions, beforeVisitPermissions, {\n matchSource(source) {\n return source.includes(PERMISSIONS);\n }\n });\n return Array.from(collection);\n}\nexport function scanPermissionActionsInAny(data) {\n const collection = new Set();\n traverseStoryboardExpressions(data, beforeVisitPermissionsFactory(collection), PERMISSIONS);\n return Array.from(collection);\n}\nfunction beforeVisitPermissionsFactory(collection) {\n return function beforeVisitPermissions(node, parent) {\n if (node.name === PERMISSIONS) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === \"CallExpression\" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === \"callee\" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === \"MemberExpression\" && memberParent.key === \"object\" && (memberParent.node.computed ? memberParent.node.property.type === \"Literal\" && memberParent.node.property.value === check : memberParent.node.property.type === \"Identifier\" && memberParent.node.property.name === check)) {\n for (const arg of callParent.node.arguments) {\n if (arg.type === \"Literal\" && typeof arg.value === \"string\") {\n collection.add(arg.value);\n }\n }\n }\n }\n };\n}\n//# sourceMappingURL=permissions.js.map"],"names":["beforeVisitGlobalMember","usage","objectName","level","arguments","length","undefined","rememberObjectName","node","parent","name","includes","segments","i","memberParent","type","key","memberNode","computed","property","value","push","hasNonStaticUsage","usedProperties","add","join","collectMemberCallUsageFactory","object","callParent","args","firstArg","usedArgs","collectAppGetMenuUsage","collectInstalledAppsHasUsage","traverseStoryboardExpressions","data","beforeVisitGlobal","options","memo","WeakSet","matchExpressionString","visitNotMatchedExpressionString","visitNonExpressionString","visitObject","v","traverse","isEvaluable","preevaluate","cache","withParent","hooks","error","console","isObject","has","item","Array","isArray","Object","values","strictCollectMemberUsage","nonStaticUsage","collectMemberUsage","Error","Set","expr","TRACK_NAMES","track","raw","trackText","variableName","expression","trackCtxExp","expressions","size","warn","JSON","stringify","trackAll","some","result","context","state","formState","keyMap","CTX","STATE","FORM_STATE","forEach","split","traverseStoryboardFunctions","functions","fn","matchSource","source","traverseStoryboardFunction","silentErrors","precookFunction","typescript","cacheKey","collectMemberUsageInFunction","delete","PERMISSIONS","check","scanPermissionActionsInStoryboard","storyboard","_storyboard$meta","collection","beforeVisitPermissions","beforeVisitPermissionsFactory","customTemplates","meta","routes","from","scanPermissionActionsInAny","arg"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[4145],{4145:(e,t,s)=>{var n,a=s(4635),i=s(918),o=s(6902),r=s(5536),h=s(6121),l=s(829),u=s(2740),c=s(8769),d=s.n(c),A=s(5821),w=s(9476),g=s(15),p=s(2046),v=s(2442),k=s(3830),I=s(205);let y,m,f,S,C,b,M,L,W,E,B,R,T,q,N,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ae,ie,oe,re,he,le,ue,ce,de,Ae;s(6477),s(2896),s(3262);const{defineElement:we,property:ge,method:pe,event:ve}=(0,A.createDecorators)();function ke(e,t){let{agentId:s,robotId:n,sessionId:a,showAvatar:i,showSessionList:o=!0,readonly:r=!1,showLike:h=!0,showShare:l=!0,quickAnswerConfig:u,snippetList:A,enterInterval:w,debug:y=!1,useSpiltWord:m=!1,commandBricks:f,answerLanguage:S,inputToolbarBrick:C,showToolCalls:b,onSessionIdChange:M,onRobotIdChange:L,onQaFinish:W}=e;const{sessionEnd:E,sessionLoading:B,activeSessionId:R,msgEnd:T,msgLoading:q,msgList:N,sessionList:x,loading:U,chatting:_,searchStr:P,toolNames:Q,setAgent:F,handleIsLike:D,handleChat:H,stopChat:O,createSession:$,deleteSession:J,updateSession:Z,checkSession:j,setSearchStr:z,querySessionHistory:G}=(0,v.Fn)({agentId:s,robotId:n,sessionId:a,enterInterval:w,debug:y,answerLanguage:S,useSpiltWord:m,showToolCalls:b});return(0,c.useEffect)((()=>{var e;R&&(M(R),L(null===(e=x.find((e=>e.conversationId===R)))||void 0===e?void 0:e.robotId))}),[R,L,M,x]),(0,c.useEffect)((()=>{!_&&R&&W(R)}),[_]),d().createElement(g.t.Provider,{value:{sessionEnd:E,sessionLoading:B,activeSessionId:R,sessionList:x,msgEnd:T,msgLoading:q,msgList:N,chatting:_,loading:U,searchStr:P,showLike:h,showShare:l,readonly:r,quickAnswerConfig:u,snippetList:A,commandBricks:f,showToolCalls:b,toolNames:Q,setAgent:F,handleIsLike:D,handleChat:H,stopChat:O,createSession:$,deleteSession:J,updateSession:Z,checkSession:j,setSearchStr:z,querySessionHistory:G}},d().createElement("div",{className:"chat-view-container"},o&&d().createElement("div",{className:"chat-view-selector"},d().createElement(k.Z,null)),d().createElement("div",{className:"chat-view-content"},d().createElement(p.M,{showAvatar:i}),!r&&d().createElement(I.D,{inputToolbarBrick:C,ref:t}))))}const Ie=(0,c.forwardRef)(ke);let ye;var me=new WeakMap,fe=new WeakMap,Se=new WeakMap,Ce=new WeakMap,be=new WeakMap,Me=new WeakMap,Le=new WeakMap,We=new WeakMap,Ee=new WeakMap,Be=new WeakMap,Re=new WeakMap,Te=new WeakMap,qe=new WeakMap,Ne=new WeakMap,xe=new WeakMap,Ue=new WeakMap,_e=new WeakMap,Pe=new WeakMap,Qe=new WeakMap,Fe=new WeakSet,De=new WeakMap,He=new WeakMap,Oe=new WeakMap,$e=new WeakMap,Je=new WeakMap;class Ze extends w.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,Fe),(0,i.A)(this,me,(y(this),f(this))),(0,i.A)(this,fe,(S(this),C(this))),(0,i.A)(this,Se,(b(this),M(this))),(0,i.A)(this,Ce,(L(this),W(this))),(0,i.A)(this,be,(E(this),B(this))),(0,i.A)(this,Me,(R(this),T(this))),(0,i.A)(this,Le,(q(this),N(this))),(0,i.A)(this,We,(x(this),U(this))),(0,i.A)(this,Ee,(_(this),P(this))),(0,i.A)(this,Be,(Q(this),F(this))),(0,i.A)(this,Re,(D(this),H(this))),(0,i.A)(this,Te,(O(this),$(this))),(0,i.A)(this,qe,(J(this),Z(this))),(0,i.A)(this,Ne,(j(this),z(this))),(0,i.A)(this,xe,(G(this),K(this))),(0,i.A)(this,Ue,(V(this),X(this))),(0,i.A)(this,_e,(Y(this),ee(this))),(0,i.A)(this,Pe,(te(this),d().createRef())),(0,i.A)(this,Qe,se(this)),(0,i.A)(this,De,(ie(this),e=>{(0,r.A)(Fe,this,ne).emit(e)})),(0,i.A)(this,He,oe(this)),(0,i.A)(this,Oe,(le(this),e=>{(0,r.A)(Fe,this,re).emit(e)})),(0,i.A)(this,$e,ue(this)),(0,i.A)(this,Je,(Ae(this),e=>{(0,r.A)(Fe,this,ce).emit(e)}))}get sessionId(){return(0,l.A)(me,this)}set sessionId(e){(0,h.A)(me,this,e)}get agentId(){return(0,l.A)(fe,this)}set agentId(e){(0,h.A)(fe,this,e)}get robotId(){return(0,l.A)(Se,this)}set robotId(e){(0,h.A)(Se,this,e)}get answerLanguage(){return(0,l.A)(Ce,this)}set answerLanguage(e){(0,h.A)(Ce,this,e)}get debug(){return(0,l.A)(be,this)}set debug(e){(0,h.A)(be,this,e)}get showAvatar(){return(0,l.A)(Me,this)}set showAvatar(e){(0,h.A)(Me,this,e)}get showSessionList(){return(0,l.A)(Le,this)}set showSessionList(e){(0,h.A)(Le,this,e)}get readonly(){return(0,l.A)(We,this)}set readonly(e){(0,h.A)(We,this,e)}get showLike(){return(0,l.A)(Ee,this)}set showLike(e){(0,h.A)(Ee,this,e)}get showShare(){return(0,l.A)(Be,this)}set showShare(e){(0,h.A)(Be,this,e)}get useSpiltWord(){return(0,l.A)(Re,this)}set useSpiltWord(e){(0,h.A)(Re,this,e)}get enterInterval(){return(0,l.A)(Te,this)}set enterInterval(e){(0,h.A)(Te,this,e)}get quickAnswerConfig(){return(0,l.A)(qe,this)}set quickAnswerConfig(e){(0,h.A)(qe,this,e)}get snippetList(){return(0,l.A)(Ne,this)}set snippetList(e){(0,h.A)(Ne,this,e)}get commandBricks(){return(0,l.A)(xe,this)}set commandBricks(e){(0,h.A)(xe,this,e)}get inputToolbarBrick(){return(0,l.A)(Ue,this)}set inputToolbarBrick(e){(0,h.A)(Ue,this,e)}get showToolCalls(){return(0,l.A)(_e,this)}set showToolCalls(e){(0,h.A)(_e,this,e)}insertQuestion(e){var t;const{value:s}=e;s&&(null===(t=(0,l.A)(Pe,this).current)||void 0===t||t.handleInsertQuestion(s))}sendMsg(e){var t;null===(t=(0,l.A)(Pe,this).current)||void 0===t||t.sendMsg(e)}render(){return d().createElement(Ie,{agentId:this.agentId,robotId:this.robotId,debug:this.debug,sessionId:this.sessionId,readonly:this.readonly,showAvatar:this.showAvatar,showSessionList:this.showSessionList,showLike:this.showLike,showShare:this.showShare,useSpiltWord:this.useSpiltWord,quickAnswerConfig:this.quickAnswerConfig,snippetList:this.snippetList,enterInterval:this.enterInterval,commandBricks:this.commandBricks,answerLanguage:this.answerLanguage,inputToolbarBrick:this.inputToolbarBrick,showToolCalls:this.showToolCalls,onSessionIdChange:(0,l.A)(De,this),onRobotIdChange:(0,l.A)(Oe,this),onQaFinish:(0,l.A)(Je,this),ref:(0,l.A)(Pe,this)})}}n=Ze,({e:[f,S,C,b,M,L,W,E,B,R,T,q,N,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ae,ie,oe,re,he,le,ue,ce,de,Ae,y],c:[ye,m]}=(0,u.A)(n,[we("ai.chat-view",{shadowOptions:!1})],[[ge(),1,"sessionId"],[ge(),1,"agentId"],[ge(),1,"robotId"],[ge(),1,"answerLanguage"],[ge({type:Boolean}),1,"debug"],[ge({type:Boolean}),1,"showAvatar"],[ge({type:Boolean}),1,"showSessionList"],[ge({type:Boolean}),1,"readonly"],[ge({type:Boolean}),1,"showLike"],[ge({type:Boolean}),1,"showShare"],[ge({type:Boolean}),1,"useSpiltWord"],[ge({type:Number}),1,"enterInterval"],[ge({attribute:!1}),1,"quickAnswerConfig"],[ge({attribute:!1}),1,"snippetList"],[ge({attribute:!1}),1,"commandBricks"],[ge({attribute:!1}),1,"inputToolbarBrick"],[ge({type:Boolean}),1,"showToolCalls"],[ve({type:"sessionId.change"}),1,"sessionIdChange",e=>(0,l.A)(Qe,e),(e,t)=>(0,h.A)(Qe,e,t)],[ve({type:"robotId.change"}),1,"robotIdChange",e=>(0,l.A)(He,e),(e,t)=>(0,h.A)(He,e,t)],[ve({type:"qa.finish"}),1,"qaFinish",e=>(0,l.A)($e,e),(e,t)=>(0,h.A)($e,e,t)],[pe(),2,"insertQuestion"],[pe(),2,"sendMsg"]],0,(e=>Je.has((0,o.A)(e))),w.ReactNextElement)),m();var je,ze=s(7353),Ge=s(532),Ke=s(356);let Ve,Xe,Ye,et,tt,st,nt,at,it,ot,rt,ht,lt,ut,ct,dt,At,wt,gt,pt,vt,kt;const{defineElement:It,property:yt,event:mt,method:ft}=(0,A.createDecorators)(),St=(0,c.forwardRef)(Pt);let Ct;var bt=new WeakMap,Mt=new WeakMap,Lt=new WeakMap,Wt=new WeakMap,Et=new WeakMap,Bt=new WeakSet,Rt=new WeakMap,Tt=new WeakMap,qt=new WeakMap,Nt=new WeakMap,xt=new WeakMap,Ut=new WeakMap;class _t extends w.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,Bt),(0,i.A)(this,bt,(Ve(this),Ye(this))),(0,i.A)(this,Mt,(et(this),tt(this))),(0,i.A)(this,Lt,(st(this),nt(this))),(0,i.A)(this,Wt,(at(this),it(this))),(0,i.A)(this,Et,(ot(this),rt(this))),(0,i.A)(this,Rt,(ut(this),e=>{(0,r.A)(Bt,this,ht).emit(e)})),(0,i.A)(this,Tt,ct(this)),(0,i.A)(this,qt,(wt(this),e=>{(0,r.A)(Bt,this,dt).emit(e)})),(0,i.A)(this,Nt,gt(this)),(0,i.A)(this,xt,(kt(this),e=>{(0,r.A)(Bt,this,pt).emit(e)})),(0,i.A)(this,Ut,(0,c.createRef)())}get agentId(){return(0,l.A)(bt,this)}set agentId(e){(0,h.A)(bt,this,e)}get robotId(){return(0,l.A)(Mt,this)}set robotId(e){(0,h.A)(Mt,this,e)}get conversationId(){return(0,l.A)(Lt,this)}set conversationId(e){(0,h.A)(Lt,this,e)}get alwaysUseNewConversation(){return(0,l.A)(Wt,this)}set alwaysUseNewConversation(e){(0,h.A)(Wt,this,e)}postMessage(e){var t;return null===(t=(0,l.A)(Ut,this).current)||void 0===t?void 0:t.postMessage(e)}sendRequest(e,t,s){var n;return null===(n=(0,l.A)(Ut,this).current)||void 0===n?void 0:n.sendRequest(e,t,s)}lowLevelSendRequest(e,t,s){var n;return null===(n=(0,l.A)(Ut,this).current)||void 0===n?void 0:n.lowLevelSendRequest(e,t,s)}newConversation(){var e;null===(e=(0,l.A)(Ut,this).current)||void 0===e||e.newConversation()}render(){return d().createElement(St,{ref:(0,l.A)(Ut,this),agentId:this.agentId,robotId:this.robotId,conversationId:this.conversationId,alwaysUseNewConversation:this.alwaysUseNewConversation,onMessagesUpdate:(0,l.A)(Rt,this),onBusyChange:(0,l.A)(qt,this),onConversationIdChange:(0,l.A)(xt,this)})}}function Pt(e,t){let{agentId:s,robotId:n,conversationId:a,alwaysUseNewConversation:i,onMessageChunkPush:o,onMessagesUpdate:r,onBusyChange:h,onConversationIdChange:l}=e;const u=(0,c.useRef)(!1),d=(0,c.useRef)(1),A=(0,c.useRef)(!1),[w,g]=(0,c.useState)(null);(0,c.useEffect)((()=>{g(null!=a?a:null)}),[a]),(0,c.useEffect)((()=>{u.current&&(null==l||l(w))}),[w,l]);const p=(0,c.useRef)(0),v=(0,c.useCallback)((()=>p.current++),[]),[k,I]=(0,c.useState)([]),y=(0,c.useCallback)((e=>{null==o||o(e),I((t=>{const s=t[t.length-1];return s&&s.key===e.key?(s.content+=e.delta.content,[...t]):(null!=s&&s.partial&&(s.partial=!1),[...t,{...e.delta,key:e.key,partial:e.partial}])}))}),[o]),m=(0,c.useCallback)((async(e,t,s,n)=>{if(A.current)return null;(i||e)&&I((e=>0===e.length?e:[]));const a=d.current;let o;const r=async()=>{if(a!==d.current)throw o||(o=new Error("New conversation started")),o},l=v(),u=v();let c=i||e?null:w;null==h||h(A.current=!0);try{if(Array.isArray(t))for(const e of t){const t="assistant"===e.role;(t||"user"===e.role)&&(null==y||y({key:t?u:l,delta:{role:e.role,content:e.content}}))}else null==y||y({key:l,delta:{content:t,role:"user"}});const a=(0,Ge.createSSEStream)(new URL(s,`${location.origin}${(0,ze.getBasePath)()}`).toString(),n);await Promise.race([a,new Promise((e=>setTimeout(e,1e3)))]),await r(),null==y||y({key:u,delta:{content:"",role:"assistant"},partial:!0});const o=await a;for await(const t of o)if(await r(),e){var p;const e=null===(p=t.choices)||void 0===p||null===(p=p[0])||void 0===p?void 0:p.delta;null!=e&&e.content&&y({delta:{role:e.role,content:e.content},key:u,partial:!0})}else null==y||y({delta:t.delta,key:u,partial:!0}),i||!t.conversationId||c||g(c=t.conversationId);await r(),I((e=>{const t=e[e.length-1];return null!=t&&t.partial&&(t.partial=!1),[...e]}))}catch(e){if(e&&e===o)throw e;console.error("stream failed:",e),await r(),I((e=>{const t=e[e.length-1];let s=e;return(null==t?void 0:t.key)===u&&(t.content?(t.partial=!1,t.failed=!0):s=e.slice(0,-1)),[...s,{role:"assistant",content:"系统错误",key:v(),failed:!0}]}))}return await r(),null==h||h(A.current=!1),c}),[w,i,v,h,y]);return(0,c.useImperativeHandle)(t,(()=>({lowLevelSendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!0,...t)},sendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!1,...t)},postMessage:e=>m(!1,e,"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions",{method:"POST",body:JSON.stringify({agentId:s,robotId:n,input:e,stream:!0,conversationId:i||null===w?void 0:w}),headers:{"giraffe-contract-name":"easyops.api.aiops_chat.manage.LLMChatProxy"}}),newConversation(){d.current++,g(null),I((e=>0===e.length?e:[])),A.current&&(null==h||h(A.current=!1))}})),[m,s,n,i,w,h]),(0,c.useEffect)((()=>{u.current&&(null==r||r(k))}),[k,r]),(0,c.useEffect)((()=>{u.current=!0}),[]),null}je=_t,({e:[Ye,et,tt,st,nt,at,it,ot,rt,ht,lt,ut,ct,dt,At,wt,gt,pt,vt,kt,Ve],c:[Ct,Xe]}=(0,u.A)(je,[It("ai.chat-agent",{styleTexts:[Ke.A]})],[[yt(),1,"agentId"],[yt(),1,"robotId"],[yt(),1,"conversationId"],[yt(),1,"alwaysUseNewConversation"],[ft(),2,"postMessage"],[ft(),2,"sendRequest"],[ft(),2,"lowLevelSendRequest"],[ft(),2,"newConversation"],[mt({type:"messages.update"}),1,"messagesUpdate",e=>(0,l.A)(Et,e),(e,t)=>(0,h.A)(Et,e,t)],[mt({type:"busy.change"}),1,"busyChangeEvent",e=>(0,l.A)(Tt,e),(e,t)=>(0,h.A)(Tt,e,t)],[mt({type:"conversationId.change"}),1,"conversationIdChangeEvent",e=>(0,l.A)(Nt,e),(e,t)=>(0,h.A)(Nt,e,t)]],0,(e=>Ut.has((0,o.A)(e))),w.ReactNextElement)),Xe()},356:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(6758),a=s.n(n),i=s(935),o=s.n(i)()(a());o.push([e.id,":host{display:none}",""]);const r=o.toString()}}]);
|
|
2
|
-
//# sourceMappingURL=4145.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[4145],{4145:(e,t,s)=>{var n,a=s(4635),i=s(918),o=s(6902),r=s(5536),h=s(6121),l=s(829),u=s(2740),c=s(8769),d=s.n(c),A=s(2786),w=s(3049),g=s(15),p=s(2046),v=s(2442),k=s(3830),I=s(205);let y,m,f,S,C,b,M,L,W,E,B,R,T,q,N,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ae,ie,oe,re,he,le,ue,ce,de,Ae;s(6477),s(2896),s(3262);const{defineElement:we,property:ge,method:pe,event:ve}=(0,A.createDecorators)();function ke(e,t){let{agentId:s,robotId:n,sessionId:a,showAvatar:i,showSessionList:o=!0,readonly:r=!1,showLike:h=!0,showShare:l=!0,quickAnswerConfig:u,snippetList:A,enterInterval:w,debug:y=!1,useSpiltWord:m=!1,commandBricks:f,answerLanguage:S,inputToolbarBrick:C,showToolCalls:b,onSessionIdChange:M,onRobotIdChange:L,onQaFinish:W}=e;const{sessionEnd:E,sessionLoading:B,activeSessionId:R,msgEnd:T,msgLoading:q,msgList:N,sessionList:x,loading:U,chatting:_,searchStr:P,toolNames:Q,setAgent:F,handleIsLike:D,handleChat:H,stopChat:O,createSession:$,deleteSession:J,updateSession:Z,checkSession:j,setSearchStr:z,querySessionHistory:G}=(0,v.Fn)({agentId:s,robotId:n,sessionId:a,enterInterval:w,debug:y,answerLanguage:S,useSpiltWord:m,showToolCalls:b});return(0,c.useEffect)((()=>{var e;R&&(M(R),L(null===(e=x.find((e=>e.conversationId===R)))||void 0===e?void 0:e.robotId))}),[R,L,M,x]),(0,c.useEffect)((()=>{!_&&R&&W(R)}),[_]),d().createElement(g.t.Provider,{value:{sessionEnd:E,sessionLoading:B,activeSessionId:R,sessionList:x,msgEnd:T,msgLoading:q,msgList:N,chatting:_,loading:U,searchStr:P,showLike:h,showShare:l,readonly:r,quickAnswerConfig:u,snippetList:A,commandBricks:f,showToolCalls:b,toolNames:Q,setAgent:F,handleIsLike:D,handleChat:H,stopChat:O,createSession:$,deleteSession:J,updateSession:Z,checkSession:j,setSearchStr:z,querySessionHistory:G}},d().createElement("div",{className:"chat-view-container"},o&&d().createElement("div",{className:"chat-view-selector"},d().createElement(k.Z,null)),d().createElement("div",{className:"chat-view-content"},d().createElement(p.M,{showAvatar:i}),!r&&d().createElement(I.D,{inputToolbarBrick:C,ref:t}))))}const Ie=(0,c.forwardRef)(ke);let ye;var me=new WeakMap,fe=new WeakMap,Se=new WeakMap,Ce=new WeakMap,be=new WeakMap,Me=new WeakMap,Le=new WeakMap,We=new WeakMap,Ee=new WeakMap,Be=new WeakMap,Re=new WeakMap,Te=new WeakMap,qe=new WeakMap,Ne=new WeakMap,xe=new WeakMap,Ue=new WeakMap,_e=new WeakMap,Pe=new WeakMap,Qe=new WeakMap,Fe=new WeakSet,De=new WeakMap,He=new WeakMap,Oe=new WeakMap,$e=new WeakMap,Je=new WeakMap;class Ze extends w.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,Fe),(0,i.A)(this,me,(y(this),f(this))),(0,i.A)(this,fe,(S(this),C(this))),(0,i.A)(this,Se,(b(this),M(this))),(0,i.A)(this,Ce,(L(this),W(this))),(0,i.A)(this,be,(E(this),B(this))),(0,i.A)(this,Me,(R(this),T(this))),(0,i.A)(this,Le,(q(this),N(this))),(0,i.A)(this,We,(x(this),U(this))),(0,i.A)(this,Ee,(_(this),P(this))),(0,i.A)(this,Be,(Q(this),F(this))),(0,i.A)(this,Re,(D(this),H(this))),(0,i.A)(this,Te,(O(this),$(this))),(0,i.A)(this,qe,(J(this),Z(this))),(0,i.A)(this,Ne,(j(this),z(this))),(0,i.A)(this,xe,(G(this),K(this))),(0,i.A)(this,Ue,(V(this),X(this))),(0,i.A)(this,_e,(Y(this),ee(this))),(0,i.A)(this,Pe,(te(this),d().createRef())),(0,i.A)(this,Qe,se(this)),(0,i.A)(this,De,(ie(this),e=>{(0,r.A)(Fe,this,ne).emit(e)})),(0,i.A)(this,He,oe(this)),(0,i.A)(this,Oe,(le(this),e=>{(0,r.A)(Fe,this,re).emit(e)})),(0,i.A)(this,$e,ue(this)),(0,i.A)(this,Je,(Ae(this),e=>{(0,r.A)(Fe,this,ce).emit(e)}))}get sessionId(){return(0,l.A)(me,this)}set sessionId(e){(0,h.A)(me,this,e)}get agentId(){return(0,l.A)(fe,this)}set agentId(e){(0,h.A)(fe,this,e)}get robotId(){return(0,l.A)(Se,this)}set robotId(e){(0,h.A)(Se,this,e)}get answerLanguage(){return(0,l.A)(Ce,this)}set answerLanguage(e){(0,h.A)(Ce,this,e)}get debug(){return(0,l.A)(be,this)}set debug(e){(0,h.A)(be,this,e)}get showAvatar(){return(0,l.A)(Me,this)}set showAvatar(e){(0,h.A)(Me,this,e)}get showSessionList(){return(0,l.A)(Le,this)}set showSessionList(e){(0,h.A)(Le,this,e)}get readonly(){return(0,l.A)(We,this)}set readonly(e){(0,h.A)(We,this,e)}get showLike(){return(0,l.A)(Ee,this)}set showLike(e){(0,h.A)(Ee,this,e)}get showShare(){return(0,l.A)(Be,this)}set showShare(e){(0,h.A)(Be,this,e)}get useSpiltWord(){return(0,l.A)(Re,this)}set useSpiltWord(e){(0,h.A)(Re,this,e)}get enterInterval(){return(0,l.A)(Te,this)}set enterInterval(e){(0,h.A)(Te,this,e)}get quickAnswerConfig(){return(0,l.A)(qe,this)}set quickAnswerConfig(e){(0,h.A)(qe,this,e)}get snippetList(){return(0,l.A)(Ne,this)}set snippetList(e){(0,h.A)(Ne,this,e)}get commandBricks(){return(0,l.A)(xe,this)}set commandBricks(e){(0,h.A)(xe,this,e)}get inputToolbarBrick(){return(0,l.A)(Ue,this)}set inputToolbarBrick(e){(0,h.A)(Ue,this,e)}get showToolCalls(){return(0,l.A)(_e,this)}set showToolCalls(e){(0,h.A)(_e,this,e)}insertQuestion(e){var t;const{value:s}=e;s&&(null===(t=(0,l.A)(Pe,this).current)||void 0===t||t.handleInsertQuestion(s))}sendMsg(e){var t;null===(t=(0,l.A)(Pe,this).current)||void 0===t||t.sendMsg(e)}render(){return d().createElement(Ie,{agentId:this.agentId,robotId:this.robotId,debug:this.debug,sessionId:this.sessionId,readonly:this.readonly,showAvatar:this.showAvatar,showSessionList:this.showSessionList,showLike:this.showLike,showShare:this.showShare,useSpiltWord:this.useSpiltWord,quickAnswerConfig:this.quickAnswerConfig,snippetList:this.snippetList,enterInterval:this.enterInterval,commandBricks:this.commandBricks,answerLanguage:this.answerLanguage,inputToolbarBrick:this.inputToolbarBrick,showToolCalls:this.showToolCalls,onSessionIdChange:(0,l.A)(De,this),onRobotIdChange:(0,l.A)(Oe,this),onQaFinish:(0,l.A)(Je,this),ref:(0,l.A)(Pe,this)})}}n=Ze,({e:[f,S,C,b,M,L,W,E,B,R,T,q,N,x,U,_,P,Q,F,D,H,O,$,J,Z,j,z,G,K,V,X,Y,ee,te,se,ne,ae,ie,oe,re,he,le,ue,ce,de,Ae,y],c:[ye,m]}=(0,u.A)(n,[we("ai.chat-view",{shadowOptions:!1})],[[ge(),1,"sessionId"],[ge(),1,"agentId"],[ge(),1,"robotId"],[ge(),1,"answerLanguage"],[ge({type:Boolean}),1,"debug"],[ge({type:Boolean}),1,"showAvatar"],[ge({type:Boolean}),1,"showSessionList"],[ge({type:Boolean}),1,"readonly"],[ge({type:Boolean}),1,"showLike"],[ge({type:Boolean}),1,"showShare"],[ge({type:Boolean}),1,"useSpiltWord"],[ge({type:Number}),1,"enterInterval"],[ge({attribute:!1}),1,"quickAnswerConfig"],[ge({attribute:!1}),1,"snippetList"],[ge({attribute:!1}),1,"commandBricks"],[ge({attribute:!1}),1,"inputToolbarBrick"],[ge({type:Boolean}),1,"showToolCalls"],[ve({type:"sessionId.change"}),1,"sessionIdChange",e=>(0,l.A)(Qe,e),(e,t)=>(0,h.A)(Qe,e,t)],[ve({type:"robotId.change"}),1,"robotIdChange",e=>(0,l.A)(He,e),(e,t)=>(0,h.A)(He,e,t)],[ve({type:"qa.finish"}),1,"qaFinish",e=>(0,l.A)($e,e),(e,t)=>(0,h.A)($e,e,t)],[pe(),2,"insertQuestion"],[pe(),2,"sendMsg"]],0,(e=>Je.has((0,o.A)(e))),w.ReactNextElement)),m();var je,ze=s(1230),Ge=s(6878),Ke=s(356);let Ve,Xe,Ye,et,tt,st,nt,at,it,ot,rt,ht,lt,ut,ct,dt,At,wt,gt,pt,vt,kt;const{defineElement:It,property:yt,event:mt,method:ft}=(0,A.createDecorators)(),St=(0,c.forwardRef)(Pt);let Ct;var bt=new WeakMap,Mt=new WeakMap,Lt=new WeakMap,Wt=new WeakMap,Et=new WeakMap,Bt=new WeakSet,Rt=new WeakMap,Tt=new WeakMap,qt=new WeakMap,Nt=new WeakMap,xt=new WeakMap,Ut=new WeakMap;class _t extends w.ReactNextElement{constructor(){super(...arguments),(0,a.A)(this,Bt),(0,i.A)(this,bt,(Ve(this),Ye(this))),(0,i.A)(this,Mt,(et(this),tt(this))),(0,i.A)(this,Lt,(st(this),nt(this))),(0,i.A)(this,Wt,(at(this),it(this))),(0,i.A)(this,Et,(ot(this),rt(this))),(0,i.A)(this,Rt,(ut(this),e=>{(0,r.A)(Bt,this,ht).emit(e)})),(0,i.A)(this,Tt,ct(this)),(0,i.A)(this,qt,(wt(this),e=>{(0,r.A)(Bt,this,dt).emit(e)})),(0,i.A)(this,Nt,gt(this)),(0,i.A)(this,xt,(kt(this),e=>{(0,r.A)(Bt,this,pt).emit(e)})),(0,i.A)(this,Ut,(0,c.createRef)())}get agentId(){return(0,l.A)(bt,this)}set agentId(e){(0,h.A)(bt,this,e)}get robotId(){return(0,l.A)(Mt,this)}set robotId(e){(0,h.A)(Mt,this,e)}get conversationId(){return(0,l.A)(Lt,this)}set conversationId(e){(0,h.A)(Lt,this,e)}get alwaysUseNewConversation(){return(0,l.A)(Wt,this)}set alwaysUseNewConversation(e){(0,h.A)(Wt,this,e)}postMessage(e){var t;return null===(t=(0,l.A)(Ut,this).current)||void 0===t?void 0:t.postMessage(e)}sendRequest(e,t,s){var n;return null===(n=(0,l.A)(Ut,this).current)||void 0===n?void 0:n.sendRequest(e,t,s)}lowLevelSendRequest(e,t,s){var n;return null===(n=(0,l.A)(Ut,this).current)||void 0===n?void 0:n.lowLevelSendRequest(e,t,s)}newConversation(){var e;null===(e=(0,l.A)(Ut,this).current)||void 0===e||e.newConversation()}render(){return d().createElement(St,{ref:(0,l.A)(Ut,this),agentId:this.agentId,robotId:this.robotId,conversationId:this.conversationId,alwaysUseNewConversation:this.alwaysUseNewConversation,onMessagesUpdate:(0,l.A)(Rt,this),onBusyChange:(0,l.A)(qt,this),onConversationIdChange:(0,l.A)(xt,this)})}}function Pt(e,t){let{agentId:s,robotId:n,conversationId:a,alwaysUseNewConversation:i,onMessageChunkPush:o,onMessagesUpdate:r,onBusyChange:h,onConversationIdChange:l}=e;const u=(0,c.useRef)(!1),d=(0,c.useRef)(1),A=(0,c.useRef)(!1),[w,g]=(0,c.useState)(null);(0,c.useEffect)((()=>{g(null!=a?a:null)}),[a]),(0,c.useEffect)((()=>{u.current&&(null==l||l(w))}),[w,l]);const p=(0,c.useRef)(0),v=(0,c.useCallback)((()=>p.current++),[]),[k,I]=(0,c.useState)([]),y=(0,c.useCallback)((e=>{null==o||o(e),I((t=>{const s=t[t.length-1];return s&&s.key===e.key?(s.content+=e.delta.content,[...t]):(null!=s&&s.partial&&(s.partial=!1),[...t,{...e.delta,key:e.key,partial:e.partial}])}))}),[o]),m=(0,c.useCallback)((async(e,t,s,n)=>{if(A.current)return null;(i||e)&&I((e=>0===e.length?e:[]));const a=d.current;let o;const r=async()=>{if(a!==d.current)throw o||(o=new Error("New conversation started")),o},l=v(),u=v();let c=i||e?null:w;null==h||h(A.current=!0);try{if(Array.isArray(t))for(const e of t){const t="assistant"===e.role;(t||"user"===e.role)&&(null==y||y({key:t?u:l,delta:{role:e.role,content:e.content}}))}else null==y||y({key:l,delta:{content:t,role:"user"}});const a=(0,Ge.createSSEStream)(new URL(s,`${location.origin}${(0,ze.getBasePath)()}`).toString(),n);await Promise.race([a,new Promise((e=>setTimeout(e,1e3)))]),await r(),null==y||y({key:u,delta:{content:"",role:"assistant"},partial:!0});const o=await a;for await(const t of o)if(await r(),e){var p;const e=null===(p=t.choices)||void 0===p||null===(p=p[0])||void 0===p?void 0:p.delta;null!=e&&e.content&&y({delta:{role:e.role,content:e.content},key:u,partial:!0})}else null==y||y({delta:t.delta,key:u,partial:!0}),i||!t.conversationId||c||g(c=t.conversationId);await r(),I((e=>{const t=e[e.length-1];return null!=t&&t.partial&&(t.partial=!1),[...e]}))}catch(e){if(e&&e===o)throw e;console.error("stream failed:",e),await r(),I((e=>{const t=e[e.length-1];let s=e;return(null==t?void 0:t.key)===u&&(t.content?(t.partial=!1,t.failed=!0):s=e.slice(0,-1)),[...s,{role:"assistant",content:"系统错误",key:v(),failed:!0}]}))}return await r(),null==h||h(A.current=!1),c}),[w,i,v,h,y]);return(0,c.useImperativeHandle)(t,(()=>({lowLevelSendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!0,...t)},sendRequest:function(){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];return m(!1,...t)},postMessage:e=>m(!1,e,"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions",{method:"POST",body:JSON.stringify({agentId:s,robotId:n,input:e,stream:!0,conversationId:i||null===w?void 0:w}),headers:{"giraffe-contract-name":"easyops.api.aiops_chat.manage.LLMChatProxy"}}),newConversation(){d.current++,g(null),I((e=>0===e.length?e:[])),A.current&&(null==h||h(A.current=!1))}})),[m,s,n,i,w,h]),(0,c.useEffect)((()=>{u.current&&(null==r||r(k))}),[k,r]),(0,c.useEffect)((()=>{u.current=!0}),[]),null}je=_t,({e:[Ye,et,tt,st,nt,at,it,ot,rt,ht,lt,ut,ct,dt,At,wt,gt,pt,vt,kt,Ve],c:[Ct,Xe]}=(0,u.A)(je,[It("ai.chat-agent",{styleTexts:[Ke.A]})],[[yt(),1,"agentId"],[yt(),1,"robotId"],[yt(),1,"conversationId"],[yt(),1,"alwaysUseNewConversation"],[ft(),2,"postMessage"],[ft(),2,"sendRequest"],[ft(),2,"lowLevelSendRequest"],[ft(),2,"newConversation"],[mt({type:"messages.update"}),1,"messagesUpdate",e=>(0,l.A)(Et,e),(e,t)=>(0,h.A)(Et,e,t)],[mt({type:"busy.change"}),1,"busyChangeEvent",e=>(0,l.A)(Tt,e),(e,t)=>(0,h.A)(Tt,e,t)],[mt({type:"conversationId.change"}),1,"conversationIdChangeEvent",e=>(0,l.A)(Nt,e),(e,t)=>(0,h.A)(Nt,e,t)]],0,(e=>Ut.has((0,o.A)(e))),w.ReactNextElement)),Xe()},356:(e,t,s)=>{s.d(t,{A:()=>r});var n=s(6758),a=s.n(n),i=s(935),o=s.n(i)()(a());o.push([e.id,":host{display:none}",""]);const r=o.toString()}}]);
|
|
2
|
+
//# sourceMappingURL=4145.b6a82f3f.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chunks/4145.7506f60e.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx","webpack:///./src/chat-agent/index.tsx","webpack:///./src/chat-agent/styles.shadow.css"],"sourcesContent":["import React, { forwardRef, useEffect } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<SearchInputRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={ref} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n #ref = React.createRef<SearchInputRef>();\n\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n *\n * @description 调用方法进行提问\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * @description 外部提问\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n @property()\n accessor agentId: string | undefined;\n\n @property()\n accessor robotId: string | undefined;\n\n @property()\n accessor conversationId: string | undefined;\n\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\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:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","React","ChatViewContext","Provider","value","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","insertQuestion","args","_classPrivateFieldGet2","current","handleInsertQuestion","sendMsg","msg","_classPrivateFieldGet3","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS","ChatAgentComponent","LegacyChatAgentComponent","_ChatAgent","_ChatAgent_brand","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","_get_conversationIdChangeEvent","createRef","alwaysUseNewConversation","postMessage","content","sendRequest","leadingMessages","url","options","lowLevelSendRequest","_classPrivateFieldGet4","newConversation","_classPrivateFieldGet5","onMessagesUpdate","onBusyChange","onConversationIdChange","propConversationId","onMessageChunkPush","didMountRef","useRef","chatIdRef","busyRef","setConversationId","useState","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","toString","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","useImperativeHandle","_len","_key","_len2","_key2","body","JSON","stringify","input","undefined","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","styleTexts","styleText","___CSS_LOADER_EXPORT___","push","module","id"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"chunks/4145.b6a82f3f.js","mappings":"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","sources":["webpack:///./src/chat-view/index.tsx","webpack:///./src/chat-agent/index.tsx","webpack:///./src/chat-agent/styles.shadow.css"],"sourcesContent":["import React, { forwardRef, useEffect } from \"react\";\nimport { EventEmitter, createDecorators } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport {\n ChatViewContext,\n QuickAnswerConfig,\n snippet,\n} from \"./ChatViewContext.js\";\nimport { MessageList } from \"./components/MessageList.js\";\nimport { useChatViewInfo } from \"./hooks/useChatViewInfo.js\";\nimport { SessionList } from \"./components/SessionList.js\";\nimport { SearchInput, SearchInputRef } from \"./components/SearchInput.js\";\nimport \"@next-core/theme\";\nimport \"./host-context.css\";\nimport \"./index.css\";\nimport { commandBrickConf } from \"./ChatViewContext\";\nimport { UseBrickConf } from \"@next-core/types\";\nimport { ChatBody } from \"./ChatService.js\";\n\nconst { defineElement, property, method, event } = createDecorators();\n\ntype InputToolbarBrick = { useBrick: UseBrickConf };\n\nexport interface ChatViewProps {\n agentId: string;\n robotId: string;\n sessionId?: string;\n readonly?: boolean;\n showAvatar?: boolean;\n showSessionList?: boolean;\n showLike?: boolean;\n showShare?: boolean;\n useSpiltWord?: boolean;\n quickAnswerConfig?: QuickAnswerConfig;\n snippetList?: snippet[];\n enterInterval?: number;\n debug?: boolean;\n commandBricks?: commandBrickConf;\n answerLanguage?: string;\n inputToolbarBrick?: InputToolbarBrick;\n showToolCalls?: boolean;\n onSessionIdChange: (sessionId: string | undefined) => void;\n onRobotIdChange: (robotId: string | undefined) => void;\n onQaFinish: (sessionId: string | undefined) => void;\n}\n\nexport function LegacyChatViewComponent(\n {\n agentId,\n robotId,\n sessionId,\n showAvatar,\n showSessionList = true,\n readonly = false,\n showLike = true,\n showShare = true,\n quickAnswerConfig,\n snippetList,\n enterInterval,\n debug = false,\n useSpiltWord = false,\n commandBricks,\n answerLanguage,\n inputToolbarBrick,\n showToolCalls,\n onSessionIdChange,\n onRobotIdChange,\n onQaFinish,\n }: ChatViewProps,\n ref: React.Ref<SearchInputRef>\n) {\n const {\n sessionEnd,\n sessionLoading,\n activeSessionId,\n msgEnd,\n msgLoading,\n msgList,\n sessionList,\n loading,\n chatting,\n searchStr,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n } = useChatViewInfo({\n agentId,\n robotId,\n sessionId,\n enterInterval,\n debug,\n answerLanguage,\n useSpiltWord,\n showToolCalls,\n });\n\n useEffect(() => {\n if (activeSessionId) {\n onSessionIdChange(activeSessionId);\n onRobotIdChange(\n sessionList.find((item) => item.conversationId === activeSessionId)\n ?.robotId\n );\n }\n }, [activeSessionId, onRobotIdChange, onSessionIdChange, sessionList]);\n\n useEffect(() => {\n if (!chatting && activeSessionId) {\n // 当此时存在activeSessionId,且chatting是从true变为false时触发,不需要加入activeSessionId的依赖判断\n onQaFinish(activeSessionId);\n }\n }, [chatting]);\n\n return (\n <ChatViewContext.Provider\n value={{\n sessionEnd,\n sessionLoading,\n activeSessionId,\n sessionList,\n msgEnd,\n msgLoading,\n msgList,\n chatting,\n loading,\n searchStr,\n showLike,\n showShare,\n readonly,\n quickAnswerConfig,\n snippetList,\n commandBricks,\n showToolCalls,\n toolNames,\n setAgent,\n handleIsLike,\n handleChat,\n stopChat,\n createSession,\n deleteSession,\n updateSession,\n checkSession,\n setSearchStr,\n querySessionHistory,\n }}\n >\n <div className=\"chat-view-container\">\n {showSessionList && (\n <div className=\"chat-view-selector\">\n <SessionList />\n </div>\n )}\n <div className=\"chat-view-content\">\n <MessageList showAvatar={showAvatar} />\n {!readonly && (\n <SearchInput inputToolbarBrick={inputToolbarBrick} ref={ref} />\n )}\n </div>\n </div>\n </ChatViewContext.Provider>\n );\n}\n\nexport const ChatViewComponent = forwardRef(LegacyChatViewComponent);\n\n/**\n * AI 对话终端\n */\nexport\n@defineElement(\"ai.chat-view\", {\n // shadow 模式下,会导致 useBrick 样式丢失\n // 如:commandBricks 配置 cmdb-instances.instance-list\n shadowOptions: false,\n})\nclass ChatView extends ReactNextElement {\n @property()\n accessor sessionId: string | undefined;\n\n /**\n * 智能体id\n */\n @property()\n accessor agentId!: string;\n\n /**\n * 机器人id\n */\n @property()\n accessor robotId!: string;\n\n /**\n * 指定智能体回答代码时所使用的语言\n */\n @property()\n accessor answerLanguage: string | undefined;\n\n /**\n * 是否为debug模式\n */\n @property({\n type: Boolean,\n })\n accessor debug: boolean | undefined;\n\n /**\n * 是否展示对话用户头像\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showAvatar: boolean | undefined;\n\n /**\n * 是否展示历史会话信息\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showSessionList: boolean | undefined;\n\n /**\n * 只读模式\n */\n @property({\n type: Boolean,\n })\n accessor readonly: boolean | undefined;\n\n /**\n * 是否展示点赞能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showLike: boolean | undefined;\n\n /**\n * 是否展示分享能力\n * @default true\n */\n @property({\n type: Boolean,\n })\n accessor showShare: boolean | undefined;\n\n /**\n * 是否开启前端分词\n * @default false\n */\n @property({\n type: Boolean,\n })\n accessor useSpiltWord: boolean | undefined;\n\n /**\n * 输入间隔,设置为 -1 使用新的方式对大段消息进行模拟打字效果节流输出\n *\n * @default 50\n */\n @property({\n type: Number,\n })\n accessor enterInterval: number | undefined;\n\n /**\n * 快速入口列表\n */\n @property({\n attribute: false,\n })\n accessor quickAnswerConfig: QuickAnswerConfig | undefined;\n\n /**\n * 常用语列表\n */\n @property({\n attribute: false,\n })\n accessor snippetList: snippet[] | undefined;\n\n /**\n * 自定义语言配置\n */\n @property({\n attribute: false,\n })\n accessor commandBricks: commandBrickConf | undefined;\n\n /**\n * 输入框工具栏 useBrick\n */\n @property({\n attribute: false,\n })\n accessor inputToolbarBrick: InputToolbarBrick | undefined;\n\n /**\n * 是否显示工具调用过程\n */\n @property({ type: Boolean })\n accessor showToolCalls: boolean | undefined;\n\n #ref = React.createRef<SearchInputRef>();\n\n @event({ type: \"sessionId.change\" })\n accessor #sessionIdChange!: EventEmitter<string | undefined>;\n\n #handleSessionIdChange = (activeSessionId: string | undefined) => {\n this.#sessionIdChange.emit(activeSessionId);\n };\n\n @event({ type: \"robotId.change\" })\n accessor #robotIdChange!: EventEmitter<string | undefined>;\n\n #handleRobotIdChange = (robotId: string | undefined) => {\n this.#robotIdChange.emit(robotId);\n };\n\n @event({ type: \"qa.finish\" })\n accessor #qaFinish!: EventEmitter<string | undefined>;\n\n #handleQaFinish = (activeSessionId: string | undefined) => {\n this.#qaFinish.emit(activeSessionId);\n };\n\n /**\n *\n * @description 调用方法进行提问\n */\n @method()\n insertQuestion(args: { value: string }): void {\n const { value } = args;\n if (!value) return;\n this.#ref.current?.handleInsertQuestion(value);\n }\n\n /**\n * @description 外部提问\n */\n @method()\n sendMsg(msg: string | ChatBody): void {\n this.#ref.current?.sendMsg(msg);\n }\n\n render() {\n return (\n <ChatViewComponent\n agentId={this.agentId}\n robotId={this.robotId}\n debug={this.debug}\n sessionId={this.sessionId}\n readonly={this.readonly}\n showAvatar={this.showAvatar}\n showSessionList={this.showSessionList}\n showLike={this.showLike}\n showShare={this.showShare}\n useSpiltWord={this.useSpiltWord}\n quickAnswerConfig={this.quickAnswerConfig}\n snippetList={this.snippetList}\n enterInterval={this.enterInterval}\n commandBricks={this.commandBricks}\n answerLanguage={this.answerLanguage}\n inputToolbarBrick={this.inputToolbarBrick}\n showToolCalls={this.showToolCalls}\n onSessionIdChange={this.#handleSessionIdChange}\n onRobotIdChange={this.#handleRobotIdChange}\n onQaFinish={this.#handleQaFinish}\n ref={this.#ref}\n />\n );\n }\n}\n","import React, {\n createRef,\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport { getBasePath } from \"@next-core/runtime\";\nimport { createSSEStream, type Options } from \"@next-core/utils/general\";\nimport styleText from \"./styles.shadow.css\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface ChatAgentProps {\n agentId?: string;\n robotId?: string;\n conversationId?: string;\n alwaysUseNewConversation?: boolean;\n}\n\nexport interface Message extends BaseMessage {\n key: number;\n partial?: boolean;\n failed?: boolean;\n}\n\nexport interface BaseMessage {\n role: \"user\" | \"assistant\";\n content: string;\n}\n\nexport interface MessageChunk {\n delta: BaseMessage;\n conversationId?: string;\n key: number;\n partial?: boolean;\n}\n\nexport interface LowLevelMessageChunk {\n choices: LowLevelChoice[];\n}\n\nexport interface LowLevelChoice {\n delta: {\n role: \"assistant\";\n content?: string;\n };\n}\n\nexport const ChatAgentComponent = forwardRef(LegacyChatAgentComponent);\n\n/**\n * 用于与 AI 机器人进行对话的代理构件,处理通信并整合消息。\n */\nexport\n@defineElement(\"ai.chat-agent\", {\n styleTexts: [styleText],\n})\nclass ChatAgent extends ReactNextElement implements ChatAgentProps {\n @property()\n accessor agentId: string | undefined;\n\n @property()\n accessor robotId: string | undefined;\n\n @property()\n accessor conversationId: string | undefined;\n\n @property()\n accessor alwaysUseNewConversation: boolean | undefined;\n\n /**\n * 发送消息到默认的聊天 API\n */\n @method()\n postMessage(content: string) {\n return this.#ref.current?.postMessage(content);\n }\n\n /**\n * 发送聊天请求到指定的 URL\n */\n @method()\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.sendRequest(leadingMessages, url, options);\n }\n\n /**\n * 发送底层聊天请求到指定的 URL。接口的请求和响应的数据结构和 OpenAI 聊天接口一致。\n */\n @method()\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ) {\n return this.#ref.current?.lowLevelSendRequest(\n leadingMessages,\n url,\n options\n );\n }\n\n @method()\n newConversation() {\n this.#ref.current?.newConversation();\n }\n\n // @event({ type: \"messageChunk.push\" })\n // accessor #messageChunkPushEvent!: EventEmitter<MessageChunk>;\n\n // #handleMessageChunkPush = (msg: MessageChunk) => {\n // this.#messageChunkPushEvent.emit(msg);\n // };\n\n @event({ type: \"messages.update\" })\n accessor #messagesUpdate!: EventEmitter<Message[]>;\n\n #handleMessagesUpdate = (messages: Message[]) => {\n this.#messagesUpdate.emit(messages);\n };\n\n @event({ type: \"busy.change\" })\n accessor #busyChangeEvent!: EventEmitter<boolean>;\n\n #handleBusyChange = (busy: boolean) => {\n this.#busyChangeEvent.emit(busy);\n };\n\n @event({ type: \"conversationId.change\" })\n accessor #conversationIdChangeEvent!: EventEmitter<string | null>;\n\n #handleConversationIdChange = (conversationId: string | null) => {\n this.#conversationIdChangeEvent.emit(conversationId);\n };\n\n #ref = createRef<ChatAgentRef>();\n\n render() {\n return (\n <ChatAgentComponent\n ref={this.#ref}\n agentId={this.agentId}\n robotId={this.robotId}\n conversationId={this.conversationId}\n alwaysUseNewConversation={this.alwaysUseNewConversation}\n // onMessageChunkPush={this.#handleMessageChunkPush}\n onMessagesUpdate={this.#handleMessagesUpdate}\n onBusyChange={this.#handleBusyChange}\n onConversationIdChange={this.#handleConversationIdChange}\n />\n );\n }\n}\n\nexport interface ChatAgentComponentProps extends ChatAgentProps {\n onMessageChunkPush?(msg: MessageChunk): void;\n onMessagesUpdate?(messages: Message[]): void;\n onBusyChange?(busy: boolean): void;\n onConversationIdChange?(conversationId: string | null): void;\n}\n\nexport interface ChatAgentRef {\n postMessage(content: string): Promise<string | null>;\n sendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n lowLevelSendRequest(\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk>\n ): Promise<string | null>;\n newConversation(): void;\n}\n\nexport function LegacyChatAgentComponent(\n {\n agentId,\n robotId,\n conversationId: propConversationId,\n alwaysUseNewConversation,\n onMessageChunkPush,\n onMessagesUpdate,\n onBusyChange,\n onConversationIdChange,\n }: ChatAgentComponentProps,\n ref: React.Ref<ChatAgentRef>\n) {\n const didMountRef = useRef(false);\n const chatIdRef = useRef(1);\n const busyRef = useRef(false);\n const [conversationId, setConversationId] = useState<string | null>(null);\n\n useEffect(() => {\n setConversationId(propConversationId ?? null);\n }, [propConversationId]);\n\n useEffect(() => {\n didMountRef.current && onConversationIdChange?.(conversationId);\n }, [conversationId, onConversationIdChange]);\n\n const counterRef = useRef(0);\n const getMessageChunkKey = useCallback(() => counterRef.current++, []);\n\n const [fullMessages, setFullMessages] = useState<Message[]>([]);\n\n const pushPartialMessage = useCallback(\n (chunk: MessageChunk) => {\n onMessageChunkPush?.(chunk);\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last && last.key === chunk.key) {\n last.content += chunk.delta.content;\n return [...prev];\n }\n if (last?.partial) {\n last.partial = false;\n }\n return [\n ...prev,\n { ...chunk.delta, key: chunk.key, partial: chunk.partial },\n ];\n });\n },\n [onMessageChunkPush]\n );\n\n const legacySendRequest = useCallback(\n async (\n isLowLevel: boolean,\n leadingMessages: string | BaseMessage[],\n url: string,\n options: Options<MessageChunk | LowLevelMessageChunk>\n ) => {\n // Use ref instead of state to handle sync sequential calls.\n if (busyRef.current) {\n return null;\n }\n if (alwaysUseNewConversation || isLowLevel) {\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n }\n const thisChatId = chatIdRef.current;\n let newConversationError: Error | undefined;\n const checkNewConversation = async () => {\n if (thisChatId !== chatIdRef.current) {\n // istanbul ignore else: should never happen\n if (!newConversationError) {\n newConversationError = new Error(\"New conversation started\");\n }\n throw newConversationError;\n }\n };\n\n const userKey = getMessageChunkKey();\n const assistantKey = getMessageChunkKey();\n let currentConversationId =\n alwaysUseNewConversation || isLowLevel ? null : conversationId;\n\n onBusyChange?.((busyRef.current = true));\n\n try {\n if (Array.isArray(leadingMessages)) {\n for (const msg of leadingMessages) {\n const isAssistant = msg.role === \"assistant\";\n if (isAssistant || msg.role === \"user\") {\n pushPartialMessage?.({\n key: isAssistant ? assistantKey : userKey,\n delta: {\n role: msg.role,\n content: msg.content,\n },\n });\n }\n }\n } else {\n pushPartialMessage?.({\n key: userKey,\n delta: {\n content: leadingMessages,\n role: \"user\",\n },\n });\n }\n const request = createSSEStream<MessageChunk | LowLevelMessageChunk>(\n new URL(url, `${location.origin}${getBasePath()}`).toString(),\n options\n );\n\n // Put a placeholder assistant message to indicate that the assistant\n // is processing if the request takes longer than one second.\n await Promise.race([\n request,\n new Promise((resolve) => setTimeout(resolve, 1000)),\n ]);\n\n await checkNewConversation();\n\n pushPartialMessage?.({\n key: assistantKey,\n delta: {\n content: \"\",\n role: \"assistant\",\n },\n partial: true,\n });\n\n const stream = await request;\n for await (const value of stream) {\n // istanbul ignore next\n // if (process.env.NODE_ENV === \"development\") {\n // // eslint-disable-next-line no-console\n // console.log(\"stream iterated:\", value);\n // }\n\n await checkNewConversation();\n\n if (isLowLevel) {\n const delta = (value as LowLevelMessageChunk).choices?.[0]?.delta;\n if (delta?.content) {\n pushPartialMessage({\n delta: {\n role: delta.role,\n content: delta.content,\n },\n key: assistantKey,\n partial: true,\n });\n }\n } else {\n pushPartialMessage?.({\n delta: (value as MessageChunk).delta,\n key: assistantKey,\n partial: true,\n });\n if (\n !alwaysUseNewConversation &&\n (value as MessageChunk).conversationId &&\n !currentConversationId\n ) {\n setConversationId(\n (currentConversationId = (value as MessageChunk)\n .conversationId!)\n );\n }\n }\n }\n\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n if (last?.partial) {\n last.partial = false;\n }\n return [...prev];\n });\n } catch (error) {\n if (error && error === newConversationError) {\n throw error;\n }\n\n // eslint-disable-next-line no-console\n console.error(\"stream failed:\", error);\n await checkNewConversation();\n\n setFullMessages((prev) => {\n const last = prev[prev.length - 1];\n let keep = prev;\n if (last?.key === assistantKey) {\n if (last.content) {\n last.partial = false;\n last.failed = true;\n } else {\n // Ignore the empty assistant message.\n keep = prev.slice(0, -1);\n }\n }\n return [\n ...keep,\n {\n role: \"assistant\",\n content: \"系统错误\",\n key: getMessageChunkKey(),\n failed: true,\n },\n ];\n });\n }\n\n await checkNewConversation();\n\n onBusyChange?.((busyRef.current = false));\n\n return currentConversationId;\n },\n [\n conversationId,\n alwaysUseNewConversation,\n getMessageChunkKey,\n onBusyChange,\n pushPartialMessage,\n ]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n lowLevelSendRequest: (...args) => legacySendRequest(true, ...args),\n sendRequest: (...args) => legacySendRequest(false, ...args),\n postMessage(content: string) {\n return legacySendRequest(\n false,\n content,\n \"api/gateway/easyops.api.aiops_chat.manage.LLMChatProxy@1.0.0/api/aiops_chat/v1/chat/completions\",\n {\n method: \"POST\",\n body: JSON.stringify({\n agentId,\n robotId,\n input: content,\n stream: true,\n conversationId:\n alwaysUseNewConversation || conversationId === null\n ? undefined\n : conversationId,\n }),\n headers: {\n \"giraffe-contract-name\":\n \"easyops.api.aiops_chat.manage.LLMChatProxy\",\n },\n }\n );\n },\n newConversation() {\n chatIdRef.current++;\n setConversationId(null);\n setFullMessages((prev) => (prev.length === 0 ? prev : []));\n if (busyRef.current) {\n onBusyChange?.((busyRef.current = false));\n }\n },\n }),\n [\n legacySendRequest,\n agentId,\n robotId,\n alwaysUseNewConversation,\n conversationId,\n onBusyChange,\n ]\n );\n\n useEffect(() => {\n didMountRef.current && onMessagesUpdate?.(fullMessages);\n }, [fullMessages, onMessagesUpdate]);\n\n useEffect(() => {\n didMountRef.current = true;\n }, []);\n\n return null;\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:none}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n"],"names":["defineElement","property","method","event","createDecorators","LegacyChatViewComponent","_ref","ref","agentId","robotId","sessionId","showAvatar","showSessionList","readonly","showLike","showShare","quickAnswerConfig","snippetList","enterInterval","debug","useSpiltWord","commandBricks","answerLanguage","inputToolbarBrick","showToolCalls","onSessionIdChange","onRobotIdChange","onQaFinish","sessionEnd","sessionLoading","activeSessionId","msgEnd","msgLoading","msgList","sessionList","loading","chatting","searchStr","toolNames","setAgent","handleIsLike","handleChat","stopChat","createSession","deleteSession","updateSession","checkSession","setSearchStr","querySessionHistory","useChatViewInfo","useEffect","_sessionList$find","find","item","conversationId","React","ChatViewContext","Provider","value","className","SessionList","MessageList","SearchInput","ChatViewComponent","forwardRef","_ChatView","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_ref2","_R","_ChatView_brand","WeakSet","_handleSessionIdChange","_S","_handleRobotIdChange","_T","_handleQaFinish","ChatView","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_sessionId","_init_extra_sessionId","_init_agentId","_init_extra_agentId","_init_robotId","_init_extra_robotId","_init_answerLanguage","_init_extra_answerLanguage","_init_debug","_init_extra_debug","_init_showAvatar","_init_extra_showAvatar","_init_showSessionList","_init_extra_showSessionList","_init_readonly","_init_extra_readonly","_init_showLike","_init_extra_showLike","_init_showShare","_init_extra_showShare","_init_useSpiltWord","_init_extra_useSpiltWord","_init_enterInterval","_init_extra_enterInterval","_init_quickAnswerConfig","_init_extra_quickAnswerConfig","_init_snippetList","_init_extra_snippetList","_init_commandBricks","_init_extra_commandBricks","_init_inputToolbarBrick","_init_extra_inputToolbarBrick","_init_showToolCalls","_init_extra_showToolCalls","_init_sessionIdChange","_init_extra_sessionIdChange","_classPrivateGetter","this","_get_sessionIdChange","emit","_init_robotIdChange","_init_extra_robotIdChange","_get_robotIdChange","_init_qaFinish","_init_extra_qaFinish","_get_qaFinish","_classPrivateFieldGet","v","_classPrivateFieldSet","insertQuestion","args","_classPrivateFieldGet2","current","handleInsertQuestion","sendMsg","msg","_classPrivateFieldGet3","render","_ChatView2","e","_set_sessionIdChange","_set_robotIdChange","_set_qaFinish","c","_initClass","_applyDecs","shadowOptions","type","Boolean","Number","attribute","o","_","has","_checkInRHS","ChatAgentComponent","LegacyChatAgentComponent","_ChatAgent","_ChatAgent_brand","_handleMessagesUpdate","_handleBusyChange","_handleConversationIdChange","ChatAgent","_init_conversationId","_init_extra_conversationId","_init_alwaysUseNewConversation","_init_extra_alwaysUseNewConversation","_init_messagesUpdate","_init_extra_messagesUpdate","messages","_get_messagesUpdate","_init_busyChangeEvent","_init_extra_busyChangeEvent","busy","_get_busyChangeEvent","_init_conversationIdChangeEvent","_init_extra_conversationIdChangeEvent","_get_conversationIdChangeEvent","createRef","alwaysUseNewConversation","postMessage","content","sendRequest","leadingMessages","url","options","lowLevelSendRequest","_classPrivateFieldGet4","newConversation","_classPrivateFieldGet5","onMessagesUpdate","onBusyChange","onConversationIdChange","propConversationId","onMessageChunkPush","didMountRef","useRef","chatIdRef","busyRef","setConversationId","useState","counterRef","getMessageChunkKey","useCallback","fullMessages","setFullMessages","pushPartialMessage","chunk","prev","last","length","key","delta","partial","legacySendRequest","async","isLowLevel","thisChatId","newConversationError","checkNewConversation","Error","userKey","assistantKey","currentConversationId","Array","isArray","isAssistant","role","request","createSSEStream","URL","location","origin","getBasePath","toString","Promise","race","resolve","setTimeout","stream","_choices","choices","error","console","keep","failed","slice","useImperativeHandle","_len","_key","_len2","_key2","body","JSON","stringify","input","undefined","headers","_ChatAgent2","_set_messagesUpdate","_set_busyChangeEvent","_set_conversationIdChangeEvent","styleTexts","styleText","___CSS_LOADER_EXPORT___","push","module","id"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[4658,2277],{2277:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>m,transform:()=>v,transformAndInject:()=>w});var n=r(1030),a=r(
|
|
2
|
-
//# sourceMappingURL=4658.
|
|
1
|
+
"use strict";(globalThis.webpackChunk_next_bricks_ai=globalThis.webpackChunk_next_bricks_ai||[]).push([[4658,2277],{2277:(e,t,r)=>{r.r(t),r.d(t,{inject:()=>m,transform:()=>v,transformAndInject:()=>w});var n=r(1030),a=r(8286);let i=function(e){return e[e.Initial=0]="Initial",e[e.ExpectField=1]="ExpectField",e[e.ExpectOptionalBeginDefault=2]="ExpectOptionalBeginDefault",e[e.ExpectDefaultValue=3]="ExpectDefaultValue",e[e.ExpectOptionalBeginPipe=4]="ExpectOptionalBeginPipe",e[e.ExpectPipeIdentifier=5]="ExpectPipeIdentifier",e[e.ExpectOptionalBeginPipeParameter=6]="ExpectOptionalBeginPipeParameter",e[e.ExpectPipeParameter=7]="ExpectPipeParameter",e[e.ExpectPlaceholderEnd=8]="ExpectPlaceholderEnd",e}({}),s=function(e){return e.Raw="Raw",e.BeginPlaceHolder="BeginPlaceHolder",e.Field="Field",e.BeginDefault="BeginDefault",e.LiteralString="LiteralString",e.BeginPipe="BeginPipe",e.PipeIdentifier="PipeIdentifier",e.BeginPipeParameter="BeginPipeParameter",e.EndPlaceHolder="EndPlaceHolder",e.JsonValue="JsonValue",e}({}),c=function(e){return e[e.Array=0]="Array",e[e.Object=1]="Object",e[e.String=2]="String",e[e.Others=3]="Others",e}({});function l(e){return new RegExp(`(${[].concat(e).map((e=>(0,n.escapeRegExp)(e))).join("|")})\\{`)}function o(e){var t;const r=y(e),n=null===(t=r.match(e.beginPlaceholder))||void 0===t?void 0:t[0],a=n?r.indexOf(n):-1;if(a>=0&&n&&"{"!==r.charAt(a+n.length)){const t=e.cursor+a;a>0&&e.tokens.push({type:s.Raw,value:r.substring(0,a)}),e.tokens.push({type:s.BeginPlaceHolder,loc:{start:t,end:t+n.length},value:n.substring(0,n.length-1)}),e.cursor+=a+n.length,e.status=i.ExpectField}else e.tokens.push({type:s.Raw,value:r}),e.cursor=e.raw.length}function u(e){e.cursor+=y(e).match(/^[ \r\n\t]*/)[0].length}function p(e){const[t]=y(e).match(/^[\w.*[\]\-\u{80}-\u{10FFFF}]*/u);e.tokens.push({type:s.Field,value:t}),e.cursor+=t.length,e.status=i.ExpectOptionalBeginDefault}function d(e){"="===y(e).charAt(0)?(e.tokens.push({type:s.BeginDefault}),e.cursor+=1,e.status=i.ExpectDefaultValue):e.status=i.ExpectOptionalBeginPipe}function f(e){k(e,i.ExpectOptionalBeginPipe)}function g(e){"|"===y(e).charAt(0)?(e.tokens.push({type:s.BeginPipe}),e.cursor+=1,e.status=i.ExpectPipeIdentifier):e.status=i.ExpectPlaceholderEnd}function h(e){const t=y(e).match(/^[a-zA-Z]\w*/);if(!t)throw new Error(`Expected a pipe identifier at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);const r=t[0];e.tokens.push({type:s.PipeIdentifier,value:r}),e.cursor+=r.length,e.status=i.ExpectOptionalBeginPipeParameter}function P(e){":"===y(e).charAt(0)?(e.tokens.push({type:s.BeginPipeParameter}),e.cursor+=1,e.status=i.ExpectPipeParameter):e.status=i.ExpectOptionalBeginPipe}function E(e){k(e,i.ExpectOptionalBeginPipeParameter)}function b(e){if("}"!==y(e).charAt(0))throw new Error(`Expected a placeholder end '}' at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);e.tokens.push({type:s.EndPlaceHolder,loc:{start:e.cursor,end:e.cursor+1}}),e.cursor+=1,e.status=i.Initial}const x=new Map([["false",!1],["null",null],["true",!0]]);function k(e,t){const r=y(e);if(/[0-9[{"]/.test(r.charAt(0))||/-[0-9]/.test(r.substring(0,2)))!function(e,t){const r=y(e),n=r.charAt(0),a="["===n?c.Array:"{"===n?c.Object:'"'===n?c.String:c.Others;let i=0,l=0,o=0,u=!1,p=!1,d=!1;for(;i<r.length;){const e=r.charAt(i);if(p)p=!1;else if(u)'"'===e?u=!1:"\\"===e&&(p=!0);else switch(e){case"[":o+=1;break;case"{":l+=1;break;case"]":o-=1;break;case"}":l-=1;break;case'"':u=!0}switch(i+=1,a){case c.Array:d=!o;break;case c.Object:d=!l;break;case c.String:d=!u;break;default:d=i<r.length&&/[^a-z0-9E.+-]/.test(r.charAt(i))}if(d)break}if(!d)throw new Error(`Failed to match a JSON value at index ${e.cursor} near: ${JSON.stringify(e.raw.substring(e.cursor))}`);e.tokens.push({type:s.JsonValue,value:JSON.parse(r.substring(0,i))}),e.cursor+=i,e.status=t}(e,t);else{const[r]=y(e).match(/^[\w\-\u{80}-\u{10FFFF}]*/u);x.has(r)?e.tokens.push({type:s.JsonValue,value:x.get(r)}):e.tokens.push({type:s.LiteralString,value:r}),e.cursor+=r.length,e.status=t}}function y(e){return e.raw.substring(e.cursor)}function v(e,t){return A(e,"@",t)}function m(e,t){return A(e,"$",t)}function w(e,t){return A(e,["@","$"],t)}function A(e,t,r){if(!function(e,t){return l(t).test(e)}(e,t))return e;const c=(x=r.data,function(e){let t=e.field?(0,n.get)(x,e.field):x;return void 0===t&&(t=e.defaultValue),(0,a.processPipes)(t,e.pipes)});var x;const k=function(e,t){return function(r){var i,s;const c=r.field.match(/^(?:(QUERY(?:_ARRAY)?|EVENT|query|event|APP|HASH|ANCHOR|SYS|FLAGS|CTX)\.)?(.+)$/);if(!c)return t.substring(r.loc.start,r.loc.end);let l,[,o,u]=c;!o&&/^[A-Z_]+$/.test(u)&&(o=u,u="*");const p={SYS:"sys",FLAGS:"flags"};switch(o){case"QUERY":case"query":l="*"===u?e.query:e.query.has(u)?e.query.get(u):void 0;break;case"QUERY_ARRAY":l=e.query.has(u)?e.query.getAll(u):void 0;break;case"EVENT":case"event":if(void 0===e.event)return t.substring(r.loc.start,r.loc.end);l="*"===u?e.event:(0,n.get)(e.event,u);break;case"APP":l="*"===u?null!==(i=e.overrideApp)&&void 0!==i?i:e.app:(0,n.get)(null!==(s=e.overrideApp)&&void 0!==s?s:e.app,u);break;case"HASH":l=e.location.hash;break;case"SYS":case"FLAGS":l="*"===u?e[p[o]]:(0,n.get)(e[p[o]],u);break;case"ANCHOR":{const t=e.location.hash?e.location.hash.substr(1):null;l="*"===u?t:(0,n.get)(t,u);break}case"CTX":{const e=t.substring(r.loc.start,r.loc.end);return console.error(`CTX is not supported in placeholder any more: "${e}"`),e}default:if(!e.match)return t.substring(r.loc.start,r.loc.end);l=e.match.params[u]}return void 0===l&&(l=r.defaultValue),(0,a.processPipes)(l,r.pipes)}}(r,e);return y=function(e,t){return function(e){const t={type:"InjectableString",elements:[]};let r;function n(t){return t===e[0].type&&(r=e.shift(),!0)}function a(t){if(r=e.shift(),Array.isArray(t)?!t.includes(r.type):t!==r.type)throw new Error(`Expected token: ${t}, received token: ${r.type}`)}for(;e.length>0;)if(n(s.Raw))t.elements.push({type:"RawString",value:r.value});else{a(s.BeginPlaceHolder);const e=r.loc.start,i=r.value;a(s.Field);const c={type:"Placeholder",symbol:i,field:r.value,defaultValue:void 0,pipes:[],loc:{start:e,end:e}};for(t.elements.push(c),n(s.BeginDefault)&&(a([s.JsonValue,s.LiteralString]),c.defaultValue=r.value);n(s.BeginPipe);){a(s.PipeIdentifier);const e={type:"PipeCall",identifier:r.value,parameters:[]};for(c.pipes.push(e);n(s.BeginPipeParameter);)a([s.JsonValue,s.LiteralString]),e.parameters.push(r.value)}a(s.EndPlaceHolder),c.loc.end=r.loc.end}return t}(function(e,t){const r={beginPlaceholder:l(t),raw:e,cursor:0,status:i.Initial,tokens:[]};for(;r.cursor<e.length;)switch(r.status){case i.Initial:o(r);break;case i.ExpectField:u(r),p(r);break;case i.ExpectOptionalBeginDefault:u(r),d(r);break;case i.ExpectDefaultValue:u(r),f(r);break;case i.ExpectOptionalBeginPipe:u(r),g(r);break;case i.ExpectPipeIdentifier:u(r),h(r);break;case i.ExpectOptionalBeginPipeParameter:u(r),P(r);break;case i.ExpectPipeParameter:u(r),E(r);break;case i.ExpectPlaceholderEnd:u(r),b(r)}if(r.status!==i.Initial)throw new Error("Expected a placeholder end '}' at the end");return r.tokens}(e,t))}(e,t).elements.map((e=>"RawString"===e.type?e.value:"$"===e.symbol?k(e):c(e))),1===y.length?y[0]:y.join("");var y}}}]);
|
|
2
|
+
//# sourceMappingURL=4658.e3a0db7e.js.map
|