@geoscene/ai-components 0.0.0-stage → 5.1.13
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/LICENSE.md +18 -0
- package/README.md +2 -3
- package/dist/agent-utils/BaseAgent.d.ts +90 -0
- package/dist/agent-utils/BaseAgent.js +87 -0
- package/dist/agent-utils/FunctionAgent.d.ts +64 -0
- package/dist/agent-utils/FunctionAgent.js +98 -0
- package/dist/agent-utils/LLMAgent.d.ts +65 -0
- package/dist/agent-utils/LLMAgent.js +140 -0
- package/dist/agent-utils/WorkflowAgent.d.ts +44 -0
- package/dist/agent-utils/WorkflowAgent.js +70 -0
- package/dist/agent-utils/index.d.ts +177 -0
- package/dist/agent-utils/index.js +167 -0
- package/dist/agent-utils/middlewares/humanInTheLoop.d.ts +152 -0
- package/dist/agent-utils/middlewares/humanInTheLoop.js +94 -0
- package/dist/agent-utils/middlewares/middleware.d.ts +25 -0
- package/dist/agent-utils/middlewares/middleware.js +44 -0
- package/dist/agent-utils/middlewares/trace.d.ts +27 -0
- package/dist/agent-utils/middlewares/trace.js +42 -0
- package/dist/agent-utils/middlewares/types.d.ts +123 -0
- package/dist/agent-utils/middlewares/types.js +1 -0
- package/dist/agent-utils/tools/FunctionTool.d.ts +127 -0
- package/dist/agent-utils/tools/FunctionTool.js +80 -0
- package/dist/agent-utils/types.d.ts +181 -0
- package/dist/agent-utils/workflows/BaseWorkflow.d.ts +87 -0
- package/dist/agent-utils/workflows/ConditionalWorkflow.d.ts +72 -0
- package/dist/agent-utils/workflows/ConditionalWorkflow.js +61 -0
- package/dist/agent-utils/workflows/LoopWorkflow.d.ts +58 -0
- package/dist/agent-utils/workflows/LoopWorkflow.js +56 -0
- package/dist/agent-utils/workflows/ParallelWorkflow.d.ts +68 -0
- package/dist/agent-utils/workflows/ParallelWorkflow.js +129 -0
- package/dist/agent-utils/workflows/RouterWorkflow.d.ts +63 -0
- package/dist/agent-utils/workflows/RouterWorkflow.js +75 -0
- package/dist/agent-utils/workflows/SequentialWorkflow.d.ts +56 -0
- package/dist/agent-utils/workflows/SequentialWorkflow.js +69 -0
- package/dist/agent-utils/workflows/SwitchWorkflow.d.ts +74 -0
- package/dist/agent-utils/workflows/SwitchWorkflow.js +84 -0
- package/dist/assets/embeddings.worker-k9_Ou679.js +1 -0
- package/dist/cdn/22TUPT3D.js +2 -0
- package/dist/cdn/27BBMHFA.js +3 -0
- package/dist/cdn/2FYXUV7O.js +30 -0
- package/dist/cdn/3Y723IJS.js +2 -0
- package/dist/cdn/45POUVZK.js +2 -0
- package/dist/cdn/46U2PGRW.js +65 -0
- package/dist/cdn/4ASZF5I2.js +181 -0
- package/dist/cdn/4BA4OUWC.js +101 -0
- package/dist/cdn/4EALV6QJ.js +2 -0
- package/dist/cdn/53Z3R4OY.js +95 -0
- package/dist/cdn/5RQUSM3T.js +132 -0
- package/dist/cdn/6FEB6XYK.js +2 -0
- package/dist/cdn/6TB6FVGF.js +9 -0
- package/dist/cdn/72TH3ONI.js +2 -0
- package/dist/cdn/77GAVZIK.js +62 -0
- package/dist/cdn/7CCULIWM.js +2 -0
- package/dist/cdn/7WSTR3WA.js +2 -0
- package/dist/cdn/AJKWCXDA.js +46 -0
- package/dist/cdn/AXOPGQGZ.js +2 -0
- package/dist/cdn/B35MHQJD.js +2 -0
- package/dist/cdn/BUTKUPXN.js +33 -0
- package/dist/cdn/CFDTXKJ6.js +2 -0
- package/dist/cdn/CU2TRUZQ.js +93 -0
- package/dist/cdn/D3KUKNJ7.js +11 -0
- package/dist/cdn/DHGNGMNJ.js +2 -0
- package/dist/cdn/DKNDDDWM.js +2 -0
- package/dist/cdn/ESRKMM6P.js +2 -0
- package/dist/cdn/FFXK76K7.js +2 -0
- package/dist/cdn/FYNHAVHL.js +2 -0
- package/dist/cdn/G7XK3XOR.js +77 -0
- package/dist/cdn/GHNP3LDR.js +2 -0
- package/dist/cdn/GI2NZ45U.js +4 -0
- package/dist/cdn/GTXGIROA.js +2 -0
- package/dist/cdn/H3EEFM4A.js +179 -0
- package/dist/cdn/HCD4CDWZ.js +2 -0
- package/dist/cdn/HJGF7W5O.js +35 -0
- package/dist/cdn/HK4HSYKG.js +2 -0
- package/dist/cdn/I55TMNNP.js +2 -0
- package/dist/cdn/ILGFFHXZ.js +2 -0
- package/dist/cdn/INJ2KWHS.js +2 -0
- package/dist/cdn/KBFL7LCS.js +2 -0
- package/dist/cdn/KGYSBUFO.js +9 -0
- package/dist/cdn/KLSCVMLN.js +13 -0
- package/dist/cdn/L6GVMINQ.js +2 -0
- package/dist/cdn/LTPDBXQ7.js +6 -0
- package/dist/cdn/LUY7QCZ3.js +2 -0
- package/dist/cdn/LXJWWOGK.js +66 -0
- package/dist/cdn/M7C6Y752.js +2 -0
- package/dist/cdn/MFZCTEAG.js +2 -0
- package/dist/cdn/MQ7QXIOW.js +52 -0
- package/dist/cdn/N2SKXRLK.js +65 -0
- package/dist/cdn/N5XXTTDR.js +2 -0
- package/dist/cdn/NHDPNQXA.js +36 -0
- package/dist/cdn/NMWLJECU.js +109 -0
- package/dist/cdn/OBDCCGVH.js +2 -0
- package/dist/cdn/P5M2HNJ7.js +2 -0
- package/dist/cdn/PFW7KXCP.js +48 -0
- package/dist/cdn/PIUDMACH.js +56 -0
- package/dist/cdn/PKH5BECA.js +2 -0
- package/dist/cdn/PTKZXFXB.js +27 -0
- package/dist/cdn/Q7FTL7JO.js +2 -0
- package/dist/cdn/QH6TSBNI.js +2 -0
- package/dist/cdn/QZXQIJSW.js +2 -0
- package/dist/cdn/TFPBGM6P.js +2 -0
- package/dist/cdn/THLZTO23.js +12 -0
- package/dist/cdn/TIXCHLEN.js +121 -0
- package/dist/cdn/TOYQ22PR.js +2 -0
- package/dist/cdn/U72SSJEL.js +2 -0
- package/dist/cdn/UDXMJNRF.js +3 -0
- package/dist/cdn/UE3CP46P.js +2 -0
- package/dist/cdn/URYKQKFE.js +3 -0
- package/dist/cdn/VBS2ZXKT.js +3 -0
- package/dist/cdn/VDAF255D.js +22 -0
- package/dist/cdn/VG7HRDJX.js +2 -0
- package/dist/cdn/VPZHLYPA.js +2 -0
- package/dist/cdn/VWMJ7HIK.js +66 -0
- package/dist/cdn/WNJM5TET.js +2 -0
- package/dist/cdn/XTEMZD4A.js +2 -0
- package/dist/cdn/Y5GGIKKC.js +2 -0
- package/dist/cdn/YULWPVJ3.js +2 -0
- package/dist/cdn/YURWID37.js +2 -0
- package/dist/cdn/ZDJM4RRH.js +2 -0
- package/dist/cdn/ZGUVZMYR.js +157 -0
- package/dist/cdn/agent-utils/index.js +2 -0
- package/dist/cdn/agent-utils/middlewares/humanInTheLoop.js +3 -0
- package/dist/cdn/agent-utils/middlewares/middleware.js +2 -0
- package/dist/cdn/agent-utils/middlewares/trace.js +2 -0
- package/dist/cdn/assets/assistant/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-chat-entry/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-interrupt/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ar.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bg.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bs.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ca.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.cs.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.da.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.de.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.el.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.en.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.es.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.et.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fi.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fr.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.he.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hr.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hu.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.id.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.it.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ja.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ko.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lt.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lv.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.nl.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.no.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pl.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-BR.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-PT.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ro.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ru.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sk.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sl.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sr.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sv.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.th.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.tr.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.uk.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.vi.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-CN.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-HK.json +1 -0
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-TW.json +1 -0
- package/dist/cdn/index.js +2 -0
- package/dist/cdn/main.css +1 -0
- package/dist/chunks/BaseWorkflow.js +107 -0
- package/dist/chunks/adapter.js +3148 -0
- package/dist/chunks/converterUtils.js +124 -0
- package/dist/chunks/dataExplorationGraph.js +319 -0
- package/dist/chunks/data_explore_filter_prompt.js +112 -0
- package/dist/chunks/data_explore_query_prompt.js +135 -0
- package/dist/chunks/embeddings.worker.js +25 -0
- package/dist/chunks/field_descriptions_prompt.js +80 -0
- package/dist/chunks/generateLayerDescriptions.js +477 -0
- package/dist/chunks/geosceneKnowledgeGraph.js +221 -0
- package/dist/chunks/geoscene_knowledge_current_lc_context.js +25 -0
- package/dist/chunks/geoscene_knowledge_current_map_context.js +36 -0
- package/dist/chunks/geoscene_knowledge_cypher_query_prompt.js +96 -0
- package/dist/chunks/geoscene_knowledge_lucene_generation_prompt.js +98 -0
- package/dist/chunks/geoscene_knowledge_summarize_result_prompt.js +104 -0
- package/dist/chunks/geoscene_knowledge_tool_prompt.js +30 -0
- package/dist/chunks/graph.js +86 -0
- package/dist/chunks/helpGraph.js +117 -0
- package/dist/chunks/help_prompt.js +68 -0
- package/dist/chunks/index.js +11 -0
- package/dist/chunks/intent_prompt.js +124 -0
- package/dist/chunks/layerStylingGraph.js +190 -0
- package/dist/chunks/layer_descriptions_prompt.js +55 -0
- package/dist/chunks/layer_styling_prompt.js +65 -0
- package/dist/chunks/navigationGraph.js +265 -0
- package/dist/chunks/navigation_intent_prompt.js +49 -0
- package/dist/chunks/navigation_tool_prompt.js +38 -0
- package/dist/chunks/orchestrator.js +569 -0
- package/dist/chunks/runtime.js +15 -0
- package/dist/chunks/slottableRequestUtils.js +7 -0
- package/dist/chunks/state.js +71 -0
- package/dist/chunks/summarize_query_response_prompt.js +69 -0
- package/dist/chunks/toolCallResponse.js +32 -0
- package/dist/chunks/useT9n.js +7 -0
- package/dist/chunks/utils.js +53 -0
- package/dist/chunks/utils2.js +47 -0
- package/dist/chunks/utils3.js +16 -0
- package/dist/components/geoscene-assistant/customElement.d.ts +541 -0
- package/dist/components/geoscene-assistant/customElement.js +562 -0
- package/dist/components/geoscene-assistant/index.d.ts +1 -0
- package/dist/components/geoscene-assistant/index.js +13 -0
- package/dist/components/geoscene-assistant/types.d.ts +147 -0
- package/dist/components/geoscene-assistant-agent/customElement.d.ts +141 -0
- package/dist/components/geoscene-assistant-agent/customElement.js +23 -0
- package/dist/components/geoscene-assistant-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-chat/customElement.d.ts +17 -0
- package/dist/components/geoscene-assistant-chat/customElement.js +50 -0
- package/dist/components/geoscene-assistant-chat/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-chat/index.js +1 -0
- package/dist/components/geoscene-assistant-chat-entry/customElement.d.ts +37 -0
- package/dist/components/geoscene-assistant-chat-entry/customElement.js +85 -0
- package/dist/components/geoscene-assistant-chat-entry/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-chat-entry/index.js +3 -0
- package/dist/components/geoscene-assistant-data-exploration-agent/customElement.d.ts +101 -0
- package/dist/components/geoscene-assistant-data-exploration-agent/customElement.js +48 -0
- package/dist/components/geoscene-assistant-data-exploration-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-data-exploration-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-help-agent/customElement.d.ts +73 -0
- package/dist/components/geoscene-assistant-help-agent/customElement.js +51 -0
- package/dist/components/geoscene-assistant-help-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-help-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-interrupt/customElement.d.ts +31 -0
- package/dist/components/geoscene-assistant-interrupt/customElement.js +37 -0
- package/dist/components/geoscene-assistant-interrupt/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-interrupt/index.js +6 -0
- package/dist/components/geoscene-assistant-interrupt-preview/customElement.js +20 -0
- package/dist/components/geoscene-assistant-interrupt-preview/index.js +2 -0
- package/dist/components/geoscene-assistant-knowledge-agent/customElement.d.ts +158 -0
- package/dist/components/geoscene-assistant-knowledge-agent/customElement.js +74 -0
- package/dist/components/geoscene-assistant-knowledge-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-knowledge-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-layer-styling-agent/customElement.d.ts +8 -0
- package/dist/components/geoscene-assistant-layer-styling-agent/customElement.js +51 -0
- package/dist/components/geoscene-assistant-layer-styling-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-layer-styling-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-message/customElement.d.ts +23 -0
- package/dist/components/geoscene-assistant-message/customElement.js +45 -0
- package/dist/components/geoscene-assistant-message/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message/index.js +5 -0
- package/dist/components/geoscene-assistant-message-block/customElement.d.ts +8 -0
- package/dist/components/geoscene-assistant-message-block/customElement.js +36 -0
- package/dist/components/geoscene-assistant-message-block/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-block/index.js +3 -0
- package/dist/components/geoscene-assistant-message-feedback/customElement.d.ts +26 -0
- package/dist/components/geoscene-assistant-message-feedback/customElement.js +36 -0
- package/dist/components/geoscene-assistant-message-feedback/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-feedback/index.js +3 -0
- package/dist/components/geoscene-assistant-message-footer/customElement.d.ts +28 -0
- package/dist/components/geoscene-assistant-message-footer/customElement.js +62 -0
- package/dist/components/geoscene-assistant-message-footer/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-footer/index.js +6 -0
- package/dist/components/geoscene-assistant-message-loading/customElement.d.ts +17 -0
- package/dist/components/geoscene-assistant-message-loading/customElement.js +23 -0
- package/dist/components/geoscene-assistant-message-loading/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-loading/index.js +5 -0
- package/dist/components/geoscene-assistant-message-log/customElement.d.ts +14 -0
- package/dist/components/geoscene-assistant-message-log/customElement.js +29 -0
- package/dist/components/geoscene-assistant-message-log/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-log/index.js +3 -0
- package/dist/components/geoscene-assistant-message-read-aloud/customElement.d.ts +22 -0
- package/dist/components/geoscene-assistant-message-read-aloud/customElement.js +100 -0
- package/dist/components/geoscene-assistant-message-read-aloud/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-read-aloud/index.js +3 -0
- package/dist/components/geoscene-assistant-message-text/customElement.d.ts +11 -0
- package/dist/components/geoscene-assistant-message-text/customElement.js +22 -0
- package/dist/components/geoscene-assistant-message-text/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-message-text/index.js +1 -0
- package/dist/components/geoscene-assistant-navigation-agent/customElement.d.ts +81 -0
- package/dist/components/geoscene-assistant-navigation-agent/customElement.js +50 -0
- package/dist/components/geoscene-assistant-navigation-agent/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-navigation-agent/index.js +1 -0
- package/dist/components/geoscene-assistant-speech-input/customElement.d.ts +36 -0
- package/dist/components/geoscene-assistant-speech-input/customElement.js +488 -0
- package/dist/components/geoscene-assistant-speech-input/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-speech-input/index.js +2 -0
- package/dist/components/geoscene-assistant-speech-input/support/types.d.ts +20 -0
- package/dist/components/geoscene-assistant-suggested-prompts/customElement.d.ts +19 -0
- package/dist/components/geoscene-assistant-suggested-prompts/customElement.js +27 -0
- package/dist/components/geoscene-assistant-suggested-prompts/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-suggested-prompts/index.js +3 -0
- package/dist/components/geoscene-assistant-user-message/customElement.d.ts +13 -0
- package/dist/components/geoscene-assistant-user-message/customElement.js +25 -0
- package/dist/components/geoscene-assistant-user-message/index.d.ts +1 -0
- package/dist/components/geoscene-assistant-user-message/index.js +2 -0
- package/dist/docs/api.json +1 -0
- package/dist/docs/docs.json +1 -0
- package/dist/docs/vscode.css-custom-data.json +1 -0
- package/dist/docs/vscode.html-custom-data.json +1 -0
- package/dist/docs/web-types.json +1 -0
- package/dist/index.d.ts +158 -0
- package/dist/index.js +6 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.js +30 -0
- package/dist/oauth-callback.html +31 -0
- package/dist/types/components.d.ts +2 -0
- package/dist/types/lumina.d.ts +138 -0
- package/dist/types/preact.d.ts +164 -0
- package/dist/types/react.d.ts +193 -0
- package/dist/types/stencil.d.ts +145 -0
- package/dist/utils/index.d.ts +542 -0
- package/dist/utils/index.js +116 -0
- package/package.json +66 -5
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/* COPYRIGHT GeoScene - https://js.geoscene.cn/5.1/LICENSE.txt */
|
|
2
|
+
import g from "@geoscene/geoscene-html-sanitizer";
|
|
3
|
+
import { marked as S } from "marked";
|
|
4
|
+
S.use({
|
|
5
|
+
gfm: !0,
|
|
6
|
+
breaks: !0,
|
|
7
|
+
async: !1
|
|
8
|
+
});
|
|
9
|
+
const C = new g(
|
|
10
|
+
{
|
|
11
|
+
whiteList: {
|
|
12
|
+
// LLMs sometimes return lists like "- 2) Foo". `marked` parses that into a nested ordered list
|
|
13
|
+
// (`<ol start="2">...`), so we keep `start`/`value` to avoid everything rendering as "1.".
|
|
14
|
+
ol: ["start"],
|
|
15
|
+
li: ["value"],
|
|
16
|
+
"calcite-table": ["caption", "bordered", "striped", "layout", "scale", "class"],
|
|
17
|
+
"calcite-table-row": ["slot", "class"],
|
|
18
|
+
"calcite-table-header": ["heading", "alignment", "description", "class"],
|
|
19
|
+
"calcite-table-cell": ["alignment", "colspan", "rowspan", "class"],
|
|
20
|
+
// Allow markdown code blocks to render as <pre><code>…</code></pre>.
|
|
21
|
+
pre: ["class"],
|
|
22
|
+
code: ["class"]
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
!0
|
|
26
|
+
);
|
|
27
|
+
function T(e) {
|
|
28
|
+
return C.sanitize(e);
|
|
29
|
+
}
|
|
30
|
+
function A(e, t) {
|
|
31
|
+
const r = e.indexOf("{", t), a = e.indexOf("[", t);
|
|
32
|
+
return r === -1 ? a : a === -1 ? r : Math.min(r, a);
|
|
33
|
+
}
|
|
34
|
+
function x(e) {
|
|
35
|
+
if (e.trimStart().startsWith("```"))
|
|
36
|
+
return null;
|
|
37
|
+
for (let r = A(e, 0); r !== -1; r = A(e, r + 1)) {
|
|
38
|
+
let a = 0, c = 0;
|
|
39
|
+
for (let n = r; n < e.length; n++) {
|
|
40
|
+
const l = e[n];
|
|
41
|
+
if (l === "{" ? a++ : l === "}" ? a-- : l === "[" ? c++ : l === "]" && c--, a < 0 || c < 0)
|
|
42
|
+
break;
|
|
43
|
+
if (a === 0 && c === 0 && n > r)
|
|
44
|
+
return e.slice(r, n + 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
function O(e) {
|
|
50
|
+
if (!e)
|
|
51
|
+
return "";
|
|
52
|
+
let t = e;
|
|
53
|
+
const r = x(e);
|
|
54
|
+
if (r)
|
|
55
|
+
try {
|
|
56
|
+
const c = JSON.parse(r), l = `
|
|
57
|
+
|
|
58
|
+
\`\`\`json
|
|
59
|
+
${JSON.stringify(c, null, 2)}
|
|
60
|
+
\`\`\`
|
|
61
|
+
|
|
62
|
+
`;
|
|
63
|
+
t = e.replace(r, l);
|
|
64
|
+
} catch {
|
|
65
|
+
}
|
|
66
|
+
const a = E(t);
|
|
67
|
+
return q(a);
|
|
68
|
+
}
|
|
69
|
+
function q(e) {
|
|
70
|
+
if (!e)
|
|
71
|
+
return "";
|
|
72
|
+
const t = M(e);
|
|
73
|
+
return T(t);
|
|
74
|
+
}
|
|
75
|
+
function E(e) {
|
|
76
|
+
return e ? S.parse(e, { async: !1 }) : "";
|
|
77
|
+
}
|
|
78
|
+
function M(e) {
|
|
79
|
+
if (!e || typeof DOMParser > "u")
|
|
80
|
+
return e;
|
|
81
|
+
try {
|
|
82
|
+
const t = new DOMParser().parseFromString(e, "text/html");
|
|
83
|
+
return Array.from(t.querySelectorAll("table")).forEach((a, c) => {
|
|
84
|
+
const n = t.createElement("calcite-table");
|
|
85
|
+
n.setAttribute("caption", `表格 ${c + 1}`), n.setAttribute("striped", "true");
|
|
86
|
+
const l = a.querySelector("thead");
|
|
87
|
+
if (l) {
|
|
88
|
+
const d = Array.from(l.querySelectorAll("tr"));
|
|
89
|
+
for (const u of d) {
|
|
90
|
+
const o = t.createElement("calcite-table-row");
|
|
91
|
+
o.setAttribute("slot", "table-header");
|
|
92
|
+
const f = Array.from(u.querySelectorAll("th, td"));
|
|
93
|
+
for (const h of f) {
|
|
94
|
+
const s = (h.textContent ?? "").trim(), i = t.createElement("calcite-table-header");
|
|
95
|
+
i.setAttribute("heading", s), o.appendChild(i);
|
|
96
|
+
}
|
|
97
|
+
n.appendChild(o);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const b = a.querySelector("tbody");
|
|
101
|
+
(b ? Array.from(b.querySelectorAll("tr")) : Array.from(a.querySelectorAll("tr")).filter((d) => !l?.contains(d))).forEach((d, u) => {
|
|
102
|
+
const o = t.createElement("calcite-table-row"), f = !l && u === 0 && d.querySelectorAll("th").length > 0;
|
|
103
|
+
f && o.setAttribute("slot", "table-header");
|
|
104
|
+
const h = Array.from(d.querySelectorAll("th, td"));
|
|
105
|
+
for (const s of h) {
|
|
106
|
+
if (f && s.localName === "th") {
|
|
107
|
+
const w = (s.textContent ?? "").trim(), y = t.createElement("calcite-table-header");
|
|
108
|
+
y.setAttribute("heading", w), o.appendChild(y);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const i = t.createElement("calcite-table-cell"), p = s.getAttribute("colspan"), m = s.getAttribute("rowspan");
|
|
112
|
+
p && i.setAttribute("colspan", p), m && i.setAttribute("rowspan", m), i.innerHTML = s.innerHTML, o.appendChild(i);
|
|
113
|
+
}
|
|
114
|
+
n.appendChild(o);
|
|
115
|
+
}), a.replaceWith(n);
|
|
116
|
+
}), t.body.innerHTML;
|
|
117
|
+
} catch {
|
|
118
|
+
return e;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
export {
|
|
122
|
+
q as a,
|
|
123
|
+
O as p
|
|
124
|
+
};
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/* COPYRIGHT GeoScene - https://js.geoscene.cn/5.1/LICENSE.txt */
|
|
2
|
+
import { StateGraph as I, START as k, END as v } from "@langchain/langgraph/web";
|
|
3
|
+
import { g as T, O as R, P as C, t as N, Q as V, f, R as D, r as z, S as b, T as P } from "./adapter.js";
|
|
4
|
+
import "@geoscene/core/identity/IdentityManager.js";
|
|
5
|
+
import "@geoscene/core/portal/Portal.js";
|
|
6
|
+
import "@geoscene/toolkit/string";
|
|
7
|
+
import { h as _, e as Q } from "./generateLayerDescriptions.js";
|
|
8
|
+
import { AIMessage as O } from "@langchain/core/messages";
|
|
9
|
+
import { s as n } from "./index.js";
|
|
10
|
+
import "@langchain/openai";
|
|
11
|
+
import "@geoscene/core/config.js";
|
|
12
|
+
import "@geoscene/core/core/reactiveUtils.js";
|
|
13
|
+
import "@geoscene/core/layers/FeatureLayer.js";
|
|
14
|
+
import "@geoscene/core/request.js";
|
|
15
|
+
import "@langchain/core/prompts";
|
|
16
|
+
import { h as $ } from "./toolCallResponse.js";
|
|
17
|
+
import { ToolNode as j } from "@langchain/langgraph/prebuilt";
|
|
18
|
+
import G from "@geoscene/core/smartMapping/statistics/summaryStatistics.js";
|
|
19
|
+
import U from "@geoscene/core/smartMapping/statistics/uniqueValues.js";
|
|
20
|
+
const W = async (t, e) => (await n({ text: "退出数据探索 Agent" }, e), t), B = async (t, e) => {
|
|
21
|
+
await n({ text: "正在请求模型生成图层过滤操作" }, e);
|
|
22
|
+
const d = await T("data_explore_filter_prompt");
|
|
23
|
+
if (!e?.configurable)
|
|
24
|
+
throw new Error("图层过滤工具需要 config.configurable");
|
|
25
|
+
const { userTimezone: l, userTimezoneOffset: s } = R(), r = {
|
|
26
|
+
layerFieldInfo: t.layerFieldInfo,
|
|
27
|
+
userTimezone: l,
|
|
28
|
+
userTimezoneOffset: s,
|
|
29
|
+
queryResponse: t.queryResponse,
|
|
30
|
+
assignedTask: t.agentExecutionContext.assignedTask,
|
|
31
|
+
userRequest: t.agentExecutionContext.userRequest,
|
|
32
|
+
priorSteps: t.agentExecutionContext.priorSteps
|
|
33
|
+
}, o = await _({
|
|
34
|
+
promptText: d,
|
|
35
|
+
modelTier: "advanced",
|
|
36
|
+
config: e,
|
|
37
|
+
messages: t.dataExplorationMessages,
|
|
38
|
+
inputVariables: r,
|
|
39
|
+
tools: C
|
|
40
|
+
}), i = [...t.dataExplorationMessages, o];
|
|
41
|
+
if (!((o.tool_calls?.length ?? 0) > 0))
|
|
42
|
+
return await n({ text: "模型判断无需修改过滤条件" }, e), {
|
|
43
|
+
...t,
|
|
44
|
+
dataExplorationMessages: i
|
|
45
|
+
// Don't overwrite outputMessage if query already set it
|
|
46
|
+
};
|
|
47
|
+
const m = i, g = o.content.toString();
|
|
48
|
+
return await $(o, e), { ...t, dataExplorationMessages: m, outputMessage: g };
|
|
49
|
+
}, H = async (t, e) => {
|
|
50
|
+
await n({ text: "正在请求模型规划图层查询" }, e);
|
|
51
|
+
const d = await T("data_explore_query_prompt");
|
|
52
|
+
if (!e?.configurable)
|
|
53
|
+
throw new Error("图层查询工具需要 config.configurable");
|
|
54
|
+
const { userTimezone: l, userTimezoneOffset: s } = R(), r = t.agentExecutionContext.sharedState, o = r.lastNavigatedFeatures?.value, i = r.lastResolvedLocation?.value;
|
|
55
|
+
let c = "none";
|
|
56
|
+
if (o != null)
|
|
57
|
+
try {
|
|
58
|
+
c = JSON.stringify(o);
|
|
59
|
+
} catch {
|
|
60
|
+
c = "none";
|
|
61
|
+
}
|
|
62
|
+
let m = "none";
|
|
63
|
+
if (i != null)
|
|
64
|
+
try {
|
|
65
|
+
m = JSON.stringify({
|
|
66
|
+
address: i.address,
|
|
67
|
+
location: i.location
|
|
68
|
+
});
|
|
69
|
+
} catch {
|
|
70
|
+
m = "none";
|
|
71
|
+
}
|
|
72
|
+
const g = {
|
|
73
|
+
layerFieldInfo: t.layerFieldInfo,
|
|
74
|
+
userTimezone: l,
|
|
75
|
+
userTimezoneOffset: s,
|
|
76
|
+
assignedTask: t.agentExecutionContext.assignedTask,
|
|
77
|
+
userRequest: t.agentExecutionContext.userRequest,
|
|
78
|
+
priorSteps: t.agentExecutionContext.priorSteps,
|
|
79
|
+
lastNavigatedFeatures: c,
|
|
80
|
+
lastResolvedLocation: m
|
|
81
|
+
}, y = await _({
|
|
82
|
+
promptText: d,
|
|
83
|
+
modelTier: "advanced",
|
|
84
|
+
config: e,
|
|
85
|
+
messages: t.dataExplorationMessages,
|
|
86
|
+
inputVariables: g,
|
|
87
|
+
tools: V
|
|
88
|
+
}), h = (y.tool_calls?.length ?? 0) > 0, p = y.content.toString();
|
|
89
|
+
return await $(y, e), {
|
|
90
|
+
...t,
|
|
91
|
+
dataExplorationMessages: [...t.dataExplorationMessages, y],
|
|
92
|
+
// Only emit output here when no tools are being called.
|
|
93
|
+
// For tool-calling flows, downstream summarizer nodes provide the final user-facing message.
|
|
94
|
+
...h ? {} : { outputMessage: p },
|
|
95
|
+
status: "success",
|
|
96
|
+
summary: p && !h ? N(p) : "查询规划完成。"
|
|
97
|
+
};
|
|
98
|
+
}, J = async (t, e) => {
|
|
99
|
+
try {
|
|
100
|
+
await n({ text: "正在请求模型汇总查询结果" }, e);
|
|
101
|
+
const d = await T("summarize_query_response_prompt"), l = {
|
|
102
|
+
queryResponse: t.queryResponse,
|
|
103
|
+
assignedTask: t.agentExecutionContext.assignedTask,
|
|
104
|
+
userRequest: t.agentExecutionContext.userRequest,
|
|
105
|
+
priorSteps: t.agentExecutionContext.priorSteps
|
|
106
|
+
}, s = await Q({
|
|
107
|
+
promptText: d,
|
|
108
|
+
modelTier: "fast",
|
|
109
|
+
config: e,
|
|
110
|
+
messages: t.dataExplorationMessages,
|
|
111
|
+
inputVariables: l
|
|
112
|
+
}), r = typeof s == "string" ? s : s.content, o = new O(r);
|
|
113
|
+
await n({ text: `收到模型响应:${r}` }, e);
|
|
114
|
+
const i = r;
|
|
115
|
+
return {
|
|
116
|
+
...t,
|
|
117
|
+
outputMessage: i,
|
|
118
|
+
status: "success",
|
|
119
|
+
summary: i ? N(i) : "摘要已生成。",
|
|
120
|
+
dataExplorationMessages: [...t.dataExplorationMessages, o]
|
|
121
|
+
};
|
|
122
|
+
} catch (a) {
|
|
123
|
+
throw await n({ text: "请求过滤模型时出错" }, e), new Error(`请求过滤模型时出错:${a instanceof Error ? a.message : String(a)}`);
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
async function K(t, e) {
|
|
127
|
+
if ((t.queryResponse ?? []).some((s) => {
|
|
128
|
+
const r = s.details;
|
|
129
|
+
return typeof r == "object" && r !== null && "error" in r;
|
|
130
|
+
}))
|
|
131
|
+
return await n({ text: "查询结果包含错误,跳过图层过滤工具。" }, e), { ...t };
|
|
132
|
+
const l = await new j(C, { handleToolErrors: !1 }).invoke(
|
|
133
|
+
{
|
|
134
|
+
messages: t.dataExplorationMessages
|
|
135
|
+
},
|
|
136
|
+
e
|
|
137
|
+
);
|
|
138
|
+
return await n(
|
|
139
|
+
{ text: `图层过滤工具执行完成:${l.messages.map((s) => s.content).join(", ")}` },
|
|
140
|
+
e
|
|
141
|
+
), { ...t };
|
|
142
|
+
}
|
|
143
|
+
const X = 10, Y = ["string", "small-integer", "integer"], Z = async (t, e, { includeSummaryStatistics: a = !0, includeUniqueValues: d = !0 } = {}) => {
|
|
144
|
+
let l = null, s = null;
|
|
145
|
+
try {
|
|
146
|
+
if (e.type !== "geometry" && e.type !== "oid" && e.type !== "global-id") {
|
|
147
|
+
a && (l = await G({ layer: t, field: e.name }));
|
|
148
|
+
const r = e.domain?.type === "coded-value" ? e.domain : null;
|
|
149
|
+
d && (Y.includes(e.type) || r) && (s = (await U({ layer: t, field: e.name })).uniqueValueInfos.sort((o, i) => i.count - o.count).slice(0, X), r && (s = s.map((o) => ({
|
|
150
|
+
...o,
|
|
151
|
+
value: r.getName(o.value) ?? o.value
|
|
152
|
+
}))));
|
|
153
|
+
}
|
|
154
|
+
} catch (r) {
|
|
155
|
+
console.error(`获取字段统计信息失败,字段:${e.name}:`, r);
|
|
156
|
+
}
|
|
157
|
+
return {
|
|
158
|
+
summaryStatistics: l,
|
|
159
|
+
uniqueValues: s
|
|
160
|
+
};
|
|
161
|
+
};
|
|
162
|
+
function ee(t, e) {
|
|
163
|
+
return ["string", "small-integer", "integer"].includes(t) || e === "coded-value";
|
|
164
|
+
}
|
|
165
|
+
async function te(t, e, a, d = !0) {
|
|
166
|
+
const l = [], s = [], r = [];
|
|
167
|
+
for (const o of t) {
|
|
168
|
+
let i = function(p) {
|
|
169
|
+
const u = e.get(p)?.layerItem;
|
|
170
|
+
return u ? [
|
|
171
|
+
u.name && `名称:${u.name}`,
|
|
172
|
+
u.title && `标题:${u.title}`,
|
|
173
|
+
u.description && `说明:${u.description}`
|
|
174
|
+
].filter(Boolean).join(" | ") : p;
|
|
175
|
+
};
|
|
176
|
+
const { layerId: c, results: m } = o, g = a.map?.allLayers.find((p) => p.id === c), y = e.get(c)?.fieldRegistry;
|
|
177
|
+
if (!y)
|
|
178
|
+
continue;
|
|
179
|
+
let h = l.find((p) => p.layerId === c);
|
|
180
|
+
h || (h = {
|
|
181
|
+
layerId: c,
|
|
182
|
+
layerSummary: i(c),
|
|
183
|
+
fieldInfos: []
|
|
184
|
+
}, l.push(h));
|
|
185
|
+
for (const p of m) {
|
|
186
|
+
const u = y.get(p.name);
|
|
187
|
+
if (!u)
|
|
188
|
+
continue;
|
|
189
|
+
const x = u.statistics, E = d && !x?.summaryStatistics, w = ee(u.type, u.domain?.type) && !x?.uniqueValues, q = E || w;
|
|
190
|
+
if (r.push({
|
|
191
|
+
layerId: c,
|
|
192
|
+
fieldName: u.name,
|
|
193
|
+
didFetchStatistics: q
|
|
194
|
+
}), q) {
|
|
195
|
+
const A = Z(g, u, {
|
|
196
|
+
includeSummaryStatistics: E,
|
|
197
|
+
includeUniqueValues: w
|
|
198
|
+
}).then((F) => {
|
|
199
|
+
const S = {
|
|
200
|
+
summaryStatistics: x?.summaryStatistics ?? null,
|
|
201
|
+
uniqueValues: x?.uniqueValues ?? null
|
|
202
|
+
};
|
|
203
|
+
E && (S.summaryStatistics = F.summaryStatistics), w && (S.uniqueValues = F.uniqueValues), y.set(u.name, { ...u, statistics: S }), u.statistics = S;
|
|
204
|
+
});
|
|
205
|
+
s.push(A);
|
|
206
|
+
}
|
|
207
|
+
h.fieldInfos.push(u);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return await Promise.all(s), {
|
|
211
|
+
layerFieldInfo: l,
|
|
212
|
+
didFetchStatistics: s.length > 0,
|
|
213
|
+
fieldStatisticsFetchStatus: r
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
const L = /\b(average|avg|mean|median|max(?:imum)?|min(?:imum)?|sum|total|count|std(?:dev|\s*deviation)|variance|null\s*count|missing\s*values?|range)\b/iu;
|
|
217
|
+
function ae(t, e) {
|
|
218
|
+
return L.test(t) || L.test(e);
|
|
219
|
+
}
|
|
220
|
+
const se = async (t, e) => {
|
|
221
|
+
try {
|
|
222
|
+
await n({ text: "正在为向量搜索结果准备字段信息" }, e);
|
|
223
|
+
const a = f(e, "layersAndFieldsRegistry"), { mapView: d } = D(e), { assignedTask: l, userRequest: s } = t.agentExecutionContext, r = ae(l, s), { layerFieldInfo: o, didFetchStatistics: i, fieldStatisticsFetchStatus: c } = await te(
|
|
224
|
+
t.vectorSearchFieldResults,
|
|
225
|
+
a,
|
|
226
|
+
d,
|
|
227
|
+
r
|
|
228
|
+
);
|
|
229
|
+
i ? await n({ text: "已获取统计信息" }, e) : await n({ text: "跳过统计" }, e);
|
|
230
|
+
for (const m of c)
|
|
231
|
+
await n(
|
|
232
|
+
{
|
|
233
|
+
text: ` - ${m.fieldName}——统计状态:${m.didFetchStatistics ? "已获取" : "已跳过"}`
|
|
234
|
+
},
|
|
235
|
+
e
|
|
236
|
+
);
|
|
237
|
+
return await n({ text: "字段信息准备完成" }, e), { ...t, layerFieldInfo: o };
|
|
238
|
+
} catch (a) {
|
|
239
|
+
throw await n({ text: "获取统计信息失败" }, e), new Error(`获取统计信息失败:${a instanceof Error ? a.message : String(a)}`);
|
|
240
|
+
}
|
|
241
|
+
}, M = 0.5, re = 10, oe = async (t, e) => {
|
|
242
|
+
try {
|
|
243
|
+
await n({ text: "正在通过相似度搜索字段" }, e);
|
|
244
|
+
const a = f(e, "fieldSearch"), d = f(e, "layersAndFieldsRegistry"), l = f(e, "embeddingCache"), s = await a.searchFields({
|
|
245
|
+
text: t.agentExecutionContext.assignedTask,
|
|
246
|
+
layerIds: t.vectorSearchLayerIds,
|
|
247
|
+
minScore: M,
|
|
248
|
+
topResults: re,
|
|
249
|
+
embeddingCache: l
|
|
250
|
+
}), r = s.map(({ layerId: i, results: c }) => {
|
|
251
|
+
const m = c.map((g) => ` - ${g.name} (${g.score.toFixed(2)})`).join(`
|
|
252
|
+
`);
|
|
253
|
+
return `${d.get(i)?.layerItem.name ?? i}:
|
|
254
|
+
${m}`;
|
|
255
|
+
}).join(`
|
|
256
|
+
`);
|
|
257
|
+
let o;
|
|
258
|
+
return s.length > 0 ? o = `向量搜索完成,匹配的图层、字段及得分:
|
|
259
|
+
${r}` : o = `未找到得分超过以下阈值的向量搜索结果:${M}.`, await n({ text: o }, e), {
|
|
260
|
+
...t,
|
|
261
|
+
vectorSearchFieldResults: s
|
|
262
|
+
};
|
|
263
|
+
} catch (a) {
|
|
264
|
+
throw await n(
|
|
265
|
+
{ text: `向量搜索出错:${a instanceof Error ? a.message : String(a)}` },
|
|
266
|
+
e
|
|
267
|
+
), new Error(`向量搜索失败:${a instanceof Error ? a.message : String(a)}`);
|
|
268
|
+
}
|
|
269
|
+
}, ie = 0.5, ne = async (t, e) => {
|
|
270
|
+
try {
|
|
271
|
+
await n(
|
|
272
|
+
{ text: `正在通过相似度搜索图层:${t.agentExecutionContext.assignedTask}` },
|
|
273
|
+
e
|
|
274
|
+
);
|
|
275
|
+
const a = f(e, "layerSearch"), d = f(e, "layersAndFieldsRegistry"), l = f(e, "embeddingCache"), s = await a.searchLayers({
|
|
276
|
+
text: t.agentExecutionContext.assignedTask,
|
|
277
|
+
minScore: ie,
|
|
278
|
+
embeddingCache: l
|
|
279
|
+
}), r = s.map((c) => c.id), o = s.map(({ id: c, score: m }) => `${d.get(c)?.layerItem.name ?? c} (${m.toFixed(2)})`).join(`
|
|
280
|
+
`);
|
|
281
|
+
let i;
|
|
282
|
+
return r.length > 0 ? i = `向量搜索完成,匹配的图层及得分:
|
|
283
|
+
${o}` : i = "向量搜索完成,未找到匹配图层。", await n({ text: i }, e), {
|
|
284
|
+
...t,
|
|
285
|
+
vectorSearchLayerIds: r
|
|
286
|
+
};
|
|
287
|
+
} catch (a) {
|
|
288
|
+
throw await n(
|
|
289
|
+
{ text: `向量搜索出错:${a instanceof Error ? a.message : String(a)}` },
|
|
290
|
+
e
|
|
291
|
+
), new Error(`向量搜索失败:${a instanceof Error ? a.message : String(a)}`);
|
|
292
|
+
}
|
|
293
|
+
}, le = (t, e) => z(["layerSearch", "fieldSearch", "layersAndFieldsRegistry"], "数据探索 Agent")(
|
|
294
|
+
t,
|
|
295
|
+
e
|
|
296
|
+
), ce = () => new I(b).addNode("requireDataExplorationServices", le).addNode("vectorSearchLayers", ne).addNode("vectorSearchFields", oe).addNode("fieldStatistics", se).addNode("queryAgent", H).addNode("queryTools", P).addNode("summarizeQueryResponseLLM", J).addNode("filterAgent", B).addNode("filterTools", K).addNode("earlyExit", W).addEdge(k, "requireDataExplorationServices").addEdge("requireDataExplorationServices", "vectorSearchLayers").addConditionalEdges(
|
|
297
|
+
"vectorSearchLayers",
|
|
298
|
+
(e) => e.vectorSearchLayerIds.length ? "vectorSearchFields" : "earlyExit"
|
|
299
|
+
).addConditionalEdges(
|
|
300
|
+
"vectorSearchFields",
|
|
301
|
+
(e) => e.vectorSearchFieldResults.length ? "fieldStatistics" : "earlyExit"
|
|
302
|
+
).addEdge("fieldStatistics", "queryAgent").addConditionalEdges("queryAgent", (e) => (e.dataExplorationMessages[e.dataExplorationMessages.length - 1]?.tool_calls?.length ?? 0) > 0 ? "queryTools" : "filterAgent").addConditionalEdges(
|
|
303
|
+
"queryTools",
|
|
304
|
+
(e) => e.queryResponse.length ? "summarizeQueryResponseLLM" : "filterAgent"
|
|
305
|
+
).addEdge("summarizeQueryResponseLLM", "filterAgent").addConditionalEdges("filterAgent", (e) => (e.dataExplorationMessages[e.dataExplorationMessages.length - 1]?.tool_calls?.length ?? 0) > 0 ? "filterTools" : v).addEdge("filterTools", v).addEdge("earlyExit", v), de = String.raw`- **data exploration**——处理要素图层的数据问题,包括全部要素、满足条件的子集或当前视图中的子集的数量、汇总、统计和字段值;也处理按字段包含或排除要素,以及高亮、弱化等显示效果。
|
|
306
|
+
该 Agent 会自动缩放到操作影响的要素,无需另行调用导航工具。
|
|
307
|
+
示例:“只显示 Brand 为 Shell 的站点”“在地图上突出 Shell 站点”“将非 Shell 站点灰显”。
|
|
308
|
+
也处理识别符合条件的具体要素及其位置,例如“高程最高的泉在哪里”,但不处理地址。
|
|
309
|
+
示例:“有多少要素”“平均人口是多少”“status 字段有哪些值”。
|
|
310
|
+
不处理帮助或元数据请求,例如列出图层、列出图层字段或列、属性,以及功能介绍。`, Ce = {
|
|
311
|
+
id: "dataExploration",
|
|
312
|
+
name: "数据探索 Agent",
|
|
313
|
+
description: de,
|
|
314
|
+
createGraph: ce,
|
|
315
|
+
workspace: b
|
|
316
|
+
};
|
|
317
|
+
export {
|
|
318
|
+
Ce as D
|
|
319
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/* COPYRIGHT GeoScene - https://js.geoscene.cn/5.1/LICENSE.txt */
|
|
2
|
+
const e = `# GeoScene Online 地图查看器——图层过滤工具调用助手
|
|
3
|
+
|
|
4
|
+
你负责为 **GeoScene Online 地图查看器**选择并调用合适的工具,管理图层过滤条件和视觉效果。
|
|
5
|
+
|
|
6
|
+
根据分配的任务,你可以调用零个或一个工具。
|
|
7
|
+
|
|
8
|
+
## 已提供的信息
|
|
9
|
+
|
|
10
|
+
分配的任务:
|
|
11
|
+
{assignedTask}
|
|
12
|
+
|
|
13
|
+
用户最新请求:
|
|
14
|
+
{userRequest}
|
|
15
|
+
|
|
16
|
+
之前的步骤:
|
|
17
|
+
{priorSteps}
|
|
18
|
+
|
|
19
|
+
以分配的任务作为本次查询的主要指令。
|
|
20
|
+
需要时,将用户最新请求作为辅助上下文。
|
|
21
|
+
只有分配的任务明确依赖之前的结果时,才参考之前的步骤。
|
|
22
|
+
|
|
23
|
+
图层列表包含 layerId、layerSummary 及各图层对应的字段信息:
|
|
24
|
+
{layerFieldInfo}
|
|
25
|
+
|
|
26
|
+
FieldInfo:
|
|
27
|
+
- \`name\`:图层过滤表达式中使用的真实字段名。
|
|
28
|
+
- \`type\`:字段类型,例如 \`string\`、\`number\`、\`date\`。
|
|
29
|
+
- \`alias\`:便于阅读的字段别名。
|
|
30
|
+
- \`description\`:可选的字段说明。
|
|
31
|
+
- \`statistics\`:最小值、最大值、唯一值等统计信息。
|
|
32
|
+
|
|
33
|
+
查询工具返回的结果:
|
|
34
|
+
{queryResponse}
|
|
35
|
+
|
|
36
|
+
## 你的任务
|
|
37
|
+
|
|
38
|
+
1. 判断是否需要调用工具,参见下方“何时调用工具”。
|
|
39
|
+
2. 如需调用,按下方优先规则确定 \`targetLayer\`。
|
|
40
|
+
3. 选择最合适的工具。
|
|
41
|
+
|
|
42
|
+
## 如何确定 targetLayer(按顺序判断)
|
|
43
|
+
|
|
44
|
+
采用第一条匹配的规则:
|
|
45
|
+
|
|
46
|
+
1. **queryResponse 包含 \`objectIds\` 和 \`objectIdField\`**:将其作为 \`targetLayer.objectIds\` 数组传入,并将 \`where\` 设为 \`"1=1"\`。不要构造包含 IN(...) 的 WHERE 子句。
|
|
47
|
+
2. **queryResponse 包含 \`where\` 子句**:将原始 \`where\` 字符串和 \`layerId\` 原样复制到 \`targetLayer\`,不要重新生成、改写或简化。
|
|
48
|
+
3. **分配的任务明确要求与查询结果不同的要素集合**,例如查询得到被拒绝的申请,但任务要求“现在高亮已批准的申请”;或者任务要求清除、重置过滤条件:按下方“生成新的 WHERE 子句”规则生成新条件。
|
|
49
|
+
|
|
50
|
+
### 同时传递 geometryFilter 和 useCurrentExtent
|
|
51
|
+
|
|
52
|
+
如果消息历史中的查询工具调用使用了 \`geometryFilter\`(空间或邻近查询)或 \`useCurrentExtent: true\`,本次工具调用必须携带相同参数。否则过滤条件会应用到整个图层,而不只是空间范围内的要素。
|
|
53
|
+
|
|
54
|
+
## 何时调用工具
|
|
55
|
+
|
|
56
|
+
以下情况始终调用工具:
|
|
57
|
+
- 任务要求“显示”“查找”“定位”或询问某对象“在哪里”。
|
|
58
|
+
- 任务需要识别具体要素,例如“哪个最高”或“查找所有符合 Y 条件的 X”。
|
|
59
|
+
- 任务要求清除或重置地图过滤条件。
|
|
60
|
+
|
|
61
|
+
### 不调用工具的情况
|
|
62
|
+
|
|
63
|
+
- 查询返回零个要素。
|
|
64
|
+
- 任务只是聚合统计问题,例如“平均值是多少”“总共有多少”。
|
|
65
|
+
- 无法生成有意义的过滤条件。
|
|
66
|
+
- 查询步骤已经完整回答任务,无需地图交互。
|
|
67
|
+
- 即使响应包含 objectIds,除非任务明确要求查看、显示、高亮或强调,否则也不要高亮要素。
|
|
68
|
+
|
|
69
|
+
## 生成新的 WHERE 子句(仅限例外情况)
|
|
70
|
+
|
|
71
|
+
只有上述规则3适用,即任务明确要求不同的要素集合时,才使用以下规则:
|
|
72
|
+
- 表达式只使用字段的 **\`name\`**,不要使用别名。
|
|
73
|
+
- 根据字段 \`type\` 选择运算符:
|
|
74
|
+
- 字符串:\`LIKE '%value%'\`、\`=\`、\`IN (...)\`。
|
|
75
|
+
- 数字或日期:\`=\`、\`<\`、\`>\`、\`BETWEEN\` 等。
|
|
76
|
+
- 编码值域字段使用数字或字符串形式的**编码**,不要使用值域名称。
|
|
77
|
+
- 范围值域字段使用提供的最小值和最大值作为有效边界。
|
|
78
|
+
- 不要使用子查询或 \`SELECT\`。
|
|
79
|
+
- 根据需要使用 \`AND\`、\`OR\`、\`NOT\` 组合条件。
|
|
80
|
+
|
|
81
|
+
## SQL-92 日期时间语法
|
|
82
|
+
|
|
83
|
+
用户时区:{userTimezone}({userTimezoneOffset})
|
|
84
|
+
|
|
85
|
+
数据库以 UTC 存储日期,应将用户本地时间转换为 UTC。
|
|
86
|
+
例如偏移量为 \`-08:00\` 时加8小时,为 \`-05:00\` 时加5小时。
|
|
87
|
+
格式:\`TIMESTAMP 'YYYY-MM-DD HH:MM:SS'\`。
|
|
88
|
+
|
|
89
|
+
## 几何和空间查询(用于 setFeatureEffect)
|
|
90
|
+
|
|
91
|
+
处理几何、邻近和空间查询时:
|
|
92
|
+
1. 目标图层:你希望查找并返回的要素所在图层。
|
|
93
|
+
2. 几何图层:作为搜索起点和距离缓冲区来源的位置图层。
|
|
94
|
+
|
|
95
|
+
对于“A 是否位于任意 B 附近或范围内”:
|
|
96
|
+
- 目标:B 类型,即要查找的对象。
|
|
97
|
+
- 几何:具体的 A,即搜索起点。
|
|
98
|
+
|
|
99
|
+
示例:
|
|
100
|
+
问题:“井 P132_1873 是否位于保护区300米以内?”
|
|
101
|
+
目标:保护区。
|
|
102
|
+
几何:井(where="ID = 'P132_1873'",单个点)。
|
|
103
|
+
|
|
104
|
+
问题:“查找公园 X 周边500米内的道路。”
|
|
105
|
+
目标:道路。
|
|
106
|
+
几何:公园 X。
|
|
107
|
+
|
|
108
|
+
关键原则:几何图层应使用更简单的几何,最好是单个要素或少量要素,避免使用需要进行合并的大量要素集合。
|
|
109
|
+
`;
|
|
110
|
+
export {
|
|
111
|
+
e as default
|
|
112
|
+
};
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/* COPYRIGHT GeoScene - https://js.geoscene.cn/5.1/LICENSE.txt */
|
|
2
|
+
const e = `# GeoScene JavaScript SDK FeatureLayerView 查询助手
|
|
3
|
+
|
|
4
|
+
你是一名 GIS 助手,为 GeoScene JavaScript SDK FeatureLayerView 的 \`queryFeatures()\` 方法生成查询参数。
|
|
5
|
+
|
|
6
|
+
分析分配的任务,为每个相关图层构造合适的查询参数。只包含回答任务所必需的参数。
|
|
7
|
+
|
|
8
|
+
## 图层和字段信息
|
|
9
|
+
|
|
10
|
+
除字段信息外,还会提供包含 layerId、name、description 的图层信息,格式为多个图层组成的数组。
|
|
11
|
+
只能使用每个图层下列出的字段名,不得虚构或使用未列出的字段。
|
|
12
|
+
|
|
13
|
+
{layerFieldInfo}
|
|
14
|
+
|
|
15
|
+
## 关键限制:不得虚构字段
|
|
16
|
+
|
|
17
|
+
如果任务要求的过滤条件需要上面未列出的字段,不要虚构或包含该字段。
|
|
18
|
+
如果仍可使用允许的字段回答部分问题,就回答可确定的部分,例如返回未过滤的数量。
|
|
19
|
+
否则返回有效查询 where: "1=1",完全省略不受支持的过滤条件。
|
|
20
|
+
绝不引用未列出的字段。如果要求按时间过滤但结构中没有日期字段,应完全省略时间过滤。
|
|
21
|
+
|
|
22
|
+
输出前检查每个使用的字段是否都在列表中。若有不存在的字段,移除相关子句并按上述规则继续。
|
|
23
|
+
|
|
24
|
+
## 输入
|
|
25
|
+
|
|
26
|
+
分配的任务:
|
|
27
|
+
{assignedTask}
|
|
28
|
+
|
|
29
|
+
用户最新请求:
|
|
30
|
+
{userRequest}
|
|
31
|
+
|
|
32
|
+
之前的步骤:
|
|
33
|
+
{priorSteps}
|
|
34
|
+
|
|
35
|
+
共享状态中上次定位到的要素(如有):
|
|
36
|
+
{lastNavigatedFeatures}
|
|
37
|
+
|
|
38
|
+
共享状态中上次解析的位置(如有):
|
|
39
|
+
{lastResolvedLocation}
|
|
40
|
+
|
|
41
|
+
以分配的任务作为本次查询的主要指令。
|
|
42
|
+
需要时,将用户最新请求作为辅助上下文。
|
|
43
|
+
只有任务或用户请求明确依赖之前的结果时,才参考之前的步骤。
|
|
44
|
+
处理有关联的追问时,使用共享状态 \`lastResolvedLocation\`、\`lastNavigatedFeatures\`。
|
|
45
|
+
仅在理解对话指代确有必要时使用聊天历史,不得覆盖分配的任务。
|
|
46
|
+
|
|
47
|
+
### 参照对象选择规则(严格遵守,只使用一个依据)
|
|
48
|
+
|
|
49
|
+
当请求包含“这个”“它”“那个”“那些”“它们”“其中”“同一个”等指代时,按以下优先顺序只选择一个参照对象:
|
|
50
|
+
1. 当前请求明确命名的实体(如有)。
|
|
51
|
+
2. \`lastResolvedLocation\`(如存在,且请求指代地点或位置)。
|
|
52
|
+
3. \`lastNavigatedFeatures\`(如有)。
|
|
53
|
+
4. \`priorSteps\` 中最近一次成功且相关的步骤。
|
|
54
|
+
|
|
55
|
+
选定后,本次查询始终使用该对象,不得切换到更早的实体。
|
|
56
|
+
如果使用 \`lastNavigatedFeatures\`,除非当前请求明确覆盖范围,否则复用其 \`layerId\` 和 \`where\`。
|
|
57
|
+
|
|
58
|
+
### 每次重新生成 WHERE 子句
|
|
59
|
+
|
|
60
|
+
每个新问题都从新的 WHERE 子句开始。除非任务明确引用之前的结果,否则不要继承之前问题的过滤条件,详见“引用之前识别的要素”。
|
|
61
|
+
|
|
62
|
+
### 生成 WHERE SQL 表达式的规则
|
|
63
|
+
|
|
64
|
+
- 输出表达式只使用字段的 **\`name\`**。
|
|
65
|
+
- \`alias\`、\`description\`、\`statistics\` 仅用于理解用户意图,不得用作表达式语法。
|
|
66
|
+
- 根据字段 \`type\` 选择运算符:
|
|
67
|
+
- 字符串:\`LIKE '%value%'\`、\`=\`、\`IN (...)\`,优先使用 \`LIKE\`。
|
|
68
|
+
- 数字或日期:\`=\`、\`<\`、\`>\`、\`BETWEEN\` 等。
|
|
69
|
+
- 使用 **\`relevanceScore\` 最高**的字段。
|
|
70
|
+
- 不得使用子查询或 \`SELECT\`。
|
|
71
|
+
- 根据需要用 \`AND\`、\`OR\`、\`NOT\` 组合条件。
|
|
72
|
+
- 编码值域字段必须使用数字或字符串**编码**,不要使用值域名称。各字段的值域以 \`code=name\` 形式列出。
|
|
73
|
+
- 范围值域字段使用提供的最小值和最大值作为有效比较边界。
|
|
74
|
+
- 如果无法生成有意义的图层过滤条件,不要调用工具。
|
|
75
|
+
|
|
76
|
+
## 引用之前识别的要素
|
|
77
|
+
|
|
78
|
+
这是“每次重新生成 WHERE 子句”规则的例外:
|
|
79
|
+
- 如果参照对象是包含点的 \`lastResolvedLocation\`,优先使用 \`geometryFilter.point\`;除非用户要求额外属性过滤,否则使用 \`where: "1=1"\`。
|
|
80
|
+
- 只有用户明确询问当前视图或地图范围内的要素,例如“我的视图内”“地图上”“现在可见的”,才使用 \`useCurrentExtent: true\`。
|
|
81
|
+
- 如果参照上下文包含具体要素 ID 或 objectIds,则限制到这些 ID。
|
|
82
|
+
- 否则使用参照对象的 \`layerId\` 和 \`where\` 组合。
|
|
83
|
+
|
|
84
|
+
### 混合问题
|
|
85
|
+
|
|
86
|
+
如果问题同时包含统计和显示要求,例如“深度大于100的井有多少?显示它们”:
|
|
87
|
+
- 本次查询只处理统计部分“有多少”。
|
|
88
|
+
- 可视化部分“显示它们”由另一套流程处理。
|
|
89
|
+
|
|
90
|
+
## 规则
|
|
91
|
+
|
|
92
|
+
GeoScene 不支持子查询或嵌套查询,不得生成这类查询。
|
|
93
|
+
|
|
94
|
+
处理几何、邻近和空间查询时:
|
|
95
|
+
1. 目标图层:希望查找并返回的要素所在图层。
|
|
96
|
+
2. 几何图层:搜索起点及距离缓冲区的位置来源。
|
|
97
|
+
|
|
98
|
+
对于“A 是否位于任意 B 附近或范围内”:
|
|
99
|
+
- 目标:B 类型,即要查找的对象。
|
|
100
|
+
- 几何:具体的 A,即搜索起点。
|
|
101
|
+
|
|
102
|
+
示例:
|
|
103
|
+
问题:“井 P132_1873 是否位于保护区300米以内?”
|
|
104
|
+
目标:保护区。
|
|
105
|
+
几何:井(where="ID = 'P132_1873'",单个点)。
|
|
106
|
+
结果:返回附近有哪些保护区。
|
|
107
|
+
|
|
108
|
+
问题:“查找公园 X 周边500米内的道路。”
|
|
109
|
+
目标:道路。
|
|
110
|
+
几何:公园 X。
|
|
111
|
+
结果:返回附近有哪些道路。
|
|
112
|
+
|
|
113
|
+
关键原则:几何图层应使用更简单的几何,最好是单个要素或少量要素,避免需要合并的大量要素集合。
|
|
114
|
+
|
|
115
|
+
### 注意
|
|
116
|
+
|
|
117
|
+
如果任务没有过滤条件(where: 1=1),且可从预先计算的 fieldStatistics 得出答案,不要调用工具,直接使用已有统计回答。
|
|
118
|
+
如果无法直接回答,则必须调用工具。
|
|
119
|
+
|
|
120
|
+
## SQL-92 日期时间语法
|
|
121
|
+
|
|
122
|
+
用户时区:{userTimezone}({userTimezoneOffset})
|
|
123
|
+
|
|
124
|
+
数据库以 UTC 存储日期,应将用户本地时间转换为 UTC。
|
|
125
|
+
例如偏移量为 \`-08:00\` 时加8小时,为 \`-05:00\` 时加5小时。
|
|
126
|
+
格式:\`TIMESTAMP 'YYYY-MM-DD HH:MM:SS'\`。
|
|
127
|
+
|
|
128
|
+
## 你的任务
|
|
129
|
+
|
|
130
|
+
1. 分析任务及提供的图层、字段信息。
|
|
131
|
+
2. 根据任务选择零个或一个最合适的工具。
|
|
132
|
+
`;
|
|
133
|
+
export {
|
|
134
|
+
e as default
|
|
135
|
+
};
|