@arcgis/ai-components 5.1.0-next.98 → 5.2.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- 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 +139 -0
- package/dist/agent-utils/WorkflowAgent.d.ts +44 -0
- package/dist/agent-utils/WorkflowAgent.js +70 -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 +25 -0
- package/dist/agent-utils/middlewares/trace.js +50 -0
- package/dist/agent-utils/middlewares/types.d.ts +123 -0
- package/dist/agent-utils/middlewares/types.js +2 -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 +152 -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/{24MYCR6F.js → 23EQTPO3.js} +2 -2
- package/dist/cdn/{Z3DVGFEE.js → 2AXF774U.js} +2 -2
- package/dist/cdn/{UK6CP7BR.js → 3PKJWIC3.js} +2 -2
- package/dist/cdn/462JBSEV.js +422 -0
- package/dist/cdn/5QAHYX7Y.js +5 -0
- package/dist/cdn/{YVTKUITE.js → 5ZZGKP7N.js} +2 -2
- package/dist/cdn/{VHOF6SUZ.js → 6MAINSY5.js} +4 -3
- package/dist/cdn/6R6AY3D3.js +42 -0
- package/dist/cdn/{DMLSCJAM.js → 6YMR4QSD.js} +2 -2
- package/dist/cdn/{LXFCO34K.js → 7BCR6TUO.js} +2 -2
- package/dist/cdn/{EUNEQNYC.js → 7GH7VSB2.js} +1 -1
- package/dist/cdn/{YNJYG2RG.js → 7PLV4QH6.js} +2 -2
- package/dist/cdn/{JDL3HFFX.js → 7RCQFLPP.js} +2 -2
- package/dist/cdn/AMP6IALT.js +2 -0
- package/dist/cdn/{Y3AUHNRX.js → AO7BQHKC.js} +2 -2
- package/dist/cdn/AXDZBBNL.js +45 -0
- package/dist/cdn/{WBRZZ4FB.js → DDLZOMUY.js} +2 -2
- package/dist/cdn/DHOVCT6R.js +2 -0
- package/dist/cdn/EF453FJ2.js +3 -0
- package/dist/cdn/{ESTSYVJP.js → F2AHA4GB.js} +2 -2
- package/dist/cdn/FB5DRKEB.js +14 -0
- package/dist/cdn/FX5JFRDL.js +2 -0
- package/dist/cdn/{CFT5BBC6.js → FX7UOGHP.js} +2 -2
- package/dist/cdn/{5PT7ZFXF.js → GM3QP65I.js} +2 -2
- package/dist/cdn/H7422XUG.js +2 -0
- package/dist/cdn/HB5A5R2E.js +2 -0
- package/dist/cdn/{LSGRWCAO.js → KMQ3SP4I.js} +2 -2
- package/dist/cdn/{7EXACS27.js → LBVX2JYG.js} +2 -2
- package/dist/cdn/{MZJGADGH.js → LQ6R5YRN.js} +2 -2
- package/dist/cdn/METXWS7V.js +166 -0
- package/dist/cdn/{3QC3BRZP.js → MH5RPXHM.js} +2 -2
- package/dist/cdn/N2VQD46V.js +106 -0
- package/dist/cdn/{54ATSQPS.js → NAUXSHIE.js} +18 -18
- package/dist/cdn/{SFREIREB.js → NE7E52YR.js} +2 -2
- package/dist/cdn/{2YEKZADB.js → NVI3I46B.js} +2 -2
- package/dist/cdn/{YGW7TUNX.js → OAVEHGB6.js} +1 -1
- package/dist/cdn/{DSEMD4M2.js → OH64RMOR.js} +3 -3
- package/dist/cdn/{PTGKT5P6.js → P6OPJQMC.js} +2 -2
- package/dist/cdn/QDO2AO53.js +36 -0
- package/dist/cdn/{TRDKA5Y6.js → QR54T33D.js} +2 -2
- package/dist/cdn/{457RLS3H.js → RVOAPUBN.js} +2 -2
- package/dist/cdn/{5JBT3YNY.js → SXDLXCIM.js} +2 -2
- package/dist/cdn/SZOVY2QU.js +2 -0
- package/dist/cdn/U3QQW6VA.js +16 -0
- package/dist/cdn/{G4SVCCJH.js → USMDJUFS.js} +2 -2
- package/dist/cdn/{Q5D5LJS5.js → V2P4AIGG.js} +2 -2
- package/dist/cdn/Y333DGV6.js +2 -0
- package/dist/cdn/Y67XAMT4.js +22 -0
- package/dist/cdn/{CFDTXKJ6.js → YIMNOUTF.js} +1 -1
- package/dist/cdn/ZS2TZ6BF.js +31 -0
- package/dist/cdn/{W5CHGOOR.js → ZTBA5PM7.js} +2 -2
- package/dist/cdn/assets/assistant/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/assistant/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/assistant-message-feedback/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/assistant-message-footer/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/assistant-message-read-aloud/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ar.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bg.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.bs.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ca.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.cs.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.da.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.de.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.el.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.es.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.et.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fi.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.fr.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.he.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hr.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.hu.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.id.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.it.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ja.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ko.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lt.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.lv.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.nl.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.no.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pl.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-BR.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.pt-PT.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ro.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.ru.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sk.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sl.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sr.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.sv.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.th.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.tr.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.uk.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.vi.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-CN.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-HK.json +1 -1
- package/dist/cdn/assets/assistant-suggested-prompts/t9n/messages.zh-TW.json +1 -1
- package/dist/cdn/index.js +2 -2
- package/dist/cdn/main.css +1 -1
- package/dist/chunks/BaseWorkflow.js +107 -0
- package/dist/chunks/adapter.js +2964 -0
- package/dist/chunks/arcgisKnowledgeGraph.js +174 -0
- package/dist/chunks/arcgis_knowledge_current_lc_context.js +8 -0
- package/dist/chunks/arcgis_knowledge_current_map_context.js +8 -0
- package/dist/chunks/arcgis_knowledge_lucene_generation_prompt.js +101 -0
- package/dist/chunks/arcgis_knowledge_summarize_result_prompt.js +48 -0
- package/dist/chunks/arcgis_knowledge_tool_prompt.js +34 -0
- package/dist/chunks/converterUtils.js +1 -1
- package/dist/chunks/dataExplorationGraph.js +289 -0
- package/dist/chunks/data_explore_filter_prompt.js +125 -0
- package/dist/chunks/data_explore_query_prompt.js +131 -0
- package/dist/chunks/embeddings.worker.js +25 -0
- package/dist/chunks/field_descriptions_prompt.js +112 -0
- package/dist/chunks/generateLayerDescriptions.js +413 -0
- package/dist/chunks/graph.js +86 -0
- package/dist/chunks/helpGraph.js +123 -0
- package/dist/chunks/help_prompt.js +57 -0
- package/dist/chunks/intent_prompt.js +124 -0
- package/dist/chunks/layerStylingGraph.js +189 -0
- package/dist/chunks/layer_descriptions_prompt.js +59 -0
- package/dist/chunks/layer_styling_prompt.js +72 -0
- package/dist/chunks/navigationGraph.js +266 -0
- package/dist/chunks/navigation_intent_prompt.js +46 -0
- package/dist/chunks/navigation_tool_prompt.js +39 -0
- package/dist/chunks/orchestrator.js +528 -0
- package/dist/chunks/runtime.js +2 -2
- package/dist/chunks/slottableRequestUtils.js +1 -1
- package/dist/chunks/state.js +71 -0
- package/dist/chunks/summarize_query_response_prompt.js +77 -0
- package/dist/chunks/toolCallResponse.js +29 -0
- package/dist/chunks/useT9n.js +1 -1
- package/dist/chunks/utils.js +47 -29
- package/dist/chunks/utils2.js +42 -7
- package/dist/chunks/utils3.js +16 -0
- package/dist/components/arcgis-assistant/customElement.d.ts +60 -8
- package/dist/components/arcgis-assistant/customElement.js +32 -24
- package/dist/components/arcgis-assistant/types.d.ts +1 -1
- package/dist/components/arcgis-assistant-agent/customElement.d.ts +1 -1
- package/dist/components/arcgis-assistant-agent/customElement.js +2 -2
- package/dist/components/arcgis-assistant-chat/customElement.js +1 -1
- package/dist/components/arcgis-assistant-chat-entry/customElement.js +1 -1
- package/dist/components/arcgis-assistant-data-exploration-agent/customElement.js +25 -9
- package/dist/components/arcgis-assistant-help-agent/customElement.js +28 -9
- package/dist/components/arcgis-assistant-interrupt/customElement.js +8 -12
- package/dist/components/arcgis-assistant-knowledge-agent/customElement.d.ts +158 -0
- package/dist/components/arcgis-assistant-knowledge-agent/customElement.js +68 -0
- package/dist/components/arcgis-assistant-knowledge-agent/index.d.ts +1 -0
- package/dist/components/arcgis-assistant-knowledge-agent/index.js +1 -0
- package/dist/components/arcgis-assistant-layer-styling-agent/customElement.js +28 -9
- package/dist/components/arcgis-assistant-message/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-block/customElement.d.ts +1 -1
- package/dist/components/arcgis-assistant-message-block/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-feedback/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-footer/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-loading/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-log/customElement.js +1 -1
- package/dist/components/arcgis-assistant-message-read-aloud/customElement.js +24 -28
- package/dist/components/arcgis-assistant-message-text/customElement.js +1 -1
- package/dist/components/arcgis-assistant-navigation-agent/customElement.js +26 -8
- package/dist/components/arcgis-assistant-speech-input/customElement.js +1 -1
- package/dist/components/arcgis-assistant-suggested-prompts/customElement.js +1 -1
- package/dist/components/arcgis-assistant-user-message/customElement.js +1 -1
- package/dist/docs/api.json +1 -1
- package/dist/docs/docs.json +1 -1
- package/dist/docs/vscode.html-custom-data.json +1 -1
- package/dist/docs/web-types.json +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +1 -1
- package/dist/loader.js +2 -1
- package/dist/types/lumina.d.ts +6 -1
- package/dist/types/preact.d.ts +7 -1
- package/dist/types/react.d.ts +8 -1
- package/dist/types/stencil.d.ts +6 -1
- package/dist/utils/index.d.ts +203 -9
- package/dist/utils/index.js +109 -11
- package/package.json +26 -11
- package/dist/cdn/4CPZZBYD.js +0 -2
- package/dist/cdn/5JS65BCP.js +0 -29
- package/dist/cdn/7EHQLXMU.js +0 -2
- package/dist/cdn/AKOWC7YT.js +0 -18
- package/dist/cdn/ARCP5UZY.js +0 -2
- package/dist/cdn/B4DEC7PH.js +0 -2
- package/dist/cdn/D7WNBUVK.js +0 -106
- package/dist/cdn/I2KPFZDL.js +0 -2
- package/dist/cdn/KVH3PDVW.js +0 -2
- package/dist/cdn/M73KKJSM.js +0 -2
- package/dist/cdn/O62HTIOD.js +0 -2
- package/dist/cdn/R5FWFRWW.js +0 -2
- package/dist/cdn/YW52XJMM.js +0 -396
- package/dist/cdn/Z4N6N4OZ.js +0 -271
- package/dist/cdn/ZLO73NU6.js +0 -2
- package/dist/cdn/ZPNJGIAF.js +0 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import c from "@arcgis/core/core/Accessor.js";
|
|
3
|
+
import { property as a, subclass as p } from "@arcgis/core/core/accessorSupport/decorators.js";
|
|
4
|
+
import { tool as d } from "@langchain/core/tools";
|
|
5
|
+
var h = Object.defineProperty, m = Object.getOwnPropertyDescriptor, s = (o, t, n, u) => {
|
|
6
|
+
for (var e = u > 1 ? void 0 : u ? m(t, n) : t, i = o.length - 1, l; i >= 0; i--)
|
|
7
|
+
(l = o[i]) && (e = (u ? l(t, n, e) : l(e)) || e);
|
|
8
|
+
return u && e && h(t, n, e), e;
|
|
9
|
+
};
|
|
10
|
+
let r = class extends c {
|
|
11
|
+
//#region Lifecycle
|
|
12
|
+
constructor(o) {
|
|
13
|
+
super(o), this.resultMode = "continue", this.middlewares = [];
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region Public Methods
|
|
17
|
+
/**
|
|
18
|
+
* Builds the LangChain tool adapter used by LLM agents.
|
|
19
|
+
*/
|
|
20
|
+
getTool() {
|
|
21
|
+
return d(this._executeWithMiddlewares.bind(this), {
|
|
22
|
+
name: this.name,
|
|
23
|
+
description: this.description,
|
|
24
|
+
returnDirect: this.resultMode === "terminal",
|
|
25
|
+
schema: this.inputSchema
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//#endregion
|
|
29
|
+
//#region Private Methods
|
|
30
|
+
async _executeWithMiddlewares(o, t) {
|
|
31
|
+
const n = async (e) => {
|
|
32
|
+
const i = await this.execute(e.input, e.config);
|
|
33
|
+
return this._validateOutput(i);
|
|
34
|
+
};
|
|
35
|
+
return await this.middlewares.reduceRight(
|
|
36
|
+
(e, i) => async (l) => await i.handler(l, e),
|
|
37
|
+
n
|
|
38
|
+
)({ config: t, input: o, tool: this, toolCallId: f(t) });
|
|
39
|
+
}
|
|
40
|
+
_validateOutput(o) {
|
|
41
|
+
if (!this.outputSchema)
|
|
42
|
+
return o;
|
|
43
|
+
const t = this.outputSchema.safeParse(o);
|
|
44
|
+
if (!t.success)
|
|
45
|
+
throw new Error(`FunctionTool output schema validation failed: ${t.error.message}`);
|
|
46
|
+
return t.data;
|
|
47
|
+
}
|
|
48
|
+
//#endregion
|
|
49
|
+
};
|
|
50
|
+
s([
|
|
51
|
+
a()
|
|
52
|
+
], r.prototype, "name", 2);
|
|
53
|
+
s([
|
|
54
|
+
a()
|
|
55
|
+
], r.prototype, "description", 2);
|
|
56
|
+
s([
|
|
57
|
+
a()
|
|
58
|
+
], r.prototype, "resultMode", 2);
|
|
59
|
+
s([
|
|
60
|
+
a()
|
|
61
|
+
], r.prototype, "inputSchema", 2);
|
|
62
|
+
s([
|
|
63
|
+
a()
|
|
64
|
+
], r.prototype, "outputSchema", 2);
|
|
65
|
+
s([
|
|
66
|
+
a()
|
|
67
|
+
], r.prototype, "middlewares", 2);
|
|
68
|
+
s([
|
|
69
|
+
a()
|
|
70
|
+
], r.prototype, "execute", 2);
|
|
71
|
+
r = s([
|
|
72
|
+
p("FunctionTool")
|
|
73
|
+
], r);
|
|
74
|
+
function f(o) {
|
|
75
|
+
const t = o?.toolCall;
|
|
76
|
+
return typeof t?.id == "string" ? t.id : void 0;
|
|
77
|
+
}
|
|
78
|
+
export {
|
|
79
|
+
r as FunctionTool
|
|
80
|
+
};
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import type z from "zod";
|
|
2
|
+
import type { BaseChannel, BinaryOperatorAggregate } from "@langchain/langgraph/channels";
|
|
3
|
+
import type { AnnotationRoot, StateDefinitionInit, StateGraph } from "@langchain/langgraph/web";
|
|
4
|
+
import type { AgentExecutionContext, AgentRegistration, AgentStatus } from "../utils/index.js";
|
|
5
|
+
|
|
6
|
+
/** @internal */
|
|
7
|
+
export type AgentData = Record<string, unknown>;
|
|
8
|
+
|
|
9
|
+
/** @internal */
|
|
10
|
+
export type EmptyAgentData = Record<never, never>;
|
|
11
|
+
|
|
12
|
+
/** @privateRemark All ADK agents are orchestrator-driven, so these channels exist for every agent graph. */
|
|
13
|
+
export type AgentRuntimeState = {
|
|
14
|
+
agentExecutionContext: AgentExecutionContext;
|
|
15
|
+
/** The outputMessage is a string representing the output of an agent execution. */
|
|
16
|
+
outputMessage: string;
|
|
17
|
+
/** The summary is a string providing a brief overview of the agent execution. */
|
|
18
|
+
summary: string;
|
|
19
|
+
/** The status field represents the current status of the agent execution, which can be used to indicate success, failure, or other relevant states. */
|
|
20
|
+
status?: AgentStatus;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export type AgentGraphState<TState extends AgentData = EmptyAgentData> = AgentRuntimeState
|
|
24
|
+
& Omit<TState, keyof AgentRuntimeState>;
|
|
25
|
+
|
|
26
|
+
export interface BaseAgentLike<TCustomState extends AgentData = EmptyAgentData> {
|
|
27
|
+
/**
|
|
28
|
+
* Stable ID derived from the agent name and used for graph node and registration identity.
|
|
29
|
+
*
|
|
30
|
+
* @since 5.1
|
|
31
|
+
*/
|
|
32
|
+
id: string;
|
|
33
|
+
/**
|
|
34
|
+
* Optional schema used to validate and shape agent input state.
|
|
35
|
+
*
|
|
36
|
+
* @since 5.1
|
|
37
|
+
*/
|
|
38
|
+
inputSchema?: ZodObjectSchema<object>;
|
|
39
|
+
/**
|
|
40
|
+
* Human-readable name shown in registration metadata and tooling.
|
|
41
|
+
*
|
|
42
|
+
* @since 5.1
|
|
43
|
+
*/
|
|
44
|
+
name: string;
|
|
45
|
+
/**
|
|
46
|
+
* Optional schema used to validate structured agent output.
|
|
47
|
+
*
|
|
48
|
+
* @since 5.1
|
|
49
|
+
*/
|
|
50
|
+
outputSchema?: ZodObjectSchema<object>;
|
|
51
|
+
/**
|
|
52
|
+
* Registration payload consumed by the orchestrator.
|
|
53
|
+
*
|
|
54
|
+
* @since 5.1
|
|
55
|
+
*/
|
|
56
|
+
registration: AgentRegistration;
|
|
57
|
+
/** Regenerates workspace and graph wiring for this agent. */
|
|
58
|
+
generate: () => void;
|
|
59
|
+
/** Returns all schemas the agent contributes to state/input/output validation. */
|
|
60
|
+
getSchemas: () => ZodObjectSchema<object>[];
|
|
61
|
+
/**
|
|
62
|
+
* Executes the compiled graph for this agent.
|
|
63
|
+
*
|
|
64
|
+
* @param state - Optional partial state used as graph input.
|
|
65
|
+
* @param config - Optional runtime execution configuration.
|
|
66
|
+
* @return The resulting graph state after execution.
|
|
67
|
+
* @since 5.1
|
|
68
|
+
*/
|
|
69
|
+
run(state?: Partial<AgentGraphState<TCustomState>>, config?: AgentExecutionConfig): Promise<AgentGraphState<TCustomState>>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** AgentExecutionConfig defines the shape of the configuration object that can be passed to agent execution methods to influence their behavior at runtime. */
|
|
73
|
+
export interface AgentExecutionConfig {
|
|
74
|
+
/**
|
|
75
|
+
* The configurable field allows passing arbitrary key-value pairs that can be used by agents during execution to modify their behavior or provide additional context.
|
|
76
|
+
* This can include flags, parameters, or any other relevant information that an agent might need to access at runtime.
|
|
77
|
+
*
|
|
78
|
+
* @since 5.1
|
|
79
|
+
*/
|
|
80
|
+
configurable?: Record<string, unknown>;
|
|
81
|
+
metadata?: Record<string, unknown>;
|
|
82
|
+
recursionLimit?: number;
|
|
83
|
+
runName?: string;
|
|
84
|
+
/**
|
|
85
|
+
* The signal property is an optional AbortSignal that can be used to cancel the execution of an agent. Agents should listen for the abort signal and gracefully handle cancellation when it is triggered.
|
|
86
|
+
*
|
|
87
|
+
* @since 5.1
|
|
88
|
+
*/
|
|
89
|
+
signal?: AbortSignal;
|
|
90
|
+
tags?: string[];
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export type AgentCustomState<TInput extends AgentData = AgentData, TOutput extends AgentData = AgentData> = Omit<TInput, keyof AgentRuntimeState>
|
|
94
|
+
& Partial<Omit<TOutput, keyof AgentRuntimeState>>;
|
|
95
|
+
|
|
96
|
+
export type AgentNodeState<TInput extends AgentData = AgentData, TOutput extends AgentData = AgentData> = AgentGraphState<AgentCustomState<TInput, TOutput>>;
|
|
97
|
+
|
|
98
|
+
export type AgentNodeUpdate<TInput extends AgentData, TOutput extends AgentData> = Partial<AgentNodeState<TInput, TOutput>>;
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* AgentStateAnnotation defines the shape of the agent state used in LangGraph nodes, including both the built-in runtime channels
|
|
102
|
+
* and any custom fields defined by the agent.
|
|
103
|
+
*
|
|
104
|
+
* @internal
|
|
105
|
+
* @since 5.1
|
|
106
|
+
*/
|
|
107
|
+
export type AgentStateAnnotation<TState extends AgentData> = AnnotationRoot<{
|
|
108
|
+
[K in keyof TState]: BinaryOperatorAggregate<TState[K] | undefined, TState[K] | undefined>;
|
|
109
|
+
} & {
|
|
110
|
+
agentExecutionContext: BaseChannel<AgentExecutionContext, unknown, unknown>;
|
|
111
|
+
outputMessage: BaseChannel<string, unknown, unknown>;
|
|
112
|
+
summary: BaseChannel<string, unknown, unknown>;
|
|
113
|
+
status: BaseChannel<AgentStatus | undefined, unknown, unknown>;
|
|
114
|
+
}>;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* State update shape produced by graph nodes.
|
|
118
|
+
*
|
|
119
|
+
* @since 5.1
|
|
120
|
+
*/
|
|
121
|
+
export type RunnableUpdate<TState extends AgentData> = Partial<TState> extends object ? Partial<TState> & Record<string, any> : Partial<TState>;
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Internal type representing the compiled graph used for agent execution.
|
|
125
|
+
*
|
|
126
|
+
* @internal
|
|
127
|
+
* @since 5.1
|
|
128
|
+
*/
|
|
129
|
+
export type TypedStateGraph<TState extends AgentData> = StateGraph<StateDefinitionInit, AgentGraphState<TState>, RunnableUpdate<AgentGraphState<TState>>, string>;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* The shape of the `createGraph` function used by agents to generate their internal graph representation.
|
|
133
|
+
* This function is responsible for defining the nodes and edges of the graph, as well as any associated state and middleware.
|
|
134
|
+
*
|
|
135
|
+
* @internal
|
|
136
|
+
* @since 5.1
|
|
137
|
+
*/
|
|
138
|
+
export type AgentCreateGraph<TState extends AgentData> = () => TypedStateGraph<TState>;
|
|
139
|
+
|
|
140
|
+
/** ZodObjectSchema is a simplified type representing Zod object schemas used for input and output validation in agents. */
|
|
141
|
+
export type ZodObjectSchema<T extends object = AgentData> = Pick<z.ZodType<T>, "safeParse">
|
|
142
|
+
& z.ZodObject;
|
|
143
|
+
|
|
144
|
+
export type GraphNodes<S extends AgentData> = Record<string, (state: S, config?: AgentExecutionConfig) => Partial<S> | Promise<Partial<S> | S> | S>;
|
|
145
|
+
|
|
146
|
+
export type GraphEdge<S extends AgentData> = {
|
|
147
|
+
from: string;
|
|
148
|
+
decide: (state: S, config?: AgentExecutionConfig) => Promise<string | undefined> | string | undefined;
|
|
149
|
+
} | {
|
|
150
|
+
from: string;
|
|
151
|
+
to: string;
|
|
152
|
+
};
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import type Accessor from "@arcgis/core/core/Accessor.js";
|
|
2
|
+
import type { AgentCreateGraph, AgentData, AgentGraphState, AgentStateAnnotation, BaseAgentLike, GraphEdge, GraphNodes } from "../types.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Return payload from `BaseWorkflow.generate()`.
|
|
6
|
+
*
|
|
7
|
+
* @since 5.1
|
|
8
|
+
*/
|
|
9
|
+
export type WorkflowGenerateResult<TState extends AgentData = AgentData> = {
|
|
10
|
+
/**
|
|
11
|
+
* Shared workflow state annotation.
|
|
12
|
+
*
|
|
13
|
+
* @since 5.1
|
|
14
|
+
*/
|
|
15
|
+
workspace: AgentStateAnnotation<TState>;
|
|
16
|
+
/**
|
|
17
|
+
* Factory that creates the workflow graph.
|
|
18
|
+
*
|
|
19
|
+
* @since 5.1
|
|
20
|
+
*/
|
|
21
|
+
createGraph: AgentCreateGraph<TState>;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* BaseWorkflow is the foundational class for defining workflows. A workflow defines a sequence of
|
|
26
|
+
* agents that work together to accomplish a task. This class provides the structure and common
|
|
27
|
+
* building blocks for constructing a workflow, including generating the shared workspace and
|
|
28
|
+
* creating the graph that defines how agents are connected and executed.
|
|
29
|
+
*
|
|
30
|
+
* Specific workflows extend this base class and implement the abstract methods to define
|
|
31
|
+
* their unique behavior and structure.
|
|
32
|
+
*
|
|
33
|
+
* The following workflow types are supported:
|
|
34
|
+
*
|
|
35
|
+
* - `SequentialWorkflow` - executes agents in a sequence, where the output of one agent can be passed as input to the next.
|
|
36
|
+
* - `ConditionalWorkflow` - allows for branching logic based on conditions evaluated at runtime, enabling different paths of execution depending on user input or LLM output.
|
|
37
|
+
* - `LoopWorkflow` - supports repeating a set of agents until a certain condition is met, useful for iterative processes.
|
|
38
|
+
* - `ParallelWorkflow` - enables concurrent execution of multiple agents, allowing for tasks that can be performed simultaneously.
|
|
39
|
+
* - `RouterWorkflow` - dynamically routes execution to different agents based on the input or state, providing flexibility in handling various scenarios.
|
|
40
|
+
* - `SwitchWorkflow` - similar to RouterWorkflow but designed for cases where there are multiple distinct paths based on discrete values in the input or state.
|
|
41
|
+
*
|
|
42
|
+
* @since 5.1
|
|
43
|
+
*/
|
|
44
|
+
export abstract class BaseWorkflow<TState extends AgentData = AgentData> extends Accessor {
|
|
45
|
+
/**
|
|
46
|
+
* Builds the workflow-specific edges.
|
|
47
|
+
*
|
|
48
|
+
* @param agents
|
|
49
|
+
*/
|
|
50
|
+
protected abstract buildEdges(agents: BaseAgentLike<TState>[]): GraphEdge<AgentGraphState<TState>>[];
|
|
51
|
+
/**
|
|
52
|
+
* Builds the workflow's graph nodes.
|
|
53
|
+
*
|
|
54
|
+
* Node ids use the agent id plus its position (`agent.id_index`) instead of only the raw
|
|
55
|
+
* agent id. That prevents collisions when the same agent instance is used multiple times.
|
|
56
|
+
*
|
|
57
|
+
* @param agents
|
|
58
|
+
*/
|
|
59
|
+
protected buildNodes(agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>>;
|
|
60
|
+
/**
|
|
61
|
+
* Generates the workflow's graph and shared workspace based on the defined agents and their schemas. This method is
|
|
62
|
+
* called by the WorkflowAgent when it generates its graph, and it orchestrates the creation of the workflow's structure,
|
|
63
|
+
* including validating the agents, deriving shared state from their schemas, and building the nodes and edges of the graph.
|
|
64
|
+
*/
|
|
65
|
+
generate(): WorkflowGenerateResult<TState>;
|
|
66
|
+
/** A list of agents that are part of this workflow. */
|
|
67
|
+
abstract getAgents(): BaseAgentLike<TState>[];
|
|
68
|
+
/**
|
|
69
|
+
* Returns the id of the first node in the workflow graph.
|
|
70
|
+
*
|
|
71
|
+
* @param agents
|
|
72
|
+
*/
|
|
73
|
+
protected abstract getEntryNode(agents: BaseAgentLike<TState>[]): string | undefined;
|
|
74
|
+
/**
|
|
75
|
+
* Returns whether the agent at this position should expose terminal runtime fields.
|
|
76
|
+
*
|
|
77
|
+
* @param agents
|
|
78
|
+
* @param index
|
|
79
|
+
*/
|
|
80
|
+
protected abstract isTerminalAgent(agents: BaseAgentLike<TState>[], index: number): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Validates the workflow configuration and throws if invalid.
|
|
83
|
+
*
|
|
84
|
+
* @param agents
|
|
85
|
+
*/
|
|
86
|
+
protected validateAgents(agents: BaseAgentLike<TState>[]): void;
|
|
87
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { AgentData, AgentExecutionConfig, AgentGraphState, BaseAgentLike, GraphEdge, GraphNodes } from "../types.js";
|
|
2
|
+
import type { BaseWorkflow } from "./BaseWorkflow.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Condition function that routes execution to either the true branch or false branch.
|
|
6
|
+
*
|
|
7
|
+
* @param state - Current workflow graph state.
|
|
8
|
+
* @param config - Optional execution configuration.
|
|
9
|
+
* @since 5.1
|
|
10
|
+
*/
|
|
11
|
+
export type ConditionDecider<TState extends AgentData = AgentData> = (state: AgentGraphState<TState>, config?: AgentExecutionConfig) => Promise<boolean> | boolean;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* ConditionalWorkflow chooses between two branch agents based on a boolean condition and
|
|
15
|
+
* routes execution through a simple true/false branch.
|
|
16
|
+
*
|
|
17
|
+
* Use when:
|
|
18
|
+
* - you want an if/else style decision or
|
|
19
|
+
* - only two branches are needed.
|
|
20
|
+
*
|
|
21
|
+
* How it works:
|
|
22
|
+
* - evaluate `condition(state, config)`,
|
|
23
|
+
* - if true, run the first branch agent,
|
|
24
|
+
* - if false, run the second branch agent.
|
|
25
|
+
*
|
|
26
|
+
* @since 5.1
|
|
27
|
+
*/
|
|
28
|
+
export class ConditionalWorkflow<TState extends AgentData = AgentData> extends BaseWorkflow<TState> {
|
|
29
|
+
constructor(properties: ConstructProperties<TState>);
|
|
30
|
+
/**
|
|
31
|
+
* Must contain exactly two agents: `[trueAgent, falseAgent]`. The first agent is executed when
|
|
32
|
+
* the condition is true, the second when the condition is false.
|
|
33
|
+
*
|
|
34
|
+
* @required
|
|
35
|
+
*/
|
|
36
|
+
accessor agents: BaseAgentLike<TState>[];
|
|
37
|
+
/**
|
|
38
|
+
* Predicate that chooses the next branch.
|
|
39
|
+
*
|
|
40
|
+
* @required
|
|
41
|
+
*/
|
|
42
|
+
accessor condition: ConditionDecider<TState>;
|
|
43
|
+
/**
|
|
44
|
+
* Builds the workflow-specific edges.
|
|
45
|
+
*
|
|
46
|
+
* @param agents
|
|
47
|
+
*/
|
|
48
|
+
protected buildEdges(agents: BaseAgentLike<TState>[]): GraphEdge<AgentGraphState<TState>>[];
|
|
49
|
+
/**
|
|
50
|
+
* Builds the workflow's graph nodes.
|
|
51
|
+
*
|
|
52
|
+
* Node ids use the agent id plus its position (`agent.id_index`) instead of only the raw
|
|
53
|
+
* agent id. That prevents collisions when the same agent instance is used multiple times.
|
|
54
|
+
*
|
|
55
|
+
* @param agents
|
|
56
|
+
*/
|
|
57
|
+
protected buildNodes(agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>>;
|
|
58
|
+
/** A list of agents that are part of this workflow. */
|
|
59
|
+
getAgents(): BaseAgentLike<TState>[];
|
|
60
|
+
/** Returns the id of the first node in the workflow graph. */
|
|
61
|
+
protected getEntryNode(): string;
|
|
62
|
+
/** Returns whether the agent at this position should expose terminal runtime fields. */
|
|
63
|
+
protected isTerminalAgent(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Validates the workflow configuration and throws if invalid.
|
|
66
|
+
*
|
|
67
|
+
* @param agents
|
|
68
|
+
*/
|
|
69
|
+
protected validateAgents(agents: BaseAgentLike<TState>[]): void;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export type ConstructProperties<TState extends AgentData> = Pick<ConditionalWorkflow<TState>, "agents" | "condition">;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import { property as u, subclass as f } from "@arcgis/core/core/accessorSupport/decorators.js";
|
|
3
|
+
import { B as p, g as c } from "../../chunks/BaseWorkflow.js";
|
|
4
|
+
var g = Object.defineProperty, w = Object.getOwnPropertyDescriptor, a = (e, r, n, t) => {
|
|
5
|
+
for (var o = t > 1 ? void 0 : t ? w(r, n) : r, i = e.length - 1, s; i >= 0; i--)
|
|
6
|
+
(s = e[i]) && (o = (t ? s(r, n, o) : s(o)) || o);
|
|
7
|
+
return t && o && g(r, n, o), o;
|
|
8
|
+
};
|
|
9
|
+
let l = class extends p {
|
|
10
|
+
//#region Lifecycle
|
|
11
|
+
constructor(e) {
|
|
12
|
+
super(e);
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
//#region Public Methods
|
|
16
|
+
getAgents() {
|
|
17
|
+
return this.agents;
|
|
18
|
+
}
|
|
19
|
+
//#endregion
|
|
20
|
+
//#region Protected Methods
|
|
21
|
+
buildNodes(e) {
|
|
22
|
+
const r = super.buildNodes(e);
|
|
23
|
+
return r[d] = () => ({}), r;
|
|
24
|
+
}
|
|
25
|
+
buildEdges(e) {
|
|
26
|
+
const r = this.condition;
|
|
27
|
+
if (!r)
|
|
28
|
+
throw new Error("ConditionalWorkflow requires a condition.");
|
|
29
|
+
const n = c(e[0], 0), t = c(e[1], 1);
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
from: d,
|
|
33
|
+
decide: async (o, i) => await Promise.resolve(r(o, i)) ? n : t
|
|
34
|
+
}
|
|
35
|
+
];
|
|
36
|
+
}
|
|
37
|
+
getEntryNode() {
|
|
38
|
+
return d;
|
|
39
|
+
}
|
|
40
|
+
isTerminalAgent() {
|
|
41
|
+
return !0;
|
|
42
|
+
}
|
|
43
|
+
validateAgents(e) {
|
|
44
|
+
if (super.validateAgents(e), e.length !== 2)
|
|
45
|
+
throw new Error(`ConditionalWorkflow requires exactly 2 agents; received ${e.length}.`);
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
};
|
|
49
|
+
a([
|
|
50
|
+
u()
|
|
51
|
+
], l.prototype, "condition", 2);
|
|
52
|
+
a([
|
|
53
|
+
u()
|
|
54
|
+
], l.prototype, "agents", 2);
|
|
55
|
+
l = a([
|
|
56
|
+
f("ConditionalWorkflow")
|
|
57
|
+
], l);
|
|
58
|
+
const d = "__conditional_decide";
|
|
59
|
+
export {
|
|
60
|
+
l as ConditionalWorkflow
|
|
61
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { AgentData, AgentExecutionConfig, AgentGraphState, BaseAgentLike, GraphEdge } from "../types.js";
|
|
2
|
+
import type { BaseWorkflow, WorkflowGenerateResult } from "./BaseWorkflow.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Loop continuation predicate. Return true to run another iteration.
|
|
6
|
+
*
|
|
7
|
+
* @param state - Current workflow graph state.
|
|
8
|
+
* @param config - Optional execution configuration.
|
|
9
|
+
* @since 5.1
|
|
10
|
+
*/
|
|
11
|
+
export type LoopDecider<TState extends AgentData = AgentData> = (state: AgentGraphState<TState>, config?: AgentExecutionConfig) => Promise<boolean> | boolean;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* LoopWorkflow repeatedly executes an inner workflow until a stop condition is met.
|
|
15
|
+
*
|
|
16
|
+
* Use in the following scenarios:
|
|
17
|
+
*
|
|
18
|
+
* - You need retry/refine loops,
|
|
19
|
+
* - You want iterative planning and execution.
|
|
20
|
+
*
|
|
21
|
+
* How it works:
|
|
22
|
+
* - Runs the inner `workflow`,
|
|
23
|
+
* - Evaluates `decideContinue(state, config)`,
|
|
24
|
+
* - If true, runs again; if false (or unset), stops.
|
|
25
|
+
*
|
|
26
|
+
* @since 5.1
|
|
27
|
+
*/
|
|
28
|
+
export class LoopWorkflow<TState extends AgentData = AgentData> extends BaseWorkflow<TState> {
|
|
29
|
+
constructor(properties: ConstructProperties<TState>);
|
|
30
|
+
/**
|
|
31
|
+
* Function that decides whether the loop should continue.
|
|
32
|
+
*
|
|
33
|
+
* @required
|
|
34
|
+
*/
|
|
35
|
+
accessor decideContinue: LoopDecider<TState>;
|
|
36
|
+
/**
|
|
37
|
+
* Inner workflow to execute on each loop iteration.
|
|
38
|
+
*
|
|
39
|
+
* @required
|
|
40
|
+
*/
|
|
41
|
+
accessor workflow: BaseWorkflow<TState>;
|
|
42
|
+
/** Builds the workflow-specific edges. */
|
|
43
|
+
protected buildEdges(): GraphEdge<AgentGraphState<TState>>[];
|
|
44
|
+
/**
|
|
45
|
+
* Generates the workflow's graph and shared workspace based on the defined agents and their schemas. This method is
|
|
46
|
+
* called by the WorkflowAgent when it generates its graph, and it orchestrates the creation of the workflow's structure,
|
|
47
|
+
* including validating the agents, deriving shared state from their schemas, and building the nodes and edges of the graph.
|
|
48
|
+
*/
|
|
49
|
+
generate(): WorkflowGenerateResult<TState>;
|
|
50
|
+
/** A list of agents that are part of this workflow. */
|
|
51
|
+
getAgents(): BaseAgentLike<TState>[];
|
|
52
|
+
/** Returns the id of the first node in the workflow graph. */
|
|
53
|
+
protected getEntryNode(): string;
|
|
54
|
+
/** Returns whether the agent at this position should expose terminal runtime fields. */
|
|
55
|
+
protected isTerminalAgent(): boolean;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export type ConstructProperties<TState extends AgentData> = Pick<LoopWorkflow<TState>, "decideContinue" | "workflow">;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
+
import { property as u, subclass as w } from "@arcgis/core/core/accessorSupport/decorators.js";
|
|
3
|
+
import { c as f } from "../../chunks/graph.js";
|
|
4
|
+
import { B as h } from "../../chunks/BaseWorkflow.js";
|
|
5
|
+
var g = Object.defineProperty, m = Object.getOwnPropertyDescriptor, d = (o, r, n, t) => {
|
|
6
|
+
for (var e = t > 1 ? void 0 : t ? m(r, n) : r, s = o.length - 1, c; s >= 0; s--)
|
|
7
|
+
(c = o[s]) && (e = (t ? c(r, n, e) : c(e)) || e);
|
|
8
|
+
return t && e && g(r, n, e), e;
|
|
9
|
+
};
|
|
10
|
+
let p = class extends h {
|
|
11
|
+
//#region Lifecycle
|
|
12
|
+
constructor(o) {
|
|
13
|
+
super(o);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
//#region Public Methods
|
|
17
|
+
getAgents() {
|
|
18
|
+
return this.workflow.getAgents();
|
|
19
|
+
}
|
|
20
|
+
generate() {
|
|
21
|
+
const o = this.workflow.generate(), r = o.workspace, n = o.createGraph().compile(), { decideContinue: t } = this, e = {
|
|
22
|
+
[a]: async (i, l) => await n.invoke(i, l)
|
|
23
|
+
}, s = [
|
|
24
|
+
{
|
|
25
|
+
from: a,
|
|
26
|
+
decide: async (i, l) => await Promise.resolve(t(i, l)) ? a : void 0
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
return { workspace: r, createGraph: () => f(e, s, r, { entryNode: a }) };
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
//#region Protected Methods
|
|
33
|
+
buildEdges() {
|
|
34
|
+
throw new Error("LoopWorkflow overrides generate(); buildEdges should not be called.");
|
|
35
|
+
}
|
|
36
|
+
getEntryNode() {
|
|
37
|
+
return a;
|
|
38
|
+
}
|
|
39
|
+
isTerminalAgent() {
|
|
40
|
+
return !0;
|
|
41
|
+
}
|
|
42
|
+
//#endregion
|
|
43
|
+
};
|
|
44
|
+
d([
|
|
45
|
+
u()
|
|
46
|
+
], p.prototype, "workflow", 2);
|
|
47
|
+
d([
|
|
48
|
+
u()
|
|
49
|
+
], p.prototype, "decideContinue", 2);
|
|
50
|
+
p = d([
|
|
51
|
+
w("LoopWorkflow")
|
|
52
|
+
], p);
|
|
53
|
+
const a = "__loop_body";
|
|
54
|
+
export {
|
|
55
|
+
p as LoopWorkflow
|
|
56
|
+
};
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { AgentData, AgentGraphState, BaseAgentLike, GraphEdge, GraphNodes } from "../types.js";
|
|
2
|
+
import type { BaseWorkflow, WorkflowGenerateResult } from "./BaseWorkflow.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* ParallelWorkflow fans out execution to multiple agents and merges branch outputs.
|
|
6
|
+
*
|
|
7
|
+
* Use in the following scenarios:
|
|
8
|
+
* - Branches can run independently from the same input,
|
|
9
|
+
* - You want fan-out/fan-in behavior.
|
|
10
|
+
*
|
|
11
|
+
* How it works:
|
|
12
|
+
* - Fan out - every agent receives the same input snapshot,
|
|
13
|
+
* - Each branch collects its result in a hidden state key,
|
|
14
|
+
* - Fan in - merge outputs in declared agent order.
|
|
15
|
+
*
|
|
16
|
+
* Merge rule:
|
|
17
|
+
* - If two branches set the same shared key to different values, an error is thrown,
|
|
18
|
+
* as this indicates a conflict the workflow cannot resolve on its own.
|
|
19
|
+
*
|
|
20
|
+
* @since 5.1
|
|
21
|
+
*/
|
|
22
|
+
export class ParallelWorkflow<TState extends AgentData = AgentData> extends BaseWorkflow<TState> {
|
|
23
|
+
constructor(properties: ConstructProperties<TState>);
|
|
24
|
+
/**
|
|
25
|
+
* Agents to run in parallel from the same input snapshot.
|
|
26
|
+
*
|
|
27
|
+
* @required
|
|
28
|
+
*/
|
|
29
|
+
accessor agents: BaseAgentLike<TState>[];
|
|
30
|
+
/**
|
|
31
|
+
* Builds the workflow-specific edges.
|
|
32
|
+
*
|
|
33
|
+
* @param agents
|
|
34
|
+
*/
|
|
35
|
+
protected buildEdges(agents: BaseAgentLike<TState>[]): GraphEdge<AgentGraphState<TState>>[];
|
|
36
|
+
/**
|
|
37
|
+
* Builds the workflow's graph nodes.
|
|
38
|
+
*
|
|
39
|
+
* Node ids use the agent id plus its position (`agent.id_index`) instead of only the raw
|
|
40
|
+
* agent id. That prevents collisions when the same agent instance is used multiple times.
|
|
41
|
+
*
|
|
42
|
+
* @param agents
|
|
43
|
+
*/
|
|
44
|
+
protected buildNodes(agents: BaseAgentLike<TState>[]): GraphNodes<AgentGraphState<TState>>;
|
|
45
|
+
/**
|
|
46
|
+
* Generates the workflow's graph and shared workspace based on the defined agents and their schemas. This method is
|
|
47
|
+
* called by the WorkflowAgent when it generates its graph, and it orchestrates the creation of the workflow's structure,
|
|
48
|
+
* including validating the agents, deriving shared state from their schemas, and building the nodes and edges of the graph.
|
|
49
|
+
*/
|
|
50
|
+
generate(): WorkflowGenerateResult<TState>;
|
|
51
|
+
/** A list of agents that are part of this workflow. */
|
|
52
|
+
getAgents(): BaseAgentLike<TState>[];
|
|
53
|
+
/**
|
|
54
|
+
* Returns the id of the first node in the workflow graph.
|
|
55
|
+
*
|
|
56
|
+
* @param _agents
|
|
57
|
+
*/
|
|
58
|
+
protected getEntryNode(_agents: BaseAgentLike<TState>[]): string;
|
|
59
|
+
/**
|
|
60
|
+
* Returns whether the agent at this position should expose terminal runtime fields.
|
|
61
|
+
*
|
|
62
|
+
* @param _agents
|
|
63
|
+
* @param _index
|
|
64
|
+
*/
|
|
65
|
+
protected isTerminalAgent(_agents: BaseAgentLike<TState>[], _index: number): boolean;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export type ConstructProperties<TState extends AgentData> = Pick<ParallelWorkflow<TState>, "agents">;
|