@tablestore/tablestore-agent-cli 0.2.5 → 0.2.6
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/dashboard-runtime/dashboard/.next/BUILD_ID +1 -1
- package/dist/dashboard-runtime/dashboard/.next/build-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/prerender-manifest.json +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/qa/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/(dashboard)/knowledge-base/[name]/retrieval/page_client-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/custom-policy/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/effective-permissions/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/policies/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/filter-by-permission/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/api-keys/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/status/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/auth/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/token/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/[name]/use/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/instances/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/chunks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/[docId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/documents/upload/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/retrieve/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/[name]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/knowledge-bases/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/chat/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/models/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/[id]/test/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/llm/providers/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/logs/client/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/apply/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/actions/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/cancel/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/[dreamId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/dream-tasks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/messages/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/requests/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/scopes/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/search/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/[requestId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/tasks/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/[memoryId]/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/[store]/units/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/memory/stores/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/oss/list/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/api/v1/runtime/context/route.js.nft.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_full.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_head.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_index.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/_tree.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding/__PAGE__.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/app/onboarding.segments/onboarding.segment.rsc +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0.y01v.._.js +40 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0wa~r66._.js +40 -0
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/{[root-of-the-server]__0cfc26g._.js → [root-of-the-server]__10k~3sa._.js} +10 -10
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__07fra.0._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/[root-of-the-server]__0st_2qm._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/ssr/_0odjvc.._.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/middleware-build-manifest.js +3 -3
- package/dist/dashboard-runtime/dashboard/.next/server/pages/404.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/pages/500.html +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.js +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/server-reference-manifest.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{0ayu19bfberc6.js → 0-0n226yihtlx.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{1080w.jlkizc-.js → 09fuq3fiw1zq8.js} +1 -1
- package/dist/dashboard-runtime/dashboard/.next/static/chunks/{06qgro8gk178k.js → 12ju37ebul3bw.js} +1 -1
- package/dist/dashboard-runtime/dashboard/src/components/qa/qa-message.tsx +2 -3
- package/dist/dashboard-runtime/dashboard/src/components/retrieval/retrieval-result-card.tsx +2 -1
- package/dist/dashboard-runtime/dashboard/src/lib/utils.ts +4 -0
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/dashboard-runtime/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/node_modules/@tablestore/tablestore-agent-sdk/package.json +1 -1
- package/package.json +1 -1
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0pfdi-.._.js +0 -40
- package/dist/dashboard-runtime/dashboard/.next/server/chunks/[root-of-the-server]__0qi223x._.js +0 -40
- /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → pE-cQCmJ7b5_xgwqBJ7J3}/_buildManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → pE-cQCmJ7b5_xgwqBJ7J3}/_clientMiddlewareManifest.js +0 -0
- /package/dist/dashboard-runtime/dashboard/.next/static/{w-aME93lY9vOGA0PZdBaI → pE-cQCmJ7b5_xgwqBJ7J3}/_ssgManifest.js +0 -0
package/dist/dashboard-runtime/dashboard/.next/static/chunks/{1080w.jlkizc-.js → 09fuq3fiw1zq8.js}
RENAMED
|
@@ -135,4 +135,4 @@ Uppercase Upper
|
|
|
135
135
|
Variation_Selector VS
|
|
136
136
|
White_Space space
|
|
137
137
|
XID_Continue XIDC
|
|
138
|
-
XID_Start XIDS`.split(/\s/).map(e=>[nn(e),e])),nD=new Map([["s",nN(383)],[nN(383),"s"]]),nU=new Map([[nN(223),nN(7838)],[nN(107),nN(8490)],[nN(229),nN(8491)],[nN(969),nN(8486)]]),nF=new Map([nq(453),nq(456),nq(459),nq(498),...nz(8072,8079),...nz(8088,8095),...nz(8104,8111),nq(8124),nq(8140),nq(8188)]),nW=new Map([["alnum",nE`[\p{Alpha}\p{Nd}]`],["alpha",nE`\p{Alpha}`],["ascii",nE`\p{ASCII}`],["blank",nE`[\p{Zs}\t]`],["cntrl",nE`\p{Cc}`],["digit",nE`\p{Nd}`],["graph",nE`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",nE`\p{Lower}`],["print",nE`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",nE`[\p{P}\p{S}]`],["space",nE`\p{space}`],["upper",nE`\p{Upper}`],["word",nE`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",nE`\p{AHex}`]]);function nq(e){let t=nN(e);return[t.toLowerCase(),t]}function nz(e,t){return(function(e,t){let r=[];for(let n=e;n<=t;n++)r.push(n);return r})(e,t).map(e=>nq(e))}var nH=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]),nV={AbsenceFunction({node:e,parent:t,replaceWith:r}){let{body:n,kind:i}=e;if("repeater"===i){let e=r6();e.body[0].body.push(r8({negate:!0,body:n}),r9("Any"));let i=r6();i.body[0].body.push(r3("greedy",0,1/0,e)),r(n8(i,t),{traverse:!0})}else throw Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:n}){let i=e.body.filter(e=>"flags"===e.kind);for(let e=r+1;e<t.body.length;e++)n$(n,t.body[e],[]).push(...i)},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=nY(t.get(e));if(r){let t=r6({flags:r});t.body[0].body=e.body,e.body=[n8(t,e)]}}}},Assertion({node:e,parent:t,key:r,container:n,root:i,remove:a,replaceWith:s},o){let{kind:l,negate:u}=e,{asciiWordBoundaries:c,avoidSubclass:h,supportedGNodes:p,wordIsAscii:d}=o;if("text_segment_boundary"===l)throw Error(`Unsupported text segment boundary "\\${u?"Y":"y"}"`);if("line_end"===l)s(n8(r8({body:[rJ({body:[rZ("string_end")]}),rJ({body:[r1(10)]})]}),t));else if("line_start"===l)s(n8(n2(nE`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if("search_start"===l)if(p.has(e))i.flags.sticky=!0,a();else{var f;let e,i=n[r-1];if(i&&((e=["Character","CharacterClass","CharacterSet"]).includes((f=i).type)||"Quantifier"===f.type&&f.min&&e.includes(f.body.type)))s(n8(r8({negate:!0}),t));else if(h)throw Error(nE`Uses "\G" in a way that requires a subclass`);else s(n6(rZ("string_start"),t)),o.strategy="clip_search"}else if("string_end"===l||"string_start"===l);else if("string_end_newline"===l)s(n8(n2(nE`(?=\n?\z)`),t));else if("word_boundary"===l){if(!d&&!c){let e=`(?:(?<=${nB})(?!${nB})|(?<!${nB})(?=${nB}))`,r=`(?:(?<=${nB})(?=${nB})|(?<!${nB})(?!${nB}))`;s(n8(n2(u?r:e),t))}}else throw Error(`Unexpected assertion kind "${l}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:n}=e;n&&!n1(n)&&(e.name=n=nZ(n,t)),r.set(e.number,e),n&&r.set(n,e)},CharacterClassRange({node:e,parent:t,replaceWith:r}){"intersection"===t.kind&&r(n8(r2({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:r},{accuracy:n,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:s,wordIsAscii:o}){let{kind:l,negate:u,value:c}=e;if(a&&("digit"===l||"digit"===c))return void r(n6(r5("digit",{negate:u}),t));if(s&&("space"===l||"space"===c))return void r(n8(n5(n2("[ -\r ]"),u),t));if(o&&("word"===l||"word"===c))return void r(n6(r5("word",{negate:u}),t));if("any"===l)r(n6(r9("Any"),t));else if("digit"===l)r(n6(r9("Nd",{negate:u}),t));else if("dot"===l);else if("text_segment"===l){if("strict"===n)throw Error(nE`Use of "\X" requires non-strict accuracy`);let e="\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?",a=nE`\p{RI}{2}|${e}(?:\u200D${e})*`;r(n8(n2(nE`(?>\r\n|${i?nE`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if("hex"===l)r(n6(r9("AHex",{negate:u}),t));else if("newline"===l)r(n8(n2(u?"[^\n]":"(?>\r\n?|[\n\v\f
\u2028\u2029])"),t));else if("posix"===l)if(i||"graph"!==c&&"print"!==c)r(n8(n5(n2(nW.get(c)),u),t));else{if("strict"===n)throw Error(`POSIX class "${c}" requires min target ES2024 or non-strict accuracy`);let e={graph:"!-~",print:" -~"}[c];u&&(e=`\0-${nN(e.codePointAt(0)-1)}${nN(e.codePointAt(2)+1)}-\u{10FFFF}`),r(n8(n2(`[${e}]`),t))}else if("property"===l)nG.has(nn(c))||(e.key="sc");else if("space"===l)r(n6(r9("space",{negate:u}),t));else if("word"===l)r(n8(n5(n2(nB),u),t));else throw Error(`Unexpected character set kind "${l}"`)},Directive({node:e,parent:t,root:r,remove:n,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:s}){let{kind:o,flags:l}=e;if("flags"===o)if(l.enable||l.disable){let e=r6({flags:l});e.body[0].body=s(),i(n8(e,t),{traverse:!0})}else n();else if("keep"===o){let e=r.body[0],n=1===r.body.length&&rQ(e,{type:"Group"})&&1===e.body[0].body.length?e.body[0]:r;if(t.parent!==n||n.body.length>1)throw Error(nE`Uses "\K" in a way that's unsupported`);let s=r8({behind:!0});s.body[0].body=a(),i(n8(s,t))}else throw Error(`Unexpected directive kind "${o}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error('Unsupported flag "P"');if("word"===e.textSegmentMode)throw Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:r}=e.flags;t?.extended&&delete t.extended,r?.extended&&delete r.extended,t?.dotAll&&r?.dotAll&&delete t.dotAll,t?.ignoreCase&&r?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,r&&!Object.keys(r).length&&delete e.flags.disable,e.flags.enable||e.flags.disable||delete e.flags},LookaroundAssertion({node:e},t){let{kind:r}=e;"lookbehind"===r&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:r}){let{kind:n}=e;if("fail"===n)r(n8(r8({negate:!0}),t));else throw Error(`Unsupported named callout "(*${n.toUpperCase()}"`)},Quantifier({node:e}){if("Quantifier"===e.body.type){let t=r6();t.body[0].body.push(e.body),e.body=n8(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let r=[],n=!1,i=!1;for(let t of e.body)if(1===t.body.length&&"search_start"===t.body[0].kind)t.body.pop();else{let e=function e(t){let r=t.find(e=>"search_start"===e.kind||function(e,t){let r={negate:null,...t};return"LookaroundAssertion"===e.type&&(null===r.negate||e.negate===r.negate)&&1===e.body.length&&rQ(e.body[0],{type:"Assertion",kind:"search_start"})}(e,{negate:!1})||!function({type:e}){return"Assertion"===e||"Directive"===e||"LookaroundAssertion"===e}(e));if(!r)return null;if("search_start"===r.kind)return r;if("LookaroundAssertion"===r.type)return r.body[0].body[0];if("CapturingGroup"===r.type||"Group"===r.type){let t=[];for(let n of r.body){let r=e(n.body);if(!r)return null;Array.isArray(r)?t.push(...r):t.push(r)}return t}return null}(t.body);e?(n=!0,Array.isArray(e)?r.push(...e):r.push(e)):i=!0}n&&!i&&r.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:r,strategy:n}){if("strict"===t&&r&&n)throw Error(nE`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))}},nQ={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:n,ref:i}=e;n||r.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:r,skip:n},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:s,openRefs:o,reffedNodesByReferencer:l}){let u=i.get(e);if(u&&o.has(e.number)){let n=n6(nJ(e.number),t);l.set(n,o.get(e.number)),r(n);return}o.set(e.number,e),s.set(e.number,[]),e.name&&n$(s,e.name,[]);let c=s.get(e.name??e.number);for(let t=0;t<c.length;t++){let r=c[t];if(u===r.node||u&&u===r.origin||e===r.origin){c.splice(t,1);break}}if(s.get(e.number).push({node:e,origin:u}),e.name&&s.get(e.name).push({node:e,origin:u}),e.name){let t=n$(a,e.name,new Map),r=!1;if(u)r=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){r=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:r})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=nj(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:r},n){let{isRecursive:i,ref:a}=e;if(i){let r=t;for(;(r=r.parent)&&("CapturingGroup"!==r.type||r.name!==a&&r.number!==a););n.reffedNodesByReferencer.set(e,r);return}let s=n.subroutineRefMap.get(a),o=0===a,l=o?nJ(0):function e(t,r,n,i){let a=Array.isArray(t)?[]:{};for(let[s,o]of Object.entries(t))"parent"===s?a.parent=Array.isArray(n)?i:n:o&&"object"==typeof o?a[s]=e(o,r,a,n):("type"===s&&"CapturingGroup"===o&&r.set(a,r.get(t)??t),a[s]=o);return a}(s,n.groupOriginByCopy,null),u=l;if(!o){var c,h;let e=nY(function(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}(s,e=>"Group"===e.type&&!!e.flags)),t=e?nj(n.globalFlags,e):n.globalFlags;c=t,h=n.currentFlags,(c.dotAll!==h.dotAll||c.ignoreCase!==h.ignoreCase)&&(u=r6({flags:function({dotAll:e,ignoreCase:t}){let r={};return(e||t)&&(r.enable={},e&&(r.enable.dotAll=!0),t&&(r.enable.ignoreCase=!0)),e&&t||(r.disable={},e||(r.disable.dotAll=!0),t||(r.disable.ignoreCase=!0)),r}(t)})).body[0].body.push(l)}r(n8(u,t),{traverse:!o})}},nK={Backreference({node:e,parent:t,replaceWith:r},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}let i=n.reffedNodesByReferencer.get(e).filter(t=>(function(e,t){let r=t;do{if("Regex"===r.type)return!1;if("Alternative"===r.type)continue;if(r===e)return!1;for(let t of n0(r.parent)){if(t===r)break;if(t===e||function e(t,r){for(let n of n0(t)??[])if(n===r||e(n,r))return!0;return!1}(t,e))return!0}}while(r=r.parent)throw Error("Unexpected path")})(t,e));i.length?i.length>1?r(n8(r6({atomic:!0,body:i.reverse().map(e=>rJ({body:[rY(e.number)]}))}),t)):e.ref=i[0].number:r(n8(r8({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<r;t++){let t=r0();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){e.isRecursive&&0!==e.ref&&(e.ref=t.reffedNodesByReferencer.get(e).number)}};function nX(e){ns(e,{"*"({node:e,parent:t}){e.parent=t}})}function nJ(e){let t=r4(e);return t.isRecursive=!0,t}function nZ(e,t){if(t.has(e))return t.get(e);let r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return t.set(e,r),r}function nY(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return(e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete r.disable[t],r.enable[t]=!0),e.disable?.[t]&&(r.disable[t]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable)?r:null}function n0(e){if(!e)throw Error("Node expected");let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function n1(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function n2(e,t){let r=rX(e,{...t,unicodePropertyMap:nG}).body;return r.length>1||r[0].body.length>1?r6({body:r}):r[0].body[0]}function n5(e,t){return e.negate=t,e}function n6(e,t){return e.parent=t,e}function n8(e,t){return nX(e),e.parent=t,e}var n3={"*":{enter({node:e},t){if(io(e)){let r=t.getCurrentModI();t.pushModI(e.flags?nj({ignoreCase:r},e.flags).ignoreCase:r)}},exit({node:e},t){io(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){ii(nN(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),ia(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){"property"===e.kind&&nH.has(e.value)&&t.setHasCasedChar()}},n4={Alternative:({body:e},t,r)=>e.map(r).join(""),Assertion({kind:e,negate:t}){if("string_end"===e)return"$";if("string_start"===e)return"^";if("word_boundary"===e)return t?nE`\B`:nE`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if("number"!=typeof e)throw Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&"strict"===t.accuracy&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,r){let{body:n,name:i,number:a}=e,s={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(s.hidden=!0,a>o.number&&(s.transferTo=o.number)),t.captureMap.set(a,s),`(${i?`?<${i}>`:""}${n.map(r).join("|")})`},Character({value:e},t){let r=nN(e),n=is(e,{escDigit:"Backreference"===t.lastNode.type,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(n!==r)return n;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&ii(r)){let e=nO(r);return t.inCharClass?e.join(""):e.length>1?`[${e.join("")}]`:e[0]}return r},CharacterClass(e,t,r){let{kind:n,negate:i,parent:a}=e,{body:s}=e;if("intersection"===n&&!t.useFlagV)throw Error("Use of character class intersection requires min target ES2024");nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(il)&&(s=[r1(45),...s.filter(e=>!il(e))]);let o=()=>`[${i?"^":""}${s.map(r).join("intersection"===n?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||nI.bugNestedClassIgnoresNegation)&&!i){let t=s.filter(e=>"CharacterClass"===e.type&&"union"===e.kind&&e.negate);if(t.length){let n=r6(),i=n.body[0];return n.parent=a,i.parent=n,e.body=s=s.filter(e=>!t.includes(e)),s.length?(e.parent=i,i.body.push(e)):n.body.pop(),t.forEach(e=>{let t=rJ({body:[e]});e.parent=t,t.parent=n,n.body.push(t)}),r(n)}}t.inCharClass=!0;let n=o();return t.inCharClass=!1,n}let l=s[0];if("union"===n&&!i&&l&&((!t.useFlagV||!t.verbose)&&"union"===a.kind&&!(nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&"intersection"===a.kind&&1===s.length&&"CharacterClassRange"!==l.type))return s.map(r).join("");if(!t.useFlagV&&"CharacterClass"===a.type)throw Error("Uses nested character class in a way that requires min target ES2024");return o()},CharacterClassRange(e,t){let r=e.min.value,n=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=is(r,i),s=is(n,i),o=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&(function(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),r=[],n=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?n??=t[e]:null===n?r.push(t[e]):(r.push([n,t[e]]),n=null);return r})(ia(e)).forEach(e=>{o.add(Array.isArray(e)?`${is(e[0],i)}-${is(e[1],i)}`:is(e,i))}),`${a}-${s}${[...o].join("")}`},CharacterSet({kind:e,negate:t,value:r,key:n},i){if("dot"===e)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?".":"[^]":nE`[^\n]`;if("digit"===e)return t?nE`\D`:nE`\d`;if("property"===e){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&nH.has(r))throw Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?nE`\P`:nE`\p`}{${n?`${n}=`:""}${r}}`}if("word"===e)return t?nE`\W`:nE`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags:(e,t)=>(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":""),Group({atomic:e,body:t,flags:r,parent:n},i,a){let s=i.currentFlags;r&&(i.currentFlags=nj(s,r));let o=t.map(a).join("|"),l=i.verbose||1!==t.length||"Quantifier"===n.type||e||i.useFlagMods&&r?`(?${function(e,t,r){if(e)return">";let n="";if(t&&r){let{enable:e,disable:r}=t;n=(e?.ignoreCase?"i":"")+(e?.dotAll?"s":"")+(r?"-":"")+(r?.ignoreCase?"i":"")+(r?.dotAll?"s":"")}return`${n}:`}(e,r,i.useFlagMods)}${o})`:o;return i.currentFlags=s,l},LookaroundAssertion({body:e,kind:t,negate:r},n,i){let a=`${"lookahead"===t?"":"<"}${r?"!":"="}`;return`(?${a}${e.map(i).join("|")})`},Quantifier:(e,t,r)=>r(e.body)+function({kind:e,max:t,min:r}){return(r||1!==t?r||t!==1/0?1===r&&t===1/0?"+":r===t?`{${r}}`:`{${r},${t===1/0?"":t}}`:"*":"?")+({greedy:"",lazy:"?",possessive:"+"})[e]}(e),Subroutine({isRecursive:e,ref:t},r){if(!e)throw Error("Unexpected non-recursive subroutine in transformed AST");let n=r.recursionLimit;return 0===t?`(?R=${n})`:nE`\g<${t}&R=${n}>`}},n9=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),n7=new Set(["-","\\","]","^","["]),ie=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),it=new Map([[9,nE`\t`],[10,nE`\n`],[11,nE`\v`],[12,nE`\f`],[13,nE`\r`],[8232,nE`\u2028`],[8233,nE`\u2029`],[65279,nE`\uFEFF`]]),ir=/^\p{Cased}$/u;function ii(e){return ir.test(e)}function ia(e,t){let r=!!t?.firstOnly,n=e.min.value,i=e.max.value,a=[];if(n<65&&(65535===i||i>=131071)||65536===n&&i>=131071)return a;for(let e=n;e<=i;e++){let t=nN(e);if(!ii(t))continue;let s=nO(t).filter(e=>{let t=e.codePointAt(0);return t<n||t>i});if(s.length&&(a.push(...s),r))break}return a}function is(e,{escDigit:t,inCharClass:r,useFlagV:n}){var i;if(it.has(e))return it.get(e);if(e<32||e>126&&e<160||e>262143||t&&(i=e)>47&&i<58)return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let a=nN(e);return((r?n?ie:n7:n9).has(a)?"\\":"")+a}function io({type:e}){return"CapturingGroup"===e||"Group"===e||"LookaroundAssertion"===e}function il({type:e,value:t}){return"Character"===e&&45===t}var iu=class e extends RegExp{#e=new Map;#t=null;#r;#n=null;#i=null;rawOptions={};get source(){return this.#r||"(?:)"}constructor(t,r,n){const i=!!n?.lazyCompile;if(t instanceof RegExp){if(n)throw Error("Cannot provide options when copying a regexp");super(t,r),this.#r=t.source,t instanceof e&&(this.#e=t.#e,this.#n=t.#n,this.#i=t.#i,this.rawOptions=t.rawOptions)}else{const e={hiddenCaptures:[],strategy:null,transfers:[],...n};super(i?"":t,r),this.#r=t,this.#e=function(e,t){let r=new Map;for(let t of e)r.set(t,{hidden:!0});for(let[e,n]of t)for(let t of n)n$(r,t,{}).transferTo=e;return r}(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=n??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...r}=this.rawOptions;this.#t=new e(this.#r,this.flags,r)}let r=this.global||this.sticky,n=this.lastIndex;if("clip_search"===this.#i&&r&&n){this.lastIndex=0;let e=this.#a(t.slice(n));return e&&(function(e,t,r,n){if(e.index+=t,e.input=r,n){let r=e.indices;for(let e=0;e<r.length;e++){let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])}let n=r.groups;n&&Object.keys(n).forEach(e=>{let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])})}}(e,n,t,this.hasIndices),this.lastIndex+=n),e}return this.#a(t)}#a(e){let t;this.#t.lastIndex=this.lastIndex;let r=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!r||!this.#e.size)return r;let n=[...r];r.length=1,this.hasIndices&&(t=[...r.indices],r.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:s}=this.#e.get(e)??{};if(a?i.push(null):(i.push(r.length),r.push(n[e]),this.hasIndices&&r.indices.push(t[e])),s&&void 0!==n[e]){let a=i[s];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(r[a]=n[e],this.hasIndices&&(r.indices[a]=t[e]),r.groups){this.#n||(this.#n=function(e){let t,r=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,i=0,a=0;for(;t=r.exec(e);){let{0:e,groups:{capture:r,name:s}}=t;"["===e?i++:i?"]"===e&&i--:r&&(a++,s&&n.set(a,s))}return n}(this.source));let i=this.#n.get(s);i&&(r.groups[i]=n[e],this.hasIndices&&(r.indices.groups[i]=t[e]))}}}return r}};class ic{constructor(e,t={}){this.patterns=e,this.options=t;const{forgiving:r=!1,cache:n,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if("string"!=typeof e)return e;let t=n?.get(e);if(t){if(t instanceof RegExp)return t;if(r)return null;throw t}try{let t=i(e);return n?.set(e,t),t}catch(t){if(n?.set(e,t),r)return null;throw t}})}regexps;findNextMatchSync(e,t,r){let n="string"==typeof e?e:e.content,i=[];function a(e,t,r=0){return{index:e,captureIndices:t.indices.map(e=>null==e?{start:0xffffffff,end:0xffffffff,length:0}:{start:e[0]+r,end:e[1]+r,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let r=this.regexps[e];if(r)try{r.lastIndex=t;let s=r.exec(n);if(!s)continue;if(s.index===t)return a(e,s,0);i.push([e,s,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,r,n]of i)if(r.index===e)return a(t,r,n)}return null}}var ih=function(e={}){let t=Object.assign({target:"auto",cache:new Map},e);return t.regexConstructor||=e=>{let r;return(r=function(e,t){var r;let n,i,a,s,o=nR(t),l=(r=rX(e,{flags:o.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:o.rules.captureGroup,singleline:o.rules.singleline},skipBackrefValidation:o.rules.allowOrphanBackrefs,unicodePropertyMap:nG}),n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...{accuracy:o.accuracy,asciiWordBoundaries:o.rules.asciiWordBoundaries,avoidSubclass:o.avoidSubclass,bestEffortTarget:o.target}},nX(r),i={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:nT[n.bestEffortTarget]>=nT.ES2024,passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:r.flags.digitIsAscii,spaceIsAscii:r.flags.spaceIsAscii,wordIsAscii:r.flags.wordIsAscii},ns(r,nV,i),s={currentFlags:a={dotAll:r.flags.dotAll,ignoreCase:r.flags.ignoreCase},prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:i.subroutineRefMap},ns(r,nQ,s),ns(r,nK,{groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer}),r._originMap=s.groupOriginByCopy,r._strategy=i.strategy,r),u=function(e,t){let r=nR(t),n=nT[r.target]>=nT.ES2024,i=nT[r.target]>=nT.ES2025,a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error("Invalid recursionLimit; use 2-20");let s=null,o=null;if(!i){let t=[e.flags.ignoreCase];ns(e,n3,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?s=!0:o=!0}})}let l={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!o)},u=e,c={accuracy:r.accuracy,appliedGlobalFlags:l,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&s&&o),useFlagMods:i,useFlagV:n,verbose:r.verbose};function h(e){return c.lastNode=u,u=e,(function(e,t){if(null==e)throw Error(t??"Value expected");return e})(n4[e.type],`Unexpected node type "${e.type}"`)(e,c,h)}let p={pattern:e.body.map(h).join("|"),flags:h(e.flags),options:{...e.options}};return n||(delete p.options.force.v,p.options.disable.v=!0,p.options.unicodeSetsPlugin=null),p._captureTransfers=new Map,p._hiddenCaptures=[],c.captureMap.forEach((e,t)=>{e.hidden&&p._hiddenCaptures.push(t),e.transferTo&&n$(p._captureTransfers,e.transferTo,[]).push(t)}),p}(l,o),c=function(e,t){let r,{hiddenCaptures:n,mode:i}={hiddenCaptures:[],mode:"plugin",...t},a=t?.captureTransfers??new Map;if(!RegExp(nb,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};if("plugin"===i&&np(e,ng`\(\?\(DEFINE\)`,nc.DEFAULT))throw Error("DEFINE groups cannot be used with recursion");let s=[],o=np(e,ng`\\[1-9]`,nc.DEFAULT),l=new Map,u=[],c=!1,h=0,p=0;for(nA.lastIndex=0;r=nA.exec(e);){let{0:t,groups:{captureName:d,rDepth:f,gRNameOrNum:m,gRDepth:g}}=r;if("["===t)h++;else if(h)"]"===t&&h--;else if(f){if(n_(f),c)throw Error(nv);if(o)throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let t=e.slice(0,r.index),l=e.slice(nA.lastIndex);if(np(l,nb,nc.DEFAULT))throw Error(nv);let u=f-1;e=nk(t,l,u,!1,n,s,p),a=nS(a,t,u,s.length,0,p);break}else if(m){n_(g);let h=!1;for(let e of u)if(e.name===m||e.num===+m){if(h=!0,e.hasRecursedWithin)throw Error(nv);break}if(!h)throw Error(ng`Recursive \g cannot be used outside the referenced group "${"external"===i?m:ng`\g<${m}&R=${g}>`}"`);let d=l.get(m),f=function(e,t){let r,n=/\\?./gsu;n.lastIndex=t;let i=e.length,a=0,s=1;for(;r=n.exec(e);){let[e]=r;if("["===e)a++;else if(a)"]"===e&&a--;else if("("===e)s++;else if(")"===e&&!--s){i=r.index;break}}return e.slice(t,i)}(e,d);if(o&&np(f,ng`${nx}|\((?!\?)`,nc.DEFAULT))throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let y=e.slice(d,r.index),b=f.slice(y.length+t.length),x=s.length,w=g-1,A=nk(y,b,w,!0,n,s,p);a=nS(a,y,w,s.length-x,x,p);let v=e.slice(0,d),_=e.slice(d+f.length);e=`${v}${A}${_}`,nA.lastIndex+=A.length-t.length-y.length-b.length,u.forEach(e=>e.hasRecursedWithin=!0),c=!0}else if(d)p++,l.set(String(p),nA.lastIndex),l.set(d,nA.lastIndex),u.push({num:p,name:d});else if("("===t[0]){let e="("===t;e&&(p++,l.set(String(p),nA.lastIndex)),u.push(e?{num:p}:{})}else")"===t&&u.pop()}return n.push(...s),{pattern:e,captureTransfers:a,hiddenCaptures:n}}(u.pattern,{captureTransfers:u._captureTransfers,hiddenCaptures:u._hiddenCaptures,mode:"external"}),h=function(e,t){let r,n=t?.hiddenCaptures??[],i=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};let a="(?:(?=(",s=[0],o=[],l=0,u=0,c=NaN;do{let t;r=!1;let h=0,p=0,d=!1;for(nd.lastIndex=Number.isNaN(c)?0:c+a.length;t=nd.exec(e);){let{0:f,index:m,groups:{capturingStart:g,noncapturingStart:y}}=t;if("["===f)h++;else if(h)"]"===f&&h--;else if("(?>"!==f||d){if(d&&y)p++;else if(g)d?p++:(l++,s.push(l+u));else if(")"===f&&d){if(!p){let t=l+ ++u;e=`${e.slice(0,c)}${a}${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,r=!0,o.push(t);for(let e=0;e<n.length;e++)n[e]>=t&&n[e]++;if(i.size){let e=new Map;i.forEach((r,n)=>{e.set(n>=t?n+1:n,r.map(e=>e>=t?e+1:e))}),i=e}break}p--}}else c=m,d=!0}}while(r)return n.push(...o),{pattern:e=nh(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:r}})=>{if(t){let r=+t;if(r>s.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${s[r]}`}return`\\${r}`},nc.DEFAULT),captureTransfers:i,hiddenCaptures:n}}(function(e){let t;if(!RegExp(`${nf}\\+`).test(e))return{pattern:e};let r=[],n=null,i=null,a="",s=0;for(nm.lastIndex=0;t=nm.exec(e);){let{0:u,index:c,groups:{qBase:h,qMod:p,invalidQ:d}}=t;if("["===u)s||(i=c),s++;else if("]"===u)s?s--:i=null;else if(!s)if("+"===p&&a&&!a.startsWith("(")){if(d)throw Error(`Invalid quantifier "${u}"`);let t=-1;if(/^\{\d+\}$/.test(h)){var o,l;o=e,l=c+h.length,e=o.slice(0,l)+""+o.slice(l+p.length)}else{if(")"===a||"]"===a){let t=")"===a?n:i;if(null===t)throw Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${h})${e.slice(c+u.length)}`}else e=`${e.slice(0,c-a.length)}(?>${a}${h})${e.slice(c+u.length)}`;t+=4}nm.lastIndex+=t}else"("===u[0]?r.push(c):")"===u&&(n=r.length?r.pop():null);a=u}return{pattern:e}}(c.pattern).pattern,{captureTransfers:c.captureTransfers,hiddenCaptures:c.hiddenCaptures}),p={pattern:h.pattern,flags:`${o.hasIndices?"d":""}${o.global?"g":""}${u.flags}${u.options.disable.v?"u":"v"}`};if(o.avoidSubclass){if(o.lazyCompileLength!==1/0)throw Error("Lazy compilation requires subclass")}else{let e=h.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(h.captureTransfers),r=l._strategy,n=p.pattern.length>=o.lazyCompileLength;(e.length||t.length||r||n)&&(p.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...r&&{strategy:r},...n&&{lazyCompile:n}})}return p}(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...{target:t.target}})).options?new iu(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)},{createScanner:e=>new ic(e,t),createString:e=>({content:e})}}({forgiving:!0}),ip=Object.fromEntries(R.flatMap(e=>{var t;return(null!=(t=e.aliases)?t:[]).map(t=>[t,e.id])})),id=new Set(Object.keys(O)),im=e=>{let t=e.trim().toLowerCase();return ip[t]||(id.has(t),t)},ig=new Map,iy=new Map,ib=new Map,ix=e=>{var t;return"string"==typeof e?e:null!=(t=e.name)?t:"custom"},iw=function(e={}){var t;let r=null!=(t=e.themes)?t:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(e){let t=im(e);return id.has(t)},getSupportedLanguages:()=>Array.from(id),getThemes:()=>r,highlight({code:e,language:t,themes:r},n){let i,a,s=im(t),o=[ix(r[0]),ix(r[1])],l=(i=e.slice(0,100),a=e.length>100?e.slice(-100):"",`${s}:${o[0]}:${o[1]}:${e.length}:${i}:${a}`);return iy.has(l)?iy.get(l):(n&&(ib.has(l)||ib.set(l,new Set),ib.get(l).add(n)),((e,t)=>{let r=`${e}-${ix(t[0])}-${ix(t[1])}`;if(ig.has(r))return ig.get(r);let n=rS({themes:t,langs:[e],engine:ih});return ig.set(r,n),n})(id.has(s)?s:"text",r).then(t=>{let r=t.getLoadedLanguages().includes(s)?s:"text",n=t.codeToTokens(e,{lang:r,themes:{light:o[0],dark:o[1]}});iy.set(l,n);let i=ib.get(l);if(i){for(let e of i)e(n);ib.delete(l)}}).catch(e=>{console.error("[Streamdown Code] Failed to highlight code:",e),ib.delete(l)}),null)}}}(),iA=e.i(176116),iv=e.i(506703);function i_({className:e,children:t,node:r,...n}){let i=(0,c.useRef)(null),[a,s]=(0,c.useState)(!1),o=function(e){for(let t of c.Children.toArray(e)){if(!(0,c.isValidElement)(t))continue;let e=t.props;if("string"!=typeof e?.className)continue;let r=e.className.match(/language-([a-z0-9+#-]+)/i);if(r)return r[1]}}(t)??"",l=(0,c.useCallback)(async()=>{let e=i.current?.innerText??"";if(e)try{await navigator.clipboard.writeText(e),s(!0),window.setTimeout(()=>s(!1),2e3)}catch{}},[]);return(0,u.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,u.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.8)] px-3 py-1.5",children:[(0,u.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:o||"text"}),(0,u.jsx)("button",{type:"button",onClick:l,className:(0,b.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-[11px] text-muted-foreground","opacity-0 transition-opacity hover:bg-[hsl(var(--accent))] hover:text-foreground","group-hover:opacity-100 focus-visible:opacity-100",a&&"opacity-100 text-primary"),"aria-label":"复制代码",children:a?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(iv.Check,{className:"h-3 w-3"}),"已复制"]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,u.jsx)("pre",{ref:i,className:(0,b.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",e),...n,children:t})]})}let ik=["https://","http://","mailto:","#","/"],iC=["https://","data:image/"],iS=(e,t)=>{let r=e.toLowerCase();return("src"===t?iC:ik).some(e=>r.startsWith(e))?e:""};function iN({children:e,className:t}){return(0,u.jsx)("div",{className:(0,b.cn)("text-sm leading-relaxed text-foreground/90","[&_p]:my-2 [&_ul]:my-2 [&_ol]:my-2 [&_li]:my-0.5","[&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5","[&_h1]:mt-4 [&_h1]:mb-2 [&_h1]:text-lg [&_h1]:font-semibold","[&_h2]:mt-3 [&_h2]:mb-2 [&_h2]:text-base [&_h2]:font-semibold","[&_h3]:mt-3 [&_h3]:mb-1.5 [&_h3]:text-sm [&_h3]:font-semibold","[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-2","[&_:not(pre)>code]:rounded [&_:not(pre)>code]:bg-[hsl(var(--muted))] [&_:not(pre)>code]:px-1 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.85em]","[&_table]:my-2 [&_table]:w-full [&_table]:border-collapse","[&_th]:border [&_th]:border-[hsl(var(--border))] [&_th]:px-2 [&_th]:py-1 [&_th]:text-left [&_th]:font-semibold","[&_td]:border [&_td]:border-[hsl(var(--border))] [&_td]:px-2 [&_td]:py-1","[&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-[hsl(var(--border))] [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground","[&_hr]:my-3 [&_hr]:border-[hsl(var(--border))]",t),children:(0,u.jsx)(iA.C,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:iS,plugins:{code:iw},components:{pre:i_},controls:{code:!1,table:!1,mermaid:!1},children:e})})}function iE(e){try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),I.toast.success("已复制")}catch{I.toast.error("复制失败")}}let iI=(0,c.memo)(function({message:e,busy:t,onDelete:r,onResend:n,onRegenerate:i,onEditSave:a}){return"user"===e.role?(0,u.jsx)(iP,{message:e,busy:t,onDelete:r,onResend:n,onEditSave:a}):(0,u.jsx)(iR,{message:e,busy:t,onDelete:r,onRegenerate:i})},(e,t)=>e.message===t.message&&e.busy===t.busy);function iL({align:e,disabled:t,onCopy:r,onDelete:n,onEdit:i,onResend:a,onRegenerate:s}){return(0,u.jsxs)("div",{className:(0,b.cn)("mt-1 flex items-center gap-0.5 opacity-0 transition-opacity duration-150","group-hover:opacity-100 group-focus-within:opacity-100","group-data-[touched=true]:opacity-100","right"===e?"justify-end":"justify-start"),children:[(0,u.jsx)(ij,{title:"复制",disabled:t,onClick:r,children:(0,u.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,u.jsx)(ij,{title:"编辑",disabled:t,onClick:i,children:(0,u.jsx)(C.Pencil,{className:"h-3.5 w-3.5"})}),a&&(0,u.jsx)(ij,{title:"重新发送",disabled:t,onClick:a,children:(0,u.jsx)(d,{className:"h-3.5 w-3.5"})}),s&&(0,u.jsx)(ij,{title:"重新生成",disabled:t,onClick:s,children:(0,u.jsx)(S.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,u.jsx)(ij,{title:"删除",disabled:t,onClick:n,destructive:!0,children:(0,u.jsx)(E.Trash2,{className:"h-3.5 w-3.5"})})]})}function ij({title:e,disabled:t,destructive:r,onClick:n,children:i}){return(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",title:e,"aria-label":e,disabled:t,onClick:n,className:(0,b.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",r&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:i})}function i$({rewriteFailed:e,rewriteError:t,failedKbCount:r,failedKbDetails:n}){let i=!!e,a=(r??0)>0;return i||a?(0,u.jsxs)("div",{className:"space-y-1.5",children:[i&&(0,u.jsx)(iT,{label:"意图重写失败 · 已回退到原问题",detail:t??"rewriter 返回空结果或抛错"}),a&&n&&(0,u.jsx)(iT,{label:`${r} 个知识库检索失败`,detail:n.map(e=>`• ${e.name}: ${e.reason}`).join("\n")})]}):null}function iT({label:e,detail:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,u.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,b.cn)("flex w-full items-center gap-1.5 px-2 py-1 text-xs","text-amber-700 hover:bg-amber-500/10 dark:text-amber-300"),children:[(0,u.jsx)(w.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,u.jsx)("span",{className:"flex-1 text-left",children:e}),(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-150",r&&"rotate-180")})]}),r&&(0,u.jsx)("pre",{className:"border-t border-amber-500/20 px-2 py-1.5 text-[11px] leading-relaxed text-amber-700/80 dark:text-amber-300/80 whitespace-pre-wrap font-mono",children:t})]})}function iP({message:e,busy:t,onDelete:r,onResend:n,onEditSave:i}){let[a,s]=(0,c.useState)(!1),[o,l]=(0,c.useState)(!1),[h,p]=(0,c.useState)(e.content),[d,f]=(0,c.useState)(!1),[y,b]=(0,c.useState)(!1),[x,w]=(0,c.useState)(!0),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]),v=(0,c.useCallback)(()=>{let t=h.trim();if(!t||t===e.content){l(!1),p(e.content);return}l(!1),i(e.id,t)},[h,e.content,e.id,i]),_=(0,c.useCallback)(()=>{p(e.content),l(!1)},[e.content]),k=(0,c.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),_()):"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},[v,_]);return(0,u.jsxs)("div",{className:"group flex justify-end","data-touched":a?"true":void 0,onClickCapture:()=>s(!0),children:[(0,u.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[o?(0,u.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,u.jsx)(g.Textarea,{autoFocus:!0,value:h,onChange:e=>p(e.target.value),onKeyDown:k,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,u.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"sm",onClick:_,children:"取消"}),(0,u.jsx)(m.Button,{type:"button",size:"sm",disabled:!h.trim()||h.trim()===e.content,onClick:v,children:"保存并重发"})]})]}):(0,u.jsx)("div",{className:"rounded-2xl rounded-tr-sm bg-[hsl(var(--muted)/0.7)] px-4 py-2.5 text-sm leading-relaxed text-foreground whitespace-pre-wrap",children:e.content}),!o&&(0,u.jsx)(iL,{align:"right",disabled:t,onCopy:A,onEdit:()=>{p(e.content),l(!0)},onResend:()=>b(!0),onDelete:()=>f(!0)})]}),(0,u.jsx)(T.ConfirmDialog,{open:d,onOpenChange:f,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id,{withNextAssistant:x}),f(!1)},children:(0,u.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,u.jsx)(L.Checkbox,{checked:x,onCheckedChange:e=>w(!0===e)}),"同时删除下方的 AI 回复"]})}),(0,u.jsx)(T.ConfirmDialog,{open:y,onOpenChange:b,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{b(!1),n(e.id)}})]})}function iR({message:e,busy:t,onDelete:r,onRegenerate:n}){let[i,a]=(0,c.useState)(!1),[s,o]=(0,c.useState)(!1),[l,h]=(0,c.useState)(!1),p="streaming"===e.status,d="error"===e.status,f=(e.reasoning?.length??0)>0,m=(e.content?.length??0)>0,g=f||p&&!m,y=!!e.usingRag&&!e.retrievalQuery,b=!!e.retrievalQuery&&!e.retrievedChunks,w=(e.retrievalGroups??[]).filter(e=>e.error).map(e=>({name:e.knowledgeBaseName,reason:e.error??""})),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]);return(0,u.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":i?"true":void 0,onClickCapture:()=>a(!0),children:[g?(0,u.jsx)(iM,{reasoning:e.reasoning??"",streaming:p,startedAt:e.reasoningStartedAt,completedAt:e.reasoningCompletedAt,intentExtracting:y,retrievalInFlight:b}):null,(0,u.jsx)(i$,{rewriteFailed:e.queryRewriteFailed,rewriteError:e.queryRewriteError,failedKbCount:w.length,failedKbDetails:w}),e.retrievalQueryRewritten&&e.retrievalQuery?(0,u.jsxs)("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-md bg-[hsl(var(--muted)/0.4)] px-2 py-1 text-xs text-muted-foreground",children:[(0,u.jsx)(N.Search,{className:"h-3 w-3 shrink-0"}),(0,u.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,u.jsx)("span",{className:"truncate font-mono text-foreground/80",children:e.retrievalQuery})]}):null,e.retrievedChunks&&e.retrievedChunks.length>0?(0,u.jsx)(iB,{chunks:e.retrievedChunks,groups:e.retrievalGroups}):null,e.memoryHits&&e.memoryHits.length>0?(0,u.jsx)(iD,{hits:e.memoryHits,query:e.memoryQuery}):null,d?(0,u.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-[hsl(var(--destructive))]",children:[(0,u.jsx)(x,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,u.jsx)("span",{className:"text-xs",children:e.errorMessage??"生成失败"})]}):(0,u.jsxs)("div",{className:"text-foreground/90",children:[(0,u.jsx)(iN,{children:e.content}),p?(0,u.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,u.jsx)(iL,{align:"left",disabled:t||p,onCopy:A,onRegenerate:()=>h(!0),onDelete:()=>o(!0)}),(0,u.jsx)(T.ConfirmDialog,{open:s,onOpenChange:o,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id),o(!1)}}),(0,u.jsx)(T.ConfirmDialog,{open:l,onOpenChange:h,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{h(!1),n(e.id)}})]})}function iM({reasoning:e,streaming:t,startedAt:r,completedAt:n,intentExtracting:i,retrievalInFlight:a}){var s,o;let l,h,p,[d,f]=(0,c.useState)(!1),m=function(e,t){let[r,n]=(0,c.useState)(()=>Date.now());return((0,c.useEffect)(()=>{if(!e||t)return;let r=window.setInterval(()=>n(Date.now()),250);return()=>window.clearInterval(r)},[e,t]),e)?Math.max(0,(t??r)-e):null}(r,n),g=null!=m?(s=m,o=!t||!!n,h=Math.floor((l=Math.floor(s/1e3))/60),p=l%60,o?0===h?`用时 ${p} 秒`:`用时 ${h} 分 ${p} 秒`:`${h}:${String(p).padStart(2,"0")}`):null,y=t&&!n,x=e.length>0,w="正在思考";return x?w="深度思考中":a?w="正在检索知识库":i&&(w="检索意图提取"),(0,u.jsxs)(j.Collapsible,{open:d,onOpenChange:f,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",disabled:!x,className:(0,b.cn)("group inline-flex items-center gap-2 rounded-full pl-1.5 pr-2.5 py-1 text-xs font-medium transition-all duration-200",y?"bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))] ring-1 ring-[hsl(var(--primary)/0.25)] shadow-[0_0_0_4px_hsl(var(--primary)/0.06)]":"bg-[hsl(var(--muted)/0.6)] text-muted-foreground hover:bg-[hsl(var(--accent))] hover:text-foreground",!x&&"cursor-default"),"aria-live":y?"polite":"off",children:[(0,u.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[y&&(0,u.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,u.jsx)(v.Brain,{className:(0,b.cn)("relative h-3.5 w-3.5",y&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),y?(0,u.jsx)("span",{className:"animate-text-shimmer bg-[linear-gradient(90deg,hsl(var(--primary)/0.55)_0%,hsl(var(--primary))_50%,hsl(var(--primary)/0.55)_100%)] bg-[length:200%_100%] bg-clip-text text-transparent",children:w}):(0,u.jsx)("span",{children:"已深度思考"}),g&&(0,u.jsxs)("span",{className:(0,b.cn)("tabular-nums text-[11px]",y?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",g]}),x&&(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-200",d&&"rotate-180",y&&"text-[hsl(var(--primary))]")})]})}),x&&(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 border-l-2 border-[hsl(var(--border))] pl-3 text-xs leading-relaxed text-muted-foreground whitespace-pre-wrap",children:e})})]})}function iB({chunks:e,groups:t}){let[r,n]=(0,c.useState)(!1),i=new Map;e.forEach((e,t)=>{i.set(`${e.docId}#${e.chunkId}`,t+1)});let a=(t??[]).filter(e=>!e.error),s=(t??[]).filter(e=>e.error),o=a.length>=2||s.length>0;return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,u.jsx)(A.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",e.length," 个引用",o?(0,u.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",a.length," 个知识库",s.length>0?`(${s.length} 失败)`:""]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-3",children:o?(0,u.jsxs)(u.Fragment,{children:[a.map(e=>(0,u.jsx)(iO,{group:e,indexByKey:i},`ok-${e.knowledgeBaseName}`)),s.map(e=>(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-xs text-[hsl(var(--destructive))]",children:[(0,u.jsx)("span",{className:"font-medium",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",e.error]})]},`err-${e.knowledgeBaseName}`))]}):(0,u.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,u.jsx)(iG,{chunk:e,index:t+1},`${e.docId}-${e.chunkId}`))})})})]})}function iO({group:e,indexByKey:t}){return(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,u.jsx)("span",{className:"text-foreground/80",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{children:["· ",e.chunks.length," 条"]})]}),(0,u.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:e.chunks.map(e=>{let r=`${e.docId}#${e.chunkId}`,n=t.get(r)??0;return(0,u.jsx)(iG,{chunk:e,index:n},`${e.docId}-${e.chunkId}`)})})]})}function iG({chunk:e,index:t}){let[r,n]=(0,c.useState)(null),[i,a]=(0,c.useState)(!1),s=e.ossKey?.split("/").pop()||e.ossKey||"未知文件",o=e.chunkType?.toLowerCase()==="image",l=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${P.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:t>0?t:"–"}),(0,u.jsx)("span",{className:"font-medium text-foreground/80",children:s}),(0,u.jsxs)("span",{children:["Chunk #",e.chunkId]}),o&&(0,u.jsx)("span",{className:"rounded bg-primary/10 px-1 py-0.5 text-[10px] font-medium text-primary",children:"IMAGE"}),(0,u.jsx)("span",{className:"ml-auto font-mono",children:e.score.toFixed(4)})]}),o&&l&&(0,u.jsx)("img",{src:l,alt:`Image chunk #${e.chunkId}`,className:"mt-2 max-w-[180px] max-h-[180px] object-contain rounded border border-border cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(l)}),e.content&&(0,u.jsxs)("div",{className:"relative",children:[(0,u.jsx)("p",{className:(0,b.cn)("whitespace-pre-wrap text-xs text-foreground/80 cursor-pointer",!i&&"line-clamp-4",o&&"mt-2"),onClick:()=>a(e=>!e),children:e.content}),!i&&(0,u.jsx)("div",{className:"pointer-events-none absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-[hsl(var(--muted)/0.3)] to-transparent"}),(0,u.jsx)("button",{type:"button",className:"mt-1 text-[10px] text-muted-foreground hover:text-foreground",onClick:()=>a(e=>!e),children:i?"点击收起":"点击展开"})]}),(0,u.jsx)($.Dialog,{open:!!r,onOpenChange:()=>n(null),children:(0,u.jsxs)($.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,u.jsx)($.DialogTitle,{className:"sr-only",children:"图片放大预览"}),r&&(0,u.jsx)("img",{src:r,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function iD({hits:e,query:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,u.jsx)(v.Brain,{className:"h-3.5 w-3.5"}),"参考 ",e.length," 条记忆",t?(0,u.jsxs)("span",{className:"max-w-[200px] truncate text-muted-foreground/70",children:["· ",t]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-2",children:e.map((e,t)=>(0,u.jsx)(iU,{hit:e,index:t+1},e.unit.memcell_id??`${t}-${(e.unit.text??"").slice(0,16)}`))})})]})}function iU({hit:e,index:t}){let r=e.unit.memcell_id,n="number"==typeof e.score?e.score:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:t}),r?(0,u.jsx)("span",{className:"min-w-0 truncate font-mono text-foreground/80",title:r,children:r}):(0,u.jsx)("span",{className:"text-muted-foreground/70",children:"未命名记忆"}),e.source?(0,u.jsx)("span",{className:"rounded bg-[hsl(var(--muted))] px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:e.source}):null,(0,u.jsx)("span",{className:"ml-auto shrink-0 font-mono",children:void 0!==n?n.toFixed(4):"—"})]}),(0,u.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:e.unit.text})]})}iI.displayName="QaMessage",e.s(["QaChatPanel",0,function({messages:e,isStreaming:t,canSend:r,error:n,onSend:i,onStop:a,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p,emptyState:x,disabledPlaceholder:w}){let[A,v]=(0,c.useState)(""),_=(0,c.useRef)(null),k=(0,c.useRef)(e.length);(0,c.useEffect)(()=>{let t=_.current;if(!t)return;let r=e.length>k.current;(k.current=e.length,r)?requestAnimationFrame(()=>{t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}):t.scrollHeight-t.scrollTop-t.clientHeight<120&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},[e]);let C=()=>{let e=A.trim();e&&r&&!t&&(i(e),v(""))};return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,u.jsx)("div",{ref:_,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":t,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===e.length?(0,u.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,u.jsx)(y.EmptyState,{icon:h.MessageSquare,title:x?.title??"开始对话",description:x?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:x?.actionLabel&&x?.onAction?(0,u.jsx)(m.Button,{type:"button",onClick:x.onAction,children:x.actionLabel}):void 0})}):e.map(e=>(0,u.jsx)(iI,{message:e,busy:t,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p},e.id))}),(0,u.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,u.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,u.jsxs)("div",{className:"flex items-end gap-2",children:[(0,u.jsx)(g.Textarea,{value:A,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),C())},placeholder:r?"输入问题,Enter 发送,Shift+Enter 换行":w??"请先在左侧选择模型...",disabled:!r,className:(0,b.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),t?(0,u.jsx)(m.Button,{type:"button",variant:"outline",size:"icon",onClick:a,title:"停止",children:(0,u.jsx)(f,{className:"h-4 w-4 fill-current"})}):(0,u.jsx)(m.Button,{type:"button",size:"icon",disabled:!r||!A.trim(),onClick:C,title:"发送",children:(0,u.jsx)(d,{className:"h-4 w-4"})})]})]})]})}],821122)},550657,851024,109012,e=>{"use strict";var t=e.i(44501),r=e.i(101685),n=e.i(506703),i=e.i(497634),a=e.i(51517),s=e.i(358204),o=e.i(730068),l=e.i(942595),u=e.i(153139),c=e.i(766476),h=e.i(636766),p=e.i(166473),d=e.i(870036),f=e.i(543876),m=e.i(392820),g=e.i(247570),y=e.i(307166),b=e.i(876490);function x({value:e,options:a,onChange:o,disabled:c,fetching:p}){let[d,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(""),y=m.trim(),w=(0,r.useMemo)(()=>{if(!y)return a;let e=y.toLowerCase();return a.filter(t=>t.toLowerCase().includes(e))},[a,y]),A=a.some(e=>e.toLowerCase()===y.toLowerCase()),v=y.length>0&&!A,_=e=>{o(e),g(""),f(!1)};return(0,t.jsxs)(h.Popover,{open:d,onOpenChange:f,children:[(0,t.jsx)(h.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)(l.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":d,disabled:c,className:"w-full justify-between font-normal",children:[(0,t.jsx)("span",{className:(0,b.cn)("truncate text-left",!e&&"text-[hsl(var(--subtle))]"),children:e||"选择或输入模型名"}),(0,t.jsx)(i.ChevronsUpDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(h.PopoverContent,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:(0,t.jsxs)(u.Command,{shouldFilter:!1,children:[(0,t.jsx)(u.CommandInput,{placeholder:"搜索或输入模型名",value:m,onValueChange:g}),(0,t.jsxs)(u.CommandList,{children:[0!==w.length||v?null:(0,t.jsx)(u.CommandEmpty,{children:p?"正在拉取模型列表...":0===a.length?"点击「刷新列表」拉取可用模型":"无匹配结果"}),w.length>0&&(0,t.jsx)(u.CommandGroup,{heading:v?"可选模型":void 0,children:w.map(r=>(0,t.jsxs)(u.CommandItem,{value:r,onSelect:()=>_(r),children:[(0,t.jsx)(n.Check,{className:(0,b.cn)("h-4 w-4",e===r?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:r})]},r))}),v&&(0,t.jsx)(u.CommandGroup,{heading:"使用自定义",children:(0,t.jsxs)(u.CommandItem,{value:`__custom__${y}`,onSelect:()=>_(y),children:[(0,t.jsx)(s.Plus,{className:"h-4 w-4 text-[hsl(var(--primary))]"}),(0,t.jsxs)("span",{className:"truncate",children:['使用 "',y,'"']})]})})]})]})})]})}e.s(["LLMModelSelector",0,function({providerId:e,model:n,onProviderChange:i,onModelChange:s,autoSelectFirst:u=!1,providerLabel:h="Provider",modelLabel:b="Model"}){let{data:w=[],isLoading:A}=(0,d.useLLMProviders)(),{data:v,isFetching:_,refetch:k}=function(e,t={}){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.llmProviderModels(r.dataScopeKey,e),queryFn:()=>(0,m.fetchProviderModels)(e),enabled:n&&!!e&&(t.enabled??!0),staleTime:3e5,retry:!1})}(e||void 0,{enabled:!!e});(0,r.useEffect)(()=>{if(!u||e||0===w.length)return;let t=w[0];i(t.id,t.defaultModel??"")},[u,e,w]);let C=(0,r.useMemo)(()=>{let t=new Set;for(let e of(n&&t.add(n),v??[]))t.add(e.id);let r=w.find(t=>t.id===e);return r?.defaultModel&&t.add(r.defaultModel),Array.from(t)},[n,v,w,e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:h}),(0,t.jsxs)(p.Select,{value:e,onValueChange:e=>{let t=w.find(t=>t.id===e);i(e,t?.defaultModel??"")},disabled:A||0===w.length,children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:A?"加载中...":0===w.length?"请先在「模型提供商」中创建配置":"选择 Provider"})}),(0,t.jsx)(p.SelectContent,{children:w.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:b}),(0,t.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!e||_,onClick:()=>k(),children:[_?(0,t.jsx)(a.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(o.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),(0,t.jsx)(x,{value:n,options:C,onChange:s,disabled:!e,fetching:_})]})]})}],550657);var w=e.i(45123);e.s(["SystemPromptInput",0,function({value:e,onChange:r,placeholder:n,helperText:i,rows:a=3,label:s="系统提示词"}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:s}),(0,t.jsx)(w.Textarea,{rows:a,value:e,onChange:e=>r(e.target.value),placeholder:n,className:"text-sm"}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i})]})}],851024);var A=e.i(563805);e.s(["TemperatureSlider",0,function({value:e,onChange:r,min:n=0,max:i=2,step:a=.05,fallback:s=.7,label:o="温度"}){let l=(e??s).toFixed(2);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:o}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:l})]}),(0,t.jsx)(A.Slider,{value:[e??s],min:n,max:i,step:a,onValueChange:e=>r(e[0]??s)})]})}],109012)},567730,e=>{"use strict";var t=e.i(307166);e.s(["useActiveInstance",0,function(){let{context:e,ready:r}=(0,t.useRuntimeContext)();return{activeInstance:e.activeInstance,ready:r,dataScopeKey:e.dataScopeKey,configRevision:e.configRevision}}])},84625,e=>{"use strict";async function*t(e,t){let n=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t});if(!n.ok||!n.body){let e=`Chat request failed with status ${n.status}`,t="STREAM_ERROR";try{let r=await n.json();e=r.message??e,t=r.code??t}catch{}yield{type:"error",code:t,message:e};return}let i=n.body.getReader(),a=new TextDecoder("utf-8"),s="";for(;;){let{value:e,done:t}=await i.read();if(t)break;let n=(s+=a.decode(e,{stream:!0})).indexOf("\n\n");for(;-1!==n;){let e=s.slice(0,n);s=s.slice(n+2);let t=r(e);t&&(yield t),n=s.indexOf("\n\n")}}if(s.trim()){let e=r(s);e&&(yield e)}}function r(e){let t=e.split("\n"),r=[];for(let e of t)!(!e||e.startsWith(":"))&&e.startsWith("data:")&&r.push(e.slice(5).trimStart());if(0===r.length)return null;try{return JSON.parse(r.join("\n"))}catch{return null}}e.s(["streamChat",0,t])},906962,e=>{"use strict";e.s(["newId",0,function(e="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${e}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},440596,786196,e=>{"use strict";var t=e.i(101685),r=e.i(84625),n=e.i(906962);function i(e,t){let r=e.findIndex(e=>e.id===t);return r<0?e:e.slice(0,r+1)}function a(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice();return n.splice(r,1),n}function s(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice(),i=e[r+1]&&"assistant"===e[r+1].role?2:1;return n.splice(r,i),n}e.s(["findUserAnchorAbove",0,function(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return null;for(let t=r-1;t>=0;t-=1)if("user"===e[t].role)return e[t];return null},"removeAt",0,a,"removePair",0,s,"truncateUpToAndIncluding",0,i],786196),e.s(["useQaChat",0,function(e){let[o,l]=(0,t.useState)([]),[u,c]=(0,t.useState)(!1),[h,p]=(0,t.useState)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(e.onPersist);f.current=e.onPersist;let m=(0,t.useRef)(o);m.current=o;let g=(0,t.useRef)(e);g.current=e;let y=(0,t.useRef)(u);y.current=u;let b=(0,t.useRef)(new Map),x=(0,t.useRef)(null),w=(0,t.useCallback)(()=>{x.current=null;let e=b.current;if(0===e.size)return;let t=new Map(e);e.clear(),l(e=>e.map(e=>{let r=t.get(e.id);return r?{...e,...r.content?{content:e.content+r.content}:null,...r.reasoning?{reasoning:(e.reasoning??"")+r.reasoning}:null}:e}))},[]),A=(0,t.useCallback)(()=>{if(null===x.current){if("u"<typeof requestAnimationFrame)return void w();x.current=requestAnimationFrame(w)}},[w]),v=(0,t.useCallback)(()=>{null!==x.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(x.current),x.current=null},[]);(0,t.useEffect)(()=>v,[v]);let _=(0,t.useCallback)(()=>{d.current?.abort()},[]),k=(0,t.useCallback)(()=>{d.current?.abort(),m.current=[],l([]),p(null)},[]),C=(0,t.useCallback)(e=>{d.current?.abort(),m.current=e,l(e),p(null)},[]),S=(0,t.useCallback)(async(e,t,n)=>{let i=g.current,a=new AbortController;d.current=a;let s={current:!1},o={current:!1},u=t=>{l(r=>r.map(r=>r.id===e?{...r,...t}:r))};try{let l={activeInstance:i.activeInstance,providerId:i.providerId,model:i.model,messages:t,systemPrompt:i.systemPrompt,temperature:i.temperature,rag:i.rag,...i.memory?{memory:{...i.memory,turnId:n}}:{}};for await(let n of(function(e){try{return"1"===window.localStorage.getItem("tsagent.dev."+e)}catch{return!1}}("logChatRequest")&&(console.groupCollapsed("[chat] outgoing turn"),console.log("assistantId",e),console.log("messages",t),console.log("rag.knowledgeBases",i.rag?.knowledgeBases),console.groupEnd()),(0,r.streamChat)(l,a.signal)))if("query.rewritten"===n.type)u({retrievalQuery:n.query,retrievalQueryRewritten:n.query!==n.original});else if("query.fallback"===n.type)u({retrievalQuery:n.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:n.reason});else if("retrieval.done"===n.type)u({retrievedChunks:n.chunks,retrievalGroups:n.byKnowledgeBase});else if("memory.start"===n.type)u({memoryQuery:n.query});else if("memory.done"===n.type)u({memoryHits:n.hits});else if("memory.save.skipped"===n.type)console.warn("[chat] memory.save.skipped:",n.reason);else if("reasoning.delta"===n.type){let t=b.current.get(e)??{};t.reasoning=(t.reasoning??"")+n.delta,b.current.set(e,t),s.current||(s.current=!0,u({reasoningStartedAt:Date.now()})),A()}else if("content.delta"===n.type){let t=b.current.get(e)??{};t.content=(t.content??"")+n.delta,b.current.set(e,t),s.current&&!o.current&&(o.current=!0,u({reasoningCompletedAt:Date.now()})),A()}else if("error"===n.type){v(),w();let e={status:"error",errorMessage:`${n.code}: ${n.message}`};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e),p(n.message);break}else if("done"===n.type){v(),w();let e={status:"done"};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e);break}}catch(r){v(),w();let e=r instanceof DOMException&&"AbortError"===r.name,t=s.current&&!o.current?{reasoningCompletedAt:Date.now()}:void 0;if(e)u({status:"done",...t});else{let e=r instanceof Error?r.message:String(r);u({status:"error",errorMessage:e,...t}),p(e)}}finally{c(!1),d.current=null;let e=f.current;e&&e(m.current)}},[A,w,v]),N=(0,t.useCallback)(async e=>{let t=e.trim();if(!t||y.current)return;let r=g.current;if(!r.providerId||!r.model)return void p("请先选择模型与 Provider");p(null);let i=(0,n.newId)("turn"),a={id:(0,n.newId)(),role:"user",content:t,createdAt:Date.now(),status:"done",turnId:i},s=(0,n.newId)(),o=(r.rag?.knowledgeBases?.length??0)>0,u={id:s,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:o},h=[...m.current,a].map(e=>({role:e.role,content:e.content})),d=[...m.current,a,u];m.current=d,l(d),c(!0),await S(s,h,i)},[S]),E=(0,t.useCallback)(async e=>{if(y.current)return;let t=g.current;if(!t.providerId||!t.model)return void p("请先选择模型与 Provider");let r=i(m.current,e),a=r[r.length-1];if(!a||"user"!==a.role)return;let s=a.turnId??(0,n.newId)("turn");if(!a.turnId){let e=r.length-1;r[e]={...a,turnId:s}}p(null);let o=(0,n.newId)(),u=(t.rag?.knowledgeBases?.length??0)>0,h={id:o,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:u},d=r.map(e=>({role:e.role,content:e.content})),f=[...r,h];m.current=f,l(f),c(!0),await S(o,d,s)},[S]);return{messages:o,isStreaming:u,error:h,send:N,reissueTurn:E,deleteMessage:(0,t.useCallback)((e,t)=>{if(y.current)return;let r=m.current,n=r.find(t=>t.id===e);if(!n)return;let i="user"===n.role&&t?.withNextAssistant?s(r,e):a(r,e);m.current=i,l(i),f.current?.(i)},[]),editUserMessage:(0,t.useCallback)((e,t)=>{let r=m.current,n=r.findIndex(t=>t.id===e);if(n<0||"user"!==r[n].role)return null;let i=r.slice();return i[n]={...r[n],content:t},m.current=i,l(i),e},[]),stop:_,clear:k,setMessages:C}}],440596)}]);
|
|
138
|
+
XID_Start XIDS`.split(/\s/).map(e=>[nn(e),e])),nD=new Map([["s",nN(383)],[nN(383),"s"]]),nU=new Map([[nN(223),nN(7838)],[nN(107),nN(8490)],[nN(229),nN(8491)],[nN(969),nN(8486)]]),nF=new Map([nq(453),nq(456),nq(459),nq(498),...nz(8072,8079),...nz(8088,8095),...nz(8104,8111),nq(8124),nq(8140),nq(8188)]),nW=new Map([["alnum",nE`[\p{Alpha}\p{Nd}]`],["alpha",nE`\p{Alpha}`],["ascii",nE`\p{ASCII}`],["blank",nE`[\p{Zs}\t]`],["cntrl",nE`\p{Cc}`],["digit",nE`\p{Nd}`],["graph",nE`[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]`],["lower",nE`\p{Lower}`],["print",nE`[[\P{space}&&\P{Cc}&&\P{Cn}&&\P{Cs}]\p{Zs}]`],["punct",nE`[\p{P}\p{S}]`],["space",nE`\p{space}`],["upper",nE`\p{Upper}`],["word",nE`[\p{Alpha}\p{M}\p{Nd}\p{Pc}]`],["xdigit",nE`\p{AHex}`]]);function nq(e){let t=nN(e);return[t.toLowerCase(),t]}function nz(e,t){return(function(e,t){let r=[];for(let n=e;n<=t;n++)r.push(n);return r})(e,t).map(e=>nq(e))}var nH=new Set(["Lower","Lowercase","Upper","Uppercase","Ll","Lowercase_Letter","Lt","Titlecase_Letter","Lu","Uppercase_Letter"]),nV={AbsenceFunction({node:e,parent:t,replaceWith:r}){let{body:n,kind:i}=e;if("repeater"===i){let e=r6();e.body[0].body.push(r8({negate:!0,body:n}),r9("Any"));let i=r6();i.body[0].body.push(r3("greedy",0,1/0,e)),r(n8(i,t),{traverse:!0})}else throw Error('Unsupported absence function "(?~|"')},Alternative:{enter({node:e,parent:t,key:r},{flagDirectivesByAlt:n}){let i=e.body.filter(e=>"flags"===e.kind);for(let e=r+1;e<t.body.length;e++)n$(n,t.body[e],[]).push(...i)},exit({node:e},{flagDirectivesByAlt:t}){if(t.get(e)?.length){let r=nY(t.get(e));if(r){let t=r6({flags:r});t.body[0].body=e.body,e.body=[n8(t,e)]}}}},Assertion({node:e,parent:t,key:r,container:n,root:i,remove:a,replaceWith:s},o){let{kind:l,negate:u}=e,{asciiWordBoundaries:c,avoidSubclass:h,supportedGNodes:p,wordIsAscii:d}=o;if("text_segment_boundary"===l)throw Error(`Unsupported text segment boundary "\\${u?"Y":"y"}"`);if("line_end"===l)s(n8(r8({body:[rJ({body:[rZ("string_end")]}),rJ({body:[r1(10)]})]}),t));else if("line_start"===l)s(n8(n2(nE`(?<=\A|\n(?!\z))`,{skipLookbehindValidation:!0}),t));else if("search_start"===l)if(p.has(e))i.flags.sticky=!0,a();else{var f;let e,i=n[r-1];if(i&&((e=["Character","CharacterClass","CharacterSet"]).includes((f=i).type)||"Quantifier"===f.type&&f.min&&e.includes(f.body.type)))s(n8(r8({negate:!0}),t));else if(h)throw Error(nE`Uses "\G" in a way that requires a subclass`);else s(n6(rZ("string_start"),t)),o.strategy="clip_search"}else if("string_end"===l||"string_start"===l);else if("string_end_newline"===l)s(n8(n2(nE`(?=\n?\z)`),t));else if("word_boundary"===l){if(!d&&!c){let e=`(?:(?<=${nB})(?!${nB})|(?<!${nB})(?=${nB}))`,r=`(?:(?<=${nB})(?=${nB})|(?<!${nB})(?!${nB}))`;s(n8(n2(u?r:e),t))}}else throw Error(`Unexpected assertion kind "${l}"`)},Backreference({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))},CapturingGroup({node:e},{jsGroupNameMap:t,subroutineRefMap:r}){let{name:n}=e;n&&!n1(n)&&(e.name=n=nZ(n,t)),r.set(e.number,e),n&&r.set(n,e)},CharacterClassRange({node:e,parent:t,replaceWith:r}){"intersection"===t.kind&&r(n8(r2({body:[e]}),t),{traverse:!0})},CharacterSet({node:e,parent:t,replaceWith:r},{accuracy:n,minTargetEs2024:i,digitIsAscii:a,spaceIsAscii:s,wordIsAscii:o}){let{kind:l,negate:u,value:c}=e;if(a&&("digit"===l||"digit"===c))return void r(n6(r5("digit",{negate:u}),t));if(s&&("space"===l||"space"===c))return void r(n8(n5(n2("[ -\r ]"),u),t));if(o&&("word"===l||"word"===c))return void r(n6(r5("word",{negate:u}),t));if("any"===l)r(n6(r9("Any"),t));else if("digit"===l)r(n6(r9("Nd",{negate:u}),t));else if("dot"===l);else if("text_segment"===l){if("strict"===n)throw Error(nE`Use of "\X" requires non-strict accuracy`);let e="\\p{Emoji}(?:\\p{EMod}|\\uFE0F\\u20E3?|[\\x{E0020}-\\x{E007E}]+\\x{E007F})?",a=nE`\p{RI}{2}|${e}(?:\u200D${e})*`;r(n8(n2(nE`(?>\r\n|${i?nE`\p{RGI_Emoji}`:a}|\P{M}\p{M}*)`,{skipPropertyNameValidation:!0}),t))}else if("hex"===l)r(n6(r9("AHex",{negate:u}),t));else if("newline"===l)r(n8(n2(u?"[^\n]":"(?>\r\n?|[\n\v\f
\u2028\u2029])"),t));else if("posix"===l)if(i||"graph"!==c&&"print"!==c)r(n8(n5(n2(nW.get(c)),u),t));else{if("strict"===n)throw Error(`POSIX class "${c}" requires min target ES2024 or non-strict accuracy`);let e={graph:"!-~",print:" -~"}[c];u&&(e=`\0-${nN(e.codePointAt(0)-1)}${nN(e.codePointAt(2)+1)}-\u{10FFFF}`),r(n8(n2(`[${e}]`),t))}else if("property"===l)nG.has(nn(c))||(e.key="sc");else if("space"===l)r(n6(r9("space",{negate:u}),t));else if("word"===l)r(n8(n5(n2(nB),u),t));else throw Error(`Unexpected character set kind "${l}"`)},Directive({node:e,parent:t,root:r,remove:n,replaceWith:i,removeAllPrevSiblings:a,removeAllNextSiblings:s}){let{kind:o,flags:l}=e;if("flags"===o)if(l.enable||l.disable){let e=r6({flags:l});e.body[0].body=s(),i(n8(e,t),{traverse:!0})}else n();else if("keep"===o){let e=r.body[0],n=1===r.body.length&&rQ(e,{type:"Group"})&&1===e.body[0].body.length?e.body[0]:r;if(t.parent!==n||n.body.length>1)throw Error(nE`Uses "\K" in a way that's unsupported`);let s=r8({behind:!0});s.body[0].body=a(),i(n8(s,t))}else throw Error(`Unexpected directive kind "${o}"`)},Flags({node:e,parent:t}){if(e.posixIsAscii)throw Error('Unsupported flag "P"');if("word"===e.textSegmentMode)throw Error('Unsupported flag "y{w}"');["digitIsAscii","extended","posixIsAscii","spaceIsAscii","wordIsAscii","textSegmentMode"].forEach(t=>delete e[t]),Object.assign(e,{global:!1,hasIndices:!1,multiline:!1,sticky:e.sticky??!1}),t.options={disable:{x:!0,n:!0},force:{v:!0}}},Group({node:e}){if(!e.flags)return;let{enable:t,disable:r}=e.flags;t?.extended&&delete t.extended,r?.extended&&delete r.extended,t?.dotAll&&r?.dotAll&&delete t.dotAll,t?.ignoreCase&&r?.ignoreCase&&delete t.ignoreCase,t&&!Object.keys(t).length&&delete e.flags.enable,r&&!Object.keys(r).length&&delete e.flags.disable,e.flags.enable||e.flags.disable||delete e.flags},LookaroundAssertion({node:e},t){let{kind:r}=e;"lookbehind"===r&&(t.passedLookbehind=!0)},NamedCallout({node:e,parent:t,replaceWith:r}){let{kind:n}=e;if("fail"===n)r(n8(r8({negate:!0}),t));else throw Error(`Unsupported named callout "(*${n.toUpperCase()}"`)},Quantifier({node:e}){if("Quantifier"===e.body.type){let t=r6();t.body[0].body.push(e.body),e.body=n8(t,e)}},Regex:{enter({node:e},{supportedGNodes:t}){let r=[],n=!1,i=!1;for(let t of e.body)if(1===t.body.length&&"search_start"===t.body[0].kind)t.body.pop();else{let e=function e(t){let r=t.find(e=>"search_start"===e.kind||function(e,t){let r={negate:null,...t};return"LookaroundAssertion"===e.type&&(null===r.negate||e.negate===r.negate)&&1===e.body.length&&rQ(e.body[0],{type:"Assertion",kind:"search_start"})}(e,{negate:!1})||!function({type:e}){return"Assertion"===e||"Directive"===e||"LookaroundAssertion"===e}(e));if(!r)return null;if("search_start"===r.kind)return r;if("LookaroundAssertion"===r.type)return r.body[0].body[0];if("CapturingGroup"===r.type||"Group"===r.type){let t=[];for(let n of r.body){let r=e(n.body);if(!r)return null;Array.isArray(r)?t.push(...r):t.push(r)}return t}return null}(t.body);e?(n=!0,Array.isArray(e)?r.push(...e):r.push(e)):i=!0}n&&!i&&r.forEach(e=>t.add(e))},exit(e,{accuracy:t,passedLookbehind:r,strategy:n}){if("strict"===t&&r&&n)throw Error(nE`Uses "\G" in a way that requires non-strict accuracy`)}},Subroutine({node:e},{jsGroupNameMap:t}){let{ref:r}=e;"string"!=typeof r||n1(r)||(e.ref=r=nZ(r,t))}},nQ={Backreference({node:e},{multiplexCapturesToLeftByRef:t,reffedNodesByReferencer:r}){let{orphan:n,ref:i}=e;n||r.set(e,[...t.get(i).map(({node:e})=>e)])},CapturingGroup:{enter({node:e,parent:t,replaceWith:r,skip:n},{groupOriginByCopy:i,groupsByName:a,multiplexCapturesToLeftByRef:s,openRefs:o,reffedNodesByReferencer:l}){let u=i.get(e);if(u&&o.has(e.number)){let n=n6(nJ(e.number),t);l.set(n,o.get(e.number)),r(n);return}o.set(e.number,e),s.set(e.number,[]),e.name&&n$(s,e.name,[]);let c=s.get(e.name??e.number);for(let t=0;t<c.length;t++){let r=c[t];if(u===r.node||u&&u===r.origin||e===r.origin){c.splice(t,1);break}}if(s.get(e.number).push({node:e,origin:u}),e.name&&s.get(e.name).push({node:e,origin:u}),e.name){let t=n$(a,e.name,new Map),r=!1;if(u)r=!0;else for(let e of t.values())if(!e.hasDuplicateNameToRemove){r=!0;break}a.get(e.name).set(e,{node:e,hasDuplicateNameToRemove:r})}},exit({node:e},{openRefs:t}){t.get(e.number)===e&&t.delete(e.number)}},Group:{enter({node:e},t){t.prevFlags=t.currentFlags,e.flags&&(t.currentFlags=nj(t.currentFlags,e.flags))},exit(e,t){t.currentFlags=t.prevFlags}},Subroutine({node:e,parent:t,replaceWith:r},n){let{isRecursive:i,ref:a}=e;if(i){let r=t;for(;(r=r.parent)&&("CapturingGroup"!==r.type||r.name!==a&&r.number!==a););n.reffedNodesByReferencer.set(e,r);return}let s=n.subroutineRefMap.get(a),o=0===a,l=o?nJ(0):function e(t,r,n,i){let a=Array.isArray(t)?[]:{};for(let[s,o]of Object.entries(t))"parent"===s?a.parent=Array.isArray(n)?i:n:o&&"object"==typeof o?a[s]=e(o,r,a,n):("type"===s&&"CapturingGroup"===o&&r.set(a,r.get(t)??t),a[s]=o);return a}(s,n.groupOriginByCopy,null),u=l;if(!o){var c,h;let e=nY(function(e,t){let r=[];for(;e=e.parent;)(!t||t(e))&&r.push(e);return r}(s,e=>"Group"===e.type&&!!e.flags)),t=e?nj(n.globalFlags,e):n.globalFlags;c=t,h=n.currentFlags,(c.dotAll!==h.dotAll||c.ignoreCase!==h.ignoreCase)&&(u=r6({flags:function({dotAll:e,ignoreCase:t}){let r={};return(e||t)&&(r.enable={},e&&(r.enable.dotAll=!0),t&&(r.enable.ignoreCase=!0)),e&&t||(r.disable={},e||(r.disable.dotAll=!0),t||(r.disable.ignoreCase=!0)),r}(t)})).body[0].body.push(l)}r(n8(u,t),{traverse:!o})}},nK={Backreference({node:e,parent:t,replaceWith:r},n){if(e.orphan){n.highestOrphanBackref=Math.max(n.highestOrphanBackref,e.ref);return}let i=n.reffedNodesByReferencer.get(e).filter(t=>(function(e,t){let r=t;do{if("Regex"===r.type)return!1;if("Alternative"===r.type)continue;if(r===e)return!1;for(let t of n0(r.parent)){if(t===r)break;if(t===e||function e(t,r){for(let n of n0(t)??[])if(n===r||e(n,r))return!0;return!1}(t,e))return!0}}while(r=r.parent)throw Error("Unexpected path")})(t,e));i.length?i.length>1?r(n8(r6({atomic:!0,body:i.reverse().map(e=>rJ({body:[rY(e.number)]}))}),t)):e.ref=i[0].number:r(n8(r8({negate:!0}),t))},CapturingGroup({node:e},t){e.number=++t.numCapturesToLeft,e.name&&t.groupsByName.get(e.name).get(e).hasDuplicateNameToRemove&&delete e.name},Regex:{exit({node:e},t){let r=Math.max(t.highestOrphanBackref-t.numCapturesToLeft,0);for(let t=0;t<r;t++){let t=r0();e.body.at(-1).body.push(t)}}},Subroutine({node:e},t){e.isRecursive&&0!==e.ref&&(e.ref=t.reffedNodesByReferencer.get(e).number)}};function nX(e){ns(e,{"*"({node:e,parent:t}){e.parent=t}})}function nJ(e){let t=r4(e);return t.isRecursive=!0,t}function nZ(e,t){if(t.has(e))return t.get(e);let r=`$${t.size}_${e.replace(/^[^$_\p{IDS}]|[^$\u200C\u200D\p{IDC}]/ug,"_")}`;return t.set(e,r),r}function nY(e){let t=["dotAll","ignoreCase"],r={enable:{},disable:{}};return(e.forEach(({flags:e})=>{t.forEach(t=>{e.enable?.[t]&&(delete r.disable[t],r.enable[t]=!0),e.disable?.[t]&&(r.disable[t]=!0)})}),Object.keys(r.enable).length||delete r.enable,Object.keys(r.disable).length||delete r.disable,r.enable||r.disable)?r:null}function n0(e){if(!e)throw Error("Node expected");let{body:t}=e;return Array.isArray(t)?t:t?[t]:null}function n1(e){return/^[$_\p{IDS}][$\u200C\u200D\p{IDC}]*$/u.test(e)}function n2(e,t){let r=rX(e,{...t,unicodePropertyMap:nG}).body;return r.length>1||r[0].body.length>1?r6({body:r}):r[0].body[0]}function n5(e,t){return e.negate=t,e}function n6(e,t){return e.parent=t,e}function n8(e,t){return nX(e),e.parent=t,e}var n3={"*":{enter({node:e},t){if(io(e)){let r=t.getCurrentModI();t.pushModI(e.flags?nj({ignoreCase:r},e.flags).ignoreCase:r)}},exit({node:e},t){io(e)&&t.popModI()}},Backreference(e,t){t.setHasCasedChar()},Character({node:e},t){ii(nN(e.value))&&t.setHasCasedChar()},CharacterClassRange({node:e,skip:t},r){t(),ia(e,{firstOnly:!0}).length&&r.setHasCasedChar()},CharacterSet({node:e},t){"property"===e.kind&&nH.has(e.value)&&t.setHasCasedChar()}},n4={Alternative:({body:e},t,r)=>e.map(r).join(""),Assertion({kind:e,negate:t}){if("string_end"===e)return"$";if("string_start"===e)return"^";if("word_boundary"===e)return t?nE`\B`:nE`\b`;throw Error(`Unexpected assertion kind "${e}"`)},Backreference({ref:e},t){if("number"!=typeof e)throw Error("Unexpected named backref in transformed AST");if(!t.useFlagMods&&"strict"===t.accuracy&&t.currentFlags.ignoreCase&&!t.captureMap.get(e).ignoreCase)throw Error("Use of case-insensitive backref to case-sensitive group requires target ES2025 or non-strict accuracy");return"\\"+e},CapturingGroup(e,t,r){let{body:n,name:i,number:a}=e,s={ignoreCase:t.currentFlags.ignoreCase},o=t.originMap.get(e);return o&&(s.hidden=!0,a>o.number&&(s.transferTo=o.number)),t.captureMap.set(a,s),`(${i?`?<${i}>`:""}${n.map(r).join("|")})`},Character({value:e},t){let r=nN(e),n=is(e,{escDigit:"Backreference"===t.lastNode.type,inCharClass:t.inCharClass,useFlagV:t.useFlagV});if(n!==r)return n;if(t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&ii(r)){let e=nO(r);return t.inCharClass?e.join(""):e.length>1?`[${e.join("")}]`:e[0]}return r},CharacterClass(e,t,r){let{kind:n,negate:i,parent:a}=e,{body:s}=e;if("intersection"===n&&!t.useFlagV)throw Error("Use of character class intersection requires min target ES2024");nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV&&s.some(il)&&(s=[r1(45),...s.filter(e=>!il(e))]);let o=()=>`[${i?"^":""}${s.map(r).join("intersection"===n?"&&":"")}]`;if(!t.inCharClass){if((!t.useFlagV||nI.bugNestedClassIgnoresNegation)&&!i){let t=s.filter(e=>"CharacterClass"===e.type&&"union"===e.kind&&e.negate);if(t.length){let n=r6(),i=n.body[0];return n.parent=a,i.parent=n,e.body=s=s.filter(e=>!t.includes(e)),s.length?(e.parent=i,i.body.push(e)):n.body.pop(),t.forEach(e=>{let t=rJ({body:[e]});e.parent=t,t.parent=n,n.body.push(t)}),r(n)}}t.inCharClass=!0;let n=o();return t.inCharClass=!1,n}let l=s[0];if("union"===n&&!i&&l&&((!t.useFlagV||!t.verbose)&&"union"===a.kind&&!(nI.bugFlagVLiteralHyphenIsRange&&t.useFlagV)||!t.verbose&&"intersection"===a.kind&&1===s.length&&"CharacterClassRange"!==l.type))return s.map(r).join("");if(!t.useFlagV&&"CharacterClass"===a.type)throw Error("Uses nested character class in a way that requires min target ES2024");return o()},CharacterClassRange(e,t){let r=e.min.value,n=e.max.value,i={escDigit:!1,inCharClass:!0,useFlagV:t.useFlagV},a=is(r,i),s=is(n,i),o=new Set;return t.useAppliedIgnoreCase&&t.currentFlags.ignoreCase&&(function(e){let t=e.map(e=>e.codePointAt(0)).sort((e,t)=>e-t),r=[],n=null;for(let e=0;e<t.length;e++)t[e+1]===t[e]+1?n??=t[e]:null===n?r.push(t[e]):(r.push([n,t[e]]),n=null);return r})(ia(e)).forEach(e=>{o.add(Array.isArray(e)?`${is(e[0],i)}-${is(e[1],i)}`:is(e,i))}),`${a}-${s}${[...o].join("")}`},CharacterSet({kind:e,negate:t,value:r,key:n},i){if("dot"===e)return i.currentFlags.dotAll?i.appliedGlobalFlags.dotAll||i.useFlagMods?".":"[^]":nE`[^\n]`;if("digit"===e)return t?nE`\D`:nE`\d`;if("property"===e){if(i.useAppliedIgnoreCase&&i.currentFlags.ignoreCase&&nH.has(r))throw Error(`Unicode property "${r}" can't be case-insensitive when other chars have specific case`);return`${t?nE`\P`:nE`\p`}{${n?`${n}=`:""}${r}}`}if("word"===e)return t?nE`\W`:nE`\w`;throw Error(`Unexpected character set kind "${e}"`)},Flags:(e,t)=>(t.appliedGlobalFlags.ignoreCase?"i":"")+(e.dotAll?"s":"")+(e.sticky?"y":""),Group({atomic:e,body:t,flags:r,parent:n},i,a){let s=i.currentFlags;r&&(i.currentFlags=nj(s,r));let o=t.map(a).join("|"),l=i.verbose||1!==t.length||"Quantifier"===n.type||e||i.useFlagMods&&r?`(?${function(e,t,r){if(e)return">";let n="";if(t&&r){let{enable:e,disable:r}=t;n=(e?.ignoreCase?"i":"")+(e?.dotAll?"s":"")+(r?"-":"")+(r?.ignoreCase?"i":"")+(r?.dotAll?"s":"")}return`${n}:`}(e,r,i.useFlagMods)}${o})`:o;return i.currentFlags=s,l},LookaroundAssertion({body:e,kind:t,negate:r},n,i){let a=`${"lookahead"===t?"":"<"}${r?"!":"="}`;return`(?${a}${e.map(i).join("|")})`},Quantifier:(e,t,r)=>r(e.body)+function({kind:e,max:t,min:r}){return(r||1!==t?r||t!==1/0?1===r&&t===1/0?"+":r===t?`{${r}}`:`{${r},${t===1/0?"":t}}`:"*":"?")+({greedy:"",lazy:"?",possessive:"+"})[e]}(e),Subroutine({isRecursive:e,ref:t},r){if(!e)throw Error("Unexpected non-recursive subroutine in transformed AST");let n=r.recursionLimit;return 0===t?`(?R=${n})`:nE`\g<${t}&R=${n}>`}},n9=new Set(["$","(",")","*","+",".","?","[","\\","]","^","{","|","}"]),n7=new Set(["-","\\","]","^","["]),ie=new Set(["(",")","-","/","[","\\","]","^","{","|","}","!","#","$","%","&","*","+",",",".",":",";","<","=",">","?","@","`","~"]),it=new Map([[9,nE`\t`],[10,nE`\n`],[11,nE`\v`],[12,nE`\f`],[13,nE`\r`],[8232,nE`\u2028`],[8233,nE`\u2029`],[65279,nE`\uFEFF`]]),ir=/^\p{Cased}$/u;function ii(e){return ir.test(e)}function ia(e,t){let r=!!t?.firstOnly,n=e.min.value,i=e.max.value,a=[];if(n<65&&(65535===i||i>=131071)||65536===n&&i>=131071)return a;for(let e=n;e<=i;e++){let t=nN(e);if(!ii(t))continue;let s=nO(t).filter(e=>{let t=e.codePointAt(0);return t<n||t>i});if(s.length&&(a.push(...s),r))break}return a}function is(e,{escDigit:t,inCharClass:r,useFlagV:n}){var i;if(it.has(e))return it.get(e);if(e<32||e>126&&e<160||e>262143||t&&(i=e)>47&&i<58)return e>255?`\\u{${e.toString(16).toUpperCase()}}`:`\\x${e.toString(16).toUpperCase().padStart(2,"0")}`;let a=nN(e);return((r?n?ie:n7:n9).has(a)?"\\":"")+a}function io({type:e}){return"CapturingGroup"===e||"Group"===e||"LookaroundAssertion"===e}function il({type:e,value:t}){return"Character"===e&&45===t}var iu=class e extends RegExp{#e=new Map;#t=null;#r;#n=null;#i=null;rawOptions={};get source(){return this.#r||"(?:)"}constructor(t,r,n){const i=!!n?.lazyCompile;if(t instanceof RegExp){if(n)throw Error("Cannot provide options when copying a regexp");super(t,r),this.#r=t.source,t instanceof e&&(this.#e=t.#e,this.#n=t.#n,this.#i=t.#i,this.rawOptions=t.rawOptions)}else{const e={hiddenCaptures:[],strategy:null,transfers:[],...n};super(i?"":t,r),this.#r=t,this.#e=function(e,t){let r=new Map;for(let t of e)r.set(t,{hidden:!0});for(let[e,n]of t)for(let t of n)n$(r,t,{}).transferTo=e;return r}(e.hiddenCaptures,e.transfers),this.#i=e.strategy,this.rawOptions=n??{}}i||(this.#t=this)}exec(t){if(!this.#t){let{lazyCompile:t,...r}=this.rawOptions;this.#t=new e(this.#r,this.flags,r)}let r=this.global||this.sticky,n=this.lastIndex;if("clip_search"===this.#i&&r&&n){this.lastIndex=0;let e=this.#a(t.slice(n));return e&&(function(e,t,r,n){if(e.index+=t,e.input=r,n){let r=e.indices;for(let e=0;e<r.length;e++){let n=r[e];n&&(r[e]=[n[0]+t,n[1]+t])}let n=r.groups;n&&Object.keys(n).forEach(e=>{let r=n[e];r&&(n[e]=[r[0]+t,r[1]+t])})}}(e,n,t,this.hasIndices),this.lastIndex+=n),e}return this.#a(t)}#a(e){let t;this.#t.lastIndex=this.lastIndex;let r=super.exec.call(this.#t,e);if(this.lastIndex=this.#t.lastIndex,!r||!this.#e.size)return r;let n=[...r];r.length=1,this.hasIndices&&(t=[...r.indices],r.indices.length=1);let i=[0];for(let e=1;e<n.length;e++){let{hidden:a,transferTo:s}=this.#e.get(e)??{};if(a?i.push(null):(i.push(r.length),r.push(n[e]),this.hasIndices&&r.indices.push(t[e])),s&&void 0!==n[e]){let a=i[s];if(!a)throw Error(`Invalid capture transfer to "${a}"`);if(r[a]=n[e],this.hasIndices&&(r.indices[a]=t[e]),r.groups){this.#n||(this.#n=function(e){let t,r=/(?<capture>\((?:\?<(?![=!])(?<name>[^>]+)>|(?!\?)))|\\?./gsu,n=new Map,i=0,a=0;for(;t=r.exec(e);){let{0:e,groups:{capture:r,name:s}}=t;"["===e?i++:i?"]"===e&&i--:r&&(a++,s&&n.set(a,s))}return n}(this.source));let i=this.#n.get(s);i&&(r.groups[i]=n[e],this.hasIndices&&(r.indices.groups[i]=t[e]))}}}return r}};class ic{constructor(e,t={}){this.patterns=e,this.options=t;const{forgiving:r=!1,cache:n,regexConstructor:i}=t;if(!i)throw Error("Option `regexConstructor` is not provided");this.regexps=e.map(e=>{if("string"!=typeof e)return e;let t=n?.get(e);if(t){if(t instanceof RegExp)return t;if(r)return null;throw t}try{let t=i(e);return n?.set(e,t),t}catch(t){if(n?.set(e,t),r)return null;throw t}})}regexps;findNextMatchSync(e,t,r){let n="string"==typeof e?e:e.content,i=[];function a(e,t,r=0){return{index:e,captureIndices:t.indices.map(e=>null==e?{start:0xffffffff,end:0xffffffff,length:0}:{start:e[0]+r,end:e[1]+r,length:e[1]-e[0]})}}for(let e=0;e<this.regexps.length;e++){let r=this.regexps[e];if(r)try{r.lastIndex=t;let s=r.exec(n);if(!s)continue;if(s.index===t)return a(e,s,0);i.push([e,s,0])}catch(e){if(this.options.forgiving)continue;throw e}}if(i.length){let e=Math.min(...i.map(e=>e[1].index));for(let[t,r,n]of i)if(r.index===e)return a(t,r,n)}return null}}var ih=function(e={}){let t=Object.assign({target:"auto",cache:new Map},e);return t.regexConstructor||=e=>{let r;return(r=function(e,t){var r;let n,i,a,s,o=nR(t),l=(r=rX(e,{flags:o.flags,normalizeUnknownPropertyNames:!0,rules:{captureGroup:o.rules.captureGroup,singleline:o.rules.singleline},skipBackrefValidation:o.rules.allowOrphanBackrefs,unicodePropertyMap:nG}),n={accuracy:"default",asciiWordBoundaries:!1,avoidSubclass:!1,bestEffortTarget:"ES2025",...{accuracy:o.accuracy,asciiWordBoundaries:o.rules.asciiWordBoundaries,avoidSubclass:o.avoidSubclass,bestEffortTarget:o.target}},nX(r),i={accuracy:n.accuracy,asciiWordBoundaries:n.asciiWordBoundaries,avoidSubclass:n.avoidSubclass,flagDirectivesByAlt:new Map,jsGroupNameMap:new Map,minTargetEs2024:nT[n.bestEffortTarget]>=nT.ES2024,passedLookbehind:!1,strategy:null,subroutineRefMap:new Map,supportedGNodes:new Set,digitIsAscii:r.flags.digitIsAscii,spaceIsAscii:r.flags.spaceIsAscii,wordIsAscii:r.flags.wordIsAscii},ns(r,nV,i),s={currentFlags:a={dotAll:r.flags.dotAll,ignoreCase:r.flags.ignoreCase},prevFlags:null,globalFlags:a,groupOriginByCopy:new Map,groupsByName:new Map,multiplexCapturesToLeftByRef:new Map,openRefs:new Map,reffedNodesByReferencer:new Map,subroutineRefMap:i.subroutineRefMap},ns(r,nQ,s),ns(r,nK,{groupsByName:s.groupsByName,highestOrphanBackref:0,numCapturesToLeft:0,reffedNodesByReferencer:s.reffedNodesByReferencer}),r._originMap=s.groupOriginByCopy,r._strategy=i.strategy,r),u=function(e,t){let r=nR(t),n=nT[r.target]>=nT.ES2024,i=nT[r.target]>=nT.ES2025,a=r.rules.recursionLimit;if(!Number.isInteger(a)||a<2||a>20)throw Error("Invalid recursionLimit; use 2-20");let s=null,o=null;if(!i){let t=[e.flags.ignoreCase];ns(e,n3,{getCurrentModI:()=>t.at(-1),popModI(){t.pop()},pushModI(e){t.push(e)},setHasCasedChar(){t.at(-1)?s=!0:o=!0}})}let l={dotAll:e.flags.dotAll,ignoreCase:!!((e.flags.ignoreCase||s)&&!o)},u=e,c={accuracy:r.accuracy,appliedGlobalFlags:l,captureMap:new Map,currentFlags:{dotAll:e.flags.dotAll,ignoreCase:e.flags.ignoreCase},inCharClass:!1,lastNode:u,originMap:e._originMap,recursionLimit:a,useAppliedIgnoreCase:!!(!i&&s&&o),useFlagMods:i,useFlagV:n,verbose:r.verbose};function h(e){return c.lastNode=u,u=e,(function(e,t){if(null==e)throw Error(t??"Value expected");return e})(n4[e.type],`Unexpected node type "${e.type}"`)(e,c,h)}let p={pattern:e.body.map(h).join("|"),flags:h(e.flags),options:{...e.options}};return n||(delete p.options.force.v,p.options.disable.v=!0,p.options.unicodeSetsPlugin=null),p._captureTransfers=new Map,p._hiddenCaptures=[],c.captureMap.forEach((e,t)=>{e.hidden&&p._hiddenCaptures.push(t),e.transferTo&&n$(p._captureTransfers,e.transferTo,[]).push(t)}),p}(l,o),c=function(e,t){let r,{hiddenCaptures:n,mode:i}={hiddenCaptures:[],mode:"plugin",...t},a=t?.captureTransfers??new Map;if(!RegExp(nb,"su").test(e))return{pattern:e,captureTransfers:a,hiddenCaptures:n};if("plugin"===i&&np(e,ng`\(\?\(DEFINE\)`,nc.DEFAULT))throw Error("DEFINE groups cannot be used with recursion");let s=[],o=np(e,ng`\\[1-9]`,nc.DEFAULT),l=new Map,u=[],c=!1,h=0,p=0;for(nA.lastIndex=0;r=nA.exec(e);){let{0:t,groups:{captureName:d,rDepth:f,gRNameOrNum:m,gRDepth:g}}=r;if("["===t)h++;else if(h)"]"===t&&h--;else if(f){if(n_(f),c)throw Error(nv);if(o)throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with global recursion`);let t=e.slice(0,r.index),l=e.slice(nA.lastIndex);if(np(l,nb,nc.DEFAULT))throw Error(nv);let u=f-1;e=nk(t,l,u,!1,n,s,p),a=nS(a,t,u,s.length,0,p);break}else if(m){n_(g);let h=!1;for(let e of u)if(e.name===m||e.num===+m){if(h=!0,e.hasRecursedWithin)throw Error(nv);break}if(!h)throw Error(ng`Recursive \g cannot be used outside the referenced group "${"external"===i?m:ng`\g<${m}&R=${g}>`}"`);let d=l.get(m),f=function(e,t){let r,n=/\\?./gsu;n.lastIndex=t;let i=e.length,a=0,s=1;for(;r=n.exec(e);){let[e]=r;if("["===e)a++;else if(a)"]"===e&&a--;else if("("===e)s++;else if(")"===e&&!--s){i=r.index;break}}return e.slice(t,i)}(e,d);if(o&&np(f,ng`${nx}|\((?!\?)`,nc.DEFAULT))throw Error(`${"external"===i?"Backrefs":"Numbered backrefs"} cannot be used with recursion of capturing groups`);let y=e.slice(d,r.index),b=f.slice(y.length+t.length),x=s.length,w=g-1,A=nk(y,b,w,!0,n,s,p);a=nS(a,y,w,s.length-x,x,p);let v=e.slice(0,d),_=e.slice(d+f.length);e=`${v}${A}${_}`,nA.lastIndex+=A.length-t.length-y.length-b.length,u.forEach(e=>e.hasRecursedWithin=!0),c=!0}else if(d)p++,l.set(String(p),nA.lastIndex),l.set(d,nA.lastIndex),u.push({num:p,name:d});else if("("===t[0]){let e="("===t;e&&(p++,l.set(String(p),nA.lastIndex)),u.push(e?{num:p}:{})}else")"===t&&u.pop()}return n.push(...s),{pattern:e,captureTransfers:a,hiddenCaptures:n}}(u.pattern,{captureTransfers:u._captureTransfers,hiddenCaptures:u._hiddenCaptures,mode:"external"}),h=function(e,t){let r,n=t?.hiddenCaptures??[],i=t?.captureTransfers??new Map;if(!/\(\?>/.test(e))return{pattern:e,captureTransfers:i,hiddenCaptures:n};let a="(?:(?=(",s=[0],o=[],l=0,u=0,c=NaN;do{let t;r=!1;let h=0,p=0,d=!1;for(nd.lastIndex=Number.isNaN(c)?0:c+a.length;t=nd.exec(e);){let{0:f,index:m,groups:{capturingStart:g,noncapturingStart:y}}=t;if("["===f)h++;else if(h)"]"===f&&h--;else if("(?>"!==f||d){if(d&&y)p++;else if(g)d?p++:(l++,s.push(l+u));else if(")"===f&&d){if(!p){let t=l+ ++u;e=`${e.slice(0,c)}${a}${e.slice(c+3,m)}))<$$${t}>)${e.slice(m+1)}`,r=!0,o.push(t);for(let e=0;e<n.length;e++)n[e]>=t&&n[e]++;if(i.size){let e=new Map;i.forEach((r,n)=>{e.set(n>=t?n+1:n,r.map(e=>e>=t?e+1:e))}),i=e}break}p--}}else c=m,d=!0}}while(r)return n.push(...o),{pattern:e=nh(e,String.raw`\\(?<backrefNum>[1-9]\d*)|<\$\$(?<wrappedBackrefNum>\d+)>`,({0:e,groups:{backrefNum:t,wrappedBackrefNum:r}})=>{if(t){let r=+t;if(r>s.length-1)throw Error(`Backref "${e}" greater than number of captures`);return`\\${s[r]}`}return`\\${r}`},nc.DEFAULT),captureTransfers:i,hiddenCaptures:n}}(function(e){let t;if(!RegExp(`${nf}\\+`).test(e))return{pattern:e};let r=[],n=null,i=null,a="",s=0;for(nm.lastIndex=0;t=nm.exec(e);){let{0:u,index:c,groups:{qBase:h,qMod:p,invalidQ:d}}=t;if("["===u)s||(i=c),s++;else if("]"===u)s?s--:i=null;else if(!s)if("+"===p&&a&&!a.startsWith("(")){if(d)throw Error(`Invalid quantifier "${u}"`);let t=-1;if(/^\{\d+\}$/.test(h)){var o,l;o=e,l=c+h.length,e=o.slice(0,l)+""+o.slice(l+p.length)}else{if(")"===a||"]"===a){let t=")"===a?n:i;if(null===t)throw Error(`Invalid unmatched "${a}"`);e=`${e.slice(0,t)}(?>${e.slice(t,c)}${h})${e.slice(c+u.length)}`}else e=`${e.slice(0,c-a.length)}(?>${a}${h})${e.slice(c+u.length)}`;t+=4}nm.lastIndex+=t}else"("===u[0]?r.push(c):")"===u&&(n=r.length?r.pop():null);a=u}return{pattern:e}}(c.pattern).pattern,{captureTransfers:c.captureTransfers,hiddenCaptures:c.hiddenCaptures}),p={pattern:h.pattern,flags:`${o.hasIndices?"d":""}${o.global?"g":""}${u.flags}${u.options.disable.v?"u":"v"}`};if(o.avoidSubclass){if(o.lazyCompileLength!==1/0)throw Error("Lazy compilation requires subclass")}else{let e=h.hiddenCaptures.sort((e,t)=>e-t),t=Array.from(h.captureTransfers),r=l._strategy,n=p.pattern.length>=o.lazyCompileLength;(e.length||t.length||r||n)&&(p.options={...e.length&&{hiddenCaptures:e},...t.length&&{transfers:t},...r&&{strategy:r},...n&&{lazyCompile:n}})}return p}(e,{global:!0,hasIndices:!0,lazyCompileLength:3e3,rules:{allowOrphanBackrefs:!0,asciiWordBoundaries:!0,captureGroup:!0,recursionLimit:5,singleline:!0},...{target:t.target}})).options?new iu(r.pattern,r.flags,r.options):new RegExp(r.pattern,r.flags)},{createScanner:e=>new ic(e,t),createString:e=>({content:e})}}({forgiving:!0}),ip=Object.fromEntries(R.flatMap(e=>{var t;return(null!=(t=e.aliases)?t:[]).map(t=>[t,e.id])})),id=new Set(Object.keys(O)),im=e=>{let t=e.trim().toLowerCase();return ip[t]||(id.has(t),t)},ig=new Map,iy=new Map,ib=new Map,ix=e=>{var t;return"string"==typeof e?e:null!=(t=e.name)?t:"custom"},iw=function(e={}){var t;let r=null!=(t=e.themes)?t:["github-light","github-dark"];return{name:"shiki",type:"code-highlighter",supportsLanguage(e){let t=im(e);return id.has(t)},getSupportedLanguages:()=>Array.from(id),getThemes:()=>r,highlight({code:e,language:t,themes:r},n){let i,a,s=im(t),o=[ix(r[0]),ix(r[1])],l=(i=e.slice(0,100),a=e.length>100?e.slice(-100):"",`${s}:${o[0]}:${o[1]}:${e.length}:${i}:${a}`);return iy.has(l)?iy.get(l):(n&&(ib.has(l)||ib.set(l,new Set),ib.get(l).add(n)),((e,t)=>{let r=`${e}-${ix(t[0])}-${ix(t[1])}`;if(ig.has(r))return ig.get(r);let n=rS({themes:t,langs:[e],engine:ih});return ig.set(r,n),n})(id.has(s)?s:"text",r).then(t=>{let r=t.getLoadedLanguages().includes(s)?s:"text",n=t.codeToTokens(e,{lang:r,themes:{light:o[0],dark:o[1]}});iy.set(l,n);let i=ib.get(l);if(i){for(let e of i)e(n);ib.delete(l)}}).catch(e=>{console.error("[Streamdown Code] Failed to highlight code:",e),ib.delete(l)}),null)}}}(),iA=e.i(176116),iv=e.i(506703);function i_({className:e,children:t,node:r,...n}){let i=(0,c.useRef)(null),[a,s]=(0,c.useState)(!1),o=function(e){for(let t of c.Children.toArray(e)){if(!(0,c.isValidElement)(t))continue;let e=t.props;if("string"!=typeof e?.className)continue;let r=e.className.match(/language-([a-z0-9+#-]+)/i);if(r)return r[1]}}(t)??"",l=(0,c.useCallback)(async()=>{let e=i.current?.innerText??"";if(e)try{await navigator.clipboard.writeText(e),s(!0),window.setTimeout(()=>s(!1),2e3)}catch{}},[]);return(0,u.jsxs)("div",{className:"group relative my-2 overflow-hidden rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.5)]",children:[(0,u.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.8)] px-3 py-1.5",children:[(0,u.jsx)("span",{className:"font-mono text-[11px] uppercase tracking-wide text-muted-foreground",children:o||"text"}),(0,u.jsx)("button",{type:"button",onClick:l,className:(0,b.cn)("inline-flex items-center gap-1 rounded px-2 py-0.5 text-[11px] text-muted-foreground","opacity-0 transition-opacity hover:bg-[hsl(var(--accent))] hover:text-foreground","group-hover:opacity-100 focus-visible:opacity-100",a&&"opacity-100 text-primary"),"aria-label":"复制代码",children:a?(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(iv.Check,{className:"h-3 w-3"}),"已复制"]}):(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(k.Copy,{className:"h-3 w-3"}),"复制"]})})]}),(0,u.jsx)("pre",{ref:i,className:(0,b.cn)("overflow-x-auto p-3 text-xs leading-relaxed","[&_code]:bg-transparent [&_code]:p-0",e),...n,children:t})]})}let ik=["https://","http://","mailto:","#","/"],iC=["https://","data:image/"],iS=(e,t)=>{let r=e.toLowerCase();return("src"===t?iC:ik).some(e=>r.startsWith(e))?e:""};function iN({children:e,className:t}){return(0,u.jsx)("div",{className:(0,b.cn)("text-sm leading-relaxed text-foreground/90","[&_p]:my-2 [&_ul]:my-2 [&_ol]:my-2 [&_li]:my-0.5","[&_ul]:list-disc [&_ul]:pl-5 [&_ol]:list-decimal [&_ol]:pl-5","[&_h1]:mt-4 [&_h1]:mb-2 [&_h1]:text-lg [&_h1]:font-semibold","[&_h2]:mt-3 [&_h2]:mb-2 [&_h2]:text-base [&_h2]:font-semibold","[&_h3]:mt-3 [&_h3]:mb-1.5 [&_h3]:text-sm [&_h3]:font-semibold","[&_a]:text-primary [&_a]:underline [&_a]:underline-offset-2","[&_:not(pre)>code]:rounded [&_:not(pre)>code]:bg-[hsl(var(--muted))] [&_:not(pre)>code]:px-1 [&_:not(pre)>code]:py-0.5 [&_:not(pre)>code]:text-[0.85em]","[&_table]:my-2 [&_table]:w-full [&_table]:border-collapse","[&_th]:border [&_th]:border-[hsl(var(--border))] [&_th]:px-2 [&_th]:py-1 [&_th]:text-left [&_th]:font-semibold","[&_td]:border [&_td]:border-[hsl(var(--border))] [&_td]:px-2 [&_td]:py-1","[&_blockquote]:my-2 [&_blockquote]:border-l-2 [&_blockquote]:border-[hsl(var(--border))] [&_blockquote]:pl-3 [&_blockquote]:text-muted-foreground","[&_hr]:my-3 [&_hr]:border-[hsl(var(--border))]",t),children:(0,u.jsx)(iA.C,{parseIncompleteMarkdown:!0,skipHtml:!0,urlTransform:iS,plugins:{code:iw},components:{pre:i_},controls:{code:!1,table:!1,mermaid:!1},children:e})})}function iE(e){try{let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),I.toast.success("已复制")}catch{I.toast.error("复制失败")}}let iI=(0,c.memo)(function({message:e,busy:t,onDelete:r,onResend:n,onRegenerate:i,onEditSave:a}){return"user"===e.role?(0,u.jsx)(iP,{message:e,busy:t,onDelete:r,onResend:n,onEditSave:a}):(0,u.jsx)(iR,{message:e,busy:t,onDelete:r,onRegenerate:i})},(e,t)=>e.message===t.message&&e.busy===t.busy);function iL({align:e,disabled:t,onCopy:r,onDelete:n,onEdit:i,onResend:a,onRegenerate:s}){return(0,u.jsxs)("div",{className:(0,b.cn)("mt-1 flex items-center gap-0.5 opacity-0 transition-opacity duration-150","group-hover:opacity-100 group-focus-within:opacity-100","group-data-[touched=true]:opacity-100","right"===e?"justify-end":"justify-start"),children:[(0,u.jsx)(ij,{title:"复制",disabled:t,onClick:r,children:(0,u.jsx)(k.Copy,{className:"h-3.5 w-3.5"})}),i&&(0,u.jsx)(ij,{title:"编辑",disabled:t,onClick:i,children:(0,u.jsx)(C.Pencil,{className:"h-3.5 w-3.5"})}),a&&(0,u.jsx)(ij,{title:"重新发送",disabled:t,onClick:a,children:(0,u.jsx)(d,{className:"h-3.5 w-3.5"})}),s&&(0,u.jsx)(ij,{title:"重新生成",disabled:t,onClick:s,children:(0,u.jsx)(S.RotateCcw,{className:"h-3.5 w-3.5"})}),(0,u.jsx)(ij,{title:"删除",disabled:t,onClick:n,destructive:!0,children:(0,u.jsx)(E.Trash2,{className:"h-3.5 w-3.5"})})]})}function ij({title:e,disabled:t,destructive:r,onClick:n,children:i}){return(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"icon",title:e,"aria-label":e,disabled:t,onClick:n,className:(0,b.cn)("h-7 w-7 text-muted-foreground hover:text-foreground",r&&"hover:text-[hsl(var(--destructive))] hover:bg-[hsl(var(--destructive))]/10"),children:i})}function i$({rewriteFailed:e,rewriteError:t,failedKbCount:r,failedKbDetails:n}){let i=!!e,a=(r??0)>0;return i||a?(0,u.jsxs)("div",{className:"space-y-1.5",children:[i&&(0,u.jsx)(iT,{label:"意图重写失败 · 已回退到原问题",detail:t??"rewriter 返回空结果或抛错"}),a&&n&&(0,u.jsx)(iT,{label:`${r} 个知识库检索失败`,detail:n.map(e=>`• ${e.name}: ${e.reason}`).join("\n")})]}):null}function iT({label:e,detail:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)("div",{className:"rounded-md border border-amber-500/30 bg-amber-500/5",children:[(0,u.jsxs)("button",{type:"button",onClick:()=>n(e=>!e),className:(0,b.cn)("flex w-full items-center gap-1.5 px-2 py-1 text-xs","text-amber-700 hover:bg-amber-500/10 dark:text-amber-300"),children:[(0,u.jsx)(w.AlertTriangle,{className:"h-3.5 w-3.5 shrink-0"}),(0,u.jsx)("span",{className:"flex-1 text-left",children:e}),(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-150",r&&"rotate-180")})]}),r&&(0,u.jsx)("pre",{className:"border-t border-amber-500/20 px-2 py-1.5 text-[11px] leading-relaxed text-amber-700/80 dark:text-amber-300/80 whitespace-pre-wrap font-mono",children:t})]})}function iP({message:e,busy:t,onDelete:r,onResend:n,onEditSave:i}){let[a,s]=(0,c.useState)(!1),[o,l]=(0,c.useState)(!1),[h,p]=(0,c.useState)(e.content),[d,f]=(0,c.useState)(!1),[y,b]=(0,c.useState)(!1),[x,w]=(0,c.useState)(!0),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]),v=(0,c.useCallback)(()=>{let t=h.trim();if(!t||t===e.content){l(!1),p(e.content);return}l(!1),i(e.id,t)},[h,e.content,e.id,i]),_=(0,c.useCallback)(()=>{p(e.content),l(!1)},[e.content]),k=(0,c.useCallback)(e=>{"Escape"===e.key?(e.preventDefault(),_()):"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),v())},[v,_]);return(0,u.jsxs)("div",{className:"group flex justify-end","data-touched":a?"true":void 0,onClickCapture:()=>s(!0),children:[(0,u.jsxs)("div",{className:"flex max-w-[85%] flex-col items-end",children:[o?(0,u.jsxs)("div",{className:"w-full max-w-2xl rounded-2xl border border-[hsl(var(--primary))] bg-[hsl(var(--background))] p-2",children:[(0,u.jsx)(g.Textarea,{autoFocus:!0,value:h,onChange:e=>p(e.target.value),onKeyDown:k,className:"min-h-[80px] resize-y border-0 p-2 text-sm shadow-none focus-visible:ring-0"}),(0,u.jsxs)("div",{className:"mt-1 flex justify-end gap-2",children:[(0,u.jsx)(m.Button,{type:"button",variant:"ghost",size:"sm",onClick:_,children:"取消"}),(0,u.jsx)(m.Button,{type:"button",size:"sm",disabled:!h.trim()||h.trim()===e.content,onClick:v,children:"保存并重发"})]})]}):(0,u.jsx)("div",{className:"rounded-2xl rounded-tr-sm bg-[hsl(var(--muted)/0.7)] px-4 py-2.5 text-sm leading-relaxed text-foreground whitespace-pre-wrap",children:e.content}),!o&&(0,u.jsx)(iL,{align:"right",disabled:t,onCopy:A,onEdit:()=>{p(e.content),l(!0)},onResend:()=>b(!0),onDelete:()=>f(!0)})]}),(0,u.jsx)(T.ConfirmDialog,{open:d,onOpenChange:f,title:"删除此消息?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id,{withNextAssistant:x}),f(!1)},children:(0,u.jsxs)("label",{className:"flex items-center gap-2 text-sm text-foreground",children:[(0,u.jsx)(L.Checkbox,{checked:x,onCheckedChange:e=>w(!0===e)}),"同时删除下方的 AI 回复"]})}),(0,u.jsx)(T.ConfirmDialog,{open:y,onOpenChange:b,title:"重新发送此消息?",description:"将丢弃下方所有消息并重新生成回答。",confirmText:"重新发送",onConfirm:()=>{b(!1),n(e.id)}})]})}function iR({message:e,busy:t,onDelete:r,onRegenerate:n}){let[i,a]=(0,c.useState)(!1),[s,o]=(0,c.useState)(!1),[l,h]=(0,c.useState)(!1),p="streaming"===e.status,d="error"===e.status,f=(e.reasoning?.length??0)>0,m=(e.content?.length??0)>0,g=f||p&&!m,y=!!e.usingRag&&!e.retrievalQuery,b=!!e.retrievalQuery&&!e.retrievedChunks,w=(e.retrievalGroups??[]).filter(e=>e.error).map(e=>({name:e.knowledgeBaseName,reason:e.error??""})),A=(0,c.useCallback)(()=>{if(e.content)try{navigator.clipboard&&window.isSecureContext?navigator.clipboard.writeText(e.content).then(()=>I.toast.success("已复制"),()=>{iE(e.content)}):iE(e.content)}catch{iE(e.content)}},[e.content]);return(0,u.jsxs)("div",{className:"group space-y-3 text-sm leading-relaxed","data-touched":i?"true":void 0,onClickCapture:()=>a(!0),children:[g?(0,u.jsx)(iM,{reasoning:e.reasoning??"",streaming:p,startedAt:e.reasoningStartedAt,completedAt:e.reasoningCompletedAt,intentExtracting:y,retrievalInFlight:b}):null,(0,u.jsx)(i$,{rewriteFailed:e.queryRewriteFailed,rewriteError:e.queryRewriteError,failedKbCount:w.length,failedKbDetails:w}),e.retrievalQueryRewritten&&e.retrievalQuery?(0,u.jsxs)("div",{className:"inline-flex max-w-full items-center gap-1.5 rounded-md bg-[hsl(var(--muted)/0.4)] px-2 py-1 text-xs text-muted-foreground",children:[(0,u.jsx)(N.Search,{className:"h-3 w-3 shrink-0"}),(0,u.jsx)("span",{className:"font-medium shrink-0",children:"检索关键词:"}),(0,u.jsx)("span",{className:"truncate font-mono text-foreground/80",children:e.retrievalQuery})]}):null,e.retrievedChunks&&e.retrievedChunks.length>0?(0,u.jsx)(iB,{chunks:e.retrievedChunks,groups:e.retrievalGroups}):null,e.memoryHits&&e.memoryHits.length>0?(0,u.jsx)(iD,{hits:e.memoryHits,query:e.memoryQuery}):null,d?(0,u.jsxs)("div",{className:"flex items-start gap-2 rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-[hsl(var(--destructive))]",children:[(0,u.jsx)(x,{className:"mt-0.5 h-4 w-4 shrink-0"}),(0,u.jsx)("span",{className:"text-xs",children:e.errorMessage??"生成失败"})]}):(0,u.jsxs)("div",{className:"text-foreground/90",children:[(0,u.jsx)(iN,{children:e.content}),p?(0,u.jsx)("span",{className:"ml-0.5 inline-block h-3.5 w-1.5 animate-pulse bg-foreground align-baseline"}):null]}),(0,u.jsx)(iL,{align:"left",disabled:t||p,onCopy:A,onRegenerate:()=>h(!0),onDelete:()=>o(!0)}),(0,u.jsx)(T.ConfirmDialog,{open:s,onOpenChange:o,title:"删除此回复?",description:"该操作不可撤销。",confirmText:"删除",variant:"danger",onConfirm:()=>{r(e.id),o(!1)}}),(0,u.jsx)(T.ConfirmDialog,{open:l,onOpenChange:h,title:"重新生成此回复?",description:"将丢弃下方所有消息并重新生成。",confirmText:"重新生成",onConfirm:()=>{h(!1),n(e.id)}})]})}function iM({reasoning:e,streaming:t,startedAt:r,completedAt:n,intentExtracting:i,retrievalInFlight:a}){var s,o;let l,h,p,[d,f]=(0,c.useState)(!1),m=function(e,t){let[r,n]=(0,c.useState)(()=>Date.now());return((0,c.useEffect)(()=>{if(!e||t)return;let r=window.setInterval(()=>n(Date.now()),250);return()=>window.clearInterval(r)},[e,t]),e)?Math.max(0,(t??r)-e):null}(r,n),g=null!=m?(s=m,o=!t||!!n,h=Math.floor((l=Math.floor(s/1e3))/60),p=l%60,o?0===h?`用时 ${p} 秒`:`用时 ${h} 分 ${p} 秒`:`${h}:${String(p).padStart(2,"0")}`):null,y=t&&!n,x=e.length>0,w="正在思考";return x?w="深度思考中":a?w="正在检索知识库":i&&(w="检索意图提取"),(0,u.jsxs)(j.Collapsible,{open:d,onOpenChange:f,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",disabled:!x,className:(0,b.cn)("group inline-flex items-center gap-2 rounded-full pl-1.5 pr-2.5 py-1 text-xs font-medium transition-all duration-200",y?"bg-[hsl(var(--primary)/0.08)] text-[hsl(var(--primary))] ring-1 ring-[hsl(var(--primary)/0.25)] shadow-[0_0_0_4px_hsl(var(--primary)/0.06)]":"bg-[hsl(var(--muted)/0.6)] text-muted-foreground hover:bg-[hsl(var(--accent))] hover:text-foreground",!x&&"cursor-default"),"aria-live":y?"polite":"off",children:[(0,u.jsxs)("span",{className:"relative inline-flex h-5 w-5 items-center justify-center",children:[y&&(0,u.jsx)("span",{"aria-hidden":!0,className:"absolute inset-0 rounded-full bg-[hsl(var(--primary))] opacity-40 blur-[6px] animate-thinking-aurora"}),(0,u.jsx)(v.Brain,{className:(0,b.cn)("relative h-3.5 w-3.5",y&&"animate-thinking-icon text-[hsl(var(--primary))]")})]}),y?(0,u.jsx)("span",{className:"animate-text-shimmer bg-[linear-gradient(90deg,hsl(var(--primary)/0.55)_0%,hsl(var(--primary))_50%,hsl(var(--primary)/0.55)_100%)] bg-[length:200%_100%] bg-clip-text text-transparent",children:w}):(0,u.jsx)("span",{children:"已深度思考"}),g&&(0,u.jsxs)("span",{className:(0,b.cn)("tabular-nums text-[11px]",y?"text-[hsl(var(--primary)/0.75)]":"text-muted-foreground/80"),children:["· ",g]}),x&&(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 opacity-60 transition-transform duration-200",d&&"rotate-180",y&&"text-[hsl(var(--primary))]")})]})}),x&&(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 border-l-2 border-[hsl(var(--border))] pl-3 text-xs leading-relaxed text-muted-foreground whitespace-pre-wrap",children:e})})]})}function iB({chunks:e,groups:t}){let[r,n]=(0,c.useState)(!1),i=new Map;e.forEach((e,t)=>{i.set(`${e.docId}#${e.chunkId}`,t+1)});let a=(t??[]).filter(e=>!e.error),s=(t??[]).filter(e=>e.error),o=a.length>=2||s.length>0;return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,u.jsx)(A.BookOpen,{className:"h-3.5 w-3.5"}),"查看 ",e.length," 个引用",o?(0,u.jsxs)("span",{className:"text-muted-foreground/70",children:["· ",a.length," 个知识库",s.length>0?`(${s.length} 失败)`:""]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-3",children:o?(0,u.jsxs)(u.Fragment,{children:[a.map(e=>(0,u.jsx)(iO,{group:e,indexByKey:i},`ok-${e.knowledgeBaseName}`)),s.map(e=>(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--destructive))/0.3] bg-[hsl(var(--destructive))/0.05] px-3 py-2 text-xs text-[hsl(var(--destructive))]",children:[(0,u.jsx)("span",{className:"font-medium",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{className:"ml-2 text-[hsl(var(--destructive))/0.8]",children:["检索失败:",e.error]})]},`err-${e.knowledgeBaseName}`))]}):(0,u.jsx)("div",{className:"space-y-2",children:e.map((e,t)=>(0,u.jsx)(iG,{chunk:e,index:t+1},`${e.docId}-${e.chunkId}`))})})})]})}function iO({group:e,indexByKey:t}){return(0,u.jsxs)("div",{className:"space-y-2",children:[(0,u.jsxs)("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[(0,u.jsx)("span",{className:"text-foreground/80",children:e.knowledgeBaseName}),(0,u.jsxs)("span",{children:["· ",e.chunks.length," 条"]})]}),(0,u.jsx)("div",{className:"space-y-2 border-l-2 border-[hsl(var(--border))] pl-3",children:e.chunks.map(e=>{let r=`${e.docId}#${e.chunkId}`,n=t.get(r)??0;return(0,u.jsx)(iG,{chunk:e,index:n},`${e.docId}-${e.chunkId}`)})})]})}function iG({chunk:e,index:t}){let[r,n]=(0,c.useState)(null),[i,a]=(0,c.useState)(!1),s=e.ossKey?(0,b.extractFileName)(e.ossKey):"未知文件",o=e.chunkType?.toLowerCase()==="image",l=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${P.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:t>0?t:"–"}),(0,u.jsx)("span",{className:"font-medium text-foreground/80",children:s}),(0,u.jsxs)("span",{children:["Chunk #",e.chunkId]}),o&&(0,u.jsx)("span",{className:"rounded bg-primary/10 px-1 py-0.5 text-[10px] font-medium text-primary",children:"IMAGE"}),(0,u.jsx)("span",{className:"ml-auto font-mono",children:e.score.toFixed(4)})]}),o&&l&&(0,u.jsx)("img",{src:l,alt:`Image chunk #${e.chunkId}`,className:"mt-2 max-w-[180px] max-h-[180px] object-contain rounded border border-border cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(l)}),e.content&&(0,u.jsxs)("div",{className:"relative",children:[(0,u.jsx)("p",{className:(0,b.cn)("whitespace-pre-wrap text-xs text-foreground/80 cursor-pointer",!i&&"line-clamp-4",o&&"mt-2"),onClick:()=>a(e=>!e),children:e.content}),!i&&(0,u.jsx)("div",{className:"pointer-events-none absolute bottom-0 left-0 right-0 h-8 bg-gradient-to-t from-[hsl(var(--muted)/0.3)] to-transparent"}),(0,u.jsx)("button",{type:"button",className:"mt-1 text-[10px] text-muted-foreground hover:text-foreground",onClick:()=>a(e=>!e),children:i?"点击收起":"点击展开"})]}),(0,u.jsx)($.Dialog,{open:!!r,onOpenChange:()=>n(null),children:(0,u.jsxs)($.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,u.jsx)($.DialogTitle,{className:"sr-only",children:"图片放大预览"}),r&&(0,u.jsx)("img",{src:r,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function iD({hits:e,query:t}){let[r,n]=(0,c.useState)(!1);return(0,u.jsxs)(j.Collapsible,{open:r,onOpenChange:n,children:[(0,u.jsx)(j.CollapsibleTrigger,{asChild:!0,children:(0,u.jsxs)("button",{type:"button",className:"inline-flex items-center gap-1.5 rounded-md px-2 py-1 text-xs text-muted-foreground transition-colors hover:bg-[hsl(var(--accent))] hover:text-foreground",children:[(0,u.jsx)(v.Brain,{className:"h-3.5 w-3.5"}),"参考 ",e.length," 条记忆",t?(0,u.jsxs)("span",{className:"max-w-[200px] truncate text-muted-foreground/70",children:["· ",t]}):null,(0,u.jsx)(_.ChevronDown,{className:(0,b.cn)("h-3 w-3 transition-transform duration-200",r&&"rotate-180")})]})}),(0,u.jsx)(j.CollapsibleContent,{children:(0,u.jsx)("div",{className:"mt-2 space-y-2",children:e.map((e,t)=>(0,u.jsx)(iU,{hit:e,index:t+1},e.unit.memcell_id??`${t}-${(e.unit.text??"").slice(0,16)}`))})})]})}function iU({hit:e,index:t}){let r=e.unit.memcell_id,n="number"==typeof e.score?e.score:void 0;return(0,u.jsxs)("div",{className:"rounded-md border border-[hsl(var(--border))] bg-[hsl(var(--muted)/0.3)] p-3",children:[(0,u.jsxs)("div",{className:"mb-1.5 flex items-center gap-2 text-xs text-muted-foreground",children:[(0,u.jsx)("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] font-semibold text-primary",children:t}),r?(0,u.jsx)("span",{className:"min-w-0 truncate font-mono text-foreground/80",title:r,children:r}):(0,u.jsx)("span",{className:"text-muted-foreground/70",children:"未命名记忆"}),e.source?(0,u.jsx)("span",{className:"rounded bg-[hsl(var(--muted))] px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:e.source}):null,(0,u.jsx)("span",{className:"ml-auto shrink-0 font-mono",children:void 0!==n?n.toFixed(4):"—"})]}),(0,u.jsx)("p",{className:"line-clamp-4 whitespace-pre-wrap text-xs text-foreground/80",children:e.unit.text})]})}iI.displayName="QaMessage",e.s(["QaChatPanel",0,function({messages:e,isStreaming:t,canSend:r,error:n,onSend:i,onStop:a,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p,emptyState:x,disabledPlaceholder:w}){let[A,v]=(0,c.useState)(""),_=(0,c.useRef)(null),k=(0,c.useRef)(e.length);(0,c.useEffect)(()=>{let t=_.current;if(!t)return;let r=e.length>k.current;(k.current=e.length,r)?requestAnimationFrame(()=>{t.scrollTo({top:t.scrollHeight,behavior:"smooth"})}):t.scrollHeight-t.scrollTop-t.clientHeight<120&&t.scrollTo({top:t.scrollHeight,behavior:"smooth"})},[e]);let C=()=>{let e=A.trim();e&&r&&!t&&(i(e),v(""))};return(0,u.jsxs)("div",{className:"flex h-full min-h-0 flex-1 flex-col bg-[hsl(var(--card))]",children:[(0,u.jsx)("div",{ref:_,role:"log","aria-live":"polite","aria-relevant":"additions text","aria-busy":t,className:"flex-1 space-y-6 overflow-y-auto px-6 py-5",children:0===e.length?(0,u.jsx)("div",{className:"flex h-full min-h-[320px] items-center justify-center",children:(0,u.jsx)(y.EmptyState,{icon:h.MessageSquare,title:x?.title??"开始对话",description:x?.description??"输入问题,系统会先从知识库检索相关内容,再让大模型基于检索结果回答",action:x?.actionLabel&&x?.onAction?(0,u.jsx)(m.Button,{type:"button",onClick:x.onAction,children:x.actionLabel}):void 0})}):e.map(e=>(0,u.jsx)(iI,{message:e,busy:t,onDelete:s,onResend:o,onRegenerate:l,onEditSave:p},e.id))}),(0,u.jsxs)("div",{className:"border-t border-[hsl(var(--border))] bg-[hsl(var(--surface)/0.6)] px-4 py-3",children:[n&&(0,u.jsx)("p",{className:"mb-2 text-xs text-[hsl(var(--destructive))]",children:n}),(0,u.jsxs)("div",{className:"flex items-end gap-2",children:[(0,u.jsx)(g.Textarea,{value:A,onChange:e=>v(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),C())},placeholder:r?"输入问题,Enter 发送,Shift+Enter 换行":w??"请先在左侧选择模型...",disabled:!r,className:(0,b.cn)("min-h-[44px] max-h-40 resize-none text-sm"),rows:1}),t?(0,u.jsx)(m.Button,{type:"button",variant:"outline",size:"icon",onClick:a,title:"停止",children:(0,u.jsx)(f,{className:"h-4 w-4 fill-current"})}):(0,u.jsx)(m.Button,{type:"button",size:"icon",disabled:!r||!A.trim(),onClick:C,title:"发送",children:(0,u.jsx)(d,{className:"h-4 w-4"})})]})]})]})}],821122)},906962,e=>{"use strict";e.s(["newId",0,function(e="id"){return"u">typeof crypto&&"randomUUID"in crypto?crypto.randomUUID():`${e}_${Date.now()}_${Math.random().toString(36).slice(2)}`}])},550657,851024,109012,e=>{"use strict";var t=e.i(44501),r=e.i(101685),n=e.i(506703),i=e.i(497634),a=e.i(51517),s=e.i(358204),o=e.i(730068),l=e.i(942595),u=e.i(153139),c=e.i(766476),h=e.i(636766),p=e.i(166473),d=e.i(870036),f=e.i(543876),m=e.i(392820),g=e.i(247570),y=e.i(307166),b=e.i(876490);function x({value:e,options:a,onChange:o,disabled:c,fetching:p}){let[d,f]=(0,r.useState)(!1),[m,g]=(0,r.useState)(""),y=m.trim(),w=(0,r.useMemo)(()=>{if(!y)return a;let e=y.toLowerCase();return a.filter(t=>t.toLowerCase().includes(e))},[a,y]),A=a.some(e=>e.toLowerCase()===y.toLowerCase()),v=y.length>0&&!A,_=e=>{o(e),g(""),f(!1)};return(0,t.jsxs)(h.Popover,{open:d,onOpenChange:f,children:[(0,t.jsx)(h.PopoverTrigger,{asChild:!0,children:(0,t.jsxs)(l.Button,{type:"button",variant:"outline",role:"combobox","aria-expanded":d,disabled:c,className:"w-full justify-between font-normal",children:[(0,t.jsx)("span",{className:(0,b.cn)("truncate text-left",!e&&"text-[hsl(var(--subtle))]"),children:e||"选择或输入模型名"}),(0,t.jsx)(i.ChevronsUpDown,{className:"h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(h.PopoverContent,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:(0,t.jsxs)(u.Command,{shouldFilter:!1,children:[(0,t.jsx)(u.CommandInput,{placeholder:"搜索或输入模型名",value:m,onValueChange:g}),(0,t.jsxs)(u.CommandList,{children:[0!==w.length||v?null:(0,t.jsx)(u.CommandEmpty,{children:p?"正在拉取模型列表...":0===a.length?"点击「刷新列表」拉取可用模型":"无匹配结果"}),w.length>0&&(0,t.jsx)(u.CommandGroup,{heading:v?"可选模型":void 0,children:w.map(r=>(0,t.jsxs)(u.CommandItem,{value:r,onSelect:()=>_(r),children:[(0,t.jsx)(n.Check,{className:(0,b.cn)("h-4 w-4",e===r?"opacity-100":"opacity-0")}),(0,t.jsx)("span",{className:"truncate",children:r})]},r))}),v&&(0,t.jsx)(u.CommandGroup,{heading:"使用自定义",children:(0,t.jsxs)(u.CommandItem,{value:`__custom__${y}`,onSelect:()=>_(y),children:[(0,t.jsx)(s.Plus,{className:"h-4 w-4 text-[hsl(var(--primary))]"}),(0,t.jsxs)("span",{className:"truncate",children:['使用 "',y,'"']})]})})]})]})})]})}e.s(["LLMModelSelector",0,function({providerId:e,model:n,onProviderChange:i,onModelChange:s,autoSelectFirst:u=!1,providerLabel:h="Provider",modelLabel:b="Model"}){let{data:w=[],isLoading:A}=(0,d.useLLMProviders)(),{data:v,isFetching:_,refetch:k}=function(e,t={}){let{context:r,ready:n}=(0,y.useRuntimeContext)();return(0,f.useQuery)({queryKey:g.queryKeys.llmProviderModels(r.dataScopeKey,e),queryFn:()=>(0,m.fetchProviderModels)(e),enabled:n&&!!e&&(t.enabled??!0),staleTime:3e5,retry:!1})}(e||void 0,{enabled:!!e});(0,r.useEffect)(()=>{if(!u||e||0===w.length)return;let t=w[0];i(t.id,t.defaultModel??"")},[u,e,w]);let C=(0,r.useMemo)(()=>{let t=new Set;for(let e of(n&&t.add(n),v??[]))t.add(e.id);let r=w.find(t=>t.id===e);return r?.defaultModel&&t.add(r.defaultModel),Array.from(t)},[n,v,w,e]);return(0,t.jsxs)("div",{className:"space-y-4",children:[(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:h}),(0,t.jsxs)(p.Select,{value:e,onValueChange:e=>{let t=w.find(t=>t.id===e);i(e,t?.defaultModel??"")},disabled:A||0===w.length,children:[(0,t.jsx)(p.SelectTrigger,{children:(0,t.jsx)(p.SelectValue,{placeholder:A?"加载中...":0===w.length?"请先在「模型提供商」中创建配置":"选择 Provider"})}),(0,t.jsx)(p.SelectContent,{children:w.map(e=>(0,t.jsx)(p.SelectItem,{value:e.id,children:e.name},e.id))})]})]}),(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:b}),(0,t.jsxs)(l.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 px-2 text-xs",disabled:!e||_,onClick:()=>k(),children:[_?(0,t.jsx)(a.Loader2,{className:"mr-1 h-3 w-3 animate-spin"}):(0,t.jsx)(o.RefreshCw,{className:"mr-1 h-3 w-3"}),"刷新列表"]})]}),(0,t.jsx)(x,{value:n,options:C,onChange:s,disabled:!e,fetching:_})]})]})}],550657);var w=e.i(45123);e.s(["SystemPromptInput",0,function({value:e,onChange:r,placeholder:n,helperText:i,rows:a=3,label:s="系统提示词"}){return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)(c.Label,{className:"text-sm font-medium",children:s}),(0,t.jsx)(w.Textarea,{rows:a,value:e,onChange:e=>r(e.target.value),placeholder:n,className:"text-sm"}),i&&(0,t.jsx)("p",{className:"text-xs text-muted-foreground",children:i})]})}],851024);var A=e.i(563805);e.s(["TemperatureSlider",0,function({value:e,onChange:r,min:n=0,max:i=2,step:a=.05,fallback:s=.7,label:o="温度"}){let l=(e??s).toFixed(2);return(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between text-sm",children:[(0,t.jsx)("span",{className:"font-medium",children:o}),(0,t.jsx)("span",{className:"font-mono text-xs text-muted-foreground",children:l})]}),(0,t.jsx)(A.Slider,{value:[e??s],min:n,max:i,step:a,onValueChange:e=>r(e[0]??s)})]})}],109012)},84625,e=>{"use strict";async function*t(e,t){let n=await fetch("/api/v1/llm/chat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e),signal:t});if(!n.ok||!n.body){let e=`Chat request failed with status ${n.status}`,t="STREAM_ERROR";try{let r=await n.json();e=r.message??e,t=r.code??t}catch{}yield{type:"error",code:t,message:e};return}let i=n.body.getReader(),a=new TextDecoder("utf-8"),s="";for(;;){let{value:e,done:t}=await i.read();if(t)break;let n=(s+=a.decode(e,{stream:!0})).indexOf("\n\n");for(;-1!==n;){let e=s.slice(0,n);s=s.slice(n+2);let t=r(e);t&&(yield t),n=s.indexOf("\n\n")}}if(s.trim()){let e=r(s);e&&(yield e)}}function r(e){let t=e.split("\n"),r=[];for(let e of t)!(!e||e.startsWith(":"))&&e.startsWith("data:")&&r.push(e.slice(5).trimStart());if(0===r.length)return null;try{return JSON.parse(r.join("\n"))}catch{return null}}e.s(["streamChat",0,t])},440596,786196,e=>{"use strict";var t=e.i(101685),r=e.i(84625),n=e.i(906962);function i(e,t){let r=e.findIndex(e=>e.id===t);return r<0?e:e.slice(0,r+1)}function a(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice();return n.splice(r,1),n}function s(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return e;let n=e.slice(),i=e[r+1]&&"assistant"===e[r+1].role?2:1;return n.splice(r,i),n}e.s(["findUserAnchorAbove",0,function(e,t){let r=e.findIndex(e=>e.id===t);if(r<0)return null;for(let t=r-1;t>=0;t-=1)if("user"===e[t].role)return e[t];return null},"removeAt",0,a,"removePair",0,s,"truncateUpToAndIncluding",0,i],786196),e.s(["useQaChat",0,function(e){let[o,l]=(0,t.useState)([]),[u,c]=(0,t.useState)(!1),[h,p]=(0,t.useState)(null),d=(0,t.useRef)(null),f=(0,t.useRef)(e.onPersist);f.current=e.onPersist;let m=(0,t.useRef)(o);m.current=o;let g=(0,t.useRef)(e);g.current=e;let y=(0,t.useRef)(u);y.current=u;let b=(0,t.useRef)(new Map),x=(0,t.useRef)(null),w=(0,t.useCallback)(()=>{x.current=null;let e=b.current;if(0===e.size)return;let t=new Map(e);e.clear(),l(e=>e.map(e=>{let r=t.get(e.id);return r?{...e,...r.content?{content:e.content+r.content}:null,...r.reasoning?{reasoning:(e.reasoning??"")+r.reasoning}:null}:e}))},[]),A=(0,t.useCallback)(()=>{if(null===x.current){if("u"<typeof requestAnimationFrame)return void w();x.current=requestAnimationFrame(w)}},[w]),v=(0,t.useCallback)(()=>{null!==x.current&&"u">typeof cancelAnimationFrame&&cancelAnimationFrame(x.current),x.current=null},[]);(0,t.useEffect)(()=>v,[v]);let _=(0,t.useCallback)(()=>{d.current?.abort()},[]),k=(0,t.useCallback)(()=>{d.current?.abort(),m.current=[],l([]),p(null)},[]),C=(0,t.useCallback)(e=>{d.current?.abort(),m.current=e,l(e),p(null)},[]),S=(0,t.useCallback)(async(e,t,n)=>{let i=g.current,a=new AbortController;d.current=a;let s={current:!1},o={current:!1},u=t=>{l(r=>r.map(r=>r.id===e?{...r,...t}:r))};try{let l={activeInstance:i.activeInstance,providerId:i.providerId,model:i.model,messages:t,systemPrompt:i.systemPrompt,temperature:i.temperature,rag:i.rag,...i.memory?{memory:{...i.memory,turnId:n}}:{}};for await(let n of(function(e){try{return"1"===window.localStorage.getItem("tsagent.dev."+e)}catch{return!1}}("logChatRequest")&&(console.groupCollapsed("[chat] outgoing turn"),console.log("assistantId",e),console.log("messages",t),console.log("rag.knowledgeBases",i.rag?.knowledgeBases),console.groupEnd()),(0,r.streamChat)(l,a.signal)))if("query.rewritten"===n.type)u({retrievalQuery:n.query,retrievalQueryRewritten:n.query!==n.original});else if("query.fallback"===n.type)u({retrievalQuery:n.original,retrievalQueryRewritten:!1,queryRewriteFailed:!0,queryRewriteError:n.reason});else if("retrieval.done"===n.type)u({retrievedChunks:n.chunks,retrievalGroups:n.byKnowledgeBase});else if("memory.start"===n.type)u({memoryQuery:n.query});else if("memory.done"===n.type)u({memoryHits:n.hits});else if("memory.save.skipped"===n.type)console.warn("[chat] memory.save.skipped:",n.reason);else if("reasoning.delta"===n.type){let t=b.current.get(e)??{};t.reasoning=(t.reasoning??"")+n.delta,b.current.set(e,t),s.current||(s.current=!0,u({reasoningStartedAt:Date.now()})),A()}else if("content.delta"===n.type){let t=b.current.get(e)??{};t.content=(t.content??"")+n.delta,b.current.set(e,t),s.current&&!o.current&&(o.current=!0,u({reasoningCompletedAt:Date.now()})),A()}else if("error"===n.type){v(),w();let e={status:"error",errorMessage:`${n.code}: ${n.message}`};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e),p(n.message);break}else if("done"===n.type){v(),w();let e={status:"done"};s.current&&!o.current&&(e.reasoningCompletedAt=Date.now()),u(e);break}}catch(r){v(),w();let e=r instanceof DOMException&&"AbortError"===r.name,t=s.current&&!o.current?{reasoningCompletedAt:Date.now()}:void 0;if(e)u({status:"done",...t});else{let e=r instanceof Error?r.message:String(r);u({status:"error",errorMessage:e,...t}),p(e)}}finally{c(!1),d.current=null;let e=f.current;e&&e(m.current)}},[A,w,v]),N=(0,t.useCallback)(async e=>{let t=e.trim();if(!t||y.current)return;let r=g.current;if(!r.providerId||!r.model)return void p("请先选择模型与 Provider");p(null);let i=(0,n.newId)("turn"),a={id:(0,n.newId)(),role:"user",content:t,createdAt:Date.now(),status:"done",turnId:i},s=(0,n.newId)(),o=(r.rag?.knowledgeBases?.length??0)>0,u={id:s,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:o},h=[...m.current,a].map(e=>({role:e.role,content:e.content})),d=[...m.current,a,u];m.current=d,l(d),c(!0),await S(s,h,i)},[S]),E=(0,t.useCallback)(async e=>{if(y.current)return;let t=g.current;if(!t.providerId||!t.model)return void p("请先选择模型与 Provider");let r=i(m.current,e),a=r[r.length-1];if(!a||"user"!==a.role)return;let s=a.turnId??(0,n.newId)("turn");if(!a.turnId){let e=r.length-1;r[e]={...a,turnId:s}}p(null);let o=(0,n.newId)(),u=(t.rag?.knowledgeBases?.length??0)>0,h={id:o,role:"assistant",content:"",reasoning:"",createdAt:Date.now(),status:"streaming",usingRag:u},d=r.map(e=>({role:e.role,content:e.content})),f=[...r,h];m.current=f,l(f),c(!0),await S(o,d,s)},[S]);return{messages:o,isStreaming:u,error:h,send:N,reissueTurn:E,deleteMessage:(0,t.useCallback)((e,t)=>{if(y.current)return;let r=m.current,n=r.find(t=>t.id===e);if(!n)return;let i="user"===n.role&&t?.withNextAssistant?s(r,e):a(r,e);m.current=i,l(i),f.current?.(i)},[]),editUserMessage:(0,t.useCallback)((e,t)=>{let r=m.current,n=r.findIndex(t=>t.id===e);if(n<0||"user"!==r[n].role)return null;let i=r.slice();return i[n]={...r[n],content:t},m.current=i,l(i),e},[]),stop:_,clear:k,setMessages:C}}],440596)},567730,e=>{"use strict";var t=e.i(307166);e.s(["useActiveInstance",0,function(){let{context:e,ready:r}=(0,t.useRuntimeContext)();return{activeInstance:e.activeInstance,ready:r,dataScopeKey:e.dataScopeKey,configRevision:e.configRevision}}])}]);
|
package/dist/dashboard-runtime/dashboard/.next/static/chunks/{06qgro8gk178k.js → 12ju37ebul3bw.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,799877,e=>{"use strict";var r=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:t,description:s,action:a,illustration:n}){return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[n??(0,r.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,r.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,r.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:t}),(0,r.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:s}),a&&(0,r.jsx)("div",{children:a})]})}])},810414,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(876490);let a=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",e),...t}));a.displayName="Card",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",e),...t})).displayName="CardHeader",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-base font-semibold leading-tight",e),...t})).displayName="CardTitle",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-sm text-[hsl(var(--muted-foreground))]",e),...t})).displayName="CardDescription";let n=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("px-5 py-4",e),...t}));n.displayName="CardContent",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",e),...t})).displayName="CardFooter";let i=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",e),...t}));i.displayName="CardInteractive",e.s(["Card",0,a,"CardContent",0,n,"CardInteractive",0,i])},900462,e=>{"use strict";let r=(0,e.i(801685).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,r],900462)},708484,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(480883),a=e.i(988310),n=e.i(506703),i=e.i(801685);let l=(0,i.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var o=e.i(882652);let d=(0,i.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var c=e.i(396416),m=e.i(900462),u=e.i(546398),x=e.i(187014),h=e.i(942595),p=e.i(723888),g=e.i(321562),f=e.i(636766),v=e.i(12122),j=e.i(603106),b=e.i(585684),y=e.i(433042),N=e.i(74540);function w(e,r,t){let s=(0,y.assembleRetrievalConfiguration)(r,void 0)??{};t&&(s.filter=t);let a={knowledgeBaseName:e,retrievalQuery:"IMAGE"===r.queryType&&r.imageInput?{type:"IMAGE",imageBase64:r.imageInput,...r.query?{text:r.query}:{}}:{type:"TEXT",text:r.query??""}};return r.subspace?.length&&(a.subspace=r.subspace),Object.keys(s).length>0&&(a.retrievalConfiguration=s),a}function T(e,r){let t=r?.retrievalConfiguration?.searchType??["DENSE_VECTOR"],s=r?.retrievalConfiguration?.rerankingConfiguration,a=r?.retrievalConfiguration?.denseVectorSearchConfiguration,n=r?.retrievalConfiguration?.fullTextSearchConfiguration,i=s?.rrfConfiguration,l=s?.weightConfiguration,o=s?.modelConfiguration,d=t.includes("DENSE_VECTOR")&&t.includes("FULL_TEXT"),c=s?.type==="RRF"||s?.type==="WEIGHT"?d?s.type:"MODEL":s?.type==="MODEL"?"MODEL":"WEIGHT",m=a?.numberOfResults??s?.numberOfResults??20,u=n?.numberOfResults??s?.numberOfResults??20,x=s?.numberOfResults??20;return{knowledgeBaseName:e,queryType:"TEXT",query:"",imageInput:"",subspace:[],topK:x,denseTopK:m,fullTextTopK:u,rerankTopK:x,searchType:t,rerankType:c,rrfK:i?.k??60,rrfDenseWeight:i?.denseVectorSearchWeight??.5,rrfFullTextWeight:i?.fullTextSearchWeight??.5,weightDense:l?.denseVectorSearchWeight??.5,weightFullText:l?.fullTextSearchWeight??.5,modelProvider:o?.provider??"bailian",modelName:o?.model??"gte-rerank-v2"}}function C({buildRequestJson:e}){let[s,a]=(0,t.useState)(!1),[i,d]=(0,t.useState)(!1),c=s?JSON.stringify(e(),null,2):"",m=async()=>{try{await navigator.clipboard.writeText(c),d(!0),x.toast.success("已复制请求体"),setTimeout(()=>d(!1),1500)}catch{x.toast.error("复制失败,请手动选择")}};return(0,r.jsxs)(f.Popover,{open:s,onOpenChange:a,children:[(0,r.jsx)(v.TooltipProvider,{delayDuration:200,children:(0,r.jsxs)(v.Tooltip,{children:[(0,r.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,r.jsx)(f.PopoverTrigger,{asChild:!0,children:(0,r.jsx)(h.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))]","aria-label":"查看请求体",children:(0,r.jsx)(l,{className:"h-3.5 w-3.5"})})})}),(0,r.jsx)(v.TooltipContent,{side:"left",children:"查看 / 复制请求体 JSON"})]})}),(0,r.jsxs)(f.PopoverContent,{align:"end",sideOffset:6,className:"w-[420px] max-w-[90vw] p-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border-light))] px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-[hsl(var(--foreground))]",children:"请求体(实时预览)"}),(0,r.jsx)(h.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",onClick:m,children:i?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.Check,{className:"h-3 w-3"})," 已复制"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Copy,{className:"h-3 w-3"})," 复制"]})})]}),(0,r.jsx)("pre",{className:"max-h-80 overflow-auto px-3 py-2 font-mono text-[11px] leading-snug text-[hsl(var(--foreground))]",children:c})]})]})}e.s(["RetrievalForm",0,function({knowledgeBaseName:e,knowledgeBase:n,onSubmit:i,isLoading:l}){let o=(0,t.useRef)(null),f=(0,t.useRef)(null),[v,y]=(0,t.useState)(""),[F,k]=(0,t.useState)(!1),R=(0,s.useForm)({resolver:(0,a.zodResolver)(N.retrievalSchema),defaultValues:T(e,n)}),I=n?.multimodal===!0,E=R.watch("queryType")??"TEXT",S=I?E:"TEXT";return(0,r.jsx)(g.Form,{...R,children:(0,r.jsxs)("form",{onSubmit:R.handleSubmit(function(r){i(w(e,r,o.current?.getFilter()))}),className:"space-y-5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("h3",{className:"text-base font-semibold",children:"检索测试"}),(0,r.jsx)(C,{buildRequestJson:()=>w(e,R.getValues(),o.current?.getFilter())})]}),I&&(0,r.jsx)(g.FormField,{control:R.control,name:"queryType",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"查询类型"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)(j.ToggleGroup,{type:"single",value:e.value??"TEXT",onValueChange:r=>{r&&r!==e.value&&(e.onChange(r),R.setValue("query",""),R.setValue("imageInput",""))},className:"grid w-full grid-cols-2 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,r.jsx)(j.ToggleGroupItem,{value:"TEXT",className:"h-9",children:"TEXT"}),(0,r.jsx)(j.ToggleGroupItem,{value:"IMAGE",className:"h-9",children:"IMAGE"})]})})]})}),"TEXT"===S?(0,r.jsx)(g.FormField,{control:R.control,name:"query",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"查询内容"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(c.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-[hsl(var(--muted-foreground))]"}),(0,r.jsx)(p.Input,{placeholder:"输入检索查询...",className:"pl-9",maxLength:128,...e})]})}),(0,r.jsx)(g.FormMessage,{})]})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.FormField,{control:R.control,name:"imageInput",render:({field:e})=>{let t=["image/jpeg","image/png","image/webp","image/bmp","image/tiff"],s=r=>{if(!t.includes(r.type))return void x.toast.error("不支持的图片格式,请选择 JPG/PNG/WebP/BMP/TIFF 格式");let s=new FileReader;s.onload=()=>{e.onChange(s.result),y(r.name||"pasted-image")},s.onerror=()=>{x.toast.error("图片读取失败,请重试")},s.readAsDataURL(r)};return(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"图片输入"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)("div",{onPaste:e=>{let r=e.clipboardData?.items;if(r){for(let t of Array.from(r))if(t.type.startsWith("image/")){e.preventDefault();let r=t.getAsFile();r&&s(r);return}}},tabIndex:0,className:"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md",children:[(0,r.jsx)("input",{ref:f,type:"file",accept:"image/jpeg,image/png,image/webp,image/bmp,image/tiff",className:"hidden",onChange:e=>{let r=e.target.files?.[0];r&&s(r)}}),e.value?(0,r.jsxs)("div",{className:"group border border-border rounded-md overflow-hidden",children:[(0,r.jsxs)("div",{className:"relative flex justify-center bg-muted/30 p-3",children:[(0,r.jsx)("img",{src:e.value,alt:"已选择的图片预览",className:"max-h-[200px] max-w-full rounded object-contain"}),(0,r.jsxs)("div",{className:"absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-3",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>f.current?.click(),className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-foreground hover:bg-white flex items-center gap-1.5",children:[(0,r.jsx)(m.Upload,{className:"w-3.5 h-3.5"}),"重新选择"]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{e.onChange(""),y(""),f.current&&(f.current.value="")},className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-destructive hover:bg-white flex items-center gap-1.5",children:[(0,r.jsx)(u.X,{className:"w-3.5 h-3.5"}),"删除"]})]})]}),(0,r.jsxs)("div",{className:"px-3 py-2 border-t border-border flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(d,{className:"w-3.5 h-3.5"}),(0,r.jsx)("span",{className:"truncate",children:v})]})]}):(0,r.jsxs)("div",{onClick:()=>f.current?.click(),onDragOver:e=>{e.preventDefault(),k(!0)},onDragLeave:()=>k(!1),onDrop:e=>{e.preventDefault(),k(!1);let r=e.dataTransfer.files[0];r&&s(r)},className:`border-2 border-dashed rounded-lg p-8 flex flex-col items-center gap-3 cursor-pointer transition-colors ${F?"border-primary bg-accent/50":"border-border hover:border-primary/50 hover:bg-accent/50"}`,children:[(0,r.jsx)(m.Upload,{className:"w-8 h-8 text-muted-foreground"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"点击、拖拽或粘贴图片到此处"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"支持 JPG/PNG/WebP/BMP/TIFF"})]})]},E)}),(0,r.jsx)(g.FormMessage,{})]})}}),(0,r.jsx)(g.FormField,{control:R.control,name:"query",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"补充文本(可选)"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsx)(p.Input,{placeholder:"补充文本描述...",maxLength:128,...e})}),(0,r.jsx)(g.FormMessage,{})]})})]}),(0,r.jsx)(b.RetrievalParamsFields,{form:R,knowledgeBase:n,filterRef:o}),(0,r.jsxs)(h.Button,{type:"submit",disabled:l,className:"w-full",children:[(0,r.jsx)(c.Search,{className:"mr-2 h-4 w-4"}),l?"检索中...":"执行检索"]})]})})},"assembleRetrievalRequest",0,w,"retrievalDefaultsFromKB",0,T],708484)},34069,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(465581),a=e.i(187014),n=e.i(831211),i=e.i(107663),l=e.i(342410),o=e.i(137500),d=e.i(593321);async function c(e){let{knowledgeBaseName:r,...t}=e;return(0,d.apiPost)(`/api/v1/knowledge-bases/${encodeURIComponent(r)}/retrieve`,t)}var m=e.i(708484);let u=(0,e.i(801685).default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var x=e.i(799877),h=e.i(810414),p=e.i(666458),g=e.i(433253),f=e.i(136283);function v({result:e,rank:s}){let[a,n]=(0,t.useState)(null),i=e.ossKey?.split("/").pop()||e.ossKey||"未知文件",l=e.chunkType?.toLowerCase()==="image",o=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${f.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,r.jsxs)(h.Card,{className:"transition-shadow hover:shadow-sm",children:[(0,r.jsxs)(h.CardContent,{className:"p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] text-xs font-semibold text-primary",children:s}),(0,r.jsx)(p.Badge,{variant:"outline",className:"font-mono text-xs",children:e.score.toFixed(4)}),e.chunkType&&(0,r.jsx)(p.Badge,{variant:l?"default":"secondary",className:"text-xs",children:e.chunkType.toUpperCase()})]}),e.subspace&&(0,r.jsx)(p.Badge,{variant:"secondary",className:"text-xs",children:e.subspace})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,r.jsx)("span",{className:"font-medium text-foreground",children:i}),(0,r.jsxs)("span",{children:["Chunk #",e.chunkId]})]}),l&&e.imageBase64&&o&&(0,r.jsx)("img",{src:o,alt:"检索结果图片",className:"max-w-[200px] rounded-md cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(o)}),e.content&&(0,r.jsx)("p",{className:`leading-relaxed text-foreground/90 whitespace-pre-wrap ${l?"text-xs":"text-sm line-clamp-6"}`,children:e.content}),e.metadata&&Object.keys(e.metadata).length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:Object.entries(e.metadata).map(([e,t])=>(0,r.jsxs)(p.Badge,{variant:"secondary",className:"text-xs font-normal",children:[e,": ",String(t)]},e))})]}),(0,r.jsx)(g.Dialog,{open:!!a,onOpenChange:()=>n(null),children:(0,r.jsxs)(g.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,r.jsx)(g.DialogTitle,{className:"sr-only",children:"图片放大预览"}),a&&(0,r.jsx)("img",{src:a,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function j({results:e,elapsedMs:t}){return null===e?null:0===e.length?(0,r.jsx)(x.EmptyState,{icon:u,title:"没有检索到结果",description:"尝试调整查询内容或检索参数"}):(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsxs)("span",{children:["共 ",(0,r.jsx)("strong",{className:"text-foreground",children:e.length})," 条结果"]}),void 0!==t&&(0,r.jsxs)("span",{children:["· 耗时 ",t,"ms"]})]}),(0,r.jsx)("div",{className:"space-y-3",children:e.map((e,t)=>(0,r.jsx)(v,{result:e,rank:t+1},`${e.docId}-${e.chunkId}`))})]})}e.s(["default",0,function(){let e=decodeURIComponent((0,s.useParams)().name),{data:d,isLoading:u}=(0,l.useKnowledgeBase)(e),x=(0,o.useMutation)({mutationFn:e=>c(e)}),[h,p]=(0,t.useState)(null),[g,f]=(0,t.useState)(),v=(0,t.useCallback)(async e=>{let r=Date.now();try{let t=await x.mutateAsync(e);p(t.retrievalResults),f(Date.now()-r)}catch(r){let e=r instanceof Error?r.message:"检索失败";a.toast.error(e)}},[x]);return u?(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(n.Skeleton,{className:"h-8 w-48"}),(0,r.jsx)(n.Skeleton,{className:"h-64 w-full"})]}):(0,r.jsx)(i.WorkbenchLayout,{asideWidth:400,aside:(0,r.jsx)(m.RetrievalForm,{knowledgeBaseName:e,knowledgeBase:d??void 0,onSubmit:v,isLoading:x.isPending}),children:(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4",children:(0,r.jsx)(j,{results:h,elapsedMs:g})})})}],34069)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,799877,e=>{"use strict";var r=e.i(44501);e.s(["EmptyState",0,function({icon:e,title:t,description:s,action:a,illustration:n}){return(0,r.jsxs)("div",{className:"flex flex-col items-center justify-center py-16 px-4 text-center",children:[n??(0,r.jsx)("div",{className:"mb-5 flex h-20 w-20 items-center justify-center rounded-full bg-[hsl(var(--primary)/0.08)] ring-8 ring-[hsl(var(--primary)/0.04)]",children:(0,r.jsx)(e,{className:"text-primary",size:36,strokeWidth:1.75})}),(0,r.jsx)("h3",{className:"mb-2 text-base font-semibold text-foreground",children:t}),(0,r.jsx)("p",{className:"mb-6 max-w-sm text-sm text-muted-foreground",children:s}),a&&(0,r.jsx)("div",{children:a})]})}])},810414,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(876490);let a=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm",e),...t}));a.displayName="Card",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex flex-col space-y-1 px-5 pt-5 pb-3 border-b border-[hsl(var(--border-light))]",e),...t})).displayName="CardHeader",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-base font-semibold leading-tight",e),...t})).displayName="CardTitle",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("text-sm text-[hsl(var(--muted-foreground))]",e),...t})).displayName="CardDescription";let n=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("px-5 py-4",e),...t}));n.displayName="CardContent",t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("flex items-center px-5 py-3 border-t border-[hsl(var(--border-light))]",e),...t})).displayName="CardFooter";let i=t.forwardRef(({className:e,...t},a)=>(0,r.jsx)("div",{ref:a,className:(0,s.cn)("rounded-lg border border-[hsl(var(--border))] bg-[hsl(var(--card))] text-[hsl(var(--card-foreground))] shadow-sm","transition-[transform,box-shadow,border-color] duration-200 ease-[cubic-bezier(0.34,1.56,0.64,1)]","hover:border-[hsl(var(--primary))] hover:shadow-primary-soft",e),...t}));i.displayName="CardInteractive",e.s(["Card",0,a,"CardContent",0,n,"CardInteractive",0,i])},900462,e=>{"use strict";let r=(0,e.i(801685).default)("upload",[["path",{d:"M12 3v12",key:"1x0j5s"}],["path",{d:"m17 8-5-5-5 5",key:"7q97r8"}],["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}]]);e.s(["Upload",0,r],900462)},708484,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(480883),a=e.i(988310),n=e.i(506703),i=e.i(801685);let l=(0,i.default)("code-xml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);var o=e.i(882652);let d=(0,i.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var c=e.i(396416),m=e.i(900462),u=e.i(546398),x=e.i(187014),h=e.i(942595),p=e.i(723888),g=e.i(321562),f=e.i(636766),v=e.i(12122),j=e.i(603106),b=e.i(585684),y=e.i(433042),N=e.i(74540);function w(e,r,t){let s=(0,y.assembleRetrievalConfiguration)(r,void 0)??{};t&&(s.filter=t);let a={knowledgeBaseName:e,retrievalQuery:"IMAGE"===r.queryType&&r.imageInput?{type:"IMAGE",imageBase64:r.imageInput,...r.query?{text:r.query}:{}}:{type:"TEXT",text:r.query??""}};return r.subspace?.length&&(a.subspace=r.subspace),Object.keys(s).length>0&&(a.retrievalConfiguration=s),a}function T(e,r){let t=r?.retrievalConfiguration?.searchType??["DENSE_VECTOR"],s=r?.retrievalConfiguration?.rerankingConfiguration,a=r?.retrievalConfiguration?.denseVectorSearchConfiguration,n=r?.retrievalConfiguration?.fullTextSearchConfiguration,i=s?.rrfConfiguration,l=s?.weightConfiguration,o=s?.modelConfiguration,d=t.includes("DENSE_VECTOR")&&t.includes("FULL_TEXT"),c=s?.type==="RRF"||s?.type==="WEIGHT"?d?s.type:"MODEL":s?.type==="MODEL"?"MODEL":"WEIGHT",m=a?.numberOfResults??s?.numberOfResults??20,u=n?.numberOfResults??s?.numberOfResults??20,x=s?.numberOfResults??20;return{knowledgeBaseName:e,queryType:"TEXT",query:"",imageInput:"",subspace:[],topK:x,denseTopK:m,fullTextTopK:u,rerankTopK:x,searchType:t,rerankType:c,rrfK:i?.k??60,rrfDenseWeight:i?.denseVectorSearchWeight??.5,rrfFullTextWeight:i?.fullTextSearchWeight??.5,weightDense:l?.denseVectorSearchWeight??.5,weightFullText:l?.fullTextSearchWeight??.5,modelProvider:o?.provider??"bailian",modelName:o?.model??"gte-rerank-v2"}}function C({buildRequestJson:e}){let[s,a]=(0,t.useState)(!1),[i,d]=(0,t.useState)(!1),c=s?JSON.stringify(e(),null,2):"",m=async()=>{try{await navigator.clipboard.writeText(c),d(!0),x.toast.success("已复制请求体"),setTimeout(()=>d(!1),1500)}catch{x.toast.error("复制失败,请手动选择")}};return(0,r.jsxs)(f.Popover,{open:s,onOpenChange:a,children:[(0,r.jsx)(v.TooltipProvider,{delayDuration:200,children:(0,r.jsxs)(v.Tooltip,{children:[(0,r.jsx)(v.TooltipTrigger,{asChild:!0,children:(0,r.jsx)(f.PopoverTrigger,{asChild:!0,children:(0,r.jsx)(h.Button,{type:"button",variant:"ghost",size:"icon",className:"h-7 w-7 text-[hsl(var(--muted-foreground))] hover:text-[hsl(var(--foreground))]","aria-label":"查看请求体",children:(0,r.jsx)(l,{className:"h-3.5 w-3.5"})})})}),(0,r.jsx)(v.TooltipContent,{side:"left",children:"查看 / 复制请求体 JSON"})]})}),(0,r.jsxs)(f.PopoverContent,{align:"end",sideOffset:6,className:"w-[420px] max-w-[90vw] p-0",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between border-b border-[hsl(var(--border-light))] px-3 py-2",children:[(0,r.jsx)("span",{className:"text-xs font-semibold text-[hsl(var(--foreground))]",children:"请求体(实时预览)"}),(0,r.jsx)(h.Button,{type:"button",variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",onClick:m,children:i?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.Check,{className:"h-3 w-3"})," 已复制"]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(o.Copy,{className:"h-3 w-3"})," 复制"]})})]}),(0,r.jsx)("pre",{className:"max-h-80 overflow-auto px-3 py-2 font-mono text-[11px] leading-snug text-[hsl(var(--foreground))]",children:c})]})]})}e.s(["RetrievalForm",0,function({knowledgeBaseName:e,knowledgeBase:n,onSubmit:i,isLoading:l}){let o=(0,t.useRef)(null),f=(0,t.useRef)(null),[v,y]=(0,t.useState)(""),[F,k]=(0,t.useState)(!1),R=(0,s.useForm)({resolver:(0,a.zodResolver)(N.retrievalSchema),defaultValues:T(e,n)}),I=n?.multimodal===!0,E=R.watch("queryType")??"TEXT",S=I?E:"TEXT";return(0,r.jsx)(g.Form,{...R,children:(0,r.jsxs)("form",{onSubmit:R.handleSubmit(function(r){i(w(e,r,o.current?.getFilter()))}),className:"space-y-5",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsx)("h3",{className:"text-base font-semibold",children:"检索测试"}),(0,r.jsx)(C,{buildRequestJson:()=>w(e,R.getValues(),o.current?.getFilter())})]}),I&&(0,r.jsx)(g.FormField,{control:R.control,name:"queryType",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"查询类型"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)(j.ToggleGroup,{type:"single",value:e.value??"TEXT",onValueChange:r=>{r&&r!==e.value&&(e.onChange(r),R.setValue("query",""),R.setValue("imageInput",""))},className:"grid w-full grid-cols-2 gap-0 overflow-hidden rounded-lg border border-border bg-[hsl(var(--muted)/0.4)] p-0 sm:max-w-md",children:[(0,r.jsx)(j.ToggleGroupItem,{value:"TEXT",className:"h-9",children:"TEXT"}),(0,r.jsx)(j.ToggleGroupItem,{value:"IMAGE",className:"h-9",children:"IMAGE"})]})})]})}),"TEXT"===S?(0,r.jsx)(g.FormField,{control:R.control,name:"query",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"查询内容"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)(c.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-[hsl(var(--muted-foreground))]"}),(0,r.jsx)(p.Input,{placeholder:"输入检索查询...",className:"pl-9",maxLength:128,...e})]})}),(0,r.jsx)(g.FormMessage,{})]})}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(g.FormField,{control:R.control,name:"imageInput",render:({field:e})=>{let t=["image/jpeg","image/png","image/webp","image/bmp","image/tiff"],s=r=>{if(!t.includes(r.type))return void x.toast.error("不支持的图片格式,请选择 JPG/PNG/WebP/BMP/TIFF 格式");let s=new FileReader;s.onload=()=>{e.onChange(s.result),y(r.name||"pasted-image")},s.onerror=()=>{x.toast.error("图片读取失败,请重试")},s.readAsDataURL(r)};return(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"图片输入"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsxs)("div",{onPaste:e=>{let r=e.clipboardData?.items;if(r){for(let t of Array.from(r))if(t.type.startsWith("image/")){e.preventDefault();let r=t.getAsFile();r&&s(r);return}}},tabIndex:0,className:"outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-md",children:[(0,r.jsx)("input",{ref:f,type:"file",accept:"image/jpeg,image/png,image/webp,image/bmp,image/tiff",className:"hidden",onChange:e=>{let r=e.target.files?.[0];r&&s(r)}}),e.value?(0,r.jsxs)("div",{className:"group border border-border rounded-md overflow-hidden",children:[(0,r.jsxs)("div",{className:"relative flex justify-center bg-muted/30 p-3",children:[(0,r.jsx)("img",{src:e.value,alt:"已选择的图片预览",className:"max-h-[200px] max-w-full rounded object-contain"}),(0,r.jsxs)("div",{className:"absolute inset-0 bg-black/40 opacity-0 group-hover:opacity-100 transition-opacity flex items-center justify-center gap-3",children:[(0,r.jsxs)("button",{type:"button",onClick:()=>f.current?.click(),className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-foreground hover:bg-white flex items-center gap-1.5",children:[(0,r.jsx)(m.Upload,{className:"w-3.5 h-3.5"}),"重新选择"]}),(0,r.jsxs)("button",{type:"button",onClick:()=>{e.onChange(""),y(""),f.current&&(f.current.value="")},className:"px-3 py-1.5 rounded bg-white/90 text-sm font-medium text-destructive hover:bg-white flex items-center gap-1.5",children:[(0,r.jsx)(u.X,{className:"w-3.5 h-3.5"}),"删除"]})]})]}),(0,r.jsxs)("div",{className:"px-3 py-2 border-t border-border flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsx)(d,{className:"w-3.5 h-3.5"}),(0,r.jsx)("span",{className:"truncate",children:v})]})]}):(0,r.jsxs)("div",{onClick:()=>f.current?.click(),onDragOver:e=>{e.preventDefault(),k(!0)},onDragLeave:()=>k(!1),onDrop:e=>{e.preventDefault(),k(!1);let r=e.dataTransfer.files[0];r&&s(r)},className:`border-2 border-dashed rounded-lg p-8 flex flex-col items-center gap-3 cursor-pointer transition-colors ${F?"border-primary bg-accent/50":"border-border hover:border-primary/50 hover:bg-accent/50"}`,children:[(0,r.jsx)(m.Upload,{className:"w-8 h-8 text-muted-foreground"}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:"点击、拖拽或粘贴图片到此处"}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"支持 JPG/PNG/WebP/BMP/TIFF"})]})]},E)}),(0,r.jsx)(g.FormMessage,{})]})}}),(0,r.jsx)(g.FormField,{control:R.control,name:"query",render:({field:e})=>(0,r.jsxs)(g.FormItem,{children:[(0,r.jsx)(g.FormLabel,{children:"补充文本(可选)"}),(0,r.jsx)(g.FormControl,{children:(0,r.jsx)(p.Input,{placeholder:"补充文本描述...",maxLength:128,...e})}),(0,r.jsx)(g.FormMessage,{})]})})]}),(0,r.jsx)(b.RetrievalParamsFields,{form:R,knowledgeBase:n,filterRef:o}),(0,r.jsxs)(h.Button,{type:"submit",disabled:l,className:"w-full",children:[(0,r.jsx)(c.Search,{className:"mr-2 h-4 w-4"}),l?"检索中...":"执行检索"]})]})})},"assembleRetrievalRequest",0,w,"retrievalDefaultsFromKB",0,T],708484)},34069,e=>{"use strict";var r=e.i(44501),t=e.i(101685),s=e.i(465581),a=e.i(187014),n=e.i(831211),i=e.i(107663),l=e.i(342410),o=e.i(137500),d=e.i(593321);async function c(e){let{knowledgeBaseName:r,...t}=e;return(0,d.apiPost)(`/api/v1/knowledge-bases/${encodeURIComponent(r)}/retrieve`,t)}var m=e.i(708484);let u=(0,e.i(801685).default)("file-search",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]);var x=e.i(799877),h=e.i(810414),p=e.i(666458),g=e.i(433253),f=e.i(136283),v=e.i(876490);function j({result:e,rank:s}){let[a,n]=(0,t.useState)(null),i=e.ossKey?(0,v.extractFileName)(e.ossKey):"未知文件",l=e.chunkType?.toLowerCase()==="image",o=e.imageBase64?e.imageBase64.startsWith("data:")?e.imageBase64:`${f.IMAGE_FALLBACK_DATA_PREFIX}${e.imageBase64}`:void 0;return(0,r.jsxs)(h.Card,{className:"transition-shadow hover:shadow-sm",children:[(0,r.jsxs)(h.CardContent,{className:"p-4 space-y-3",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:"flex h-6 w-6 items-center justify-center rounded-full bg-[hsl(var(--primary-50))] text-xs font-semibold text-primary",children:s}),(0,r.jsx)(p.Badge,{variant:"outline",className:"font-mono text-xs",children:e.score.toFixed(4)}),e.chunkType&&(0,r.jsx)(p.Badge,{variant:l?"default":"secondary",className:"text-xs",children:e.chunkType.toUpperCase()})]}),e.subspace&&(0,r.jsx)(p.Badge,{variant:"secondary",className:"text-xs",children:e.subspace})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 text-xs text-muted-foreground",children:[(0,r.jsx)("span",{className:"font-medium text-foreground",children:i}),(0,r.jsxs)("span",{children:["Chunk #",e.chunkId]})]}),l&&e.imageBase64&&o&&(0,r.jsx)("img",{src:o,alt:"检索结果图片",className:"max-w-[200px] rounded-md cursor-pointer hover:opacity-80 transition-opacity",onClick:()=>n(o)}),e.content&&(0,r.jsx)("p",{className:`leading-relaxed text-foreground/90 whitespace-pre-wrap ${l?"text-xs":"text-sm line-clamp-6"}`,children:e.content}),e.metadata&&Object.keys(e.metadata).length>0&&(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5 pt-1",children:Object.entries(e.metadata).map(([e,t])=>(0,r.jsxs)(p.Badge,{variant:"secondary",className:"text-xs font-normal",children:[e,": ",String(t)]},e))})]}),(0,r.jsx)(g.Dialog,{open:!!a,onOpenChange:()=>n(null),children:(0,r.jsxs)(g.DialogContent,{className:"max-w-[90vw] max-h-[90vh] p-2 flex items-center justify-center border-none bg-black/90 data-[state=open]:animate-none data-[state=closed]:animate-none duration-0",children:[(0,r.jsx)(g.DialogTitle,{className:"sr-only",children:"图片放大预览"}),a&&(0,r.jsx)("img",{src:a,alt:"放大预览",className:"max-w-full max-h-[85vh] object-contain"})]})})]})}function b({results:e,elapsedMs:t}){return null===e?null:0===e.length?(0,r.jsx)(x.EmptyState,{icon:u,title:"没有检索到结果",description:"尝试调整查询内容或检索参数"}):(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,r.jsxs)("span",{children:["共 ",(0,r.jsx)("strong",{className:"text-foreground",children:e.length})," 条结果"]}),void 0!==t&&(0,r.jsxs)("span",{children:["· 耗时 ",t,"ms"]})]}),(0,r.jsx)("div",{className:"space-y-3",children:e.map((e,t)=>(0,r.jsx)(j,{result:e,rank:t+1},`${e.docId}-${e.chunkId}`))})]})}e.s(["default",0,function(){let e=decodeURIComponent((0,s.useParams)().name),{data:d,isLoading:u}=(0,l.useKnowledgeBase)(e),x=(0,o.useMutation)({mutationFn:e=>c(e)}),[h,p]=(0,t.useState)(null),[g,f]=(0,t.useState)(),v=(0,t.useCallback)(async e=>{let r=Date.now();try{let t=await x.mutateAsync(e);p(t.retrievalResults),f(Date.now()-r)}catch(r){let e=r instanceof Error?r.message:"检索失败";a.toast.error(e)}},[x]);return u?(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)(n.Skeleton,{className:"h-8 w-48"}),(0,r.jsx)(n.Skeleton,{className:"h-64 w-full"})]}):(0,r.jsx)(i.WorkbenchLayout,{asideWidth:400,aside:(0,r.jsx)(m.RetrievalForm,{knowledgeBaseName:e,knowledgeBase:d??void 0,onSubmit:v,isLoading:x.isPending}),children:(0,r.jsx)("div",{className:"min-h-0 flex-1 overflow-y-auto px-7 py-5 max-md:px-4",children:(0,r.jsx)(b,{results:h,elapsedMs:g})})})}],34069)}]);
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
DialogTitle,
|
|
31
31
|
} from "@/components/ui/dialog";
|
|
32
32
|
import { ConfirmDialog } from "@/components/shared/confirm-dialog";
|
|
33
|
-
import { cn } from "@/lib/utils";
|
|
33
|
+
import { cn, extractFileName } from "@/lib/utils";
|
|
34
34
|
import { IMAGE_FALLBACK_DATA_PREFIX } from "@/lib/constants";
|
|
35
35
|
import type {
|
|
36
36
|
ChatMessage,
|
|
@@ -927,8 +927,7 @@ function GroupedChunkList({
|
|
|
927
927
|
function ChunkCard({ chunk, index }: { chunk: RetrievedChunk; index: number }) {
|
|
928
928
|
const [zoomedImage, setZoomedImage] = useState<string | null>(null);
|
|
929
929
|
const [expanded, setExpanded] = useState(false);
|
|
930
|
-
const fileName =
|
|
931
|
-
chunk.ossKey?.split("/").pop() || chunk.ossKey || "未知文件";
|
|
930
|
+
const fileName = chunk.ossKey ? extractFileName(chunk.ossKey) : "未知文件";
|
|
932
931
|
|
|
933
932
|
const isImageChunk = chunk.chunkType?.toLowerCase() === "image";
|
|
934
933
|
const imageSrc = chunk.imageBase64
|
|
@@ -4,6 +4,7 @@ import { Badge } from "@/components/ui/badge";
|
|
|
4
4
|
import { Dialog, DialogContent, DialogTitle } from "@/components/ui/dialog";
|
|
5
5
|
import type { RetrievalResult } from "@/types/retrieval";
|
|
6
6
|
import { IMAGE_FALLBACK_DATA_PREFIX } from "@/lib/constants";
|
|
7
|
+
import { extractFileName } from "@/lib/utils";
|
|
7
8
|
|
|
8
9
|
interface RetrievalResultCardProps {
|
|
9
10
|
result: RetrievalResult;
|
|
@@ -12,7 +13,7 @@ interface RetrievalResultCardProps {
|
|
|
12
13
|
|
|
13
14
|
export function RetrievalResultCard({ result, rank }: RetrievalResultCardProps) {
|
|
14
15
|
const [zoomedImage, setZoomedImage] = useState<string | null>(null);
|
|
15
|
-
const fileName = result.ossKey
|
|
16
|
+
const fileName = result.ossKey ? extractFileName(result.ossKey) : "未知文件";
|
|
16
17
|
|
|
17
18
|
const isImageChunk = result.chunkType?.toLowerCase() === "image";
|
|
18
19
|
const chunkBadgeVariant = isImageChunk ? "default" : "secondary";
|
|
@@ -8,6 +8,10 @@ export function cn(...inputs: ClassValue[]) {
|
|
|
8
8
|
/**
|
|
9
9
|
* Extract the file name from an OSS key / path string.
|
|
10
10
|
* e.g. "uploads/2024/report.pdf" → "report.pdf"
|
|
11
|
+
*
|
|
12
|
+
* Only splits on `/` because OSS object keys use `/` as the separator.
|
|
13
|
+
* Backslash `\` is NOT treated as a separator — on macOS it can be a
|
|
14
|
+
* legitimate filename character (e.g. `盘\古\2.1.0\运维手册.docx`).
|
|
11
15
|
*/
|
|
12
16
|
export function extractFileName(ossKey: string): string {
|
|
13
17
|
const parts = ossKey.split("/");
|