From 9b86a86bfcc858380356473d6f2debbed8757040 Mon Sep 17 00:00:00 2001 From: Rizel Scarlett Date: Thu, 24 Apr 2025 11:05:55 -0400 Subject: [PATCH 001/216] docs: remove repeated paragraph (#2328) --- documentation/docs/getting-started/installation.md | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/documentation/docs/getting-started/installation.md b/documentation/docs/getting-started/installation.md index 6944ed87..a9a81d20 100644 --- a/documentation/docs/getting-started/installation.md +++ b/documentation/docs/getting-started/installation.md @@ -240,19 +240,13 @@ Goose works with a set of [supported LLM providers][providers], and you’ll nee -## Goose Configuration Sharing - -Goose Desktop and CLI applications share all core configurations, including LLM provider settings, model selection, and extension configurations. When you install or configure extensions in either interface, the settings are stored in a central location at `~/.config/goose/config.yaml`, making them available to both the Desktop application and CLI. - -You can manage these shared configurations through the Desktop settings or by using the CLI command `goose configure`, which allows you to add, remove, or toggle extensions and modify other core settings. - -## Shared Configuration Settings +## Shared Configuration Settings The Goose CLI and Desktop UI share all core configurations, including LLM provider settings, model selection, and extension configurations. When you install or configure extensions in either interface, the settings are stored in a central location at `~/.config/goose/config.yaml`, making them available to both the Desktop application and CLI. This makes it convenient to switch between interfaces while maintaining consistent settings. :::note While core configurations are shared between interfaces, extensions have flexibility in how they store authentication credentials. Some extensions may use the shared config file while others implement their own storage methods. -::: +::: From 31cc28475014ceac3b46448a8c57df9a36c0685e Mon Sep 17 00:00:00 2001 From: Zane <75694352+zanesq@users.noreply.github.com> Date: Thu, 24 Apr 2025 08:26:41 -0700 Subject: [PATCH 002/216] fix tool permission modal not scrolling (#2336) --- .../src/components/settings_v2/permission/PermissionModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/desktop/src/components/settings_v2/permission/PermissionModal.tsx b/ui/desktop/src/components/settings_v2/permission/PermissionModal.tsx index aea13162..db5e3c52 100644 --- a/ui/desktop/src/components/settings_v2/permission/PermissionModal.tsx +++ b/ui/desktop/src/components/settings_v2/permission/PermissionModal.tsx @@ -103,7 +103,7 @@ export default function PermissionModal({ extensionName, onClose }: PermissionMo !open && onClose()}> - +
From 05fef9073fae014001149754681922edc5c917cf Mon Sep 17 00:00:00 2001 From: Alex Hancock Date: Thu, 24 Apr 2025 11:27:08 -0400 Subject: [PATCH 003/216] feat: add/change model without reinit of extensions (#2334) --- ui/desktop/openapi.json | 2 +- .../src/components/settings_v2/models/index.ts | 18 +++++------------- .../models/model_list/BaseModelsList.tsx | 4 ++-- .../models/subcomponents/AddModelModal.tsx | 4 +--- 4 files changed, 9 insertions(+), 19 deletions(-) diff --git a/ui/desktop/openapi.json b/ui/desktop/openapi.json index 4e20f6cc..935cf963 100644 --- a/ui/desktop/openapi.json +++ b/ui/desktop/openapi.json @@ -10,7 +10,7 @@ "license": { "name": "Apache-2.0" }, - "version": "1.0.19" + "version": "1.0.20" }, "paths": { "/agent/tools": { diff --git a/ui/desktop/src/components/settings_v2/models/index.ts b/ui/desktop/src/components/settings_v2/models/index.ts index eb63cb6a..961696af 100644 --- a/ui/desktop/src/components/settings_v2/models/index.ts +++ b/ui/desktop/src/components/settings_v2/models/index.ts @@ -1,9 +1,8 @@ -import { initializeSystem } from '../../../utils/providerUtils'; +import { initializeAgent } from '../../../agent'; import { toastError, toastSuccess } from '../../../toasts'; import { ProviderDetails } from '@/src/api'; import Model, { getProviderMetadata } from './modelInterface'; import { ProviderMetadata } from '../../../api'; -import type { ExtensionConfig, FixedExtensionEntry } from '../../ConfigContext'; // titles export const UNKNOWN_PROVIDER_TITLE = 'Provider name lookup'; @@ -22,23 +21,16 @@ const SWITCH_MODEL_SUCCESS_MSG = 'Successfully switched models'; interface changeModelProps { model: Model; writeToConfig: (key: string, value: unknown, is_secret: boolean) => Promise; - getExtensions?: (b: boolean) => Promise; - addExtension?: (name: string, config: ExtensionConfig, enabled: boolean) => Promise; } // TODO: error handling -export async function changeModel({ - model, - writeToConfig, - getExtensions, - addExtension, -}: changeModelProps) { +export async function changeModel({ model, writeToConfig }: changeModelProps) { const modelName = model.name; const providerName = model.provider; try { - await initializeSystem(providerName, modelName, { - getExtensions, - addExtension, + await initializeAgent({ + model: model.name, + provider: model.provider, }); } catch (error) { console.error(`Failed to change model at agent step -- ${modelName} ${providerName}`); diff --git a/ui/desktop/src/components/settings_v2/models/model_list/BaseModelsList.tsx b/ui/desktop/src/components/settings_v2/models/model_list/BaseModelsList.tsx index 12512fda..8bf35e53 100644 --- a/ui/desktop/src/components/settings_v2/models/model_list/BaseModelsList.tsx +++ b/ui/desktop/src/components/settings_v2/models/model_list/BaseModelsList.tsx @@ -30,7 +30,7 @@ export function BaseModelsList({ } else { modelList = providedModelList; } - const { read, upsert, getExtensions, addExtension } = useConfig(); + const { read, upsert } = useConfig(); const [selectedModel, setSelectedModel] = useState(null); const [isInitialized, setIsInitialized] = useState(false); @@ -75,7 +75,7 @@ export function BaseModelsList({ }, [read, modelList, upsert]); const handleModelSelection = async (model: Model) => { - await changeModel({ model: model, writeToConfig: upsert, getExtensions, addExtension }); + await changeModel({ model: model, writeToConfig: upsert }); }; const handleRadioChange = async (model: Model) => { diff --git a/ui/desktop/src/components/settings_v2/models/subcomponents/AddModelModal.tsx b/ui/desktop/src/components/settings_v2/models/subcomponents/AddModelModal.tsx index e2610fed..f3cf992b 100644 --- a/ui/desktop/src/components/settings_v2/models/subcomponents/AddModelModal.tsx +++ b/ui/desktop/src/components/settings_v2/models/subcomponents/AddModelModal.tsx @@ -38,7 +38,7 @@ type AddModelModalProps = { setView: (view: View) => void; }; export const AddModelModal = ({ onClose, setView }: AddModelModalProps) => { - const { getProviders, upsert, getExtensions, addExtension } = useConfig(); + const { getProviders, upsert } = useConfig(); const { switchModel } = useModel(); const [providerOptions, setProviderOptions] = useState([]); const [modelOptions, setModelOptions] = useState([]); @@ -88,8 +88,6 @@ export const AddModelModal = ({ onClose, setView }: AddModelModalProps) => { await changeModel({ model: modelObj, writeToConfig: upsert, - getExtensions, - addExtension, }); // Update the model context From bc4adc2ec93ae7cc9407709203f3aca4d1e9f54c Mon Sep 17 00:00:00 2001 From: Zane <75694352+zanesq@users.noreply.github.com> Date: Thu, 24 Apr 2025 09:34:28 -0700 Subject: [PATCH 004/216] Fix spacebar key triggering action link in alert popups (#2339) --- ui/desktop/src/components/alerts/AlertBox.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/desktop/src/components/alerts/AlertBox.tsx b/ui/desktop/src/components/alerts/AlertBox.tsx index cc098711..6806e4d1 100644 --- a/ui/desktop/src/components/alerts/AlertBox.tsx +++ b/ui/desktop/src/components/alerts/AlertBox.tsx @@ -25,15 +25,17 @@ export const AlertBox = ({ alert, className }: AlertBoxProps) => {
{alert.message} {alert.action && ( - + )}
From 1fe44e4ff01b4a1297845e6118d5d750535a05ee Mon Sep 17 00:00:00 2001 From: Alex Hancock Date: Thu, 24 Apr 2025 14:11:06 -0400 Subject: [PATCH 005/216] feat: full spellcheck/correction support for editable content in the app (#2341) --- ui/desktop/src/main.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/ui/desktop/src/main.ts b/ui/desktop/src/main.ts index 3f815f7d..82c3c5b3 100644 --- a/ui/desktop/src/main.ts +++ b/ui/desktop/src/main.ts @@ -361,6 +361,43 @@ const createChat = async ( }, }); + // Enable spellcheck / right and ctrl + click on mispelled word + // + // NOTE: We could use webContents.session.availableSpellCheckerLanguages to include + // all languages in the list of spell checked words, but it diminishes the times you + // get red squigglies back for mispelled english words. Given the rest of Goose only + // renders in english right now, this feels like the correct set of language codes + // for the moment. + // + // TODO: Load language codes from a setting if we ever have i18n/l10n + mainWindow.webContents.session.setSpellCheckerLanguages(['en-US', 'en-GB']); + mainWindow.webContents.on('context-menu', (event, params) => { + const menu = new Menu(); + + // Add each spelling suggestion + for (const suggestion of params.dictionarySuggestions) { + menu.append( + new MenuItem({ + label: suggestion, + click: () => mainWindow.webContents.replaceMisspelling(suggestion), + }) + ); + } + + // Allow users to add the misspelled word to the dictionary + if (params.misspelledWord) { + menu.append( + new MenuItem({ + label: 'Add to dictionary', + click: () => + mainWindow.webContents.session.addWordToSpellCheckerDictionary(params.misspelledWord), + }) + ); + } + + menu.popup(); + }); + // Store config in localStorage for future windows const windowConfig = { ...appConfig, From b49c207b3e46981e2abef72db4fed633d7776166 Mon Sep 17 00:00:00 2001 From: Ebony Louis <55366651+EbonyLouis@users.noreply.github.com> Date: Thu, 24 Apr 2025 14:12:38 -0400 Subject: [PATCH 006/216] =?UTF-8?q?docs:=20New=20Blog=20Post=20=E2=80=93?= =?UTF-8?q?=20"4=20Things=20You=20Need=20to=20Know=20Before=20Using=20Goos?= =?UTF-8?q?e"=20(#2318)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2025-04-23-things-need-to-know/cover.png | Bin 0 -> 805468 bytes .../2025-04-23-things-need-to-know/index.md | 107 ++++++++++++++++++ 2 files changed, 107 insertions(+) create mode 100644 documentation/blog/2025-04-23-things-need-to-know/cover.png create mode 100644 documentation/blog/2025-04-23-things-need-to-know/index.md diff --git a/documentation/blog/2025-04-23-things-need-to-know/cover.png b/documentation/blog/2025-04-23-things-need-to-know/cover.png new file mode 100644 index 0000000000000000000000000000000000000000..7b9d2ef3292983f205dbe608f3148e11856ed1d4 GIT binary patch literal 805468 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�s>)b;BAT9mIUwGdeYYxUoTM=uE$rk**(1bD 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 eGVWI@r8=HOq z0o(#cSI0s(q*M(4>)}WVaZ-$k=VHGOuWhS_g$Ug%m$sM|(dLCCQZK}vtJSsWOW#oO zNdfTO$mJsiheX#LhH;cs3{#ZsiFPb)qsIFdWu%}W;6jXtOY-I#y2C^6cTZBHmRqQs zAXWyCW`Lm%?ZH^Exx;aoezr3ud&L-a(iC<{Nw{vx>|3qKz;9F|7|iOk?LJ@5CSafq zd#E;@@`OI3Bt+_Jam`@Hq0+DFNC%5j`f~8-uCeZ$G<%M+^drMxut60!%N?DJP`HVI ztW)nB5LeNCY9dB&kL5*g>uz+Cpjl^>lZVo2*I(8ILH>*-YB@8;Jp0dJh2{U|RkH5W zgrMcZi={RP#2o1#6~H<8FP;wlv!@d=ef`fxYC81t+dLk?5quEdFv>$vs9DwU6FEn% zYBpgsc`hqKKrLHsC!D@la-OgXgtS-#Zj^y7^gZq)V~B*GX9@~ZxDI*8{sx8M6G3fyi4Nh#zm~`^3l>l9hVg~h6^q}1D-41T*Nla^L zB#UgQE0Cs&|CEVc#_NYGD`bhLEWN%8tncV3De!)#;J5NVn55S(^1@FfN zB84n}Ou3;<*lTi7j<+)^Q2xFL%ZEUm^?dk6OW^NqGFsYHb=B8Imix@|j$EWM6T>e3 zp@pt$J#jDAt`6jr)K?EJ?8(X!@Fh>7)!XW;F7m@xMp@u$hz=NVg=DT$Moq%M8x=fn zY|U!w57rgf?iO^rEVeqeuKaK zMtO_C8qi2x=F0GaUhiO=i7jkKs)I^M3CRcmJU}?}mFIq_y~PPA$hz93=%~ z_8&x)oPOB+`S~87SLVu@&)nVY{Q;#53L?9D)x>Z$GJww*%u(c;OwVkd<(ld1y=XOobjvoYmOVq=W+4^GuFdQCgS?)6 zr;RC}GgV<{w^mTT|3|i)7D5XLzJcSX$j(JEELtqFcP8DC9r~SGhOBzYh>8j3QFfN7ldnea6Yz5;oCS zzvS3NAy#uXOX%FX_tO6mQnGp%&3SLiA|m3C`W7k|5COcXNL7BSki>JM4^Sap2nB>$ zf857twX$BVEVqT7B@!0S3I31(u5~4yd#n248=A6UWyx9tp1ZQ>4$&b2*}Wti0;2dW z#VSzj1tylvpU_Nd#BPxtC8uGa$)C+%E-arv-=yasR@2T>{y@i*oxN%@u5<@drK zG8KGHb}tJdrI+zEpFl6ML&7!%C!=v_F(=^k*WxUKE!1+{wAji7ldFTohok^&o=KPn zP%GNiK`Dz?;k)l@FB|2eH>xV@85c@$!1dJboo1_U=kh}rsz=pdbqjP?-Z9X0pFEz9 z(6ii>XI9rRG6#<8or!ExOkBvIBkUA@yT>#dCKz)5jIEKv^CcYj%}voASE7 z?G-y}ifGJ!k?Iw$Fip&+w(yGxN^Zmo@H1+zjIJc(bGQQut4y_>ST1kS!Qs7*!mNYL z(0Fz8A=#G<$9b}`Oo0U-?{xIc*AW(e)7K?veAWLIAk9*Q0XF43;+%)@xAp$!{do3;;kQ^4>UCV~raH zME^D)m*XX1!aojw`TwoIyYQtA)|r#GY?)*n)j#Ue#wctf;p(Q!p+h8Hu8jAanK0I< z1^|JU{0)8d+Z%9_4Ny){o_3~+IN?{0<2?Nm8Tnw4FkQ?{WKy$*uHP#Hu|-|TzzwsdqEt(WTK`v>2?6Pb*#j{dOq^Thh7JwG!dY{D>}pafM7y4acz!Q%*vQq4TbsRltx`heF(}ro z8Ml)YpfaXCD+X&sPUeKw$UJ`;Mm9nvAJjjyK{{CSAnq)kQupFw*{)Fq5Jz52MEjh! zW={CChMIPGrK|m{ggwLFG_kNVwjXU;_$b)HVVst6!1N$-P8}w#6B1kRlvl3?SzBmL z$>-Pae&b&P4!-}|6Bi5_4|-Vmxi@1Aj)%pwS`d7@q(;J_`%ZmB;^uB!R#=bmA)T?O z2H6v@e$6DYDjWiN)I5B>U?emu`&2{Fw%2@8y~Wo?czAc3$@|iwe?hTtSPi~!cu|() zr%^W+;lY7o{_j1mJR9Ks-Q9LM3~lGcFGu2L*Mf)?sTYQcPfl+K5aRcI4Qgk#Hvr=d zVNy90Z2Q$mkjptZZS{?Oq$72RW4e*NP);|^Qtk?FsU!`$2{eCCH&gNJPFo82#J%KI zCP70A2~5uHp`(`if{aN5I>f6C^;9;=@#I%X{Cua8wla=FIh)6VeQhwJ^mU*aDI>Sr zM%5D!4imv$jlN_3a;zwr!`Xx7+ZUCn#eUd+@$_()LVPnSS>dqI;_M0B3G~HHuFOHN zd0g9|FWYY_ICJobO{_0Q5L+<*2>x~U*+ajktnVOH*-?f#3#kSv!TU$@=7({CoDb7j z(JjTf2fVEVu!}aLgzHl_B6tmMdzx5W2s4hl54hxQBQU7YMc|r>?xNEK%s}0h1&%%Pf zsi#+@ks+^2sgk1P$=#1eXktLQRI6$h*!@{Q8q( zOZZ-}c*c?c$~2QJ%zN^*s6;mN{pkzMUi0&hYx|f+1yvqfVc*;#dM$f*5Kq!TR!C`> zJHJcp15IC^K~$q!diF+`hEL((|W&9F}}K^HEk7^aaJ zawPM%QT-2OUG@ay-P{DMluE{m-|mxrlFg9%tvXaoVztcn7I}UX7T1~s9a=R{G9BSBW7v%wOk#n7v#2LrbPxu# ziIK^f&?Kj2{atsB$8P(oACuGcbw0kJ)ke;$HILS}FY;Yz*C$mWP}Xm`pmej({PxS} zdOHrqmWu~@TTJQ*_nTf?=b|^^)lXE{t#}(yy9@1U=@u$-@WNjhOf^{GE6eZ7GXU5R zEjA+)B*5Df#YZ&ohHf}tv*{UeFA=w9jFVcNuc2Qo7;U?yY{utecG1(6y_Qka^2Tlx z|Ma_b!)LRA-g1)K^O6|L)zIUkJPG0`r(Rd%?u+p{**Sxn-r(cx_pzw!LaPksB%t}V zU%DTw@}C^--RIEnE{bP2svPhBkmYFWCVKz1K)@9WBsy^fbJI_mUKaKj0=sI9&GQ)J zI7^>d)g5weR%G1YE|#V-^dE(LA(e{PQpPSHv5HzC&Q-L{%K{1GV=TUj2q-Sj*BH1a zS%7|aeV{QpDv=H7XAr(ZMOSe9zZx1v$peM~C z)StfaY-0K3dnBIb1m_(=A*vjS#;rX99FsKCwCezd0ga>!Sipn@B475o_f?B`=a>1j zoCNC?GvDq)V4DJhSDTZr)p|Ef+-tsiE6F-C?uwHc{iF_w!xj{qXh+tf^2A3pI(a_$Tr3uKX?y1NsJfdT zeHoxg@OnPo%_ohRZ?~^e-NBo-aZSQ)ms)FM65oh7z457r`C{MhyEa{fr?x^q7YLeI z2a)L#XiNz`UK}g4<(E87>^KN@0Y5 zeK%7OwC%CN`wYL*l3P`VRzPjfFywAk75Dbm_dWpx_DEzvuBJZL2yJCP7et~)t@?)B z#nyjYsG#*3HEWr{J9B_5fa|^b4wU}y;E%dzfQ`}6V7LBknC)+XiDxfotbPG8A_`}PXh69%^W2C$M(SZVq*mdMMMUGCwsviYa6UjZr;;58s$Q0(A z#D1i>Tc6p1Mp!$brSbQg@7&lnvEA_-5Mb2At7yJgy1u!17juy+L*dhCOaGiJV>DaI z6hV{YFbus_I;ifa?Z(fjP$Cgq-vD#DJ#=a3X^}2~l<0{PPkSKm;un4=-O0VE#!~*w zM>=CSxt>`9AyqipowP}lDV(1vTe#?`E&nTA@29MvGnzUq##z zAD(+kclBpoW$`aATCR^8zC~-RQ}7u?l8BDCPIs!R=qp`G(va4XHY2yy6-k`bihr8i zepiPtsZ;KbNxllC_QC1fOY=v`FP)d~cdJ7f?i~8p`)E9JqrX^=W3AYpXejZmNv^@z zq<0*yb5RgisPde+=8F*y!437*9Q7>iW2DSjp?z9X>^bL8&i!utgp{XD9+ee)C8mMv z2cD*^Kv*}Zh4qaDY>iHBxLsGHTLpEx7 zOgYF{QuiUSwYK0UO_NDafeT0_HDIJ>)IPLIg<-}-sqkjKxyQs78;%MVT~O>A3QMfP zzpzjt>!j93t82!(F@BayYFz(yvw1a0WO?G~W(*&<+}nS2kOT32En5&ztKTW#827yY zU+hC5hdOY0d1X8#W$_|%+ndu2!<*7d!x_3|{Or%73|q7l0SP@KJG)U5o_SXzOy`GB z+gtDh!ouK7d%c34v;pczKY4R^jpy69u&23d#U0->)pJ;4p!@gYvAC zM_+8zAb_+2kou#c?GYOmLr7%hX@9b~JPeDw0jaFf^6RLyfR({CUofP;p(Z@&MTR!?Ik?_lw*NVhX1EpxtY zx(Ur{mB)-pb8w*nmek%QZsuY(QTO3LN~?(sL<4TB`1&uSAg-5D41xJhDkZ)PM<&}8 z_t>}xwxJIcV+xvn*#CeYfS;_JdV+1bBrNeD!3<*ooc*w7~HudznZ{!48?*nFv|n2Qx4F@mc=4 z$Ov?+n|w(f>4iDawv!4d^p`G=YL(ML)4i8 zVo_m7DSX0NmM!+x0IPr42AcJMIp3Ze*#*Hj3Qt!YPL>EKqrA^?jC!6n7Ym!a)+rI9 zKlZ~Tf!>!xK`osO1Q6U~b3k#g@vwqg5ben=i6ngR5?R`J5dJb%QkF)#1dIEq^N@J4 z7?Md-+~aiaq~I#ioT?1T+En@qTrV9PL%0e2gQl}gH3L=7}4Z*a!9r+*j zbnfCpkifoDs%j3b=^!YI91*0iRHwj;9O?EV!v)hj=@O95Hn>n#WB>RKROf~$Rc!2M=>@-elb6S6_;?#)Z*L$Nx=FNe;q*)G6xi5ZB zR&4J=Tcp=pqzw#4US8MFj!I3X3p&ar=PG{2T=);SYDJ$JA{GY; z%gT-FBc+MMDo=0MtzKe7{&g#hpX~_HXZ~axvCvPrf}*==?$b>*B@%jl)(;l**l(o%EpXt3C?7AlG#6_ z;&y+|m-2zcwR*EL|WK{nvJ_-xrULi|2Nb!4yN2Q=$mw~WXmlJ zwuH>|GZm#3l0Da;g3OoJ8f9fRW_3d?a>wwTb={y~r&FeHft(b2t6(lq4mHo#(l16$+$a7Lz6y;C3#e@BUg#?FP@jX0%6|sbssAgWQVjuz6R-UvcGs`CiEv z@nQT|3d6(TRc41o{l_vv1r}0)gdVMqZmt5vJXX-rxAMzJ8q=*`TU9v_-T(^F4wX1= z$>{4k7IXP#LG}5(&6eqlo&JbpP_;L_Is7czN0Yc+xyo0Im!T%I^oJwi@YZ!7zavmV z%O;OVp-KW9k2qhi-E%f^;;c6%3TU-B&(K##-&vyWJWTCN-7NO*7J0`y7$mM0d6SwmR>%=eLP)ySZFE3VBg#kL%G_f+Y{4B6}Vh~pZ1m#IS?B(O5_K~nQ&;VVaC zP1j4GS@SNy+`Y>MFq<4@V_$_lrgQsCuYht0?%_$Y$0a z4sCnVpwI02%h=qA^`5u9B>L;7h)POqVFWd7Ury~O?HH*imS^R9!W6$9z5@O?biNs` zCbDJnY@%9Lg~GcNhui-{+y9NK&+PS1oWAppL{OC`6Je|pQzNsF&fQ)Os@gUSckrP- zHSvqc)S$Sl&hw%>b-csH%K$PKotrBbVcb6gwCKi{Yk2tL(e=p7yM4qsSu@PtV{3QV zAtJ|`joT%yyjbt^*xE`F#r?-+juldN_Y>?YfSc+wVjsZ*KJ^n}o#NCibiuS44xhU4 zz^oWji$V+q*D{b;E&KWQH6zldsPG9#eSWR$mSWEA?st}5=0yNx)i=#_>05$R;W zmqO4c_sRFDxO$=nrx}cT&kAZwrwQC&f?;w}sgnvpF;6d13L~3C!0`RP72sIy?Z!ra za8gDQo_f>j!MaPTF!+htFnrABUA~~n%K%K;kQR5$Tv@j3^4+cgft`^ihRB-aV#kh$ z2I-w(rr^$kbpt zmZZLstha>AkeP!yGHZR#c-r6eI3-{iIyNxPwebdqNN#ebn!Jfx+52xQ&C zG*+|HYnmjPy#&|Pgh*#$-3m>0Ebd%{--eIA%k5vo?7u0Ytg2q=FR5~osvr7DW5O1ByvP}e@y*2jSwW_a|F1RT}5vj<*j?bl_B%Oml9L=GF~pte=X<> zcrEJ|1h*w_)cWeWN!qo!WTdMKkYE;5ytG2N#jz5)zgxJH#2Kt zn^-@Cj~h(=LgB^RXu`>qv^Cwk%SUsOZngh#dvJEw(Yn!-jgrxP-D?87NdWshF*IQhB17Xz6H~<#6jpD&RBN z{!kKnO(yhQa;um1(q7f0%oU5JB^-5Xql&+mSoIjX!T80Wj`yCMk0*?>#xwAjW&kKH zJ{@v@*?0Ow{n1aCWMuWWOJ1ao!^7x=uaY}sN}8`%ox-cBT}YB#0;*-1)x&qFOfbyK z>Q$&x zk0gYXABMhq%G0HT&*w87zoc1}wi); zb&nuT=uVz)jQTc9l~ysGas^xrc&FyeCy`|BMXwS6LSa0TbuUYL>~PFr13NW#4D68F zmPaM9lIRBxUQeKk2f=@hwY`7!RDZPdC6GZ4^&xiOyQ=y@E7GR%DCZ)_tIs5EH!XQTph4Yb6DCXG~14}-;BVX@=9NvmA^-EkQbsn1iz zzjaeFyUnv8PfCzI6Br&-EuKaxwbp|KCgP>!I3_&*lpde4q-VmEWYoQ*+1ad>-GU}D zdpaN?3&$`8LR&OE$2>9*beF%;ZRBxmhi(hCA6nOz9ni;r&bH5+sAq^YO%jyy@mF#- ztg3nd3H{}O!!3qs;<8=Q$m`(TMrFU+a$zZghA7b0H#Pzj_8@mzd}ne=!SlT}V*A)i zJQ)PNyT0a;YN_CDzLs0hjBh_(dst6CE)q^NoOFV(Trrx}=a4+S|eUmkC84F;^2aN>F5Wr&jj7h2WDx%KKQV)X}9bCW2p$uF~;pyEmn8_jQ zRn%U&p4`46GTnpe$l2Z4lk-D(hVAZq;MiNk@qz89EG2c;VaOoa_FV`#vZfMz7gCpw`#L>HXM>XB+nDG@)Ofl(@I24u zwD>THmPC}!?9HK_9 z+W&^j{#6WXf@i1KRXVH5ZbNN;m#HkP)EovxTcwnpTJ#*>`^IIdx~RE{^k175dM_RlwivNCtufBZ>Uv2yng5a- z1-ZGd}2CSW!0nWv(=#syPt46mVFun{MLU2=TgH8dtua+R@^bp;9)Kn2&E<8*p#hG;ynn1=)>gd=> z)k!6k8}}KdF@BBfH}WQtfXkL5&8z%*9EUh^`3UHaaJtBRifYYlvhR2OAiUHkpf-Mh zUA77LU6-(?M9zPyO?yuJ89m!=FHGG}CmvX!T-PQnBTWDpF3g0E^RlrCg=QszeSaVE z&}RKtcI|-K0BSKzdEF8bxw!SN5dBPKvefW*?bahyxIvv=qozYsjFHycD2(J_Ysi6u zHB^ewxn}Hhoi`-G;Bf2&V}7PGh{Z7qO_(p^S?gl6ieQgI zP-6wsfSeJ49B~}E7*9;12q~B2Z1^FI&DDWKfC!ze7>J*oI__|2VgT@%o&CKJ`Wi zi=fKqV%B<#EJAhLEp#IO4^?j+*L3)Hk5ekB2n<97X$B&Vw3L*<2n8iJLZlg8(xIgE zfPqLzi!erwl9Gmj^d>DWjBs@Gn|_|>`F%fs@2|by*L~gBb`L`Z0aY0({~J%P-4+=b9?J3{8;x^i46JfN&e2TQ4a zys+%rGJq;w7sP=oOXxZKar=)2N`ZF6m)KJ_)BK=;$+A8errA?x?C=={rg?m{+z~y2 zJ?%K5lw^I0wdm>|CD^s_qoj~okp32pLl30L_~x%==#oLH?Z>xHtjRx2GGuQKCj6{_ z%=L0Rz$Fbd;nuxMY5U=#JElyD9+7lJY;5eWt8V|11pak0T4MWS$R-`n zBtf6mdP>kf{%1$@3D2jrVB2th`pwNrqu`giH6O3xTso4bjZ}=|1&215Xf){s@KNfk z{^co$10YF(8k<`f+^XkiWwDckO467T1omCNWDpA-dZ5bBu>_SGkSkbP1dnbcBS%bKR66{$| znOX~c1yw(kgtwOCqfn0q3G{uY7n1S?e2LSWxx>yz$e%y~y(!SRPj=h#(>#&Ou@6pp zx`vxkDaN0a<3c97-I6*I_&kw zDchTW{HzyKhuNdX!pBVWa5CPp!085$(3(43DN6%g6zGQdvBF97e%Oy@_9J{X!48C& zl7x^ZGzj&v^Ptt8_aHX>k$J5#gr0JB5P)M&q!~fcsAoBp{zFX}&k1|~QiPCsqwhHP z|E>M;oZVM9{^d9|L#mghU@XVPRw|jv#;=U)%3pw>miaO3s-ww4Awf;v*n*xBJFo=! z@s>l8f6?~Dgs(J@VAu{R#pt@{jke^8EaQpGkFT=G0e=hT1}x{sPuh`o1i_@PI1oBot6GCuV)MO)V1fKs|G4tBMTV zu`sDPLx)b7+u=`8lQgI4jZS@qY&!tyXxyqH8U7Hm=3&1H=`OvCl4e#;7+Yt-Mm{6h zy8>31v#C3dIaEh+R9lHwB$CuRXeU!j~1TDBCyS$Of1H>ht15iLmX(08-p_D;e?krzUoCcp3k zHqaczH~kQpW9*%Zh0t2mx16_dKbx+u+2jPD5_Gq%PFra;fgr84z)w4t`;}2dH;I#o zG%0TEe-{2F)OvoMwbifFFefNBa)}~xd})R_kmGqHM_WS3zjMv|@kX4<0vw9(6#k^E)@90!7UGHQK-gGVwtBM9fCmRcAa2+Tym}FQeaV~$~w&W7}bc9SU!;RuWPPUfm-T55bAS8nB#K9y9+P3?~i3TBizO9 zu52EnfY#Wj5MEUAfhRIenDjOf{A?uaJTx2-ZMfRNIwh9B0X9uN4J$nHQ!JO*X z{N=^`(%$@42&DekrA)c5f`yS6;q3I}u*YX1x#DxE%uKJJBU%5S%`ei@?;64JiRmY@ z;n^GLIllJ52mnuodOCBgc&&*-G|YH;f`1@chpiwo z@Kg2`=oa)8J~hz-J#uHNLV#fjsz#gaJ)tW#ae&F5=rgl2~8f+)blSz_gZb^7IamQQ3Ljq5i4i(c;uk?x^f1~loYn#{&aN*tTjsu<)1|1 zM?A|0m5ql!09qA8A&5WAEjFb?|n|Qb1@B3s~iG z*=lx{7p19QcUUUuOQ}M+O^{2*?ZZSmPs`Wy`_d{_wJA{|h}p4IyNQynWK8;a6?clG zU25fGK=4*aw7`02&QvDA+h$W7*htn=uAk=Z! zj&UIJBxk}FN|n2w*Ogwp^SIcHCzj%!76lo<3^%o4=&>$eUx{gz106Ng+l87JJ&$g(WSiOo5BBfQG&rB&+lk8Sd8VKdOiEc*X5vT z^Qhg(i>5mYlkaHtGG-8(=!*crGmu<)8W-~+7quN$d{$gEw9eR}gCnjca`U6>=(1fc zb{R$O@1Dt}X>}h7;cW3aVQk1-A6IfTT6#4`U`zUI9juoFlAPSG;O@i&mh&>UHS)V| zNr#EMQ17u`DJMsVf%^2~B!DYRm!D0U2&|iIe4uSl_;;@9@eey$djPEBF~?pe+xaS%24Y$6fH!4T>3V*uVmIF5-3a?$K|nS-uG;JbPRj|3vUjk@Ayw7(t$Uh0fxmEk!x2 zdxf1LQ_XVTcIyh*lGK9gH`lLz=;G{0D!bsAfML(X#ukD52BWPj83x?bUnaH%+@8$y zbqU8*2%ypwpi5ulO#2eVdn;#Ycf`IKaoOD}aiOU-WYm?2MzV&6Qrn-PE~i6!&R~>~ zWuy65{@p}3EjBuiB|8a+FyzuFono5b_VY{Td}7`lix6s(QG%~AKydA`B3WLT;6|(P z%HGq{lEc7>G-e!PpQiLd+TgSuKEK%wykYaS_9DgWMY8eP987EE%_lj(l&P`q)(LuW zu;v+EL(UjxA2x>)ueZMXc4S5|cupiJA)4A1C9+%Ds#h3>liO1L7co2aXWB3OcfL;GK%pGax=s$Jl&3;&i zzuofRX^TI)Emr|#0~PQD6U~um%%rIQ07P5&!9}e;`7bZ~iMu~19XTwB2iV&uRZMw- z%rE80F6bB#We*ZC_>|5_?pDuPj^|?UH2CyKL5E!&w^ta9B!qx;Da#IA>e@MglJwjx z_wh%%c{XW!a+9^HME%}YALV3RIm*+NBM@Q%9v-=rwY`2N=!~S+;yk;+mqW^zENSe0-(h$ zq9-@GKS)r}P}ryUbFp#%$}jKf5t1iUVkjN8tCqvLqUE;F3K{ITc)>4XMhY+VolJRA z_9uO2fe%$lY({znbzGRN}o% zT}_s_QR5E&s5js|(xCdxSS?x3927>*7T!SgFqWr$(^N=2n76A)P9k0;gy3B16H8G{ z=eorqe}d-=*xvxQoS%D~A1}y}NawEqWvgU#2))y12>*7zrQ7$IJIn-Iu`EU6@q4AJ5znFN!48#HLQ zM*aZiHQx0H2+nyofeKPniC)w6Ww6jw{MboTm(o^?{#|!on3DKHDQ-OIrkH}meUFl{ zh}XgIoCTuq0ozATb!xbf8lsxDBVU7KE^;($Tep7JCOTq#j8)uQifO85e$Y>1H}t0h z9wyukE&fr4=7Xbk~6l18kpiG0hmNMY{gWl;vpmcmct`eU70&in&> z8b5ii29`}L9X@3WUbj4V5nxxWMy>cWP2b6W|O9vYY%C zR=i1E7zo)i9n+q6FYy_&gj}`6L#xoDJw!VZ1PR{d+c#J-&Z84_)?2z;AuJ)e_(p z^k0XTIxv&v*AJ=}Z>foae|iep!zlM`<>-E>?CS&g8mWcVl|1+s39UH%Auvv@c)cDfrx;PIZrhI0dYv5nCCV z0Dcb1Dr`u~emM;vtO6Z<3n<5B(dWdo_MB2&ujXYf7vE7hPnJD}T~$2ySfe3GxT5#9 zpdqf+z+kM>DrQRd%V04a4@Ciw`1nE!nY|zXoPRKB~nM=m&2&Ga~3+rJRT(UOumi6XmE;&G{dRvReW#d zmgfTRtUyr=d2y7j#a%B;P5DZ4>2{$06u4~1dGIZSU*XUs61s&sg;d3%1nYhd6H<$t zizOm!ylW0LHeNXdCv1bWWU;#kQvp?r2@?`Itzc>BJPZlZNNuY(EYdhqZ;(&?*(&-* zM?&nB154qwReLzbmqmiR7iVs1G^(tL_vHkI)F~8%F_4g?(PCBxPBg?e#=}*gZ4~K4 zuNN>R5(ONeQq}thM9&BB^9CK2>bgcTJJ+*!Md_0`v$L}=NO>;t;Tewt{}sr}!fyh_ zHK(5$8P<9+Wghs?Cg)!t@Z7iL=$2XNP>Q22kt0Kzmd>tGp(nde7WO`$YbGTVos^Ha z9DH|pDvq}|;@AM05@8i)H+d>=JW?N<1e z>eUiKvo*C2zpPM2miAiw#s*LP`yFa4Fu4Y-iNV&UygWKvUZmZ$#DraXVVfXj&L+3u zaHI_>ucY$Now_eZle4t${K9wzRck;Y#?Xho(oG!gX}b;JkGGN}r7HUq|}sL!EdnI-4c zEAQG2*}$wi;kGIw3VqkFf zo!0>qdO?BN5g{w{lqS0zl0-^W^4&w_q^CQ~%*3;nd6#iRfy351+x84j? zosYi1WRxzJt4Qli;HuQ@qepN>Z5Df*174kT-7Sq(ovWjMiRiSBYg%(Z7U~lC26h6$ z1|9O%_FY*k0VGyeV3=^dU`DHaxZ+ZA!uV^H<%vp30!F;F1#@H~al{$yB4;0o<(qub z{SKA|A`{$+oG>4}a#(S|*AP4omTzpm%rN2ZHqw&)1^xKSd1=QYk0Wy3DsPX{lQ~3? zgOb8D{mqMEjY~a_aL2K#%8cg~CeN3Y%Z1Kp4OX7HAHzliMz!BIze)YlqI-)Q`1DK{BDd234t&U=WnM8c#pi{Ji12dKbVepG4cs2Cr7!pYAmw#-zmB?f~k zTWckpx7XZkz4SHp-}JYH(KL7uMhmPeK#PKVtRO`CRZAo!2%Y#O=(MuzuPEaB%c$Us zY02Zuj$4;UNOQK&J>s6fzjVwd3U~G${%Z!+ou)f~YlJHJYKgQZxcywP41g!^O`cj8CJCG20E1IM!DTh8vy&{Qu zYw7#<%A{WGLeL7D9wr=V3w=(7KRzFT0&#%TY}oQ7GmQ= z#9|A)SUGeeX?2R9%*@Z`n7>E?l4`hEj#d3_j5QhdEdTa4lS z()@Wa)$w69)t`gK_SQq z?%_OtIjleJ9DD#mdGnBJGEubtQ!r0oT!N6Fv8hEUWi2Bvdn+)Tdh zeaFOni%QVPX|v<6JS)gyx8q*&(^v!i$<>|BgGRODju#~oFY|zEnJoeC-niQ2B z8{Nryxra2b5YdbonWJw(STKJrITEn&rQ1lg2*Zjtw{~=7&lfj!ICWDPUv%SLM-+jw zX-9J)0RiNS1h@9zifK&LG6j*3+arglPovnW+X;Diic6Uz-Kswz_Kzv0@ext0hOQ~A zTqE_o>K#Olvx$QDOonV_Tl}KYpPt>OGTg5u)ld z!ej$s?ghN#-L7~JHy;^w*%tCp z_^5-Bubx_~ZZ6`^x88PKrgb{~d}4z(>jrxm`Z4;CJlFv+J%l<>92!{A5RtKYzIhNe z98MH+0vI_z%{#Ek>9ZU@jLHbwYbC{?di;_QF>M9OvqLkhl*G&-@pb{GEHX2cNPJqW ze`oQ$`JZpWmlQ19y1ye1ljZ($%6Rm;+i<6L@=+_|8WqB3;f}SaPJ}@yYmMBb^ zRnB}X^0?`@w7nfy(E#F6*jqqnR!yp=lvZQHyobwCZUK*r?$|V}2Pa#oJ(ly9Tg%R! zKhJ`St0X_kAI=P>H~`@DQ|)<$a2U_TD)A~UILZp`2alzHr;}{>u124m5*jU*aR>46 z#28&K=Oqi>i^q*>sB&^2>eg++z)uE-rQWu#?y@EKv9^$je!=lOpqMDXG7 z6Cqh~cg6}@{_#%0i)R3J`gJ+%QcjNMo2Vg!C)x$6PooBqx?oWoy1w7MBdPAM=z4Ot4o0+(oY%k?9@u>jJTOtKXVGqPCkpXNnb zPb^qB+%65yWLVqN!hKWAsB7DJ%S+RfpUcfSrxRc~5eFP|L> zQDXJ8x^tAj#=3B_w1##R_hU^*K0r72*%b&DtWr>JTG~-1~i1*K0L@dVs*@+sh&Z6 z@W{&KuY`T?=`eaM23hWmpO~}hd&Qt16m4+!?G+?CgdwD+fHJJ_(nIK`h-yFDFW$qW z#{RXtGA0~rA^&wd^yiwfH&ImD;F&;|+9cI6B9-;sNzsFEeRn(pGA}^`t;e{0_cOQM z`G&X}miLOj3bH^_8qkCLk9E7b=)rutVsZC&rt>!3NjP`ft@c8?wpGUL1w-qeHmn!k z!E>b+Cg8$KDl|nG4^#ZNP2SdqzNB9|r?L+K&ZoyD({6W5_pQa&x_n?O&^Q`fp=rHb z{V)`C#n^fgLxo@JVg3Bg>$h_lh)QLj2+*F`ZN)tp`WNoPS9hDvPu!Az5X^DDO_h*+ zPOx@N{a~X{zpAX@fht7;OFHFosCbwqTF* z&t@21Q9;O4YGmqhVrv>qN;9baOn9CrB!ZY1I3s9yn~I8oaL=*+P*3BF=t27sh=stn zZFtwVJ=>vSFXqOU8&Qb>r&TSS4KIVfgycE&&>r;s(-8(o;P+DSLp z6OX%|p{r@KiQsY~xAGM^8+dfRa+&6#M}pm}prm{7v4WJ^?&W*%W9f^yGA$ybJo1?Q zFlly&3G54D8Tla(e-C$ZrwIFPUFR6P>?du0X4HH+v>B_uw(P%wAW6g0$@)jMBr>4j-kwxULUn$aV>5~FvX@Uegmm1)l zFbCK1hnf2{7`Xc{S>_=a>Zn!-&?x&VRJ5j`KyUNQpindzMv-R7gof#&y16O+mkP8r zEB3zt>G3jpSQrcN6SxKS*4fdE?BTUv6L%Lb?~szT3!enHMLc&lwLD4zattTZ<`ETy ziE#~kwH@GNrw?NHaFPsjnIbb0cq4w^=#m zSqd4ZGM;m;pihBDBJE#o5om#E*)BQFVWi8!@HEzQwfG&X`vZLgpVK3p%T~(@X<_A3 zQ0~b~(7Drk$Jg>&GrkSuB~xXz{6wSKbPv)|X(>2kyXkWGUg_Zdxtt6O0GVzK(4weKzCc(N&)4oq~9GQ_jXs7&Ixk%(m)S_D>#QUNNgAP z6l5_J8S0Lt|LoKaziA)7F$0#KNg zdk13Pqa}N@&Ls^3idAIomkf7Ro%qGy^^7*CQf+0c?P@%+!|sWnI8+CiwitX(`TYGX z-?R=U;(jLjRCU9pi-GTsF&Pqb!(Lf{UY$vj=kCil1zhv|(t3u7gsP^RtW5M&y?tPH z3)Ii($f1)@h%@>HItV;d@i`6xG8dN?819{=?2|&xM-q9`U?pvT1yD6A{0a$~76U$X z)LlwEd})bHug++W;%?6_YUH(GxPE)>nF*_4yNg2g*$N%& z+jj!*jYN{?g^A6mjiyZJ4hNOS`L=3Sj=$sjDlQ!mnCT_CiAa4x;qu-ULmieqY9@RC zRsX0w#1gswvMRr}ysudWbj5E64K8sUR1nJoueM-vVC7(bxFr{^=CedlRi^j+RInXV zWm&@X#J6oVV{?d`+fpn2S0Cl>a{egeiz*E#WZlPLH(4*WCs`oO;IAwCq?NJrsYl*I zVG~U&D+s*NBtcw&JfBE`1}|Qitrv8Lot*81C&=ZTtxxpUDia*3vbwqQn(hp02-DHf z5{nTr3zMiwXW-%}AZ&d`{|3}l1UT#lg zed_Q09hd$W=)pf$_Bjc@d|Sm528|{W&uBEY!Eto3Dd__d$kr- zTe}1eamd@A7!w4iBNF#DI0eK;hcnpfFHV>UsC7>2lzK&Bl2^_LD$-qRvszgMsgu@eu- zi9^XRh)m38LW2%y-h2-dkg-47wZD-9An%ZEwO9X4=lade&0p&M4_lMDrfx!QINJvl z-XxCvnIFTPJv+bTBl~sPjklbGqlcs_3KT^`|B`=DKZi+O|_SFclw{jLmK4KObvr!1o{X2^vGgQCQvs z#A@1<-^8wQb@JxD*7CSG@g49f*ADc;1jj@~7WSEIfDZFK9`jS2o|AggpU8l*4LqM| z^zFA&nO1S_d{x~n_a-2!7I~KrrAQW5ah&N~7eK`@WMI6X0ihMqo;D;zQeRagFh+go z=*KVbKg*!Y?kpq8@40NpH$?T6iSxc@*m< zpDn`FIa2S+VICyfU_!|BG@VQU)KpFcpkB5VBzWl_mW0=*5OUX!j+^RM^P7rLW1>ga zObyO4tf}N;=pOM6bn3!%G9e zX2t`rtn@{ZE}~2!^@MxBwuO1V8_5q@4%b!$+mk{n%ShW@+8#)lO(1JM76k!&2t4sOb#%JF+Kk zyjTm>9?+PrQxk#PnX3Dmj1}>gi@?|1EKT71R&iP#q|YkpHW_6M^j|$JD~L}$R~uN$ z58#1+2E#s~d*wceV}0bDoCLd^d3$y(PXZaPi&qxW>4ID8%I|{%Y8LZiPfi)BZXgY z%>yEk3TI?VI=_F%(vd_Ahb9hh&FlPq)3zk1c>6oy4aN=~6_%KQ8&CYd>WXu%5%evf zUNDt(9?ebqXe7#zvjKFZ+38K0nLeWoudRiEvcJ$w82EDrTI5f_#q}Ip;H~dzqTt!D zspdeJ*QS5)?fNzeA3eb(p;25#Txt>y%W_AgAT>%RV}cvaR{~ zEo{mp&Dudjq_BWS=g@V!*@<=Tx&fe5KM*+qFO;zM-77C6gYBv*hhGKEVWA z6BgEvH zEs*$~yD0kDT<5_kK!10!@+B)$z&ed8baqYVdT;xrtxa^7moMTQ{13fNcy^;%uc$PJ z2l$l0go@ydjXIX0?%8?fEjC@1Fz1X|IeGpwB!ag}R(E4&epQC1^J~Xjlfss|ZK3Wr z#Fly2un2;D66+b*f@k-GDqgtKYX?_TruKSo4<7Kb^KO|AK-4S%XHP zDt2-8LbGGNugrdM$b-m~<6aA}Uu86__3th}5TH=P<&U?H+irdLKn#IROPG+H)_;-( z9VnDD1euf!ISs2=G=q6FOP$QOplcp5);uT>FmDLKqbw7qYy^vR zV6je`2RBSz7)T4OSWTMDacn^;i2b8BSE)CHSDR{@Ulpq@LakRamv>S1 zFJsbx?_PeJ(>&d3jqiaMGx(vYb?37+D|E?vL~l4e zkwOgHRG+`)pWI}M&eT#A%O(>o;5ELc$kp!pEi{6u{BOnlsFx$)IzHDaDJ;}~KjheF z)_HqWuaM=snechtN|@ty{Vail(=*cfRRLS5seiPjb&0k%vJ$GZr}Wt5W{dA>O1CPP zFhlgcm^zTV%tG%VEc+@kRdpXDr!MnrocnxVaE#>VDLHA6_t&M^M_-$o(;bUT6PjI1 zwA9}y-pa9TCmoTAR;x|c)6rzQ;sX}{@q-U!+Et$4_+z;DN2U?!q)TU#Xk$Dr)yOrS z`sTLFvuX$~6W$^hWab^Bcg@TjPe3Exjk9ArR+hbGR)R34@^7o1(S7{Wfi#igm!M!Q z5;eMkT^+6JF{>M6|3%LsL-LRs05EH6SnRsGyg46y4!FW$b2yoE7JQyqhR}ZbPo4bF zrp$Go;9|CLFp+Hc|35Jq8%cvbkP-u^DMzc=+n0t9lsyF**z=l$?mV18(u@Nan+m>_ zLHlZ8Qs8J00pHIObHF#fjF6Zp!jJSx&Dcm`ni6^&&991=Mou-<7Vu0tYp4ddE`ABX zi@Jem;r1$>D4nda{*ktdfphWke7C>&V!9^d+5nVBP^c2ndXq<~^L(}m+b(0R8CSB_ z@dN>I*y$tg8=paK;n(*?ND}T1chE>N+q|KTR#eIyXD=kcc% zqG#vF){(Off02xCq@Q#-c@6r6NZd-rY{^xA>M5MX&D_aCoC#Rd7fhf+h_rY@$6;cJ zQ(shBeH-Ia#YRTqCag7wnk_Eq+6^kDql4&2O--m^2Z$jCNnh1ZvXWkm91$1+z6DbwAF@L)j@}|8VL+>I~)H%#DHPW}trUHy%^u_8c~f`BUekA@omJV;HxubZRGa#%NZp-RB6zze~`6DEEEJmHGIqL=eAFUS%z7I1QPv?3+I zCd>ZpWY2H&y{Qkcul7XJgcMep9MS7(V#cVIeo~)-Mb(|kYidgRpuQJ?y4-!j1NfL4 zE=Jv~1#5vS<4=abGxb@AKEaHO!WKRFH4U!*pIs~PHv+A#=Zwt)c;$^2$&xn4C3+b6 zRIl%PMmE@Zo5>XG z`YWffM1Y-oy%~}K_P+LE&<)T?V`_IIiW=^T`U~?eQS>ZPhCi!v+nd@#k@=NO^urTRv|l?8y!0Z2wMoE9LB)gKu=hjRhOuQCN_xum;%mBf zx!0%4+r;W6nfos}&q27b+H#18dCXJ2)l>f#H3nVWu;k>srlp8`5qbm6lC6kRtcf&?$w{ zSxW4S)$AZJQgrbpyr|0Zoi>RVjWSsy?*7&0Czn6CotBRI3v{bW?A!Wl?F1c+Qm6O< zA(yp)*ggYC9yI!w&Ti86@!qfBJRVzGkohHP-uho6HFKi&(kq-xpI=1|@`A2{++QQn zhzwLJ=--Dqx>j|yD-&rA()fkleBD>sZxcAD_G5;%P)7q26Jk91RWJDK^G7vFA8{xy z`*c6v<(wvGpwqY`gfUIem(qYEl8gUnpb{f9b%F8D&eM$tn&FWDM6UuM>CmT}z&=i|eDG{w*CS9$56)O3JBWLhXiTx8qe`8U>+&e( z?pV?%)IAmWTq7Suk7JmLjaaV?i$vq+LkDJo7bVvU-TfCyu$)&DX1VzY=0fpI^mst? zp>f(rhWqmodIOBp%Pal3rO}*Pm4Zy7inxiXpH{3(N25iKklQTgUdgm#?rF;{p8S`! z{@SH3)17IkIq;|^=2N;^jP|h+UIz5ZL_WH8Q^&g1qDy7H7@bLO^fl!WHRT7>ja(36 zOG8Tx?@w-bX@1#i?Or7ZVc3qkW(*jqR5;Gk_TA+La;oPoyyAFBoepZe1h@L;ymhIS z6mKe~V`$oI%2j{$B*=fq<^;Z*#!G1r5ffX!;nrRk2WS54L*F`r&k1<<(zm|~V7zU_ z)h<=*ks<59bojrsNqi1jvzIa_*WLl6X6vKWBM{f3KFpP$<1wv1P|wxn6VTmwZeDp6 z-Dqrs?pSZ8xCvygDTvcMp`SgTXG89!)ZOsN36n3aEgFh8eHs=COCM^JDfT8dNG z!oZYOW+id3AaLdksA+3`Pao!A#>L~?PEu!%h!YkGIl*o*$5pPJZV(q!Z6}?s(A_0T zjKHVdqqeA@P5g0>Fr^ANNiUuLiSlgV&}*wCsH219mlncWc4&>J6M4EDm1n< zj@;w*Tr3Uo`RK7PGg_RF|1O*l?owCQibB-_c?%-saCU;wE_$a+%znzn=xVOb4W}Q1 z#Xh%4FJEEzn0n|i!PL9hI{AIQ_tf&?zuS(31nIAG5s`2^a+1|0Hb>Di8 zaeA=k39rDw5jW`tq%0MGmR)86Ie#cef}Be5PX>wKd>825IC=;Y{S$}RbJkD+;~tky znFR2Yf`9Q$-7IS6wwjXgL|JIa4) z2MUt*-*V+;ZS8 zMvBi#8ZbIL_FJ0E$zF`n@GqZH6G{@$75+~(fbh}s2DS84S|e#*-9zI8L&V?*dBu;y zIkc*Dt(9zB&V4CfU^GPDasBoB!|CDG2T2#2k+AFxA^0gz!U1x9{^lGKgZ=CpDDGP* zT3Crlbzz@A+!%0bh}=)cL%M040<6xVPP)qL;)d|e=B){Wp3N8p$`f6o4q;d|)Ok+C zam|y0VNRAqwv{xTj7v#9%=4Q?y@^|3K<5hnw%*;0PRq*=ZtegUe4Oe;T=eg+5~CXT$L+_-RcJS*vgKfimq zZfO21U?ZuqBmMSRg4`_y(}({$0_1ZHanBF=hJl6S68yA+>|%~t_B@L5|8|w7dtod; zFZ&sWqv`pGzjN4YCUz>XTR?BoIMdLJzxmD~R2Dhw&k_PUnL5h334Bwe0(OMyF_P!V z$yiHI9b{bUVT)^W`qna>;ku6fF+1lim?48^Xi%lCv+;7tt8%rM9#v(k33>!S%iY}* zgAdO#w4o9s>KU+j#4nKnju(64ajuTcX`@o$!-prX6b7+>+r$Ddg)p$HPQ?UNC6n`~ zuy4ZCX+nTA!P3c@xQ)8I0H&U9evO#u21z-RW#oXSPO;vsT%F1`la2r!>n~3!ws2mGgb0z7!V0ymr|@KRIs7<-34}_3WR?*Ea>jw1o+)Va@Qv7yybW;c zp+I}oA$AZo)((WixMS^%i}@NDlQzndFcj#! z_&^BRqbD$F9q2T4jtwZi>uYo4MIjo zBJ4E7p{`p1d7q2xSG$7>zaod^J0)|P+E5C)pe0_J?5n>N+|G^cvvr|(1@<7>`9B0b z^M5H_%^BKpS7(w1N!6$V;;qoySD3FZs26@e!5lp`-U9Ahyj0&Ij(JI^KzGGMgi1gD zlrc9i>5c)bW*;xGN)4s}Z2#)17kBWdS)!$|1>q@_!n2f(5t_W>2LeK<6CWkul*vKS z%(V}JI!1N}9;Ge@_qQ5T$=Ii{`vhb&ihy`&>mpc=G@LC#!HAqfhK@BQbQ5+zwMqac z)nl#^vJ3TJ%v`-SE6*YrL;VI_HtA`m7T&cIh{7s8V+Jcl1XQY!hPT92^To(ho(gH!LhmCsK zho=45ol;2HD^qQAUqmgp(9sFh-}BS5=&2lN`!w6;sM5~V7LoPfGx)H7vPYBf&z*t- zhZwL^i?s|$^qARZaz6d1xXRc3mRFkdy9W;pedr#GNysVKb?ysVXz78} z6{QwShs=I`8=(UoR_N;AOJ9Nha`Fbx`8OeXAA<7v z^0w=Jz$MNlxYOEB0rA(R_kWmM@GxY#JObbbMApGx33yq*dl$yF$|X{oib!%0C;6sA zKK?oDOJ(G*iYnI2SW zsxi*47u-{}UQY8Uliv{!xrJJOmyzRoA`pZfwE_9!%(Tq~CRLNa??9X|y)S$b`?DOA zP`C8t=$U6Zu=LkYIitjxK_UjqpiyOzX-p;`f|39YL0{e~DevQ?F4_!_{+cgMPDX@R zlL}{f+ru*J)}_Mvf>EPg82%$#EM+=ORBcm6>1Q{enhf;flePAiT_B3!*BuQYsP0R? z6~|_BF4=xlXcDa38=cn%ebtfn4XIOAG2%Dz%QE2p?%@vN?z^G>R_G+RR?xOR@KGp1 z7aRCxD+`00Fq)Ggwkn0(H~6T>VJZNJJOt*#0d!XP*PjuRt*jlQ;|niJ91XF)`-oAN z*Ld?U@|`_Db*i4fmFF`?$va&%I$g0P!^=((v)DFT1;~EgJ|qoIk-3WsULiZ(Y7X-P z#EuurBZ)5NdBCg%cQCE2Hs-p-pY2&fgu|i)X$0}H!T19zAN)ovvc)H~=Nm2H&TnVp zao}@?WHSJ9ofJ3DYy1$b^Y`MHWgbchB6yDIzP~zL0qF+)eRlgFq$-&1{OW%qAx#sQ zC1EQTbB{D?H>em>&LG$Or=kp2_^{rX6hN~C$)CRGe2B~KB%4iR;Fn72i5sr=MgO0$exJfiwFL+*48YwP)m$|)?- zyu>h!ocL4F#}K^-7C6f&VG>4fC=XJsD6ia$949x zT}5J@%l`RMq<>3^R=CjjN6OikZ)No+Pd}t2MrmV-(lqSQ>==#_tMMYLMkzj=Z(;%#I(f4wDgHn7Y%He51KiVC?r;xgXnf z|4nLX5?uv@2uUj8oUW<(6F!65HBwY;wn));OgG~2|D)=?gPLrc_F+(}q6jFxNEhiK zAV>fUy(vfyO=&_1kq!w>Q9=kX$eIMN(}+2p$ER)&-=a4d;iXv z%r%qDY|O%eVuL9E&EL2WK^5nO^e#Jwr4<(EP;;nqEpk)JxcQ%ePjm8`{QmppQF;9xIco9C_>uGjt{2p`_WY0B?ho7E_8g+sIcvQoakxq zH}&<-zI{Q9@h|b2*io#vw%(1fupE<02ak;`^wvp=geGuBc*p(_E8J|Ci*uMyw90J{ z;-!-|*P`}A-aEG)4xl>-|GHr41#6ku^$&W!o&Kr6N2oqXFA26#UxhveFKYKP+G;*U z2T5J?H`!w_g`G}};(??v_r22n-4v`FWfHbGGrCxyZnKPEcRgfN?G*&0olx+7L=ewT zzx9+#D6-7CGTD}==%;mYV>l2Z#GiVnB6{};G#m!bQ2298BB6`9;#`81E4Pvsbnjf$ z{*ZL|UcYO25SfYi=hX+d43?h->~Auj^B(4D{bQ7k%WO0p2UT0UB+$w4@A<9PqW>|~ zKNdTQ^LvE0r4=I=K49$^8*4NO0Vy{%dXapq(h_Z@?)$nS-TJ~C<&K^OA)HNZ#*CES zhn#OgYVX#rwa64Evsad0w&&Ut==cj2ls3@uEe9^dWny3IzU#+w^7IT0miZjG8qHd( zCk6s)re{Tyk_W)4k(`?O>&!w)Ghq5hF&a zl~Z4GAH`u3K6madNAR%gpe$$aXeCXYe7anEyJ94S6} z=$gI~B$tvFKHT$81yXZ_>`|#l34XNF8ru$RZRo(v6zePqi(g-!QJ2jwws4vSFN&Ld zzdBFJ=*jO=UC&;w)i-mQ?33*YkVfe^hOErJ*pYa0=Gwu%miax5cKD(kfSTg3>S8?v`64t`hp|!+P=IqIK9{GWosd zuc7J3*{+B%*zVNKJ;cW8<90BCD^yr=RMI{m`ozhob4cpSS;ayzf_Pn}qf0ZyV2@CQX63Q!(FY^h1Enyk59xuCSTmGtJ&9h+`I@q|o zPCOR8_Y0(~Hw+D!O>KVaUq5m2JaEH{v_Tv?>D@KS>iQ60=VPh8v6ViEw9|kEvXr66B z@0sy1)89AryJvcXfBlqhmVt{#5;nCXnj%I&vx~s; zG(Xbj@xqB*fcwj)wPfG&1dB!4y!@DjeMy((yA5>r>QiczQ-YXpcCh_sc?vdW|lz&ovD!G%|rmNOjNKd(RNDZM9aI9|6a=lk%a4`M%ggdi9NE z-(S{Q)t)VN(1z)_M7CeOIQxW%Yz?SuG(u6fl}wf2VyTns(M`J^>qAFV^s<) zr)0=|K0%;8d(^G&-em5mDOgIgynEB~xu^%lLMn8Flzkv1Pna`L*6u)`oG{NCZ_GC( ze3el%m}hq7O)*F6@C^E&r-sNM$*dcW4IK36Jpb63JI@WRpI#mO{{tuW5sLpxvzJde zx_OaR@aeJYT2~6GKgrLu!J9js1&oIn zI%@8YXC6)nPGy~Kk2W2>IK*ekh6S%2GFSQ-SGBc#NIEnUGdmk;pL;dsxzb+c)v?~` z9nWb8T-GbPJ1zl294T7+Zp_;zAkq`KmqS{<8QXHK_ zY=dw?ZdioIu4eiXdj01&pC4)XZGj*J)GcyzjW8NZej$$5FU~7h3oUi$L#QAeq{$6d zlr=|Szmm)^*}}lWHYFKHgx@b^XWIb!R{I9L9+`07y2Tm=_q3iNDz?0CSMrq(K@?vO z{X%3IzXp<8S1lmiD0Gi7TP+;XqW^lMgS^RW-X0#q>J$;L4LGF1R#iO@I5(hh?)LA; za*qns{{wg^airvP1SGGpG*0FOsdW1ps-D5s_kUrM@_APd6nxLbk|Uq zUVJ9(`#jud;I=J|(`_J`u8A(Zpob_sk!HSFN~g^Ay=fOawhv0HlV$%US_+$9GjOh7 zM!9X37ZkbBiS+Wh>i2brycMP8Ncfr>krxmg^H(O{UF(D7w}o=B%1b!TW`c1a z9_w^AG9Q&ITNgGW36cFnz}?U85Bxzay*ya%&S$42!=Jk^z1uIJFrMudIEyQoJqF@y zJpnzlVU#(x6BG#@uyo%eS?T@5_Av@U^bGuDD%VrZsTGE`-wrH(27A(OhZF`Hhy5U; z>Pmg>qX0#AQQkt6JNs9RmjR#;jafvy*uC8|r{aVRiDLVA?ZMKtJBISW5!{Kx!}A=- z7K7udRqtWO8+|u!XByKmbK#xmxuU{f=wqG!uxg)O#j^^|%`!O@NB?eh++(03RdWWR zpUE69=Qae-j@DF)A|oRH9UY6WWTAagE{vC?-`~3jxelX)n?X?8*`E*^#_D-uSwSOw z$3Du~nQ1xlJ}IR&SLGn{oxuEjV`GMC$%g`u2GswfN{x&6zU=!sj4N&JwFN zTP9YHg+lG-Yw`PbbhfOI`UZ&PbpUvc4b*ZX*y`3TQG@C+Mc+}fsojRIe@0TKetr*k zF;#vla>g(jJkVqRWv%4V8M07RyiIj4ylO*Kf#cKmLU!Gis+I&P5V)0MWeC`LVOG8T zu)3WLBV}mh67oV+`lazqMW(prwFZ7i8>umG*5JZR>7U7sxaR=S9dpkO0cm~hF>uc) zF@)E@P`p?X06ob^Iz55z9VwbSff79cNZcEoy(Rud=Gdt2be)CCU*Qad~1m9H+EGcR`d9mxCe$}8|c(eYyVRa%7?Aqn!%gt@bb!`1)C)f638 zE=9yY+>Eoz9X>C*5fmA(&{XyCDH`EPRu>g)GxbLahrha7Gi_Pnsl=W7eL9-$w$de0 z4_MrgU_)R=vD0jpFMCm;T`7w+wr*YUP^C~ZJ(D=mUuPq4UMUA~=YOHkqPRU$N3qr> z?yjk&R~N&AeN%@4DHS+{r?|04`{^paGCVDE(_DR;+s*Bxchi6C&;0KD`os$!nbJO0 zj~5iF>0NR^ggUK&({T

    4oeIR(ejSrg`Tw7&@QzH}nOA%tq#acUi`nTr>zO8$ac_@v{V+*qAI=KYVw& zDc-$$yVVJ1SGRh6guM{A;V2p!5J>@(N18!Om6865<>pFHcK{>|%GXPv_4E6MIw?<6 z^K)w!cfajvU!dtK@FnT*Dqj~Coeu=2ypg)%(MPZD?y$hIt=lQ-9QlTos*f2n*Y3eo z#!`!`R;C>b_74yv7k)5PFUn$#zl97AEWKx{m+54}1C;;Z&7Ef(dH*+=)R~iv+g;5@ zOZlf?oy%`VTykR8+ZnALHcioChZq-yc?{05=Ft zaL%c@GC=n8Ce`)i_p#wwi+0eJjTnh3gXz+Niipf6$?niaAarlqLwY^cXBPaH8D4|ZJngx8keDpB+tLuw%)`Hf>i|RFe z)o`t%c6O<J!JRL4Y*Dtz zG5cGGlF6GVC9Hk}TsICG7S9=o3opK!d93g$CFh^e=CiecGCsi;JO84ZN{HFF=j9n? z1N%H;Wd`M;IG@d+!he?Gvw+j<4HWSLnMNes7zTVIJD zu4Fcltw)-+4MFS}W>)azT^F#2G61IbH~GD1`Wchg(xSSN$=X^3^y_KV*gZ3D1F!l* zX9fD*<`EId7a5rRof5TG$7|CH?JjPr&qMFqRoQ=M)qNIFB8}07Bi$! zi>+f85ODS%)DN$*%XL$hoe!Hj&snjq&KR9b!9~}Fbl(RFRpZ|v=HfViN4X(D0M};- zT`Y5CDuK*fljVMB1h8pba#|0tMeoDwr!)t{-#aDuDWRI*5QTT_?p_~cEv&cBI5Kv$ zuWRJ5Olmpx(c~w0Wy$QdiGyaA_Clpz?^CX7P6=MzuP&ZPpZ>m7gbt6XD0cdNG#gRS zLu)|q-p6gEXU4@n>mR{Ig*VzB;oNv3`dQ&f@~$o&`oDPR#hottA6ywv!9_^b5fHB_ z127Dx_7gQ^qvug`DL6g{R|mfYN&evrcH7s4@!2kDi++P)Joa4rw^c`F>kK*AS!74s zbpwgF0CyRz0o+?~uqYqJC4%$5=NnG8u`y0^bI^syAWi%2)c{0#yLZPJu|RQTKHJ_M zvkMSQb{CZe*2QTX3wd}Z^pOp;9V07E7~<#L7J(XJ4-juW(~lxp4~=@?8o=_1r*zj{ zMb7jGUv2U#D+;VVs!5+Q&QkVod0BY*dOv}43p0>*DB~!bUvpG(jo)RWR+k3&V5`T* z;%UgGTXsd4(&|@S zzOT$wE_u)~b{wdo5_5jHe)iBg`O-z%LTp6u?n>dE1|RFoz-r~N!8gDiL+sDLQyw7G zsxjy$&KD7eC`)Hlb>6Sil_m7yN=&N4XSWG0`~W-@EU{C)!DZ+o`4X|szUrj_2(oQo zKEC~%K?rcn&x($GTU}kXNoDXlzu%r?=y+)MRfgI19nC+!TeI1T8gs0?a*#S#taZjK zUj^B)Py8RaN_E;zjyF*a=kJ2%9V!rKP*ra(#)W3t?;~x%uas(v1c`Y&KLxGg)WsbtCOv2csnGj5{9W^GFzESzxwhYk9P863f zRKc#VhAeG&?a0@ebt$YB0S^IofG}?RfG3a{P+=`USDNN-2h$yCXYuG=54BeISBsfSyE_4f?pf`PUWA+J6V7SQb(i6A zDDRuuSK3Bj73}Pz9J%5hGB#9b#Ym+)Lc#!G(1<&fXq&Idw<@lmL+@#HC3AfOX(f-lTt|?N>fR=CJS&yS#ffHV zQb1Y}{x5Y+?Avv+T@N2SR+&|hdLITgu6_^P_d)1hRf?JhA*~40PIa@;1iN5wVzPyN zjiHK&2QTJ}??r&kq2{Ed``Yx!a;Xzk1Eb-IcdO@0*l^DUq2(|OC3llEKEj0`HD+(7 zkVq>VO8yjM{T=UkT?f}vx5uqpC%pNsvJFcX3{;^!x+EfQ4>tNYht)M`eE!wqdakjN z)R>}yJDOp{owZBBIZ6y8?MeTwAw2xGpfFLr&)gIDPwM0HlbrhJtyX_eN z*fk#q=tjsDqtX|WaWkUTz@R&70-%emaBWyzhv+(f=CZ!Qi+7x~b7fS|Y^fcJu7|9rVmNOvr!r3M&4350hga`G}X6%>LQET^_WV{H4CiruwY39r9OZ zN^jvdBAQu=vxOrC>ybxc=(s&3*p1M9p?bdT=Ms=1vKk$q6;}cos_<2mWz)W&4@4q-Acu? zDLD5A17o`;-H+q@7W#!w%c&cPcF%3{3mFl)a6BHcLXhGs;=tax^= zWNN;+;}B0r0S!=dcVS1Snq&q z#C!aG3s#zVbd}btGWP)1O1{e0S5Ei)HV`ycU^QzBO4Hu69Ec&iLq3J81wF4cY3{doRuo6QU@fBXIG?O}9{ic_<@VKgSa=zp z8?E`VfSro3=9w!TQaCoosA2d(@lVOIALY?pxC6oCWR)2I?^+EVr_bqtyVxt_qewd0 zKNIOBHUp@o1BXbFmWd?7xw5L@w!K>D)PzJ{NA2n=aRORyC~jV4#cD0TH#{AU4D=z6 zR$7`1+BJD<>jypA1}=ia5Zkc0htd)9TT`q0*1oKUquzK?N*~jxwIBjWvLjL0W*Xzh z14h2Y>?IF!stEVFDdr+nCrZo3osVX4w|!Fkm7Jvu!=t*F{Mo?@XrU$U=v#2|r=Su1 zv0^ho)n_6${dFXIHQa;?Q-xQ$+5Z&<9gvmg8lMN0>sw}+ZZK^c*qCzG&v9ZI!|u{r zL{>UZJu_9a;c4Pak&DPt>A`MIpu*b1awbaf@}Z!I5;g-X2x;loi4C}5?|^N@ z&=>iK=J9s!%i@k?OPzaydIi3;3Fo&J=9cQ_I&(H{qQc*qqr=}+PzPOCYe9wXH|yNY z=H8K&({nN4QM;eFMES?MZ|6!FsinBvtgccAvD)n&L);vm|4o<H$Tvezxpf_1nz<5@2&x8_Mz9UtM>CV$3#Bv z>YcIGebR+1@mLGYmdhtEjU3t*d-=CZ=I9J;9$`hw?Zs>>%>YNW*Uu&EtVz}DeyML* zzM?G~N|&u49A;ZZ9UO07ejmeV6tQs4^a!ONZXX7H&pamj2dYp&y5|Gt13B=e6COl4o=>lyJ+U2|{tT;`ik4ar+B&HYUv~U0Q4H*q*T*TzqJ`b-4)u|+ zjmf&D72MAc81JDG>y!uBqtq9~`9yJ|DK|FPnS-&--5 zR%_wS^WUqB+q>1&<{ha+UH^NF^Eot}W00vcs_^=dy_-S=JWW^xQ#JydiIr~!jeD&l zWa>;g+Oxt@Y_lR`vVH!yawm-Al0q|904jKMHN&{GCKbTg>T-cOHQ1xyow7WYq^Y>( z@Y3QeYu<&wS2vsdAR9`F9gK>9t5XoecVPpx2N3??@-sDC24b95mF&KQ({y-3Uo_Al zlb9JhlsVYMGqsi}e5^+$*t}1L5t8KhgEnStQ}80PBS68`9z}|Hjvpgj4 zkLU?UW>v@d!xbTj^LFUkCKo(ZiQf(%rZI3tjLbONgCpQAb`-=Ibx2@dH!#MwX^lA3 z>IbV(1|F&tM5obN!16^{1@EZvP9UD2qPe(S&d?H4(hUX_7vx(%GGvA*R zp5XY1=P(MO9CP>$1Y6?jC}gqSH|)#qV61NMCY+K2G|?^JxQaD9^N%-5GH6|S z^DC_AsRVK|{f1-FbKY+x`lNZJb9fAud;Iw?dg^-3c>ryBtlOq49B|J9!UTJjYQ;ID zgH!U>FufW|S2P>#K_@cv7zdu8Ac%g053LIpm{mBUZmD-orx1mokW){pn6K!~8ARkb zn9@DtQGvww!Rv0l6(6%-|J(oL&|m70e~MLBQ@q86lxQgNK6_Z;jOoHw`!BHuQ~Oud zY7+LYHWk^2IVKb*4!LPn&6k$tW0F^D0!_H|Xsl;GD@`3tG+ig-BQe{SCRv_Qa8q~# zoE34}(5E^j2nQf)fA`l1ZXUr0s%+vO_t9LUY2A84{9Ih0?h&XZjkTyKptUwL(y=>l zuuvh19&lNAZyfn}ajSY(^9u<(BWzy!^xQ*2w$xY8BfEzKvJ;=Pny-8_2xwPfx{uE! ze(ST>YZ~wz+^E?jF{iCM_BN~y4J;Ra{I+cqVOB9#b3J=$ErcphvnN{64;>xTxD=?o+nlte1V z+LEvaW$#O+O3O=$-rezO3c=3X{~$qvd3d09mG%Yx-i=~(rx3M&>|e>9PP7Q>Xc6+R z@ex+l%JIo1{}1gX;iux0Js{~{>MlWh?Zy;TTS83+8u){6TbBJbHKUERhBXBGvH`3K zf}hbgRd_kX5iA%vW;4*En)7`%K*F{8a`)$KF)n)zRZQTl*DpIq83B8LnDE;Nh}ev% z?qHSF@zII84csKa;%rtaNr%H;>EZh_QBiX;%sPtB8Jq-rDij$Le>QITYSX+L2sv8hn&-OzVy4N@U__Pit#Gnz04GQ8~Sb=C+DYSA4PiTTB8aU7IsLlS-I z&N)S+P{`E15EhV$T&myp<^f<4L0lM6*_{?MH&AQI=~_?YZ4ixqd)&*wK+seJMvys7Zh5iDoQP2*?}JJ4#UW{g}mtdh;@ALd@=f0$D; z4-5FhzTENcpO`>9kB-{Da<;hINsR>uw7>t8#zpRJ|GP**%fUq*|K8lKTtmnJr*Bq%eng1u$KIDb{14r4H#zOd zFJiH8Zc#QytkH_0QWBt zZcmT;i*v_;(y3op9!b2s79jBY4W>S0iNmj^2i>O>kVSf}h000Nh{kMJ)}53DybzDw z0~m_B3-OHQFQ3nPlQ+%P5kB`LPy`d0IKmszFs$;~Ma$1~*zrpOg&e99SLQU;*x)70 zm~%+ZygplCy_66HaU9`|0qkglc4qx#&6Pgm4GoJ&l#?3P3+p3qGqxm6$OA!=pOI}J zdw0Z(0Llb-XVufSTxnpCmZ$9Gs1;^qWXIr4(2g&l)syzRUFl4*lG_mT*gmg9dPc$Q zb@-DY#+1(B<*5h@Pw^_%&}q%;MX>g3{(1oNh03wkf>L8!cx?mcoA{Tk&QUS3)lR>^ za4@$PpuL@khjBKjZ*aI%25U|Iqj{?7ewO-tk$Q3yHz~!t?7LH&K=pXtU|L+lW>8~o;jQ^$ZjtWpD!=Dc3#k3 zhT4sDah~ma{hQ(5(3Wev z1Zm3sHT~WrAFcnEg!4em>fpQUb(tCiht(l*{KvNf~jNLt^TjkoMidlasGq7-W zv{SSkSel_bY#TfsFB;_bu)r-OOrPvUf6gaR!{7^fwVb?tWLduNGfQ$k9OMN#=@?Qu z;y@bOn2P%BtV|ePUf`;1GFx>*j>gAq7TcO_B><3?R>?X3K_>ZWdy8(%{;(rd@MnXk z5r_2cD6uo@2_llko_nbXMwz=TNlCxsGFW#7FTO~ zj~th4ePV{>gD4$qCQB2WC#sV1l*nvwc~ISeH@$Qywx(e8;SRooOZ(u(#3Pd27!>p( z;_Ub?|Lmj}f-4YcAG!6+c?bG@_kd8;{I(1^uu~LvYK#^2m-`VAwc+4}ATPi`5etB9 zFwT-73IemjFF{wk$;otnL%6DU z4<=T2;+Q(t)|eYD40#JQoqJ}-X*Y>{^izVr?fs?Pvp$CQ*Z=K68yQz2`1Bp|-Xas<=L)(6WoEIU{+zvT%STOP zUYM4@a9QY&8EnD=z9qC&(pdV~X@*%EE8S{UEy!NU&}4XT_KOg#YQ`CFT)dm{+R-2^ z&j6D8&H8zV|MtWCAz06bS*vGHAFWDjqx{Az8F%6}4B+g$+wPH@6zI=v`L3jG zMO9qzO&SL6+a?UJX^tyR{PW0yJ5}J2qfE9kv562-@QfiEfok_KnuI7=vA3Mg9P@zwPIxsqH~17`qnInkzAqhpBs%Iz+3gae3wjfO z)}_qP1gC<>l#^}4knUT1v>vU-^ksdjjh#MiT7;Esr8l?Ub9bJ@efIMa5XWQ&WS|-P zX&MS>%Mw~or~$v(Tix6H)~a0{3N5Tdpz=tGe0HoV;+`GeKou6!A9in_1c^Zd_u zZ_i3q>>Lypo0Fh(WEA58#hF4s+je%PVusD#pw9qPW{@5BKv2(ZMD?G-Nkk7pGg2su za)6>THk*K6a?aL%RA>@O@h|1#e=|dEmcX+R*7!jORU6MV*2|x-@9d={%0_4^y-Ve@ zE^G^w{Z`rd#Fy=c(=T9m(Hnj1af1Fr=+Vk<)>;6QapA_Nh)}movw5~Y>-H9kQ^5%{ zeIF?AbzsnLlh1_r{c1GX5dI-g6af z?wcO*zMtF%0+3Qk`J?_WQr*W9ix9VHgJ=Y1|~d$63XI`R3KdMx?%8J&6wJhJ+x29w8&l z?%r!tgzQB}Sr|C`m+faso@cquCXW@m(!iQ2Pm(R97b3%qmr#w9#wx2I`EQa(L zkr}0E-GR8&=Ad~@R?}9DLR+)du-)uY^l;hJ75K*9-D0>8NN^%$9qr+KF*5%!K>FDB z`llk$7lauB83rW%u}ZdAn_``)Ae{uGRI!+aPoq8|=ZX0dgk<}1{}!IE_b-F2DYC`D z@rn<}dJIA{KwxDNG-t-NX^UAsISB>EtG7VPs^zIz|J5xT)?WOiv6mec-X!WfLQo;TjJW$?2LgnmwsOaGszcl8A#Vq_$33_-4JYr9NxiQh7%U| zonXj;^({YZomVGo+cYMmuNB&W{H8uh{%(+j?TzoW(qhl9lXmialk7U`0@>Wp z=RmCz)x+0mI>M$rreCgcs4>~R z{!*E)xSiaNEW9fJ7Pl(p}j$}QLeK)D2u#5eroxiP#dOu z?C%i+1^-4)=uAiG0K#5P#mPZt(ALo&1dUigemkpe?|lkKLUpRDR=^FNk;pe^hz0>Z zcd6KzL;=p|iK2SsPKpC)!7$2YFP9|s2r9R;=5id4u&fHWXY|#K`F=}BFZMLSya?T4 zQyiWU6}7GCD`&1F7rLQ3KZ9w@;QJ?^452E(Y5$i~tjuRx`=_MzKaf;g<_Gmvx@WBg zVv{b*aNn;{vvsfMxd0DmxXYS4BeFiZ!8!Gp_#WdYfzJ~ zpWxgYxo~c4HcZR|#6rD=RL5QkVqoJCh0)B+DP>id&&y13=cuvPeoqK!Eo>30fmf8P z-cOgjk*P$FzAm0YSK8)OraZEfZ;)Qd>UH=GbRyeQA=T2eEo`kV>u+q@wPW)U=tOcq z%$!v(iQHea$?o;BbXHNVc+>7AR>u240lqHw5)d9yK{9HJ$V#m#ayhrQ9BYN7o4ZA7 z6i-G5teCX;n#I|g3p@cY9zKLKl; z3u#*`*y7)_7_Lx1>U9$t_*!k>Ea#8ld{jRpwKqUp5b!nU)PtFh<>ZKH-1fB{^>3zO zPC=DcVb()aG+kx;1UK-zG!w%IflcczP;lKA_xRPFn4Yk3C$V{FouGX3+2gGF^%svd5j&VB)r)jQfSJ-Z4??j{Lu!2lz*OL0x*P-TvOHT2fY?n;>ZDIldT*9#xce0{l~*5L1xv0+fl zU83aiJ*N-#1CAJ8)w=TVh|VAr&#c*eAY8>|BmC1$*Y@X@p`0^&Oo~@UaPjHZZsSl> zn1p(`L*HCEi@-{)tm}}d-mxA|%$#(c;C0+&4*n9{H2i)0aYlRNj}h`9)Z27?+)-aX;owrrU*bKM#34&vwR@_IoC|gzQ-iL;k=DuTarPu`V z=Rr4+p#d$i7$uPpbB|}cy7GaVCu{o$3x}d7f922Et7pyoZWI6flflAb^;zXM>|b~6 zbDted8HXPpE&ZFWcu~K3M*E-5tP#L5M>YRn-UZ2}Z^mC|Ebve(ehx`OmU5EjVSV=_ zBQ>R*Et*5qzW#Y9U&7<1DQZ+Iwmq-6O#AHpNUNWE@$LJD-CxoU3Q>MuG>Mo_d&aMZ z-454sN|TopM?5&}m^80hLR{0t-4w6SF}WDNu6)L@-CX`-@+vcvm>*Th=0o?UmBM~wA7E^6 zFGTE(@=x8`!3Yv>v1h<{fuP=Zj`elPtGK7CfFuKwT{zSu_TE zwCZp}Gw}U$!TD0nRacEi(VcZJH#YpylF=7_-&{DQy`U0tL3pS&n5BI0K^)tb!;Rx5 zx~!dRJmg#4&bJh)4WE?-&?jx^Twqkq29`3f88WH$h4k$x(-Skm+ZB($ID-js7vza; zbYG2E_ZFauJ}{EjT1}-ai&!b9sR=ew2urEqGJtr~JOKI&wsha%MD?T@rF6F%mniKT z0Reo3OJUsa;3k@Go6Y~0A*4oBK7r0RL@pn~6K%Q-@^MY8LqdC~Y-Fk3*$&=&K%-Z} zQ&aU&8AfnD0;Sw)D%a{(`uT|FH8joWcxZUZ23@Rpd~S6QA{)IsrWrF4)xv5(xFn8H zjXcf2mxrW@E;V)iBJFj2{mghw_;(x5b4Q;=?JKrA#muO6PL-c&a4tXg>(9v7+NaCt zUK>`S-|5Lw2@pZL?&q}MZ{Y=AJXfc#J4$6rNLfB;+;HWio@zex$Od`^KCRPbPwXaf zCmS-Ikod22Xa3C%w#N_i<1#x|*($w^i*i2@OT$U`B&K@k;H6yd_Z`BH{g}(LcH(fytkHDW~yWD`|(=Q?Z}bcehbdw2Z7@Iq#&+U<^ET?i#(}= zj(I;zO;}dd6%~K+k7a5pIa@sZcEL&z=w<~9Tl1l3y!3+a>#IsX-wRWh4U0AJ{9&TYE5AQr*>DB zn!b~=XD9PcxIaY}p8iE}*v}v+o_Tk^$87T{Jt30~HNcRBQEd7{MBey?b8XvMCyzCj z6`hK&2fn}ywFM{mJ%e2|Vn4PuU=aqxl3_#E+xT2S7krTwk?hlK)Yrne45|=_Xd`;{|j*1!wXxJmL!e^nEqU zE?TXi*OPjs4+eh`o4Ljm#~;9*%X;qewPefJ8DWp2vPB0fM9(eSi)R$vhw8D>`rCV% zJjKRrZ5{@kP{n1v5UqnN#gPZx$bCpO)6Y9jzpcJT|Do?@X(`<;2>?&@P|wD>WP%^$ z0U;E#g+5zU*E-z(p0DcquQLz)5IJv^V3`~z%SSM~=N^+mJ9)`}0KLokN4fa$UK&IX zB3j^o@?JF>;~}=_S_wYr)I(>t%iZTdFT`48@rN3`sk%bM`<^6^*8kyp!5Q~#Fm3@9 z_eK0z!f$N}slR7iysI{JtQvZ_+jp3h>dD?I9K#;6l&(~SDrs6d9RH-1-wqY8-JN-3 z{)ar{|N8OHY$BbAXf5?$8iVbDu)PGI{6hp+MK&S9q+veaT;X`(GgnUxm;ma@oISSs zkbq#6HwEff?%krye2z(_IB_#{yt-xf+?d;Y>!SZxqXEZ<{iec9Ge=(?#F90X%f}4w zo#rr2?HV5h`rAF;@j6oTxTmln!((`{%bkBv(8Am@UCF{i;<;47sYAEgyEYal=S?$< zw`Q$ruzPtn8z{vJ&K7+cn?GS?)%NHy5s6>aUTJBpuRQD906EMQXa4ZBf{C2B;+pww zN<&9U9Zu^j+5Ja)`PNJy*bat{U1#KirX>B&uYQ*8oa}B+L_iGG-wz;W02F*amNaq4 z+KozFuaeFC|9S(_KSA@}B<)9(UrBb&7&T&YO-mNf)EW3&QL&_-(M^bkRJSrFpX-?N zYCP)a_;1asY-H9xEW!qBHQ(%*+_=B$l#)IG zb!~7$AGm({65sI*^yowk>uxow=Ot_HPI^RaI3dzS*efF*S_uFU6qGhVTcy6@)e~W$F+AJ?$#K zYZ6bde#9_`OL!f9qdmN{bm`mno#%~~!-Ma2#KnyZE zDcTowOl=O_VK#SA5MkSRnS0RD*k~MFhTUsO!N1N7uG#D5j!&!))J*Hg#f#UkO)87N z20K;0O!$1p5@&3B;&2hvdxK#0``zT?_x+wfPWC9jZoYKSJ-CaiYSrXz$ zIOSJ`VwIPh^_R?kuWeud-WPC<1Z}&@*AOk%bDrr{{NM+>g>Mg-G7RuWDH48nAwTQD zOB3l=_9oP#gO_%yZ>4e2wcUb!OU>;l5zo*k@o5$Qs8ez_vL{cM1t*Z#*2;co-tA4M zE}IbB+jyjbYBS%N`^N2YO!AHdtc3gAp?(1P5H4GI+!b#g;K)!If8$33Ho%morR|n< zHFyTvSoy8~V6@WJ?rCxl#wpjP*Q&Z2co1=hjLB3=po9b3UZZ?(HX6fJSlP@Xq)?#O z7DT(-iKf#$(hN6+_E3eHdKzQ{YQ1=z2(PYMNRb;!Al=ck7wz z>LaA?A{SX%L?^P$Jk>n#!QjTZ^TCV}4R-5kJKN3U@#Dw2H+FoqjGBM=Oizb~uo))Q z+@q`N$xZbZ{P4$7KoL`~|79i|4j3$W>n{4~;f8VKO@bhlu1#`th0P35{M9&rQj~~7 zQ|BH&3yoYs_)2b>N0Qk6LF?B~l~%RuTkw8* zO;riZ^_w9?4qVezju!iyNkz}^oaTLVZ`prpWQVmB{u=?dSo1(D&-oC ziV0zDk=|ol1Gg`Z8Q1UcvxGQuA;zg!g#Cwmz{R4k?~5U?wQBYD4edUzDlTdguuDH4 zp_0N^*UYU>badZeX+3Oo_x-MQLpq>(=pJ*gOjBX+P=KJc`wx+nU>1{|l7cJa-T)?ectoWb+2{*d#!W!wa?z?oJ~~V3_XU%Qb%NVevGx1>SY3A zhhRDSpy^AjWoxf(N<;3U(GmrOw`a>4S{W(|W=H_k;)>j`ZuFuxv8!#;B z*3+NI(R2jd9Vutm{I57$a5TkCro1(R3-e?oQ%iB^6x`AFvY$<-QSXv1MdA;>lut%h zZcx|gt=}&Vpr^#!p3<3o$)+i6UW#ExZApt{RN%je@{`Fz)kM172b z?PBV)#MqwJRY_YFzY#(#Wqz}CjXn@pQB^_jMcfX zx=F`wUoxRRoOP-L{^?>49|P8gMWUC91~MM_xlvPdNLyeX1nE#xRLJK_tS zpY|T4z9wyyJyfcd+@__mqAC#68O8nC(!6_xye~5SVq{*dX`^xrbYbxYl4NgaqexaE z%;qO^KB{j1hE2SBJapHYv;e=IclGs0n(1VD`5_n-*!sf03t2|W6Hj6t`Nnx|ML_ke z|LKNEEZ_<7aL|2?*CjIO9T!39EKhs6|0U-z;V8ZPU%GP$V)viNeYiVZd_JFV?*EIM z&Y--fUWn&*R`SmDTZ^9NfPDf+IVifdx||x>Z}Rh>EMYMbLhrp~KdZir@T%jsa*jF2 z{D6eJsO*jzF!=1&b|uXg2&5I3zn}aPf^Syzd8lF%$}}0#hE76wkJd09u59F=i-DwG z-RQ_)1zt{y^T3byko*)t@T9aysE17ono6+cVq14*=VEb+&_$kPq2a?4!6)GbqA8ow z6V{~3+sbT>Vsum^4bb$!B#XWCEg=9hAe8|Fwt$JZQ6g>Fa&jo{q3uq9_snZlLXHYrA8bmF_3bYUu~djp)DaAnHsHz#bmT zlI(!>rb6l(u6NGV0WlwG_={AE%C51C*Yn(!JFbw1&tt)6&f zn5pwswQI+jB~*pS-hFR`ze;peLvuo-AohJ+L(UWPC+>JSH6UL{rX-KiPRDSRSi{)x zU0`NP`~_fed&cOS)i-RNjs57>|j)oHtRSCGv4~rCFDVkdw^8 z8+r+jV)YvAc%5RKP;kJygJfQjHG^KPyhxkpWLLGW@pTA});DO=^h&{~Nvb@%du7Le zzWhsv@$~+JBa%vSEF-RpyGMiog+qvpBll@HWg)oM%Mii8m7**HUXF>$SX`)k$`S-@ z0KbqsvJ1J6-p@FX$n~}SkVV8E^d{LC318iXr1yd0-e=V`6YN@xC9;UBHC^Q3*cKK< z#>@oxwrZhmLA%u*3Xy?BCJ9A=qU`!4B@;}*eiL*~3J45~qgaKa&TFvlvemKdAhV%x zkl5Tx<(4OZD`!-HmQ9@4vrxgk;s6TS7Z9V1NE(QG0c@_s)T&R5ydJzMb~<*(N9hO0 zrVO|x@3`4R74^Hs6*vn<#Y0CXCkY}|LJm3>`13CjwQLqqEeA|7+WDfN_C{;p92(i3 z4gY&F{=dK>5V-4(;Y~3r9ORQ}Yx`5~{zh5}kJ;fvSaaf@!Hlth)>Nr2k+)pCcS~cW zt=;=|N&M6l0t<55p(JTq$w;rddb^B86H8-AqChw*lt4cUxWK4tMYCPp$r*m(&)d(E zGGPsu+x~1}y$ElUmAI74qby|akfTp_$0_q*9DSxc5*VTQvMPN{0Y4ctnl%H$Y4*Wd zV_cEzW$gLKoHw#4*th17mG*3B-&U{W`VBq3#Ayw^w~uC~D)Y1l{jxy}Q`!$hw&^-z zbUv;8mvTmA{wbxQvhaD21uYPVis@NFyG*eg%t*xE%Y7_FYyn{#3MlGm6XfQI55ae* z1YaywDiw**Sdx5>R%7+%{$Ged;@yCLPe=1iZm# z9IPq14O8b}5%U2Og zc|9o``Ks~AE-rjOWk{*MzjHxWtJAttEf$JTy*or2P8TC*TNOC;$oebM4CkMX{`FO1 z{~nc~f_v{nl><*1ta32wLU+E}$lJD(T0AQ-B^q}hDclu*M7donfg{GJ(P&NeX&p<{ z=Nc1nViXX#*@?Q;(uT8v%K541`{v(hpAbd;mS%^4yh9ic)yZM}io5SEZSI4!D@cCn zKSl8Qyz&43uMW;7<)p32XSa@ynavZ@*A-R^AWvbk<-jLQi99`xRl`dDA|WTz{e9nd z$@;gslazM)J-Y>})&La}aWy|J?i!wBPBFjpC7(;Pm^_xZMvYKvm8t(XLN29bF*TLH z$m%{XlIT_W*m$xx8`XOyB-6H>eYC0h$Tn%B;}RAU-zUEsyEgDhHu7s&A4*(GYWEkQ zUL~U%HgD7hdNqv7Ez(Sk(=5&Vh7knJyage&9#=}2=_0i-KPzV`z5^6~0s=S#Xr?n1y`)A2H1dyor+=T-oC z0EyWW!`Y`R2KS!tm?d!B@8U>Yn8KhxDPQl0rci6`*qy{^K5`V&VY3|TzRTl4B(((5 zQHY5qc$LiKexpJYlgT!BLa=yPZ8iCJ;m5G`@u}47;*A_=U6m)Tpwk%QN9fyT-5w7l zYKmZILmnUKhpX8)BmF&03tpeXzu$6n=17z8+iD`lXc&sUvtFs+LC?OsS07v(zYMzI z;y7?ooC7H=^*Ze8kZB+%aCLjLFdJN41BeN^%w#pbT}jsqJ% zACx(eXk=Pn!PbVuVVhI&E1ee}E1lS@YeXh*@9mIBo|9T*|M%>`ryE(-fA32NT!h2_f3NywBi@cxZ5&BzqfwZniH$bdp)x1v@|J?So3J&kNSk9 z2RniZ8)um#7 zIYq%ctq+bq=U8NwwQ#8xzzf~0GNt*LAvgVDZBr>~pwGcOuL~a)opd6y&bn%XPE#f% zg~7rHR>GD5&+9(dw7M@D}RM_aSK*`FO3A zXR~x)u6&d=Dih899;Y;bc?(ILo?X1~L8;u3tE?Cg0iP%6zYe z`P+$E5L6a0k*%VAFx+>Tx=JS7D!6iC*ybgMD=Bw~z9}MUSGp@X1XsOGy0pu*bl*Ss zV!EDl1?qFMi=dC3H@aW$AUQ0Z4z2ji*4grMcy5l{wbxj~heWehyqA8_p(J>*tdi`bd+$TQ<~ z7F&Qy-fAy2F4)~?)aKYAk{IQxpoMj z3a~=T7h{lQ&?a6GVm1v8c>wH(%8p(82yd%pXDrkPR>3B3+Z=^n)R#iGMc(dmdP#j& z!8G4tD^I+u+(?}AO&#NZVNT?qMMZkN&o}6w{f1|kO0BqZt7n`USo({15`gxS!xu|U zY1Pj$xi8vttpJ_6wF@00-t7aSTC0oCTT72$?Z-wz;Sf~tI%$8o`Y(~*thXcffPEK> zr~%+!&i{}p&!+?O-n?o+-`AV-I!VNzVl1RrXu@-d^0OS76{Zwrbr@l4QuTZwr>tQ= zPiLznIqDUCTCJ0!S4D=pzZ>)W{o06S^-%P+JY0etk7Bs&l*M~Krp`ShQ3ahJxU@Fi z^EK{P z_qWZ5VcRpT7j`kT#UEUBKgIN2h{iB&aP{>-WW1vBx=GK0lR<>+!cl+2Ba8)^XkQGT*z_ z3_?-v?~+>O5foClSlUEK2UM8 z&Z^o9HS(oWIkvWX1sVbTaXRkS4D|QJXjf6F(cVO?zf~gEryYVxXUO~0);^Ob>l+aN zb4q{M#M{o+Sh^BcLM($BPFi729{fbCVsY=3v@p3=XsAqQIm$dUe8im4> zP&rc@9(k{d0@DsJS)Ql|keb!AZ42g+M%lLRo z$^^u=@RBpOYkM@xcZ;*M} z@T-WJUSY3|LFFqUG-y;_tC$mUWlvrE@ol)@%0;1}PgTlt6rqKSHEg;3QKl^2YCRb2 zC;fNh5kO!OGg;%8COIBN^8-!$My-qJRuVv3kjaEi!CYLYi8JdCDFZnD{jF5Qr@>TZ zxWKwM|G|d!-aqAOXu;vqe=8nfJX%f(Y?AXu(mnk^X}cv%H>CZ0&)3u}q@WwidYox1 zSsA$+SE3}hi_u3DLGuLQ^w4t;E^UkK31B$Bgz>d6>ap%wrrht@Rk???VrhzJZL%4f z!0%ihTl{u0GcNg5H(+;uM3jX9beF&jPnRHoaZe)`re>>`Vt7dodj1e09d%b$mVe&& zg7(HOv!0?rM_~r%5+IoRm#;R9zj|G;oDIfkJT$~GeU^Muu76x^` zQ>=b1`7?H*<4Dxqg9>g(jg(G;>$KK+M&$qWysGMKH-9rZUcB$ZW3}@mQolC!Qa1y> z31zZ#B+TyL3u7?|hib*=`Q_1y?A!L=sfqM|Qj>3tf6ZK^CpxW|1r0i05N-OX6s$O9 z_2mhR{x>jJg{o=fbd=HMjuj3(CG&5sQ*>=IMds8`wj^;Ljss|C<;n|F$a_wjx`-i} zTJ~_goi~{Hn8$PH%TzG#!la1YaL$-thX&=tySQTq4>p{CV{CxwBkqbr#?Qcc~ zz8IvlTF>9mp)_lIG*DQc9p6LM#i0#VVEJktJ)-o=(u(6uyxA;?{F$ppytqrdub3X` z@Pm06rj$$5$t0LdPboI5?I5$D*-1W*JGyhSg!`NLm zAjrb{!CmUz^YkkYFHTb(jKWMRfJhtSICUbekXUQCu>Uj2zLjhB&}cU8OXY%a6m&RX zhYFCNbG55ul=8v46|nRh_-@jE*Yy`Lb>RBq`o#y!4&ij8CqRBt*M3`w^+tqMpY;zH zN}Y}I2$tCe<1LXD^69h+q92#%O@}^Y?$`)<3c3L8!g0OZeCP*TZQl}VIAM`HI~^0{ z%%9CEnWVW;708w>MxH?s#Jb@MR^QQB!0C=kqpxC`?b{LbwteeziVmer#BoNIkwbW& ze76<;6IPGo!z7zGDwbLmbA9zWlaJ~rKRd`YvEAW?3cHj}gew__k+?6;)5C;mYwOb+ zlnzOWzrZ*b=0obMW~^}g+R{{5e5mHtEX zqa;_nWgW28!}BYm);i;wDRY~JQl%?K#a|n*D+x+HVjzFJb4N!vm(XEem-sUY#~=~Y z@(f44o&RSZ2g-njgJP|0jsWj)n8OOMn0YcjYDQuJS`3{7m7=csClWQ<95EfrBx5i~ zq_4VsI9pT?xLPtF^C#IkUkuah%-#7kmrKJk<8GUEh(Qm5p`m23_x1rMX+02X*Brm1 z<6IzX?}cWpI>I$%Nkpk`b&+WhwB0sEzrwdA4UsV*u5-Rzsfy6Du-1L5*$356u~_^F zH>3i4UH4E^PLxf-=1m@*r`svj9e^bBJ9zhP+&;H)c{(2>v{!lX7osf>&0XD6WKH5D zfVM5wOoNJzWxE#uaRVat2=X8ugvv!`&rvLT8<%NG!1a**;`lJcXXT=w)WXk~ch;&S z0n!G~9mQGUF=%(tlOfZ(cT|QDkj`O0X?+_Hn`s!pWZ)8q!nW$-IGM(+^bSd6q|G!` zRWm=L0W8HaYkL&kSou@UlflZ}6%|^zn#0Tu;rj9GW=~N8GaerL(W?E<5ZM!cD1%Rs zi;qXuC!M;qDXWF%s{Mmq{e|BzMX=fS$c8J$HEW0p`XgVj z`GfT5@+Bs=qD|H2cC+)P$H>3-zf%#Fy_w5II#*64-u=>dqA1*w(J^MSAo^#35h2Y% zO|x~661V~8>k>k>rk*G$F*gos{rsgiugcF zs_g9Du=CgX;7!J%`X)cQ^@Q?|*Wk5Md&5S(33z&#i6(uZWb;@g%1n266N3k)*v~Hy zZyW)2P(#YX*#uKorJ!UL3>pe9N+Wp&jz_&JUJCxons=BAz=w zT{F>j;RLHAhAixY^Hqjt!Ea!pnZ~@cJ`lIXIbSzVA)s7i5&PkVrs|+~2s{EGYSkR<758mATDB}L@#OsSpj@@D z2BJluHx=aP@A}?0UUlp(2*KhTR?Dth-Af1?#VzNBR2ON0jN7W~k~Ky{8A&n9!fzkJ zffx*9Wwcid2+@wnw%rdr^gd&dB!F-y#&6Dcx$&|RwV!2KltFt+qFjpkawu*ne=wxYDD)sO^;UvCp64AfH;sQfAx-5J7+Jl022 zNq2ei6DtkobsLS(9J_oAqu(umtbAoHIoNWUv$QH}+lhPEzID~&{Dm;TBfbPy%a;dO zSM8>95nZ+3EEE1@1Hug)!0-)3IgLW)prJig^u5epT|1lNJdKVI2)4w5t!Llw3m5-g z>FxUm;W5QmP%;`{8Ld*@RH(N9jn>wC_y^MdU!1{%@*aC3B&hf%_15LxaIxzFaff8z z%cJVzr0^Epq&C;1_mpTTPKXkEHI*-k-1-vMw)6Oze=~=v!BxN^BYyzqpC9>2Qai|4 z6H+StEHNC>9(<|o2)Qor;+h_8DT%nELwdp5v{C>*>X!pmm2VUD<%|vt?F=3&a1od` zCPXrf6-5GiTu!y;>;0_J`lH>*`uNS9$DctN(%;q&U^y&Tt|q0Df%pg}11-;+pL-CN zPYQQM_1=4l+--LUCA*RI^m!Dr+IB~`^$n0=)x}K%Wb>(aGao@Q9=EMYP(GK;o~g|V zyD|OT0K3JYd+jfCf*`UY|D}qe%v^XBH|McBrEn!&+UHm&UbJj(p}@}@jNP)0`YP0y zbi}Rhc5e$cI^eL@+i!B%l6Oae1h2Kh%@x_P-NxPx0d}vwX^LEI;g}e%fCZ#}hRrjx zrd%2hp!D7HMqjq?(v1lABI|yPk^(M%cuN+kQ79BevaQyhrTite1gGieaS;ADUQ5ON zdUMjzPsc7~GUt8!Uf>F4m)?L#dZV96(d9>QG~f*6Km?-35q(&<$`~~4m}4q4>suy- zk7S7)gLs2$dOk?V*eKFSTZHgT-gvI~#hYpk0{7U5x{Cg}eSZrkQ*QQ~sqqFEbE3y3 z(db@&oE<4&)l_)GI2JCD2J7T3ksTh^Ef52YH3`gE)n8nv)Hl+ttX> zf?=ONJM2$_r`sa&r}N27H|G=a2}8s#nx$|o9f_+&9h&C~>uYqnhj{U{jziV)tm5#O zyVIeC4CXR3AeB_g)KKB`A+;A~4H2t=kw57KALb^hXgMFgLW zlg~EkdRBWtdhONZh3`!km(s@9#W1Fxa>x$~W~XEm(#dm((u8LAwO1f zES?%{16P*(vAr+$em-qo1;6z#PJTaD7LanK%D4=w={4D!I_9a_)X2N`^H@rs!}uzi z{m>j|AR>?X!rOnd#1<+t(tqAe+ee>v)<;C4S~hbxrN1QNjR5*y+}(z+N9xG<)oZ&O zyych7FeKaOEfPBpRaY@UUSO5O`K+#RE}*)$4q0boYRRajuWzq_p7`IFG$-5Y92Umz zUYcqd%oDZg&NQtOk$l0}ypJm0O~2Ofn*%Pc2xd+G;oUc^<4Ey!YcAqCv`ZHki1i(2 z)l7yueSFP{hxFViza?mc9PWj$2=9inQ@GZ>Ec^;nj#|MN2T&#Bs0G}mg zNdLIA3e~&~_}pawe_nylXCtvd?XVX%GS&^6g+q~#%)2puDoZC>;}eCYmFJ-yG#PJu z^%XBY8|3FSqjdnUOQwuaa=ep_q+elXY!V}e>WmU~$uX#}h9&C;LA64Uwb?T*`!eT& zj^pbV{=aEI>;VoPY#;)E^(41X{Dl_CVTH1e2iL4yZS39PkUzvLhOs|@=Nmd*OKH!_ z^`&R$yhBLlX>S-Qrf@Zlu2u+@mRfC+tm{wIdAn?B+;0~6-Zq!Fe=K{QcSbJrRO{3Q#laG9t;A$4llk0r@lJQ9 znnV|TVP&CR_@p|inIB@jkODHXON!k+&+wknHZe3E9`e=ch9*UfO8yWm7d`wyAg=WYoC$|cMei{* z!k7D6Xe%08T9X#N7x)skiqau688koe>un9w9UzMsYKK+_9cq51eLkamZYxbYc zbyf9Y<(Y1(`a4AoIu&?sP->6GlmF9({U=r!mymXq!IX(xKuS1-O?o zpJu%ElKn(#0e^_IxM<#yJ;0K7fX>QiTel{(@n zDvR0u2BWYoPKUS_$ve{iq+bJ^XXxTv{YCM~FOPCC^^ZhY=l(QsoJhXBUa5-uS}h;I z=zr>4r&PRpbMqkZduTuqWCf+$_z@k3Vhw^PCCFuO{FOo*MZp~&SLI597L zerLJH@joNn+&+Cg#*F3Wo(RTUB} zEc#JhI7`B5x3}zMxQQaR2W9_di>_ty5Qnj?Se;v(fY^eY2B%U-3^ZPv-vI*GQrap5 z_G1G|-$kb#skmVWYP_SF1FOB+O-YQv{d%vO6o$J{abcHpDf*U1UO_urL@G{W9dmgZ zA?@aWc5ENY*(`>dAkDcy#DVvhyl@mp+Soy1YymPew^6BTRgh=9sF#-uI-gvB1g8LH zm&<&O#>I%bVzGl(%E8>bu^amkDYPCe!;lCnil5{?=!mr`$XWP0>%;Q%xH17M(LU^c zdRJYN?&k~RpW*3<>G>2yQNizTb@Py|_i)8zM7v_n>GHp2tLR~5YprKCkutHi18J$T zZC|*HErD+EhE;)5)X>j!Qz$Yf$YeY3V(uoDK2Hv7CQH-RHmCP7E60BYL#{g75EB(o zh7@zYRk2#%*5{pxFYQtw&iE>@HZY{!$XZj;M0c^erX#%}ltQnqW_DpaRerH>Q=v`A zxxo@rUYS?Woo1RA)=HMUHyO=j4&BZNeuED<9^x4KT#123qKn#vS@N&#WH4-K1}b5P zmTgldZ1_Q5Zz(I&K6S7L&}o*RJg<2f?e=>6*%#E#u5v}N;4bfC;p5$3330y|gq57s zKjGss+sc@Ty+DylEAzNu3)toRq=TMu-42l>>tnPtFv{t7du+lO8={r0#(A|}r+j!c zC2aSo-_Lq0f_Gn=^~<&w^_#}+*NN{AJ~)G6@FC*(3{`WXEbl7F@t=$%;*hoY?Y2Yg z$JRDJuFqn23xMlmXTo)zX^pNexPp$p!fi!9^eaM;>PwTx!t1_HyxB5(SfE-(X5u?q zNdshh*i}wGi1$arV_{ytq}2W|UZB9a@bdIF>FcJ3n8Z7+8mxs5r6m(PxWOxFvBY+f zo-8G~*(CfxhQg($RlGwNW8D_p?3?4fl}Mv>BB2Z~;gv?99&2EEt_T>=2CsTz6c>Sf zDg%93t{wZLpT5_K%O^C%UQDZf+;@HBdj)lyc%c8U3 zZeak!*w7C3?T@JBh(|cCPdx=Kn#}?wQV0pRoAKfjll$2AHGiW|aZSQTabD!3FmES} zc!dXaOzT2p(CXNbQ-=^e$ky`wK)c88E%|~*+S~eBNvh|$zgP=OPFPB~S@8kJH<-F9 z>DP3o^_I3|S*k{?-L~UyRk(z0i8sHi5FoyCRL;KYyHWpo_|zuWDonin*Ah8PlM!-) z-#!HaTQTpr$|7LKywz6fQba@}(sY0pQ06Wu7q;z!VJtUy{h)H*U@GrL32}F!ChwmZ z@iTnL#znHfh`UXHU@*)ZHnZPM#w{4DkbkAN_{k3IPqFA##O-Gi%#nQBzYQ@kDU+o}k7^5GT0Q4t2_A zen36+J>RGPQ8ZxA>6N>Ka|;qk%MVqc>yVF7ez1|J#NtHy`oPmjwDErVuG*x2%=&?) zkHudL;oCe^%VSxlX<_Fl_~X@Qr%(8p(d9iNnY3?x4l};=in<%lZY&IN8Uifl{>yf!vvT6Q$Fn%MOj-c`3K# zbFd@w+tMBQD->xR~SEoq9dt2K9`V84`$#2D0^;Yq3%eWR`=*=;0ZdbQ{qM_^D z{s&-{W-T^=`2B{J;n^%}#YMSx+PnwK8IOa(epT=G@{}xWeTs={t-|9Z=$0q~wjPX? z5%-yx+KqNM>-b-}ruwHT3Xi9>#~Z;R$`=cWe1Z>iuKu^~cJ=*uT|OcPTyC7&(;gOc z#lOkM1sG~checJvo4!do`;lD^y!3)rh{O|S0(=bi=BMc{U0acC{5=;d0u<~rTJToL zp(?Hj8qUeEfMPAFWP9VGE85!vK#;7V%{z;&4)i}esofzxtuw1Mn!<=jqV0-I-ozw! z6Mjj;cwQ5~V!(stm}SN(M-S8$uy;PZS`OU&$lOIV=M9z$^XHGUT)o={m^Ne3pUmf4D)y+q^81v`%Iek3SbH{w-}7%(;7Btg z?|5gSYS*r03l8Z96EckM`;wR#F;Da`)r*blpmm-1#2fXZ_QmHtw0ch*k5}dLNPE8ZrKC!2oD) zVzRZ-;~bqX{zu`lfsgUDA204ZWnuS_c6z~SwB{i01Ai8{{jazgE7T9FmsD$4F==RA z7oelo!l=v3=q?qf?L5A)#W=;g<)S;6A;C+AetQO1{Am?oM-C>3PA8km_J2+g`~iy; z4x=4bDMr6Fi852_U0O3Rxp&MyeVb1H_O;77QghNYHO^F1GtSOTik1ZH{ogCX&@gur za1~A7HYu;u(bnoXy`kO#B1qxw!Kgck%G28GiifUK|{c%0U#V7DP`62ajeZ$2j1N|&pQ5hm~2{pvx-JfE&3gy zQqucVhMC@{4?_Ri_p=wAQXNACQ9ER~9)`D9t9iJ^0_~SWrGC=)edXfuzLtEe>Y|*F zc`(Q07a%QM462bS&{dX)5NNc{* zN;T-sZw|k(9m_NACNow_6mppA=1)LXYI4?`b-~l84O9a&k^6pkoFQahKM=Ns(k~dE zHblUe4E`J@DVkCk)XfFe-~LQPF>2vDod;QZp@M#fnMMpOK@eDv@+Ib{q6$-l0xoY7yK979zEAkqmRg;K_={G`Ptpvb@5Vu9~XP3)3xTu?O{Eu84 zhzhLsb`PBExD`yffB90@w^h~uwsV6j&;R?=1t;YHrb_w$NtK1wo@e|s)kI2__@Q*2 zQe5M>Yf#*NXwo1cF`8ljghh&UrUqfKMc;#=x#O7K>!@c`T>V?rs?KLojWEy8DZ*WLsx{T>Js+O?4k1h^$lxlu@{C z@5TZG5k(Fme)*l(l4QQ)-L4sg$VvNfmAw(O4uun>;{!ix<>$;r#E72RHCeRQBkC5O ze6|oVB)PGvbq}zO@Veg<@1qgEw0%tGe@c}q8sfVS-1V&8l*g_gdhS9+r#f_@X4_U` zMqd8PBD(jk@6PRccMoow$=iJGmh#w(I+lO$f3&4SYO)V?Z0DE%RLyC9Uv$38_=Sbn z<2`{3-r9%hNL(QbM=_!>jxU|+=ZdrxGO=oh3X}0j1Sp~8tC`(D4R1eBZYxR3zN9Oz zxOdKeY2d*U`}wVlHzq1_6^L=w2+xkhSUU65V*-OrH7@7l#oYX1bfiAj=zfwRi_5)e zuaKVnPSi9mhB_wy(2V*rV(n@h;TBjn$0R=M$NEU7BUb)`Wu{?`@eSV~{gahy3$+6D zX{4RNv*E1~txvQ3eeNp-tI}O{zf?;bh{+eRpvX@0?5W&(0QgvMJ-mU7uv7K(vEgIb z7u}>r`nu)@tBE@sVbYR3tB}su(~xc>I$g2{r{6?>X83EYktW5bR*#7bR(u6yTEuXv z_WU5z`Nuzh3Oo2cYB!F(k$f#z)=G|i=DY^qc_|)nPSW9j4bZ%fmJu6E zg^xI5f~{Xu0-wt>cEI%^==4eK>F)oy8FG7-@o{q^sT`7BQtb}#YAT77-!C|xDUkOJH_L|sp zMzHrFTEsY(#9*EN{s%52EE5hJRFPL;$&|_bbkDg4K(Ko%bJFRZ3#{$hBVGb&T;KKw z*TM}I-b0=9*Cq4TjNYcSKs`LJ%3|?Dko!?4cywTgRIC3|=T9ovjAA2kf0CjHsc9=$ zYkGQuB3*v!p9z{wSs+&(q!jejV3rXpaPb1PR8%1=>SJ*w&Khoc$meG|6Q?62n$3>f zENKQ`Fo0f_lQ$z|P1_nRXep}SLm9BRO}A5W-QV1P#(2ETrsH7wq z1H}~(^)ZBHLypPNQMf1wj2~2I7e1b+>qL2d8Tr1Xt^2n59Sc$Z5NGXo=PzlxNRfXc zbwUWxo`y(;r0Gib@BM}Z94jTmA7DXWf9!tSug^7+y&ECFkQa8#l_{GcQL&sM%uhe` z`9QVUq#4KGM*k}4Qp5rm1!c@lDxBpvM+Vmt_z$k`KEVRum9R{ z373}Zq!**T_^wIl&BH!t-o}M2=cy`{SeL-{>c?UqjIs-{XJ)4zgdwH(aE{vZbaP4S ze|GeLU8N$i&M2?f99~rybVPct^xX4@Tt@k6Ar-|ZH}20pc<+M}p4WD*gcZxmRZl|> zX@6;N6VWD|_Q7Rw<@*i5Ns_0poICCg$Qe7q>0jk& zmWGgPExc%aHt7zqKsfHl>YP%_z{90{!vQ~mGN#wmeh&8MQdD$LQ;!Z7(dpF<-3$WQ zl1%w4`YUs<;uWh$N>7Racv0+&17$Mi@D(4^JSNG+KeZMlv7|ituvEpe_0%tmUpFnf zvcX4^Dr);PxpNdBr7zV%riD9y2r`o=r8179%h?sFhtAB~3q|WJW)uOK?9nt4xS2@g zv_w_r-}Nz5R;?1zGY|D^+jNMKWTd|BPDilq8E=R-MoG~8GSiqJvbLWrWx+Q8#iB~I zSK8HYVbZ)dc|*&y>6|DT@r@T+rDD{jsaQ%-7(u0xapXb{q}IRDfZ|Vbmrds$CCM3o*v%f3eG_ zh~~luoQW}htv0T$5vC82U)q|_-(bRv_vb|X+C9wD#(#=nQM ztVA^}QR1q(NFy%cg?CAu8(^{ii*h=*!88xG4Bq4C0C2m8pOLThLQw5fU#Z^_Iq$vw zUR4w1Fh;mqQ6~};oh#zak_d{JAI!k_e4Vbf^_l}0rzfFr6bqd^2rtS-=0mSW$3F~U z@UXRve$y!KfBjFIkcFFhW)yJ7;Qx4aoXv0kznLkKcrw~|b>pa&xMg%nFkQ(Jx&rSr zw|A5^&}WmLVNE9;zoq%RROyxLgU0Zdge8DpwqV%)5uPudh}OYX3Ow@lesWZ(r@1)D zWkvaX2L5f~?a#f=my8-IQY&iJuOn<-rrEywQ!*2psGSqsDWr3LHWW&Q&S_7^M1C#b z8kY#9N6Yw?FfY@hEzmr2u8*Pl`XM6`(=%0UMv~tceDk*`^hgAOEm%-Mq5mAl%J`90G4);mjQOkl`z_Iy)LVSKk9kHVM3vvPq6wl@ z-Xeu6ZqnW27jgIFmn2h^>jdC_O>K);2#cn%#{L+~DMw*-AH^&@x&>Zw7SV-HUl_91 zO5m;Xf2&blJV-5wOXuo4xw1iGniP9c?Uha-X=bM!D)(be?Xl?HwjPZlhk5c1nL5B) z?oLCu?jV)ixlOZ%u7tGN+<~pY#+2o0?H)gJ6u2;R;{Kp8IFPeCE9)k*9QGNJe1@!$ z(Z|3k1DGiReC#bf9L*n8!D|wPit!yA95yQt6PGDufn$CtEBeZ72h2i_b%))fE^=U_ z$3;yR{Ez|f!qUPWp(I-))b=J^F<->qsO#|7gm{|AQwHX~5$k@y$kWg#d8qKgN)M=QYZ+IV9q5Zlu^{2i$?P z>dOcQBd2e?*}JxumpmvSS-V&a`|MJNbb#}S4=hry6`ncM9W_d~C=*`!U)E#T)oEnxbUr0cO&bj@w(q9= zocHJKkC48{9>2Su1OwwZid82dphhH}d7k2!dUqvj&x8Z%>u=yCddOzES zYSOA$neBsE0-$gpqpj&3h9FdPkJZKQsS=I%oQOXa!(vClg!}LMWX*6&B9c~!U}V*N z9F}Ag?FXm+5R!{8V&=gFi7(TWg(MkAwkzv2CKI@o$(?i8GEz@bGZRLINl|FL5ttlL zX;V&77-$8)zg|1F+sGT@A-yVLF=@||J3=ZKQje_lH0EtURx2A<$IqvZPR!?_Gu>B<8vHRU$8R72$0lvquZcYjZ8~ax}_VQa*@G9LZ$84P~~Yz zHr6J_Bk4x?o!tudhz@!u=|ipB5Mau z6^P7ZYlC!iFbf*qtkfQtWc)ImaCC)SMrw)xxy{|&A}~pHrS(-rdf+0i(x>tLj`|6rcV~~U_%vTdfr=#d`Pyzk* zm7t4cs9k`U_po1IZ>68;qwKlptyWg}o&7QBmAcsg+|H>tylSomVV|gLxs!~iKWR&o zUr%AJh;vqv2g(D~eS1+R>RLVP?%#JJ>wH<4X#n18ti?GclD4D)=^AHlxCsX{zn1Kn zGZVrrX=Q)fn&OUYF8Pd8C3n7+F}{^p_EBO)@m7gfzFGsba`5;slh_tKVr?TXc}k;A zfq_0nf_xdh36ZoV?i@*t$pVT)Y_TdLArTkk)Fq@8etu%Z{kM^q5*Lywg*CK zeoo&{e*IXjz&K47(BI6DmF$nL_Fd)5fw)8AAw7x* z-@5@>kT$}QsnGJpUgg1Avm^gnDA!_wsAit@$THJk>2`;K^^XOAKYdrKud2eOsxWV_ zM#_*eR2tp?u>CnbrI|IEe(cf#133aueve8bGlS5aaEKat{TsR2+ADPJ9y*#QH{aqS zDohNh7U#)#4kVd9ZT?Y$i>wFj-CLgz^66qX)GurnKzqQ1QA49NYWyE*D9Puq4TM+M z<_c#VN|oQ337mhMyOpQfc;R9NDB+m(ob{6NH)9YS_`dt8)wM$GsvWU>$s=)*K6M=m zk2MU)^a|>0+-pd?-F8D=m=%ooXENW1<*|>Vc)2!dov!?XiC{rw2P_S5SM)`*9V%~a zX7hL+!R>~ANPhT#6_8>A09k(TQs~>jM}c??&BJT>T=5jNbk;fu8UK!#!0*^H&Ke4| z10RyXxGsA$R?poeGUvFpXFPBW1bDug;V(xea$R0P z^wyZyyG>vHo;>4|Tb)r@$||~9^~E2|pttG&D=3k&7=hZlP>XCZEOqs27|&U!Ff(As zMK6G5K+wUq0-;NLPej4CczrDTwP#ZE5VuR2N9>$LsB5mCJ(7B4<(iS9@!Ie4rU`=r z6K+#u!++nlpZ8m~W|)l8-;5sz@(}0`QcYZk@Nur=*LB1czQhW~@R0KqF?94nUTJRG z@PGk&L5Mv}+?76tl|aX1mAPjn$BqB<2&R8aD_OAN`X@3Y;>gh{w^Aa zAbF%fEc62MP~PSX5&8d*tG5no0&L?(0ZA1pi|&$AknZl5j;X|`(MU5=K)OX@G)PSv zkyNB%l9Lu`29Ab}ZJfR5y3Tjr_q+dD{QX?_{XF-tYK(=_(qjzoj>hY;zIFRdNFMTj_|-*L>vI`3T4r_P;w=5fhA}kGSN_{`65Dh+(vvPd)mR#urDz;Sy z`9(o{WaphbP*I2CVQ}%Lv=ABbcAG{0=~&oUMAWOKKO-Wq9?JN&NMKj@W(;H-m|uNe zp%!N=0|5+7oMAIm93UMwnqRLPpXxYpbnpFC)~?||P)LBRtn7k)ZRDpL&mS5Gf*i`0 z5`5*$17>AXqwo5ML`+@aQ>5fw1;h|G(7I<5%Hc{0!m>BBVP=$R+R=N(Wt?R9xaQc( zRvuuVag|sSE&W$@(Lt=3YZydf{Gq=b;yP95{?V4kAE>T;%Pa`vuqh^*VoERCR zZtAv8OHR|CG8EH6@mU_r&Qg)u{Z}&vTH)f~o)D-)=dwxSx`$EaSUm-0j>hUwSq*UG zQwIi0L}bnWbWAtH=t9Kj4kGXKzY{>*FR&H}Zn)fPPV-m2QFI)6=db;1thhjnKT3s< zD^vK&qyNLDczyXc>>LmR&92<8&YsAkX$`lL*jw!LAk!vDC3j|?U=OhS4B#$tw`K~d zM?0B>%X1(#d<9vHP26zk@HR*{(41{juh>b|jHOz@@DmL5NdfBA0b(5O@8P-9LTKDR zi@D&em|N1(u`q_Wd*&ObR+gdM%42CoN{PY`FMj!aAljxVrJf!pHa^=@{)yv3_)SuV zrDNrQO__R*yj;^&;WqK!$~thjJ9AZ;4pHf!P$RX#$)M}!mrj*b+iH5lk95RG#AlC0 zi!NX6-Pi%lX1eQflz(HXY94B85!S+`-ST4Bc!!oeu2BXSY!^!38AXrGB|JR>59`O#0eD}D|L z+iV&nqTv~iuMAb)Sk$S9wfVd^)7sNQ>b)FZD1yj}c|W!UFLX`C49qFBUSz8fpdI%X~WSe^^B>k2-WV1-dP>J~J`_;aevaOA@F zoJVK3b)tjJz#=s|y$A^~C3E+wIeJxK*1gV{;MZPHY%9QU_~v(g@KRFqk2klvt5Fj+ zuHq)oWEV15a<{U0PPvDNlvOCJLy2{WsT-s9P7O-mnta(~s7cq-$9^OhOAybpBp_Zd zCAZs2c;3Fj0et?znGgURx!dBu&HIf`-e~!GqQ7}T(8aF-@kzfUh<^0XUw!QHHbhp{ zM@!?!eHhGymYcRb#E79X%i$(jL}jeKetd3#aYn*U*13pO;azM7cqRb8IpAI}#Cv}& zi#@QSy1P+lxup7=IOJGLT1@kx_ZO_8wFRk{8GT1a=6Zl2q8+&wD z7yL4p3uhe9sr2WUOoz6N2}@X@3HImF^f{+bgo7MU@vU!HI=YLSddBCjwLFMYQ@R1r z>kEoKQnw{^3;*WXTYq89zo@|0FQo&CiSZYCxtMidp$0@7Ey>aokhYgK)sVONwKeX_ zhKnWKby7aSF5?6E5bDN7&_q?kXZq>zjNzftE@NAS%T{Y2=y3goaWXsjhz&|Mwz+mW zy7U+!RbNW6)*W3Q_fqQl&jX9kUNRmEWD#>{3-HWM%ew~|Vn0xAK0Qk{pHyGM-=E42 zmKV{Y|1=H>f9>5wKtiBa?PQpG3?%R4; zj3Vy99dm}K4a|Qtj8f}-Z-cjfqa)=1J1yP;;%bk=pVajyxUKzVFYCCJ(7%0{OGeBv zIQXP${=YEW-`4}1Lm@SiFSlFbNts3hWk%E$uC!kByT>`cLprnW9g?_P#;zws+VCSL z&TdA+5(JCDYNrP!1&>yzRPvA+EiD8w@!5)@lFb$=^Q{U#qP*R9MV~WO3pp~c5kZbb zd=)X|nIK9BKUTi#Hm?XDV5WYUAU*pf2$L7!K$H}?~isOoAz^k*vL zU80{!IDMb1<}E}5@d3xwAAB@K_B+hAvZp`V#66MnshSe#-7Zzo7!S4E?~)ttv~(q_ z!@>?EKXLXDJaA?FWSIk#@7o-`+KDiP<)DMk(zqC;^~p=W^5`I5hE$CgU&I(XkIMi} za#-6=qYhTD#Z2o3oKoO-`0Yw5ycQ)3t8+#zSj@1FO0gRFD?N?-wLTHYsJov>c>a&~ z$Mc^teZ>k6S7e{TR7JYDR|bsZZ}TX^gq0wbWFCuDxoN-kaQM}ENX$$Ev zwbae@E8*8lS>#B*>9D&8y-t^NHlfT^UpUhsW*B*0MeE*=Ot6{D7Cx|4?6Ba!?6Oba z^=<@ExM+tkFI=izh+{3gcc>b3IUVzxkFZ(JGK>6)FYJf2yoP($TQ2y4f!Y2Gj~b+3 zJ8pN_@=w>R+PuRSZaUXLa`?w+wLULxbRZl~%Dg#?nXHbH|3&&YCu(gEe3DzK4kTY! zcQFLq8xE~wDVI3_h7>uI)DtXS4xhbJq`K}iuINsXrMB}{?ib&R91HXW{8^9ijTb5I z9#q5~+S$%Htgr#L0~jNhbrrDO6O$hJC6xHz2Hk#5q+H0Xo5#wXKJ=s?1`h2F$N&1T z!tg1E~gy;g`4xz|Q1Wghep&4n4v1 zyY?XoVf@3*yk7^pb^d5sw!g@#9K8c_=kyJJtS8PW3vEfu8+rHnPAb927>on`Y3t)) z7s6SlOo3^nDp6zfp3rIXNl_}Ds3jSJ)-WKSjQnp@4bH6Z*W~FFej~;$hw~U9BTMP? zO!isG{&2At1E9%y@r#qYy$sefAk4>_fA|>y?#kmOp_q)G7?J{ z)c*zUC-ZQ*P239+q7|+gPTE?r#23sZ7GyU}W|Op1V>X_fiE#EI8Sd%c7PoxL}M zv4q<<=;kcat$^e$&AFFA^x+WzGX4%;c=!z{hHgp5Y}L&>N`wRb55&OY3^B_l#Hg)la}h4QT#_U9;Bk{)9X~4l5g)y) z{I^VOxUCiUE;m=C;f(f>_?wX4vQ0;J&IXcihU!I+znm8Q4s~8AHGWQ%=-ops*X6uP zwGq91Ov|r6c>EL~7tY#;I|fyF59oKZl@;Tft>f|SD}ECIK7M+;1H{`uFfj6-fWc^S z1u*X5|C+bu1C&|Av;wg>!PosUYuR==K$@UBuIe_L?oV(IX!pz0{EJnN5*T%%Ju0_Q zjJSQmiw4=!+?Jd%5&!yOVafOfxsKu0yf4tHz8(Hi>1-BCtQ>@vSf{XKyEiamF=ozq zhCwRd)p$#v@9aPnZSst_HfVWWZ}}Xi?Q3PmI(J!p!M3nn+me3u$|O{x9mvpw5; zOyENTWB=T)dtk>=w=KKW{>0ek$K) z$9no{0e7>*RVjG234HoTjMrYk{CY<=1tIf11yu**&8a$)o8@78tA9(r;+i187*X@M z%$jda&XR`9u8fI6DRU(6Eqhg9!C}~sioIXKwMX_kitW9I3x?Sr8&kRqW7TA6x6i9L zUZK!e=4zoj*&cK!a?EHl=}Q8ZEKn9OKg4q;VgO>;rD>LEvO#R5;*aZBy%Op$Wc`yB zZuB=RJ@wXj1Sg32_yJZgQ}rw_NN_ID)=OTqbKu!f7_cEn!|zKR-ZlG%gr5ta^XC&t zNK3-j`(3|FSt}NC@c}=6?_ma7c(1R21Rn2`A^-B&duNdcZlwRHMlwNm>NfEw_~tbL zeE#FRI1lDD3wpBM(cxvCga7;g6zikCp8%Yl4*U|TAtdT~Zs4G1a4^~S=&gr_%n7Lv z`P%A*#!s?-fn1EQ z93Of7Pj$}5seyRelK5CPhGcABdsokm91(P`MaDf)Ncw;wan4MCFZfIM^n-ZnI>>mN zVO+Xupic5c+NL~#QN2?|_6I@wbZT{%2LPI%U(i2htg7H&&?gF;;bt1_QVt%y<5yR0 zLhcjRr*gi|Z7caA=`gt-=O`Az@_S6BI?~p-w_LE<;d)NGZI$&{;#dM(gf?~E8Cm4c z0Uk)m_j00_0|W;6hjlDyXI0DWZB1Y*FY;4oN5i}pGr8#qzSDGmAB@m{QiUxvzG*q2 zo;Wp;Nx;16+l?&jJ?!c|J=MKcnk$x@=g{+zeXx)rS~FD80oCut2;P10l~ghaYkejf z1&Ddzh5cR87>1L02AaRGBAc(^=Y3pg^| zdfG4$uE=@Of~dMkd;zg6g@pF0PQjcmyZ7e#!JhCz>kjK-hWee+?QX8dni&@-O-VZe zS*0{-mZZpSC~TCuLGm#8YiiM>m#6$>jS~wD+dcf{SB7he&p9ElCk5=R$}rR_c6ASi zB-3Ml$>e8=emb>W+X^>*H=RR$huwZ{2tQPr!%ns+SO6{mC{Ejn!X%vLo$#NtJf4PpxOPZQ5(CGL}N9w zXuO<4z_u+$r`As%X`h0hm^14X#5dLhbeGFT=J(8v2 z{Hxuagrxp^-Hl6c#=dzk-f*&#Su+IM&B@HK=~t}13Ow>aNk!ns^2BCLW{^ZJ0EdZl1v8#4b?uQBkFz?;v(6(nqUD_|DXy&wQ_~VM zR#78=$nZC`Q(+`JJHmuFA6iG@woWony42zGJeSGgtj+XDR)o5_YWp2<(N|8_CVw)& z5O%k!W4W|_I0$5O^EEXwg6W+Jue;iEb$WhPgu(DjCo+!tw(hwe<~lQHc_;of{qSP@ zMu++8`IdRWQg;14hHvygE=d9&IMNJZa{4;`G-rqSvokgJfqq$6-(H{JSWIPs^bc0% zuB3IWvHukMsKi?f(}lJ6ALk*E$BGfBl(_AEW*iC|=yS8csrI2$?T-ZU3Jv>U+w0Hx zHWh%`{|{$A#>*3WeTCm*dm-CJ{%7wf?A`L|3%3>;$-o&6yL)WO{ye{b9wq0SDA}Ay z{$hxIK%8Up<$&Zp`{Tsy;N$p}AVt-~U>M3V*Z9U7hFTqaU!xhBI@4H{hcZvpPkMcE z=r9ND>ibt7lMAXm(F&Jeb5zh@oAN*Ig&n+Y(|xIx5Kr9K>BM@Qc|A4A#_bQ6YGUy? zJ2In~BW~l$VEG%WC9M|;^>cHiV`tyUtguwDQ$4Si@?Gy0Rc>?V>{FzyPG_)Pr;B2; zFBwg~?)2&(FFXeY{BpAPiWh&a-Q>;M&@qGS8DOb@677&die<=j;yA|#b>XZ(XtgI`P@tJiOPCew@_T7RW}D0IKO-H+6|qX))@Q}g$RsZdk~3Y{}U*J#N#A=-$7y6P(FOC`~QpHnP4LM zHDhHKvOcUu|78zhCxdP2D5Ji$tI7~Zy+&6<=A`ukdgzF$F6seBFEd%@$V2s2HQ*?o zUPGdMybb+2jtd@O&+pgjqpucsh?gt3<`zGukeMCG+@Kl5*e&-Bx!pi3y!>B88_QX4 zPR+x~pYd6!62!HA89B56ZTxuLNfgOO&Pm%S2&wsON>SCMRjw2#m&osAjba;d|6)YM z&oRM0{;jWMsyTrVezlavhWG6VUw{cRGGE-NVj}avm2!6LV(oIe?rjhz({fB);lwmI z)lAH+B{mQM;8}P5dlT^HC1ea)$5mWhF58E^em#^gy=+ZIJ}?U`P6^s7HzTnD><2kg zkMohUnf6$*=Dt~Mx*ttX^6ivD+*mSrT9$aRLt(=j>b%iUT~~biO@n&h8p3wL?gmYB zLm2!K$n}6oQ8l|st&-iNuBS`TNWaK}?EYaBEII0K z@9Q)$d)Iea2ik{9`Y~f=&fB5kA>d4=w6Esoj6n;%s?%nS^*xQj*K*QO{ zMKlH%IPM|jm?9~HJ+O9?xJp~7dX>_oXTMMw*u!KYUMbM1rbJ$neM|;}Y_5mj+`YvN ze7imvrQ-^@=X%mrkMB+5Vb|9*EbE7LKYNkaTZ_7wBOvTQ4~73K#gG+8mEXLXVH}$) zq_}V`Ss^G2fh0uLN!}Avrt6vvKtOwh!Zik-vkYu+U(8q$pVQ}?f6Di4wuQ=9%6V<( zEkB9WmKtep^$7-i=Tj~K|XCPv(p~BnsF_bY1NT8KV=@w`F8Zc(C+=hzzp0C zANyBG^JaB~lPQYBJ=XZiobNH4c`&!UB4VVcx45#wL4kxP*85oS1*Ex*qOykkvR}^$ z2heGV*W+h5dQg$5@_0Fd>kpC2T}^cqYtrFPZ#tUm8+QO8lvtmW)qPXB9dcoNGsd0i zXu^~BIe)$Bd=_VdE@`nm$v6eL-?vwx&ig^m0QSK^uYt(by~TQwZucg0#}=HJ&AFp{ zvq4sBZi6H$TMsIT@35OM#@+AX-~w4rad9CBmm8*g%|+(n*HnrWOO4z7wAvU8=v78_ zXKQ$t;i3zO(9Zf z2;FTv;qo?syXR)uk@Xk*STn3X%ziz2 ztR-HUOyR^9p8?^zVVC0XI@Z2Wsa48(Q1W5aQNGz$$iom#oVPFn(1UC>S9 zc_kpz;%qL6jeEj$U_^UajNp$OP)R8kAVyX0l_c%yLwDzGr?SfTNpWXIx=3oTlQaCm z{n;XmL6-*}&o3i|$MAF0asYBP3+TPNj>jt~6v3#;0`vc3p*d{w5{BTC0F_zby`T@T zXHhR{I#qI~Mh03?{xZ22GBd^Ok!^xrvssV^4}~c$27y&QO(;{+FXmB2Rm{|wd<*^I z{!SLzX5`2C*G`+Ej&w^bf~S^MS7R)TpW@B(MSGkO0)uGP7tOlN6;5qmwMhxL?{epY z)rp8UcIO+yKb3pyq^@gy9>S7648AA<+RyOJ;xC6(E+q3`U$;{kvI^49_d13YzSHx_txU%rAVK2 zU9=SX2KBO-&8AkP)`@V256kEevQ!`KGXaO9^}rQU2QxQtLDL9e&u~=B1u^8ZwrFWs z!{|Ff%SF8174l$^+)g2nk;z8UmvW&GWp`LS-kp261mw6@H9X%g6{iaIYpbUccXj_7 z*p*H@GT;t*I_xf(JN~ZygP`B(a_qR&m;v=Wy?_*RxN*m#XV!i4WO9F3c*t?1kB+9_ zNI)sMwa#Y$@*)HF&`V6WF$aFn(=I~*8ynV$NDqGvxSd}Qq=<#C2b19!A{51a7f&TK zsQKsBA8Rjzd-`bbO55a4irBtul%|(;3MCml`?v!l|6>;h=y5gs|AgEB`HT>K4psWJ z!A`s-cuzf@S{4tb?BOHRAm2l@J?X!Z69tqJ3=GHL2x zCJs(zu-=;2C6o~-J5L4v{G4&Gs@qkp51wsCTFF`}s6YrT))=?)B%kQ!qgOqOAvD2y z%_#{#7Q^d-|B zuFrh^6eq|Jbn5BUTP>~#E*N+frhlX><tcY{QMoz`P4>+Al7L0s{u2Hza zojXGVUp^O>3|wrK#4XsrY?>ON3^UVbUZ$?T*}7yWdV2^be4$}0{Dj@`24;)LFHEof z7P11^yuW-O$@J@*c743!ywH~`h+R8XjlRR094PNK@^VS?X49C_fiJua3(0oCHr8y9 zMT&V*`ui-z*4FccE?a~bosU`*UYtLvJDUC-+h~#O0T5iSA0wnc7SjQeq-sIR(H>uf z{~!rpVfdTAug>fFkJJh&si9u=IX3iANUs?czxBJGo-5XKTy!!O_OOv@c`yqSi!oc{ zYl!y*`Hv*Mkf=tbM8MBUh>#ICM7QILJ^j_J5s_f@9zO@6Lpu)guuo4H$c35p;PVW7z#)P*>B*l9EWoi9pirsaVbAdXBz0g}(Eu=8#r< z#|xayRtRI_V`J&8VarwTY*!%h!TpfU2o0mDtx(4Dwa|u`>SZk|!}uI@8u_cVkw0J< zvF@IzTu}hpjPY_whwg-m;(-+1uP;m00`*&7lV=uB)TQ2W zK&@r$O=S!|vSriReI(M^_nsWi(Ob~A>&niiH7VJN&3jlgUNCk`(JHkd|J^H&oM{w} zmFQv^W&D2aK^X^{28Bw)Fe50!}co1KyTd*Z51rD zz@EuL{=^9w{>23633ZhN_+4K834dO2i>F?9STXR!$7Bm&av%E)AIK*A-_fCfdU_tC zLJdz)S%E%*blzWg#4S0%MO{rz#wUH)I;xYchH<%#A><=KU-u6H_*C59uCI>n@V`5f zgxm@N_We;fo8%kdVELfx2+FKy3n=jMO?$p12TVh4E&2LlEVrUK7cn{wp8QAiD1>ua zM>g6FU`Gb+X?;-M+acj*ail|P89Z>$x-l2Dc&fu#cb>BMO>#!9n(HIU552+B=6 z0A*ZTUp@Le%0Rbved%$S+-EgbU}We`9ret)$O=%_{TX61Wje^B*3qh&%a4=&Aatvv z({=DU^)tLx`h{`9C`mZ?%-uH!iyO&o7egz2d;O=Yxguab%g1CLvE@;^-=t9WrxqaF zJWwSBwUC1ze`kBbJU|~~Zg;(UaDBQo?%tApSoc`Y&e;i?3`$dCLMe;f)_@cIkK@09 z2_8O}$y-+00U6kidYNXr6UvZ>@En|d7BpEOOG=9&sozD#CW$X+1t6Afn$KvW$4Ti< zq}MZKem06+pFc|Lo@|6SIz%vaAx@TLY?EJvh|icK3)e4j(=E3OQsu?%)6kZKQKk@& zy|$@?r_+Q4*r2|5?$mWFxT5-k@aTkUhodw9t+wcTSpDj@7?`p&pbp262PVUgn7Bb& zT#3kxg zi1UB%3o>0ndkvm$Zr`yAjHN&cHm4Agv}_=={t>8oYOLd2PBnMjw?2|0O$`onzFI;k zyrD1d&XEa{xlt>?@0ALsOnMcVM`x7B=L6{Xc_Gl>nE}?bd_A6;btyuY%2b>tOFAOs z%-dNob5QOX507!VVP-J-J|D#Qmv)3@0QpE1pB_(S4RL=3=fwL)iYVVm4UR~Y9#Vcn zZts{uS1}7N+lRrAb3TPF#jD%b|4C+T^-zoGm?7fB9V$csE5jnpm(pw6K{DS9_pWsv z-3%k?QR<2FCl1>u=Ma>BghD|cA;Al}tc-L-KKg`j)E?^L)!2loj1b0#>B@CTNSulb z1OQGxI|TM-#O!KsHjr^xB8q#!_USjW{?{ zH}rH&*|wUPBV684jgp{-t2;Yue8ZI2H&W#-5t?nF&K{*x#YAj^unZVHf$H107>J8N zK4lnDM1ZlcoVHHgZ@#2{#b6fizC7OLPV^AiY%}VU*yy@>+K|OX&Q8W!Bi9m)Jwz|r z08)lNcT};?!)N_oJ#nRL>ye`7dBu2iFwlI{&kPmvTVLb9Wdkv!D?j552EBe&*cx?I zch)C;9RD+A!FJ}-X(@AUu4K#!VzGUPpGd8V7$2?M$8r=A+s~El&XHK72-9f)FB7#3d^&A>1ErzDIeSPkbHZ*yRj_^VV^Zb>| zVg(w>H;8NrRR;5ry)k$dG^+@UJc&1A!PUXx&UFX)n)vqUCT$)6^d!1Pje8wa0eXY} zFU+$-c^xyqULBOeOxUcF3LBAe|6$|lESA5YakpH*dzzN=E>GP|zzeu8J>4Dp zvUeJY2GhV`y{t4VkQ35@p_T5-^ z3(r)2GwiyPCchqnIAL^9qpp5fbP-T2%()7T&|4l1AA`uBja?1iJ&44XKli}v7DN*J9~~sF2v!%5WkOitk~HiZ;KL4uZqhH*ElbGsJSl5Hug+9;WuDSgR~Pu)HfR#YM;_3?PMNuQ=x~k}lxcd_}*=UT*pN_a!S> z02oW|JofL(U~NB_KU;~pS}x6He4tos=tP)K{?K=QRGQiDxi;(8PKx$X+F8reyK*^n z#eII&gI`w`a#du~te0m>h@>TPQN_&@ON0{k`i~F)xwUm*uC^HX589-YaK@*Wu3Fyt zUsc~*%1>v{PZzsc(vhm!Bqy>0;^kGlxr?k+Xbj#d~YN zS?8^O*l^mo*2B6Ajb)A;pn0)@o)jV?lGo=kn%9S;tQ#STouq7oOy~Z7DM7(mpq)%w z4!fudnC!~$Yu7&_5jYyp@9j9`owqvIU`6nILr71^Z0&!+@gA5hWf9ydGE-r)f7y}v zpXR~{<|@a>dDGU*WGqGE>*A#mkyqlcRqRF9T3M`d1Y@!ZxX!=?XqXFY5!7F}0G zn~kw-bC>Nr%*Ef+p5A;oEvh+o<*#J&RT?2S9*cTRLqRhvOUAzahnlHbBwA^+pQbMS z+K!x4 zZ4Kl1i+iW7xkzSeVepXS$9aA5;e?zFXN_iXcOdb{uG9okX>-(#ORCG5*i10U_nqAa zP3~2cWPDMPn0xr?1uMUkP1BCHYU01Sn398!H+xHYno6n5)G`b>b!eqO*vCL7+QOtf z^nqLAPZ8@VJ}0d*-jg5fNzjdr{yPZjAHVnEb5AP#&vpowSwgZ2 zEVomXIHX)FTEZmqw95>a0!Bulp=ZcNWY3!TmoZW@(*3$zH^>}80#|X{(+1h)=EdTj zLGY9F7krvaZu6_|yS7x=8;yhI%Yq{ds?l_i=oR$4bLIOrhC&ksyW|+%G(BP)kzDs& zIZMNr3Q|9RAW24kCVP}m7uLYL7rNBa5@`uu(vt~%MC0JZUYL__IVTD>rlG!DNG2j^ z53Ml&AK#uoi<_~q^-wBE@6|&sN%GDgSIv) zXyyWku|y@_@J;knG#^=oclY}_S>~VPee(uNU)Q_wglwOK8_L`|Q_IUd0=8euxhaXc z9Pza*D?DTZb}`b~lzIJmAIHRB*~?dW3PNpvmdtS&xhkf!_WG{}zah3#loy%8DD0Ld z+S|X5<#EtN$@e+zdu`{*z>bZ;wTK~6r*Fk}bdK!99}W5L7^OWyB`4^G>U@6iXNl)@ z@WZR&7?s@M?BRhIYV#uc6h6T{)cCf0NBzS)6{>tVRhiozaw#@p#0+U73vWve;?q+1 z`<=n47n-#X*$mq=_I<5$C#$<#qi94EO2?Q;KF^`s&?tveW_QPmj-k#Y*`pKAZA}7y zrl;8-Jm`t1ue@ks0Yy%WsL*f433j~-e_~=$3t6#_vU|;LU{r((smmy^t=F%$t3#n_ z;iu;nM(^NtTH?~0N80CE`Luig%9nUg?`k~uB9YqhMbE~y+DSC?-z_qw(HriZAgp=I z{KK8*1@9Tr`+C#rx2*nU#>KpB5F5>4`L^dzMz30=b-{-GJ(uf}Ye<3p8%I?6I;Fr_ zdE3-NU*c3fs)2yJfeH~$a?Ho0cDIv~qGRJh8h|DO_tWd71qeGaWbKaMMRq53c-~Rr z2n+T5X+xvQHu0(wufk`>&G(}BLZd|NSN?h_+%Q;de%ktS+49iMJt=Ik#@|%OJ>=TXmJS1IZARZK5;3bQNHnJk z7LNk-MgTK6TlBr}h}rd|SYr*AD9vu<+;OPjAAZ$?hsYqNNGZ8&+eA!ZNQlD3xfIuXCx4QIF=}q9or`} z_F-#|)5t=FyX50uE$^U_-i0;m`O6KT5|Z@Pthb~%&4{Y<`|)+KeHFaaka&(d=akJO zbHI^;<`bRm$9T@I%TF24g!k3raVkI%ot->+33YlScAkkUYS-a>r8wp;7mdgvj_p(k zEI%7CA2=!+ochbLti%47`y<2lII-%!c8DFF3@kh9b^FT#F4>b~(-Uexm$ zvhmBF64DSCM)sUOQq~~%Px+vwvp4c)ynScb65*_i!*N2k#?BMC;iRNe;bHkv6992- zu@~fQgGe(;Ev8yRGP$tdlu_BcB1VzHg(Rk$R4oDF{}Ans2t??uPUTWnGfw}mq?ZUU zJ6n#p+Nk=44G1B_^VQJOU|JQ^x3Kjk&p~L;p5#4`*SqRXf`|F_cZke75VE9f~<8?;{)1u}Rf)2@8YPz*9T>@?{ z{Mn2h4ul?iDclN0TuteQVFqr3F0Z49;gMSXN8EpD;Y0mHLun+)p75Bf_1=8mm1~0& z2yUAMchZ5++ZF$x=kdcaksW&1O;CyJ#LUFVu9zizn>+`u^f;R2pUsf!9R|lPvuK}- zo{l$NI^TmuEhGT)(kz6_S%7!PiBlbDY_IFrFvOzZy4&%%hn!13@W#swX|>*jFX5G5XM76 zQZr+J(rHGyX1OoNHL!xT_#KHgrQ)|8#eHEoV@6}zLR`)1m9#skd~;Qt`*?tq_*wYw zd>xc8MAR5TtWNWcN0uJ+d3c{5{968ODChlyz3E4m`Cv_%7d|`th!ptZ@0K+iL^S>4 zSCfwTsT)t!XYNlu!5&PVzjn2)T;v^<3qQ?}t$5ROc*jK&KboWdxzAg*K8D;oj(XTk zGe7&x&CV(flOOYP>ny~Lj7-!L^h+U2B2&p<`cSw`oK@oA!Siu#hDwp^l{yB0<1_Cb z^Hh~5w!%khs}wK z=J7id|(f+;ebbK97XINbX;v1Vhn|~cgExJFjMV~hwm@wYD=4`9;SvQna zNcj)h(nvE(gvf$iF3GZ!iqLCRp#WAJGw1iH`QJDpu>sq6ov$sFcDhq{^X0Nyx=qgm>jmLjL08C5Pc%>^}M=hVWHAjdl!j;qLMf%jVKwTNB=JFoR z?+zhy-`dAWe%YouEGQQ_wwthyixkq=T@83EyqGz*EJoY6?TiFunMfOQ|DrR?S1%@C zaUCCVZ}_zeeOq+!-Iq>EiSuOtCATr9XNl3BAd?SvfGhV#PAxVQ;c{D=L074d%A`i; zQ4;*Lr{W@ldFu!^k_Xf?0bFwe0d7T|3SXhLZ|iygj9_%}V(Q6a!+OkGS4~@d$ln-o zKrmNN@#fN{rK--{Z#UD~QCr3DL2DO=@nfTIB|1}dI_nFUdv_#%Pc1e7#&u&FHai)ec^2Hw=>CRIIHyHvpE?W~7wSK!Acf4Oe>oZTH z4g4!)y1;ysHwg+@+sK1Nq~OJnyjuSwhQvg?=q5^hLu3BfnK35h3=~&rySSy;5;gK` zKtv4NEsDa{9JR9K8koyBH2b5che~-^|9zWw0e!L#Db8ql_G9T~n}h-P{@eM$Ij}X3 zJ`|848R9i>tawKL$7)fg&qFfb%ULzoQy_LeS*iWYTR46}bXGHYe)UL2H7nIz2KG+l zA``2u_HX`m`KeGaS`1E>MG1kBWbcLB;*4r+ngDEWpq8;iRl)TGRF|LS=lN%*LX#gl z*XxCifTU9Cqqt9UU#|tT*s#=O+5JZl+o?x!mb}lFRFe((Imi20ka2QuM`Z^CxPm^o zKz2xv8km|)DoDb{@cSEPck7x~EV}wA6f6i^;QTsO<~0_y2R~z4F&ckE|3oWDRf%kD z1RsaCPTumG0Py}+mQ68l!2E*v@uGrDBQVp~^ei>zO9eJDv#{&gH$j+5k)aCZ>rCG7 zRu@yHciJIBpN0#YQw>jg3(zSNg;z;O)l*vAQm?Htsf!4ydtHbx0%naFMCG zYrzU7ztIE1zO$X*K3uXuNR264?}i{;k%7zi*X_yE(%3%U;*x;Zi!By-er0tKJ{wK# zZqUOs^x?Ce&+cqY@d6+Z%%2k=vIkpbc0KwR4hT=WJucYAgJSdDVyxt(`~F^GlI(b?|&&r$yQ>LuYgYv9e_|@=njd*BNl32A-1< zuyAp)^ov8F;R>iVInC3AkvkC3uWw9;FZ^y90}RwW$Q%EOai7ZXrZ4rVgl~pq2hJ7S z-@5ub>SdZ+sm)RQ01r3rZ@i(QK%?A>X&l*-Vgqxg$E4Z}9$3v+=fSaRGFUs*k0r=!F2DUfOE#t@Y(nAfe7Ye_|G znY8cKW|13>+_DZ?Nr_%R6*83|%^X)wo|}_=DlJmlC#peee9o&`Qdnh7aorBs z4vDfc9m`Q>G!uFJChKR>`y#B_Dn?o{Zx%{b+X%{kw`{v2-W$e)Fj>D*DCO-8wKBKL z8?V#`DmNC`0@mcdy@UCd7(dH>W^`N9r_oXd{)b<^{E^Ck-_#93lHI-l*n zM<+Z&_zcdVN5AYN%x+lCzsYL0+iTa-V4M8Tz~w0GL9izxakg;qM>&fe8R@bjU#X0~ z^y0Xcr0cf~q+I^OSq2h1oO?q&`!i`1ds^KySzjA&vhNUm;K zYxt((NzvG-B`!rG5is-Vth`!sq?ZPJ*T2< zjJWXK)W|&AFqKz0H{0CJ(PQ+)sVcXf3im;@qY>il5!kniRU@{kvV-Kq?oH8h|F^Zt zQ)6^bHB{1TzuVbP?W?^}UbZCTw_^N|oZ4zx=XNfr3wzpbZh9}+1v2Av5UoJ+-Y}QC zd1w<#)vWb*@Gg|sEp(26Vdq;S;^U4)CZw7}RRM-PWJ@)-H@QWRpl!Q=3xRKez}{IL zpJVdUuCl{9{dj%ZVkz0%`A8wFMf7&bX}&+J#mOzW?fwH=;tD&*N2&qqLlmxU z!rF`5OPC1@#YfDeGNG09`9FtFFTN}Zr(DD@FMPfx8aHfWDpM}eB~zItRVq3wKvz`# zllF;amNE@E-FawHFuEeN9*hi-K}c@6ga@uS`9jv;tj~LOh`E1>KcId)xXMjH-l?sm zLz5ACk37&HuU+klffXwZ)DSHt9iInSczR%{kEih&41Ku$8+@CAJnZdB zy58mmY%bP)lWh1OtCb-R&!F-#&Y9hU=CjCzY3Hqk!;Z0YiHUBYm`ae@dd7Vy=H_5$ zzfj?{{MyAB;Q!7zUzQXKXI)F{C{1alwBT0G zcm*6>b0fHs2T~`8S9(?gUv?5Qpa3iA90ip*A5n_Pmwn}Msg(m^6pjVA2beFVd&h*?B*{km5RI<-*OympLYCpJiW6{4;3OWW1jdFt-^UplGm0v)`GFfd-T*KZt$0_)!xFly5yX z1Gs}S&l0TH9FAPcs0kKX@L_W{uv!O$zUak5^K~ED7Gdo+RG2|yl=M3*`tTAu#A2B6 zS^3?X3>n_6Lf65`>k1K!@Nr5OI|{Zx66pahOG86cq+r|to=tm|Xb9>1etU%yvo$2edj0n< zw%aP3?sa5*h9*#=HD3A7Uy=2Dgq=zrX5-7U-l}temh`LA)~yrcsr9vwEn#2guGsx{=v_|dW`}hY$B`&~JH-cF z$3q7-kkxl(?GIiI@zhk@{i}wN=LjCS6T7louSvUD@sUe$OEAi4tBTgcmzdZ)Tp!!X zTxN7yW6!s%PPqS+F>##IDXfyG8ZQUY_w*}O{m!nqbs8tcIZx*%=e?*&TfH_*Ghp3{Io3PQ!gR=VEoN<&pGE$8J{Gp?hd|x4_x< zScpL``!LeQ4moOx6kt@RVtSKET=6uj9K?6BB*bBCaQ1gc2s0bc`e&Ti@Oa@-XSusQ zpvph?oJM6Px2x#{JGd-KcstyOi;-*?G9-Gzjln(V(_0aCP|Xke%ntN~_}I3m(`!fjWQ`L5DXXx3}XU_?y?Z>?6N)9+jw9umFib2|&SvJcIgX#tB6NIZkns15ghKu-N*9Ha!ye- zB5?=pYi;SSUP5^+;NouY?7UKxYs0?YVLLL}8D8tg5Al=o=(kiV2sM)J0j`%aeIXBT z#ep|C0DF4Ovih+P4(hdsnbfhZ7G)sNiXzggN}O%qO@@ngx2iySYIXJj4}W=9ioZatRHjcH)AEkP z_gLb~LPMt98>T%8e=47`#MLxjjV#7pBp~0g<=ga2r(FHiy6C`sP48BM%Mx6!k47zX zfBpP~rkeZepfQXiWmMea8laEXWlCOj(lt%`&V7_ZiwjDBueV}CBJqV`V5>W0rzpydn(lD@8k zq5h~PAvhCuV{6w(R|==nsTwAS@Pfh4UWy2$-OdMydyA>T)6&p09yLX-{bMlw%&Y)A zTSvlYR@I5U0dwu1baTf)PGJ_ne&dMKcOcpd^zV0$r zRSxaxoJtI?K!48t;QepS8r!E?CQUjaK`uYIgQ6oeO|@i~Tv!0&^^tlBp+YEkq1O9G z3Dusg(T?;$y*0b&*n+MJlbAEolKdBMC-IXKe;Km>zS}#g+a!pqn5Y zdMOk^G2~9_kU_vru5~%JqeF|s8a8FJ?oqGi+@Ho7B^$ll-0pMUnVW*#7c}WHX0;Se zAH0~2m|~E2m2f^pET8(+Q2$A6qCK?s>SPhHyLnrZ3gfq((7y8a)H_0)qgG+pPq>*l zY<1~x$z`Xi1|yF!m$sCZsU@~Tr&NC<;UV_BLr~<-waJfI?!g}S!k6DljEJdluaz65 zm>(LvYyNszo`Lrj=QoJYJr7={gF`Yuak3OL^CShQ7|qOwZ~l5xZf?Zh`6t*%D}yYu zyC3tm>`|K4LT#<7${}{Tzt&?oLG7FmVG%Y{IKpl?sG4B7Zrb?1cKNmC0i?@nSDT?= zWnzgnW=al;nfbQ%hIGS8dU6X|TYdItMN^bxZT4Z)rv(%Qi-^--3lnH0;{pl>Uh*P7 zIe9bZgUPCf|ILvCCl1(YAY4MOqwo(9V1+Z~!3|AUo0Cdwkf-KN11L%-T#royhgc zLaoZbwpcTUQpvT5I%75e1j8>k*;PxxnsD2VS*P61$%6E~@jA)7ONYIw8#g4glBz@I zh~K_7o-aw=kfi7Y5j|VC_o#8Idxz#ZbD=InTDSjGo0zWgU_(uj&kCY`ZO#m^TfJPi zqdvW6=h&aEEIsp!(H6@Wi_QSh#~Nm~fc4`F{IRO%ysPK8x-5_z+WB>FM>@%v7~LIO z&=oxn;Asrnz50&0kvDBWNT@r&PlA4SQE9Z_8N3!uVxO-lsIG#`q1ebBbUH5+p!RRW z_C$)Dj?+y*vZUvski{>SxZn5qCNK-q><$;>fgsq{Z%qS)Y*a8{?Ph2DiAk_2SGlkf zk-yF3>u1Slv&C}XI;-kZ<|^ETu>Qq}ha%h+bCcJ&v{8k*=Rq3Jo%lrgP%kinz@4iL zk56qoae(YrzagYQWaVW?j{R(m{;M~V?Ec7?W(%dlptYcy%+%)Pb7=EM5&=!fshFyt zn+u?iM%)l#GENQ8$zuG+sD88vP~&Z*Kd$R*Qztmu&V#nMd{i13k~TGmEt`JEE~Fej zSnYpB79ght{dphC_h9y9?4MCY?G8fvxfyvPr_{*<*QO+FOunrD$!mQR)=VuBd^mxz z%Mc<3YyB!wJ5>aHR^E^+pd#&CTpebh*N$6Rob@BbrfEsSpJZHZ4*wWVj!?|GfQX*W zP}J-c04`65yN+{rO5jK?Fu77zkw-tjM-w{om{|rKXcZPVa#z-@fVvdB@^OPqGR~<0_@^f3ECn0We<)$J2`4A46L?pFU^;p zfAWR-=(2>+W;u#%HNz%rxoz15Q2ZDM-NyvD!(~Y$2VzrvX3xP}E=~iV&P}3AwXKL^ z+x-%WSu|wt$KF<`2bwcO&h}e(?|Q4+pESXR?a+cHVukJnlU9EK=kp!u9* z15X@UqVx|o(Ny}#U!nC8n8<#b9c`!k>UpsIO~%z9=Kp+!y`N+11kTA=Lk&I1s}P0E zhDyxn@Abp_Y8LP}S|pllUXkbq#iWw|);2bc&?Fsi88V`D++=DGiT9@q#<<6qK460zU)_yL=285~ zaG9ZGVcf84V=32RZg5=rn7S+UZ?KEia0B`$<3kW}?{8f+)b4E{-~WB5gen;-=4Xp; z^);V~T8o*-#@S9tZJ4{(Hn1^ww z-^EX$Wsj@eSgo8+A91WaaLF-Km=7jS)$&B*OKgv&)hPgoXSLz2{a4rn0mx6JhL& z&(2)_06y@8y(2)n#^elO%vS5yR0~Ch@9x)r0>n`Gs&3h0Rh7lmYH@>;DBI+r%9D?A zS@lkrm;{I)o;CfgW>G1e-wi8&F>p^=H!lQ|X8Rk})RLtD_n zA}{(AV6=Vy?#1$(nAs*suV-TostWPXr(vjEizy%T)L^OoF`Q+D)@o#HT;doo%Xcf= z>b}FP&uBAQDI+b?=dLPvNglZ*YQc3L+OSN4`S zwKSVmBeCu5KdgmJAO62;%`~h!UM$gf(})qdm*`%Id>|4MrK;1R?$ZT~%BuBCoY%;Y zPAw6<73>dOO<}E_V*HE3T4=OxWt^XUXL&AZH27`H7;#kqb8?SfcadqT<+oa&Cv~=W z5z2f1HBt9H%DzK;j5f7QRhY0A`X&4k2*`G^YkeK_!w8&X!@6K!=|6bvE@Y>^F~ohZ z2QcFr9)9$LN}Ey_>!@$=q=C8VLh_@VUypV2yP~7^97}PuVY$#W;X-xdRwA0UFn|(&^=cRe(RV zJHg}0i;Y@LDZ6q*B+Tp#=oelSkH@E!m;}w2iwR0^Yla7on)JUi6?>6b%pY!PJa@<* zRm)to)9m7ErkC7y_e|<8Wc)}IE#MzBk;3r0%Rtotq><9j$D^XwqE#ctDuVsQQn@5= zZ9TDEoOn#T2^GEz;tk3^)a;kZ2UR0?qCqXGu)ix$aE+O%Uo_iJT9ttZyiiKxL>?s! zl2gQd@p95@jfckUhOX3w<{4P7&@XclIb6}Xfq|);boWLfS;pu7i4^}u*NV+#xZ>7H zHd6Gk!N76omm?%3SsfJe9Ab)Gv%nk=(;^Gt`|eJ!>dT8lf{_GKQ&mXVYQmv=cI^6v zps)?QPX;k-Tr>0WvziF5lj9wBvoBvwwddj^;&~NaT`r|YT{~9XwA#=)-jmi2_MKeIU#H}_bh_>DLDxc-nDm=c;^c4;6OJdE{ z42xpk@k=@IFO2iqfXzRmvUUCv++dyCPt>5V3>P z2Hi0~G<`(0#7qoW=h27)6Ixc9C zTM!;}D|+y1{HCyI^{GZErhs&stHi`-m=q)yP~jJat?_HaT<}ngE#*QmdUlxQ$#cF5 zLwDXno5F?{-AYpQ{L1vJN{PYR_yW4XW=Kwj`!pH?TmWxjL#>>E)U`XKo)h3)z1hGZ z>MIyeDa&W98lc~=y-|SmMQ+XSyC}SN!ji)-H+2BrK4uZgM{-)?y_D%3TnXlwFSiQF z{Gb_hMCO{(*Up{6f~OIdb6N@;n&eTOi8CO9a2?RyHM25 z$be2aU0_zX+x{43y7?)Cym)<;qw=6UxZ?Yr4kzL`d7-h!!>8F9|Gg3{OeXd^>Gb-? z?n#9xR8QL%@GGg{hR&RCnjMLVs;Bs1@JIPCIc6NcmET8e9USf^&yG(WpY%>$8PRE; z0mA@?To`#<8jrxd`@(uI$MMF#bWYjj&zK{o<(HG2j~`~3y6|Ea*sEes#nP%bEwsW*9nQl)9*Tc8cjX3cB~R0Uj! z+udTz>a4pv49P=J#-_Sr5F?zow4&EL0N@~Cds0Bg3utsMFZ1i|FxYC$j9G+ zc9ZEhwtQ^@ls^yELd_MVRi~oSGicMk+g_@-3e zsllG~pG(Zb(44B4$@f*l9J|`Js^DWIx~x0m;|rZCWJ-*cBSz@LAksTxN9yC%H-U3W zW22sp%4b1pRTQkYS3s(-9T#tdow1pQod9`BWtstNy?HB53Fbe&)EKc`xE7OCfAl2% zU9iSOGg#)_xgWR9m2HYr@!zT9v@BBj%F`2!dT*<~EJGekr&KWBatXmT)A+{FZui{5 zpN}^N#fo_cCb|PC)__B!90GE*Sf|mvedyP#`rO9^xmR#F^=xi?7$j)BCSkVtun!ZG z=GyyY7viy%7oj|c+b%0{#^RrBt`2qfnG-3Ui35p<29Ywm8 z?k8US3GCO8al{BJI`p?D%m77tOaKS1U2f)$hC&}_HA-2kkM#m0v=>1id+(S|Fe#F1 z{|I{7y&z9Qm@NdF^cy7Z3kd;9b!?*r0mr64ILwPfZ^R0G{5fEF@+YCm0Do#NB`fS+ z)Tf>w@N6aUiE8B;O1j0gMZ}{>tBIK3ct48Q0}m3<l6$e1HyZ`%C2#Whr0%n#^7-J;%@ zs>6HCiQ+2QiOmDpM=^$^plFQZfC|#%mJ5Yz@UEsyhC29F8yqXa@AjGD2v$pDdU@ur zyW!JTwNN{b+EJ27K6TvOc{g02CULpIT72{NXpSC?K=QWs-KeGOg+Rt?Ndjj@+&dL% zpyG9QR(|sCS>;D=)Pd>kl;xi0$b`M+Z`y%i!9C5YZ6+*EZs362F<`}e3bkzC7z61; zBQ?8(ToV@_$Q$6>eGX?~WWop}V|2%hut*nlz@v_*%GKlPiP#%Ek7x1g;@JG&qV zrwV$mnc>R$M|yqNN_-8BI<6pv=F*2|x+ZqlMMo}tcA_sL=FA^@YuT2(pQaPz<1j2Cz2LzOPx@KT4QpcnE^yB#DH{l&gVY=LiC zDxQU0n5rv{sq%lGEWpvP_@d{xP>sSmZXP5KDb*Ty59z~+H4-Gty-Wi!l=>R`Txq>) zGp9MoidAh(R6!zjvyb z3$xT)8ei$LD7d-W9?R(~>&WRzJ204sm_OkN?yd0aW1#rA8 z^Sl^dtCB}){L$XH)H(?{52lZy*02K#&HY4AvhzNtOzy*S5@&b-FL(HXx>N}CH_?x7 zzI`DhY!F8+2F}$|NhO`DXo;=DMzLQPhOoLZ%zY!~aIUDdCq0=x+356}5DQ8^> zI(}d>L3jwweU9PY(!kyB{X7INFT(wNz>ooF2`9SZ-;VmC@* z2_b*@@a2-uf%D9<&y~HSQ@*yIQss?lP4xZ`=6U{aTEC6)-TX*t*hP2v?yXZ-SXko4 z`<77H#zNcKzibADqmWO61dnf({vE37S2aHm7$RfjkGzS=(82N96L(+NfV;2rX~;?m$|*kH zVJxRLShk6;=|#eVM8hI?V0p!LfdX#XFuodd=#iK)F?8>cAPvB*8f?Ej;wL6h=NK2ZEw)@>#Fw0-XMhp=&@YvXa!OPE-sy(2-e`mmp z;$uF?T@)xWYZ6xxMhtFaMqzhj@+g6#&I(FtT9Za=D)CRdw>%|QUFDVY&wgi6+s<^h z%qDqo>?Iw%BA2Pg7mh_}G=%N1BS;Ny6yMl4HqW&~d!pUSEHP|u|MKkNWYrhc z7k9G~J_cV!Du2oNZ4C5yUVR-pC;eX5KQV%!XIg)c;jn{6ww~e-_TN2TT+Ye7p9l|; zK&6%pnwzpx0`uz^!T#R1038^S+Fe_N;z}jIUvDx1>-tebGqoC20@6Pb1*G)oj!^q9O)jmW-fxk!ArZ5h?a{u?$j3%fWn;gdlEM`a?a2@vLti7hwq1G zRH9T}@LCK!gtgIf#yDKYzqi)0BO<*7b)CSt*NX;zQ4+aV=W)T(%}ZFQW?>x83^a-a zY{`iQ>6Zqbnwj_BMJ{5_VsHii28)T*SA`~HGfI|TQYpb|u?rApF#P-VLk@b8%>ZdK z33w~v6SYnG#Byr(2>`s&=ciRgNaR+Vkn*(6DaB1LCsRWU!G2t>lTB9U^L1{4md6s? zVJ>%OwgGSm>R`wH2LAH&&nLn$8N28ub7$0P0}c7t~W{>pp1%=T{E(yzU( zK<;YIvS#^yrCXjs4XwoQI`Rs&?Vsuizn?i;n|$2bdcqJTk$s!x_ehKl>{>~aV%c*_bTTjq&$wWfy-QZ6$ zq>1^2DVILHb6=yki@Znl8k7Uja&^!eshi|sH61w4HIs#0F6)as*d(saE`onht5p{xfW_xHrSVTTko_UaBuD zZ1<95=>CfG2hVdP_AZKNp=bHKMy7-&mo^WA+EC6>DAPV`GlSQ$I70uHCV$zJU%o>_ zRf^flsWE8Xw-Sc$E@c+cD$d4?d3rv2fI0I?pFwfYR2kF)3b*C3#Hd569{huB5mso% zd6xa_D%|yslSqBpPcB>#D1SXW^ukO%WTc3y5PM{0hn<)nKM!|$jwwo;SlatcltTy? zj^U2_2bM6b1Wo?^TjiBj0od6FL^_Owv98*QL^}i>o~Nkdi$a2`E}-b>l9V69)4bE) zkEi(?M{@2eHjMZ`Aj#}E4;36jpwJPQTyx2JpURMuCkwg#myK_Jdb07a6L3U~HsAcW z$|#h@>*b@@7Zu|6=LTh0>+}%Fvi$0FvV7lO4d-#=)zKjo*KMv7GD#-g_;0m4eMx3N zcor1zj_0((bOAZdDzA&yw*~`acvLKVEOJ^zngPv0vjF-s>U6=!+fug+(kpGsnr3Lp z8CozW)OSTfP3t4!SG-}Tg~L(H0~hy$Y1&1n{<_67adD;Wy}T_HqL%Y-+h%$pTl(ef zf*dX^zA(}1*d(SMbs>SRf=$own`03Cw@SNoP;DT@a?3p`Aq(((*28z5M^M2wmrugV zNAQ%f(eS%=FmPK6Se-m;e5RdFADJJO0~e!?E#$DK(tT%vs} zc|h(YflZ6+4M4}kU}VJv;BkFZ{yy1+mS%;poki7_CzQe1#U0NmU2I>?>o4Kodz2ES zQ&=BrZ1m$T-?F7s0`nBoAuoU!hnwlmds7_@uDziB*ZN74L;H`bo*1?72 z)s&&ll@#C}H6{9s(eCS;*HoMS=#T9e$HoHoQcAd9ZVa#l!R7aQPC@9YhzV+!_8(#! z8`~H!&+tw-+%~EYCBlF#MYBFaSFmBb#<Avr>odDI(^RL zcfg)6X=AFcVB}4Eg@z}NZ7>!<3aF=>lrlbw%Gzt!Q5b4e zp@rQ1#FAby)NoE6e$QsBU*J7~Ho;ioWGwqhBo|G)qytrgNA)_sjjT$s$nD7WKveBt z#Z;aiVwWFS*c{quM}Mg#;-m$r@UkE=TX-EK7Q)RQe^U>8{EjLAIC~gx4hQ zanafcMQlH->hbTFQ^5`GXFX6Bmfe{T4WBp(!1JTxdC#$Noq8tp;OIQKlPzV${_)}7 zPTvdhekrLtN3Q?G=2JK3xP)*J<#yjaWR>Gwu6D?qx;hoJ|B~O(u;Df)57Q@{q&>Yn znARRsRmG2jaaff2#7s}_T+s1gAFp-BpB07wfUX8VurO=xV^@-xzi zdcOD{Zh`74?iGMzBM^JtgI7UAjM}Old)*MoMQl4B*&0~VCzfmNxk;OF;PKvLGnD)z zZh=uwn!-l_AZWfCxMS1)sC-r|P*c#w(Fhw%u8FCx%-Wtnq0}VUrM$xU-gLWeC;|j! zbA8GZ8NzET?5g2oKXp*3oSpE}Ud>i!NSjtC?t39m`yq`%;7YFL1??p3Y-`03cFx|i znX_Gnn0LwHDSt+l;V?P?_X-u9jVL3e8>K`01P28j5#o>6jq>#?T>&VnD?Nt|w##3I z<)OaB#cJ0drCRNxIma^1K(53D8T;aj)9o5P{qW@pbo+P6d77kWrq{3CjK<-z6zg#Q z(EFL!&BH(ifF0#LG*NsqBvJe7O99g6u{$X=R?Q%cQGeL@ktYlG2f%Usfvq)Du za$ZiWKWll%o+&40OI@B_*MPdvq7^YhqfMT3gp#k3&6Pe9BVX3pz%j*fi>#VX(z|Q; zlTvzdFMjIzzC9#?SU<5MIi%o8zqMtN;nZ+s_H9WYUb_HjYi?8iW*qm^v|IrbAYA4~ z={gdat3aT)P0wlrB<8;Z5&M4_5!9KGJ#tsifXtPFgR`v<*`q9>-ub5{|Hdq_@?p~( z-&&%DHA7->d&_-9t2vEG)uo8AJ*sag&1dG|e?ga;JdW@ht~&btrtIMk(Z+{3nfRDf zPXV?XRrRb1?1`#4yLsRI1qFQ)*YILz6NL;ySVw?M znKb(pUjcX41%4%_`vYCBiEK=#QlKt???i;8&b_M-wC%p=hnZHsicBwoqp3(kaXIs- zyQ5QAL<2O%^i8?!xrA(qQ@Eo=zH&!%Yx2jl;0oF7LA3yRstVi4*`bq7h7a76U8Hnz zu*(nS-eWJuTd6z&3a>;#PRgGqJ@e&sbq4^X`W@Lau6w9`dC^tPL$XUgm)YIgZo_PB zu-F11gjL@9zz>|gI(2Orxb2E+0+lLC{E3}@k0HIKb(CD~yUbE8$5<5lO4o-0R0n9RYbL_<%CcBI0!^cTu znNZLDL0*h{%)SKi+i2VICZWMZ6k=NGx`n<0IiC+s8w(rb98|r&Y0m8=FrvW(xvp?6 zeFX8RH|Mnr0OkMwKG7)z{6ThZoFZCl&QBJo_mh{wBXcy%j}6s}qV(C9?7b=HFDkYN z?OfD3*msNQEBsfa|0AaKx}HX9!q{s&`(Q)QzfyTYPu492 z6O&cshL&&P0Unv0LhNg(M?lw2Khp_|rqh~xo zo=%elo%w*(1XymX6c(0D80Mngo=l*^SxI&FK(P?+8K+>na`g)gGI8)(rCU_*!nU;X z$Kj=CGTD}^PV^MZwuKl_5_>uh>nbYA3bR}HAG|7 zE0nkovU&4R&L%pnanW>O?6CLXRqo76c|3UpetQUrZCm7QHBa5#bg`oiLZ?PUKhW$H z{^1Oodo_LNSIGrRaIr&E)0~FJZT#LY^q*=r75+pe-~1aV=5`WJuL2>o@{HPa`XOP) zyTW9G58??`?gBt^E&dMM(!($L%uIi?pc{WlOF>(G;LxLat)qjs9;v2vx5{(6EO*_$ zs-3Z3icfyt{IKy*@IA zXC=KiJ16YGF%}^0BG*U?AU-r{q;V32z5$Bl^1l=XR=v8lgLcIRS5VMSsqMb{mHk>- z=p5hf{m_|}YcTi>cP@nd0NDO@>JE7-zc+QR6Y77n=uhF4;YokPq5w~@lj)N)@~yND zZ8V*M@91l=$G)nJNBVsM0MDkF4Kxeoy6=1J&_l?f%iv`NP&A?Gs(`tHLqXkqI6X&p zU`T0yY5Q8qsK@v~tsMljy_meCkU=-WE$rLCd~NL_4ca5ZW--@TL-$Zyt=jDd{cTo- z2+U7ZReW#Ex@h5fIjx&L{YzxlBJ;*>pQWzz`?Xp#t!a?$sk@*%yy2`99howJ4sOo< zHHEj$Ty~ga#nCV6?5%1aFLagcokr5NHU~zss&>RGdNKTV$x!Wh$WYpdJKBrvf!ZZN zwX_k(XHO3cU;Cl|b68xrPv{j&h?)1`dwoUp2loE03;Zir)tKkP=%wR=qB=@EH+-&E zjQcX@Xlo8}PX@les2&_(Tl{524$p;=GE4>JX=Ul-4Z5T;w!o{f>$vC_}gkC2L z7a<8Wi-LyW1NUlLEQ+506iLv|0h-hiW_z{AjYkPzM{**i{!%X|=?3{d_BLZ!h<{=x zW!PKvrzcmZM|e8qt&VyiX!JJi3hTt%4X)FyukCuhM+#)voW$yQWz-;}jt7~6JwrZJsGl;GaVvvEBipj#r06Fa?!EwQx2~%>)ja1WtU_~r ze`@f&g2mAKb0Ze4(zEzqaHJk9j1tLGEh?z?hBE(~>g)3?OA6*gV-xAV-PaDoM|%&F z!HpG-M63v(7?bNut_Ks8c=*W#>!HA7;}BckQB;gKk1FK%qfQTYes@=&{@&#!c^tRF zs=*Uz{9j1zmNFL6i`|8Rh4QIXjaFRT^SL9Z0jB}AlIeDrK}In0A9so@i=kLY;xVPKM^wX>)ucGR(}kKnLeem2PJOfTT1-C2 z;dc#votq`}0j`G&oy)4q?<~0zevEN4Av^d-X|NqoqEQ&Rz;}hyOwl= zpc0a^sx8tPn&S?0wQC9`e;n)Vzr!Ed`>dfTH=6s|N}m8V+AWOG*$(7OJR(4r4!Co{ zD`hNCjp#16abuf?7Z@BE;tl3)A^i1nQ!~Vlt?^pz!6C{c8?^`Z`fZR)S0SQf;n!l0 z`el#-t{3zno~JuR4*C7oS0bgbE=m=Q3Yi;E<@I(HQoHv0)rdL}{4 z$N|?D^~d;=g&6MKbEy(NS3wO_8TES!;|Wi_Q<|!Laj-lDJLCytbF0Gy*jZt?FalE< zpH2g@!OcKgF#xuumMeJ_vb4+R);6Pf}Qv-q{u9U`|j%(7py&pnwcTTrpEXELd=Zz<%_M^;& zwYsZj!nmN7l}XZ(N#6NPh2Tr}Z~Z^+tnJ#IY1~~%P?Uc!Fkxf3SHlF^tJkU`T-4?nb=bSE z6(NIn;#XTbO*;~QGmr~&k*~7rirIL-9K;NSjMj<{`~(!fm{$|7Do_N#FNx-AM!4-f zOjfiC#tNo3GI080%zj0@h%$`JnpfeMXqew!{ta5XXf3bDocZf`9I!i8@|D+c=PzET z>}Kc91w}kxNr%6cw z#vn2B+4|;OX0=Q6LY-K{8mDrwR4~J(Q^Ag)bO`z6q5HchI#09R z>oISgS)1T&482cm~WhSrvw>Y zGes7JJZVS3_Vb4iQoSqlGL|BAf{%HG+kz9EG(+AG31{oBoKxLr{==x44Sl-%Es*t; zT=@qCa^NCF^@X9Wj~rBw^CO!y6kdRu1Zkn%Kw%)o!js0(vLo4TJ8Hcf z5B_9KQ`zZf`}DXbfpmAu-tL_oqwYOp#GlBi#wc<(Z;y3_tF-l74@C!-m_Bib?bZL9HT!%B zBpGlDI4qaEiK4ThO%xwHzuU!7z7? z&&Yx6X`6)&48 z=8hE|0KvJb;H@SW%EoL;`FL1rY0Z3)tFq6%WUCxg4}Tk&l48932}nHddg_q!e$JqW zPg_93)ci`<0@%=_ss79_CdY_{*apR%N^YGhOms$8snbOFzEsWlK3*az92ir`cPBg; zY+`H!)mef2IQ<;cfV^R%QjMdYPymd$jso%0P6f9$vb@5GbUDRwXQ2^4teB)$M5S7T zoRr#zz?0a-u(JYu@PoscIPbY+!w;>GrD#mjY{|6rk5DzyT}uSfGVz4(m;1ZIeA=5_%oT_sysOb z1RV^}JX{Mx?vlvpS} z0jK*r3#z3GazC5uJj~G-JXxrEa5X3 zec!#qCl;bz`64qV!+dN@73QE-CcEMx=(l1W=qsK^RW@|Qxj=GDQb(rboWfkFj1zgJ zI4tOH_1R5^)5a1!)0J+i5Ta#sz{R4=WXPOd7~ty?X7}ETYvRRx`ra;G`#rkh04Hcb zVmDVPs?csYZs^!j$E@|&O%e6_r%1uR ztUKn6?4k(-duiV>)%3NYw%cPn0%VHPq^3@KA5;Uo_K!!HGOm++?HWK~`g0(RNd!WY zmoXnW2u%rB5W*o(Q}QlWtxtE+eNH#7Oq;((`a0a7wa+`y72|8TyXnxym812|DRgK4 zbQ_qkxw);n*XO3Nv1s4@QSyH=Ii^R@aM9NnM@6_QW%Xk$svH%n0&Wcqz@mR`b!hv1 zxWUyh|BO!(yC6D`I`d49!mXuj*j98sp#wXA{Ti1%bc}W8&4EPBsOk$t~?sWKo zi6bou9sw5;IlC}5$t&FdL_j#8?A8#va-zacohqDx2ceF8vS+}<_bIJSUD&f*9%mBD6kmLHn8~+eUPg}( z*sYBR0^!pR6d7dc*S~PwKx_$N3)EM_UdrnSumSHSH$kU#=W5SL=Q5z?|OiYPB zf{|sKa4Fg;%|9KWqLC+L&+xcnEQ*&+|-D{FXKR#QTGN&GI(-!Tf zm)A-suR;<3C@=YSY04oCvTsC815T4p5z~~!b}o|J22HS_wN}XF%6ba#!ur1ZtlRh! zUFB-u&e4fGbY82G)=kj%c)~TL;JV4+G{739Zs_159E|Ao^eq&eszaTO_@QAH?T!85 z5X4Y=|Loa}#M2&>+l%yy{TUmhUJ)DZm%vq_LDe}UnOEp0rj5hXB#HuSg^ht-;lFc| z=BO=pF5^!BO2>^S;ZYF}qqYUtQ8y5Qr>twJeW?)_3V*zDx@(m<+uDpEe*RyCtM$bf zrkyj-5bo{^e`nROT_UGlZ_-A;x4t2}j41*gjhM-sSRTH!bTCn($$65BJG(Zr-WP*}rIt-{@B#gnD}F|X+U z<*s1MhH>E>a!~Z{Ox88{#2;!bi(Hler>gNQTFZo^)RzO6LPK59(7&*XFhKK6x52{c z9#oM~hU_4hEgd=z;g;gVDjRRVz*m9vhfqy_xz#M3D)dI5YB#Q)w!ZR=u)hyb4I)ud z{NW7FFtBmfqcrhf8ICLyZrI$Enc%s}$4{z=9e^R(}j z$#fo6vfwrleXtLj%Ga^zY<^?|6II$E2~ z78D*=TLsExTr=R$13Tx|q{liqjL_@qi~A2i$1hd0kq!~jV(?;&Aex>yMImbisNW13 zkI_lSi7IKiYT>Og0&N+gWhpO7Xaq=O-cb@1t%{gIL^XDe4)ROdHc}_EcV~VJE#J;19T!vxkLF83ibzewwnkiE|Is?BHx?e9amT3?rtIe$(^ z8GecLGIQn8*b70PYh}Y@Do?NAvzMV-O zXK#HgPeIo#w?`>=B+x${R&l>O#&PSSWxLh4(N6q+GGf$OPzCgDI7UiCJzz>SUsIOm zhr1BFCYV2fP`g+CIw-oX)yp)!rPj9!iETal2;^~JP#{a1qQ`)XqkdNfTkU)Y@I>{! ziJgt9ygvL?CnR`YN3JDxB|ScRK|wj+9Bdxt_s3Ovqe*g9NsZ57{!%)4|I(0TqY_wF z++aSlsL`s#TKoO*FK$Anx|M8I599E($TO5@dQy$UK87ja%=bryw#WsYe6X?0c|jKM zmlLO>0prg@JkQ!Nu99+)xm1s9XJ+12W)z;wdjjQClRm%~6Zk)+b{rXjBG_&0K>Sss zc6N$2zoN1TBErt#Kyq$C%iuo_DM*)@%@kzTut?8NwWz9TFj#n6!G`pqAtz|QY<;$y zxmlS42${Lx-Z%O9%W)+qL=~9mED&wgP+#)6FHJ6Tv+Z@lT8+U1@eWD#tNZL_TWdMG zSV*Y(OS>~buxm=!ZVQ1QGR~WA$JYv9N5Q<=4RCJ?5sn}kH}ZhN)%{jO9gpVOhAJ`N zQ|S2KOuEaH*b8iQ^QpQKRwvlm>jm_^mm>MvpqsvZE%ltxjQG+1lH1X7*Xb-{=6>k@ zAMT%b8TVV6aeGS_d1tjxxABC-HkMECA*+q=6BBzqPPmQ%()RzAr3iLE#hWEw_`SgR ztEko>iiGNVZo9~)r=o6H&*@a)ax4-3ed^gC?yt5&Xr!Szd3d8&v?^^#%q>6aZ7U>F zM}YfE?X0Gj9Nnd(%MhC2T*oZTM;9F5&All>B;WY9sCgz?X~i9(87c(#~l2^<$~IC;SPjjV*i6)eU9`* zH{&vn&!zVsIU&2|mCMjH2Mu1`ix7zl${^~EK+C4AO5S(+^KXl7uwc7fX~@51O^-R! zu66{2tZK=;vM*ir*~u!vxuBT_Z-9Hfk$lT0;VbG9ci&w__ZQPs0&8j23#Jg$l)85d z0WIu#MzhEVyxDku?+0I(EvHyhxkrNI9+vx>UMciQeN~?$ET^+G8jIc>I`Fl!0z@rn z*7m+$A!Mj&ZCCSy|`UiclHH zIEU!i!g1_zj=lFWk9o|W_vP~Y}B6znHeE19fl!^ zhlkq=XX|0%f9h(UfC;;in;d7P@VIx$fkDS5Gkew37i@u+wx0i|Yp%O|_#agZZTHFW z)hszB&*xtTClcO>Krx7gw-1`&W#{L)Xm~~Q-*J%-m~jc|r`?^Ya$Ysl;lGQtzEcU8 zAAM~W*|B?T_~Er^aHpoA@uT+~R_7!m^Aji7Cs0C3WIW65dyVg;sS(crHrWPmT+;j( zIz+W{Y`_LmaR^S;=man0x1$myjB!=lZxg+ab`nN22`OCayRM_CU9L&J2bwU|Y+Q_X z-yE`4VtB1Hz5-3XAF+Fvr|s^F4UQj2>Vp=i_u*XMG?AM1e02NcAb+o+gf zDtT?V;yq+Nba5hwmSyv$)S!t?qNI4b33p$=EXcQ7&1eipO=9b>QKR z%rVgXSNj&VMd!q;cu`q9m@ShLJD!ww^_DWiUKLi-mZCWKe4^j3yi8ov3-2%z;}hh) z$h@+zm!u*A9)K71$0GKg;8A!BoLTMnkfnF3NGp)6kJ1QyMApS?$*870S*e2K;`~W^ z+oy`oxM#C>4TqC<{LnW6h_CpRdehDA-R^^4%Bz&fr&!}}iyjD{1`8z!kO7Z6IC@4X zTlPZ}yrb1$dqc}%a9=_J(XBU-^Uj!=!c^IKVR5yBKwUspmJulMPO)5;C1Nv~yP%T~ zMVaqY=&D*|b6f@ndQ3!(@+Uj*CCbh5s1DuN`$sdrXSNF)^TU2lweLl9>^FAQZ_buOrIMjZv5};M- z%Y~(NWOm>gO+i^#{(JBL#@auYt>!z$A@z5slNjIFf2T!oS3|5MdY!kw+G8K3Fo9vz zx<*VAWgL69qPN#@Tzyrmm7*^NM^l4sv_v<-H*GMGU&&=1df;MtdF;G)eymSzKHfAT zFPS;Gt5t#Ib(79xUAj2RwA3P~a=wGyhm}+zb7rV4XMUF+yOYR25)7kQ@_JDXL9&S9 z051ih5BQTLvZl)B_OP9uRG9&Pt(v_z>tJGEjkQHCRfbY!O0^>}cCkxJw+=>oi3K25 zYkmU;-|^9n+CbKFPOk{FhUMqw7FJ(;>QmY{^(~cq(>v6+TRU7wJ)%qKF7F**kwPgW zeJ-jbFZo^G!hFxMMo3zR?2at>QyrXZQymF6@;XL7d~viK_q?*kKjJs;+O7P^}ZsdlRU zMZx<;|BzZ8h{A4<)$xdK=4$f_$U?J-h7)EA=NdvNB?tciNxgh0exOs}#yxxcY;Clj z@`@Sqe2+mF&?Aw>k3l#0zr%ZU-G0cFx-?^2hp8E5a>%mX8+LGuk}5cbQx34;I2#(n zP~wB@4eh>fAI_rc0zwYJ*anY_e(T~%HQL%>)iW9jXk%@HwXpnDqD^J>Zi^OSK>_F6 z=^Qh>%>&4)LyaKc&r7Hpn*VuD0Ttg!L8lBBI>{b#E;^5HBU^snxq5R$XWn8jw*`%S z;KCrh$>4V(etf7YkG<^@^O@;tmGGPouPV=n)cN|Grc;`@Ez`BW5Iu^OigvKuEJdo# z1{Do19lz?NtwV4!^e4LP8;OZw)uWDN(_LM-qx5z|Qjr5XKLQl^{W2isO{48T#P-n* zeX@wI7EslIXO@Fj51f{2<}q-0N)3oN{}B)_9#m^!Nn4os9N|BArYxSgl%Tln*BRne z(S&dxoVteEDM19v93?Hb)a#!~AG7Mt-W(832`T8h{gTi;&TBU!`V@`TYWFKBvRgRuS0Qaz`un%)wmOl!139;GFAATijyq;r)B#s)tv;-flf^as0)N(c-j~>yR9JK!mE56`~GRx1xIR#_IwktL0ZMC{U*CMGV_NI3=)6>qzxhhq#r{*cR3s+LTbzG{^- z-irJ*qdb*kk3I>%vmE7giWmI@oyz@a-yT+~j{Cu)iO%@pS$WwdvA46p^~;^KqxaJ* zv|YS5trSRd{1T%?!%6lA`y!gJ@NxU9 zQB{RIvt19{+Sy8WRPdqPv zyIatNvG#wWjkhH}0?}gjSg+wX$8;RcD^Y+-LMG z9Mzm5A6uR%g2BTk@gmE-u;P4a5Q+noe9)rlCqnFF)OgCru_xStYQ&qf8P)HL+N_w- zzvX$WJ`rA~{HY+qSg~GmE+Vz{&k#_s>F!t?w$p6I&d*OGu-XZLIG_g~sPs`39++sb ztK|ZXMwP5J-}m#H^t8J1GEp@P7QTKThvgK>h%69S5lDi#!KqK^KDbSEjVc-ZHJ!9D zQ9bROa~$!YbbJSu*Z(uZ%)0~q<$6RAs^wkW*|M|TcM=;sJ{?5cHu`=3>P1NC%PDJX zbAcf`uxYaW@o5<~U1@dm#sf-tBbUCND_MZZ`LaXvU3n{`ZoTYv`HA-I_CrC;{aXyv zLNjmQ@NrEK?EZct+RE~gZK7>VN$C(dbxLoo>if}JtvZf07s%JTBAkMEuxraZ+^H(r z+7H}0aGYXLt*!odetPPq>hE)$|7>OXzmZ}X+(*rMOFsI=wd?*NnR;P4vQ!0OHKt@E zqMOcp63O&M{PKz4ClFQVoP8e=TNG@sNa0Dw$3D|bs4`XTzhopPx3y~)7d4n_s#X=6 z(zkcr063-lYWcXvfF)c1MU8^aYrSQN(@o7tW9FJ5khib|vaZDE?!z|k)7rV^z9Oqc zGVsJDGU2Bhu+B8S*i&<4ctbUzL;g(M^$O-nW#*@ee$% znD6IyE+`m)Sgcwhlixij@077>RmLoy``%OP}XbI%wo(sqP6okg)cp z*MuQA{U@56r0#5>n)&xBQetY1)oHByq0*iEW(4*gy5|wO;eC9vt*b+3*9w!nuPCOq zkH=CEh!#9Crz<2`s0c>Csi~{_`8NkriK}g%lz;7m=6ayd$uO=#KU=9#FSbMGk@GP z_3cj7Q<}x%;xO`?jn;$p;aP#HbN8$>GWmVW1rH{6O5K0&|NE@WA1P^^eZB7V&7aZ4a+sI@W@7fT2rl{ znM?qi3dsEw;Q_I^Po_Ao0uMlo3Qz z%>B-Gd?#M~_E8dxAWe4b5Z4V_E~j5r8CRdkFKxnV6oU%LwS)g&WpkO3eZJYxwR{Oj znDl)um-1_CqNge}J9Rx8dQhv0;BD&*T-T|bf<^+6-L~dOviB^~{nO4Hnqrx&DbI7V zwQ@UNw9=YbGrtK?U6=4&R?$RT3Jt+W_(w!nq8yf%{8y$a)alY2V2S3aMVv<>^w|Hi#&wmLja zux^#Eg9^AadwAHHS8B-Gg95#wF$a*bfL3gGe?&ZebTjPqvPuTv}#*h);k;jw-r%QQG6iF zTYu83C^LVWY!C2l43z%LV->Zm?ODXif6wW!(w|}y@>?}RNcY9WB@pchP`MmOANPTA zMDsKI+R&crt#;9epv|gi>x=umO+npe-!=_tMALP~EVQ0n$C*?w{K(zy=2nOOjTNta zwc@Sa($=4o$jx#;cFZaU_BlUUrb{?W7N>=4E}X)G zzZeK2CLnWJ&paB?srDn!zkQKTH}zGq`sg$%^4Mp@jD%Uue;Kxt0Y;`<&->nJS3hkr z7w|b&J=a7I_<-Ez-|&XYesV}$H(1UUk&u(-bwG59%W2Wbbf;%FZ;O}tYw36+A49y&!V}p3#(S7S+xYjGXVKA%ZeJ!)yVdzBfLy6ra zmFW9nXI6sW3})y!!$94la=d)Irq0m_`V*6Ds!nE}--&dMI^)}p&Ki-eLyDMPbLo+~ zV1b{Z&4>wOb10N{`=K>=s_LmzeAPd*KR1CE_Fea*5UL@#3wi;ElxtY^z*EJ%-2a9h^YTLdX%ZflQ#_sWp_n6La1VL_CFYP6 z%+a-voDoxbA?1HHlio^4CaURFtKsHeH<6hVdjO3uQLzPfedeIYgV7sAR^ilg&>~Mc zwIh&l?Vg3aoX+ZVMd{x3397OWaC=rWf8%Q%MAv9BkC^P&iiv|I+rtBGnD?;Cp>&f@ zlQ$E(8|ylfF1|b6X*>RF)*;B0p4G?DrUI=B%!W%dttRVcMmBv4(k#zOh2RXZX?@hJ z3=~%^OiHvg_5SQO>rrhsPu(yF6GBbi%^iC=Khn;72=Hgk&WnCc&BO@&d|A4JF?%#4*?UED0Y=Hd(P1IRXkX`TE*WzR&J2@awC=g3ZFlxtU|@0qp% zf+PLAy+_}6w6u+zdat~T`Y(k8i<5%q>Tz*=$DTQctsi0u=A7f(79VUKSzPak7rF3HH+!iD1^Nx-{C9ET?fvmVhcx)M zHkeo%>Y>tbVTS!jiZJcrhRju`m3apM)qBo%y7t`<+=EliD0a;JlS=obZ&AL_ ze99YjD9Tq~b&v@X)Gj|S$w56eBaX_Gvygu}I)1Y0)fh&(`{KqxtbatN*R~O!7WN%# zl+g^=N9tqD#;HGz%3ubzs~U`aL8{kJ_pUY_vmW^O+^Aef z#b`sc7xP$pl&~cug8;sfi+8vAhdeS1M;*|@lOn2WL~j>)xt%9f1N}Y|S$e0WWo|9? zCG(yqBbdkV$(^G3ZAWbRLd`gOZZGvi4~XP5CYb#~<9xkOBhGqIn}8uW-Zml@J5G1{ zO@yY^tq8~sj^4IUP%qu%Ti?sXZsIHw8*?QVb~*?*M#!~i-uWH?wPMOtmfPQ(cW%*W zrGcT|Hm!IeTdp{&+E%E_^bCpj1UVHLJEh_G(YpS^sw12>n3m~!w0vmMr&>Ese(PIx zZ0Xin^(r%B*=iS{Uhw~u=3fqDX>{n@uq|bmrKxUSnzLYyRS~~=>AISFLTrG&G4$>4 zErk58#8+=?f)h@Kdolqz1eUmu<}{rm3BM{nKM*$99oBk0hS03x9CuXDR(~vC`yh;x zF`m4xk!i^FxzRvSvvgh*RNvj$pY2+&g`?d}DZ~2@8kC!zq?(^_DBhM?ryrhOub}c=`^}aMP+wCWp4M2Fi*%ksz+3D zvye*|_vkraaMdd%$>T7Gn zyQMzi26TQ5Rfx=Wi!}RF@TlmK-;kp@>9}0#_d7{!M$vY;4aR6-(7x7e$}eK^ zg=Rtfi`JZI<9QE|U-{ujxyMl;qqgO`%qKJJZF9YV#Z3PXcgfp%B-e5<8_U`12=Wl`NIV?*8@Dx9#c$VQ zt8%G(tvFWg|MJij`U>aFkaJ6qdVTA~l8o~I?M0oMR@t8qH9hvc%j-%&=R7jH`J#v( zldm5o5v2DPi*Zx%1Dq&e>7ua+wepEV6fD^v*}is(3A!h{fDSMwKknZN-O$`Y^*@_+ z7atqGg!%T%{b`JrXnPjJA;D%}C)9MX3REY_2sr+dYLsJv3(4+F!La#_+Bd)RHA(5F{tcc175RyW#+Fr!G?chgnnHSQRDHwXSP;9Vv6!l?eW7qDo0SO zCy`7{#nZH-CbzL8ced;Vmmv#HJ-_*}^aC^uR!uUJ=^(^$ieg>wmFrKIUL^dJA6hDZ ztczDiihJt&7bLlQSqmSeuxp){u01+%T2 zDo(Sywx(BtqO!C+D-mTK(w>Y|_h&|GB~CWBp9bttQ@e*Zqa$dk1Rkjx!ddc%?0-00 zxd%#})y;%yn;oKpw)fLH?3Cc!yF41_Cp=X+bKC!{N3^xusuX* zQOii%+}#8=_8O?E5A1|CatIh`i!Qo6RtuccOB#f1bv%pIxfP9-r+^NZg`?`0wzos~ zz}(En(-wI538E@iIJVBCPB+Xcxgi+~^PdX{E#th1Zi6U2oM5|GJQWTi}kJ_+Wkf^vGPJfL&YxJEggN?ShhP+ zJof{4`m3`I1O0YC!stD`KaOYmqy3qAi8S7(z*RGcz z{0fi{7TRSe%>zO`%VShm3VS8Qi2CsOM6{20XavIT_RG+r&uos2BWSny)Wv(p3Ga{o zR(%d3?6l@o%s%tdU`h<|OJuUE(TK1R%HP!EJsfug2{xh2>@!yM=Tw8F{p6;`qM~n+ z6AUY1CzLg#V| z$dMWB1FN@l{}BgN-l*{c*NN~@^>-I+e|Yec1xMXzc!e)su|3gcSFNzibY#>r(g_rx z03i9J7abQv4}eJ2N{u^m;oRJ9YyS7+Dx;pMwE*b0nf8ReG)dY?WRBzE7i6uy3aN;eYy@0EA*=iG4DgmE6^GBVBo(CG-A(_{2? zSVd&)D?=s*QGPkF?)p|`HhJA54lexkM~~?(X_*pZy&N=MuZ3&EYw5(I zVL4>cys_S?TBApld;BvvQdVm($1^L7xR!g#%<(h+Sh(NJDF3;DPtyzHSjL-jld6Nx zxFW#S#NbZ7Cd+KrmkG%=XJ6v}Jkwla6rZhg?}?a3uFpZj%?{cqucE4p)Wsb}uiF(_ z$h-ZvS&ZS6@O^K++S#6RFz#Af#GG?ZUv&J2su--6V{e7KA1k3%tb_ilo#)D-Nyh_& z4Y364oW(Dxw|O4LBEJpE-snaRBs@qaiiy92LemGoBa~Mtw+X7HPX6#11kB?+eCPg3 zvmT|`GfO&mU1xp=Ld;H+#P~dl^I?pyH&JY8C*B^~ZQL;vs=b>nWNn7GvJ|_~hsY*6LxMR1qHYrg_wIJIm01jxvtv*|eUS`!LxQbUkXnp1iE?S@pvjQc6?*FEjf5Ua-{9{z6qUI*o z1PL@X-0hEI5gu$@p5X6yNWeX)C+x9;%_yJXieEV~;Z8%+qeK){#C#vwnx{90COYpH z0C<ZI$GD?)X*bWJPmaSHMXku1Mh0sL#~${AY22u5;@v057)<0;>=&@Ro8a%zxr8 zGSkTP{8?ljXarP?IIbyjOe`mlD`4SY624>3I!2Mvr_MSZT6^U_MKDqy!D}?_T!bZU zMvO%y!h2RQ{XtT8ZFQDaJ+=SS@XDAEpUUfC@82o!JuR2qaZ{99l#X4|=cUc0IGtr# zx@5TEDtRKh(<7Za*fZN+T@_I$`B?YY+&p^yj3aJvG!}E1TOtS!_koMCKguoZ)+Tqr zZL<>HwUnI;N~Z)ctRKlWj$?U@Wvny)0qC`(nF)_RqAk~Zv62bpfXk#Qhb-X^He;s( z5tlP#NV*&}DxaP52jTA9BWemOtiNz>aMBJC99-09^!J&2nOSw>Sy(s3zX=rlJ%{6= zkg}rV&uvChJgvb*KNegX@LUb35JT|e2TZsZo+`kBz|@hz%BmBkIFyoExx6>8OAj6> zP(MA{ep@uUIhc)+iayw5`)u#pNt}^-^Hk9G&5ta!w3SjYeRsub)xlb(D@?1j`BbA?ghzSh$Uoc+VJMh-y-Ea@fz^N_XqTq*_UUwgV zi*SPbH1o+hHhJExXQGm&PDymWR=>@6cb63b_J^F~f^$z?ML@-H0K-Fv$rDxqc?I46 zuZ?h2kB`hCNh9iW-QwOSrk0MguLYNv;Sn?+z@DIf0#W!Duv^#3_V#xxy)K{Q+p9wE zg+ufe^|urKy&ksftcuQb8Oy=Sb?dqxzn$dA)eGA>CwTpK?G!Wc%KAud;R6&FX}no9 zcB0l}9lFX77EJzD#nGoK0lM#=88u#!OP@E^!&=OT$v0L;b zK+y_^*GQ*4`mN^8CHnB*$*n9SED-O$WgK|Ner!2&=(CMG>ApatoH(d|nQ435P%XI)rG4n|t{`pz54WrF+ox`q4ukwp-DK$`AX} zPR~Cz{D|r-lQup?3|JT4-&*_mtitjkA5$R_v+Ri|89ExWsK9h)8QsN0Z%rIZxBA_n zu*Sz)K)u(K<6lk*7dc*o#zfB(-kT8P7Zz5m`~p-T7LB=C?Rfw0tcoZZ+V?c*HWRng z3RmMdO;@{B)?s#f<8{e$xP9BaBe(-)!z|HSxZ@6}PF;R7SQd z@}MoT&fc0?A|9?+r2juDE;Gy>esU*n&WT@%*+$1RNwX5kXMRPcapP{h3@25)PD(89 z(P^o{^Xr->Z*<<2h9N{Q2N^aQocqpPlm2=k3mV!{&Ifp0kQ)1(wPaLf^x~Xo4hX|v z%O>Mpy>jEH5D8`@C;bnNKd?cPBDEug^X0ll$vr zWjcOuFqGz-79tY+HVRC5KJ#$dVv}Md`AI7o#453!qqLWD9VH~+;{6=H)G!A$6d5Ks-*^Z-50%N4kR`0eV)XnHWutj+>f{- zl)WTG`<1PY*Q=W0$*2k-(Y436rTiTMjStlVL}J=e?wnSYYdMP|L@`0om}MBMl89kU zCZrHMTr_!5(?*62%wBT>+)T>UDea1i`Sye0Y3Mu zaV)m>96&5+R~-`aGA6Gq;&Pm!$}SNQvN!sl*l&u7>0jMrg`VrhX+dc61rOGLPwouX zrG)SA^^t?;{uAq`#h2j81gP?bl-YMekLE{P)tSOV|HJuWvBQ%y+KkV%P7e$U{`Sde z%tt?v`Rd<9ai2BfpKJ~~#*2A?qHmy#qO*gxY3c)x$OcjUegBPZ%*-EQr;G=eSc>65 z?n|HKLd+#(Oq|N@6~G2*qRS^=ij~8NqOVdi4&ftTT`>Vm(-DT zz&wL=DjywsmB*@?8N=wF8SUB0-rgl4TU}R6E}Oad$Ibdh?dav$Q_|GJLli!JH%$0a z51B-z+`41wG*p}a5s{Y|ZE!1!U*4eUi>ZMjV?~y&wX6>2tHVqBVzW`xH5!8*|CP;< zQN=*zz~Ka{!bZJe;1smRv@kLGyQqn`+C3;PhwWOtE2a{H_hVq9DCs6VgMK0sR!>a5 zbLqYk9cnp{#~holXYD7ix8cuKdHq3(4}!~FeTP($@9!S3;-oh5jNC5`C0LgBj`Nuz z8mv?zhQEUDr3W|#_VnBIgx?dJpc?Cv&Rcts{qgaGIJd46kb1P4>CPC!QRcYvS>bD# z&!8}Ni!Dk&CoVOAz|nkb@94W|eO<}%_-_4;<027b%L+hNQ9>3*r}9`%yosuLpbi^o22f&P-Vs*a*2(K*2%sS(VZq;N0(1Aj$v%XfOISDHrp)&HwYy z?|a-`vkOCA?b0jlj+da=`6VYc>n!e;*2L%Msuqx9)QI9UPtd|ujatO!z8J0g2VpwTZtxX1z`AMb_{8 ziemv*zKA>AU@&zcC3)t0{buMv*(=+??XTO=A9&x^ue9|jRY>1W!0rYvmK(oG|7oA4 zw6vAMSJ=+BlEwaLFEovO{6I_x!8s#LJ8m4>O1gIQ=-!=-nutk915fETw7a6i3c9n?#U)XBpF@;;X@@bFpasP z31|b^b)P)X(c~A_qPoPj1NDpMOw=(~ak1+8_7-&H$I;SnO*~5+?tPqIE3dvO%Ovb7 z@pUwqIC~D+jfj+?N@r{5P|HAZ-U}O+d|Gi`bxK;j`HOn@oO*;smh=x4={R+-C}S&c zrV9zm1}$JFdefa;D#yrdLfrCQI~WRk2s^jhsA+Y3UB|mV1~&s@f&iI4u_da;*Y4{I zXH;B?;|S_G7!X$w&Tq5{M#tjnG52>4pTpPfDy+glzK*R0{|X|qGKxHX|=J_eOz78ONHs5B<$V-DQQovEUl5g$qDL51RA*ac-E^XCc(qESrA-hN#x zdvHj{&xMNIIvk1+7>9pylm^cxiZO4mt@5YD*$7%r@SxtFWle8R`9~aU&%GM(pjM}> z(rX;AU2?B0NKgEqTUcGt19HYyZl{j?Bs$G?2;(h%*Q+>se*+a=_rlJk>n-RN%_Ip1#fy`rthqVO;trMpgHGVPEx7g8p-$Jgi6CYb zlsE8s@>#j z{s*8_*wLpc*I_63WB88(ygxR?t=t;_YR(yFvwbgnuP|731lp^EaavFE$uVIqBB$_dBf8SlWC3pmud5f zcE#YvMpX(=Y(U?5#qJnS5MD9!?fxB?ork)be)fQe>nr(6AFgT5c|XJzSPHcL@&IHv z?Rd)j|jG%F=d+8ft&!u3}JiMfeA&o34=TR~`sy%zaN9Z_R=Oal4%pJ1~ zYaWmb^yuLcA+5Y49u#fz^krQ5TBRxQ0H^fv!bExlkGSlVZ3$s3Wk)P!s-L;MPC-nS zQtq}Fz|qr>-6B^yi8@lY@+0ui(Z=6JR zq(#z!c79^)O|(`|pLoyy9f^?d{XMPQ?HRTB@z(dOSCT5g!!GZLD|50NW0fvE4jNuk zcRem?a96}e-mgq(aCq665|kI6Z|wa;7^Q^nm}=w_s*qSrdUUBqSvKIKga9TmqIF&HnX%kwHP^8$rI_0%AvJZo!nEsT?zb zn9jrbLf(K~ijT(j|Bkr+*J>!+;bT9${xAj07_A(ZS2tZtfIa5AKvOJQXY^CDn0VYj zN}#pqGd})f9p-k@8P${7*(Ggx29~mIyv!0A?j{8%v#Tb%^_2t5UFr%yCg)fg^1ll+ z%_-r$UQvhgwK-zPNLDdSGQq7zJVbt(U(3hCtsq{$%P}Tw)I|x1tZraA=m2Tv*jXcM z_?L~~nM76eyp)B-aCSZ`t;DqzzG$`@Gk4`Wr2CrDWz#uzcJrgE!FZHzM5|V|p`bmw zgXpwM*5m!i*joebv)B{gN!q=MmT&qIT1Kt4^LB}v5V_MlBXdzSo|Rn&M9M)+@b6&@ zs^&OaJtllUuC8xSawG>5_1QjLQ4u1R(-NQYR7HFyMkfXgh!?CUCcHGxOgOoFfYr1X z_fpAxr1^l43GZkyHYNE*zM7Bay5b`CLyF_R`!y?1v=597g)1ZH*{c6Il$yJZ{)anVQ5{W*Lamiv_3|7V~|aUy?A+PMh{2^z!WWcX_(HBecY z{AER*Ahn7~SfEKOz6PxB2pincp8J8fZzcS;TZzHEf9Cb#;P1Xj@%v{-76Waast0Q( z4)Dp>+!q>osK^bVUGEn{rTv=0yu~y1Y5u{r$As+PlxH=ugb#%ts=QyzmK4m_#Veh@ zH>;kOimdp9N>_b}E_E4ad?@_K?D`!k_|9Q);r11pnIUQ_dcHQ679sa=>g!Fm;gdnU z|Nn(s&`JKkhDh%EBQm`}(7PD3z&XADF5KD<_`G-Km|<+g+{6$jL7LBQU!|_PxF^`C z)IBzLdvoOz-HV6xp-Xad*m>gbBDRVVx=*c@!KS|o!<=m?3Fz|BzpYw7*rN@ESdDK~ zv|r6QZc9jqrTZcdus?!1A#{rn*+LuaayUBxI{s+`a^n&SB9IiEtMB0E4Q_v$GUU0n z)cBHcE$KHSH-~j$2~!6C_$XOt#OBvS>5SDZ*TNdD7ZU>o&j}0sJEI(Tt$ud>UEVVU z2S3o&vLEeBxYE%y;0!>`XX}`2KK4WzNh(YF)mSPTzZ&3;(!w8VF8nA0c!{S6?3IdD z*Q7drmIQNKDW=m!6M}g-xTVIa*l_hZ%}dN#sIQ;VPn+L^+ZEm_7Yo0ABWabmeucEc zC^JyzR|qXsVbaN2p<{c89v1f5W?l?Jj5XGL8~d>dJMiJw+aFrI(>kAyP^UteiQ|YY zmHWStKle)yWeDTE$^mN0|Mc)IBBi-7zU@AucV@Y`=0SLssGq8&xjdA2)_$Th9~_sx zVcoOomKLVtdzx=c=>ncjf;?8tBn1Rdl-09BkjL3*o$c+$%;$}iBwjX3lMjDc;*W?1%CkH9kr5z5+4>hjS?+~(?L3DY?L!f2`%4?% zFC=(RA`{}kFr1lEmu^d+w-A$e-jBUIiH?O(U3clNUmEx$(;&p788UvNv(T|c;!;aY zavThCnqP;kI zkD|FG1)cGc(*6d!-l`0gu+9_4Yc~c;l%m+)q?TtDO{)HpH@6P6*Tc$=_>cTZ)kcY! z*DL*U5qWUXkzCB#wF3(MCGw7ayMj>e8fYMvu9?`rtoJ%A#FUrUWlv2*ME3!83V5Ww zBKLM{K{UJE+}j89qee|%8799ol}cAAeJQt$9WIXVNq47%y#mbI3$|vp-S+t%8BC$p? z-L5!0A=~H4%P!FlQho_5L5whYXMgpLe7AzK2eYN!RzdG47j(43twuc!N8(VnWS|OKA=UK4C6wXGavN#(2he6L5u(sze3? zqyyC0DkCp?z0@dCOyhZ~By4Z#b!q}Io$cexGe$Ll;f=crFr26NS@Kb2 z+v{1`1Z8$__hCUy^ku0rzUh9kq6*|z+Y?g4VA+UwC$F;;w=CePXk-@Sv<2CBuc!rA zBK-c+q{Pb~(JHpz_eRnsMm}okc|P#kOc1sM09i)pNPZ4X5CZeW(&Tuza5c0v!QVLa zLYg~7yQlxYo}oeW!@zq&;l%8k=zTA=J|>X~t68>46s$tNbpz=oO*kyt(_X=OenOQu zPUh2jT(3>Emh@%tF1&?2e61=y7L6-V4sMvE$Sa9Xe_J&Ov>kJCdst!Pz(?PN%Sq=l zQRA%8fqNM$d&%|}N5o29{Kg|MhmE26ZAhV;)6Yhzo~ef%8c;v1i`DKi#VpCkdE`eg z{yJ_UZ>v53yNE&gWbOo@+TT0Z)NG=Qr;bv$Khu+Hz|6AnZyN$?{1|1zk^VA{ZKCRE zU+QF74X!;Xz=Kf`;h}{x`T78Afw&jYB&zMB>KIYMPs8QsgE_d*8Hmo}12v13?K_w2 z{=MUCpi`}beF{2jmIydn{y3%P7knX*aQP9}TM~LX?sCxn;nhuznuC~~z`!>rWIXg_ zc117as1+Ie-(X_XmT(Y9VB%VekS;e3VP9g;!MJ@GNcO2Eylc<9DWw)9(WK+{6)8u0Eng? zsL4tW#)$@xIGyv~vg#YE)fw{)I4e&ehN|v4NEc0Seg40@Vilvwn-8hI!-F__Lay*9 z`{p7|eZb0_OC9$9YNy@1uK~76;)P?}Zbg)uGP6x+WWneMpmd^4*$X}2p=EPLVfzX` zb#OWqHxPaCcf_Y^->-h$0Bg>raC^b5#L9nTjSntQC&k+f`Lp5H`*wT{q52u#F()+~ zki~v*w8WG*D4iaRx+YJiBxiP3^o0Gp9CL!K9$tjgVR{J@G%h;gq44-Pra5{TK(kVT4s2>q4k>{Kww3O^9U^ERPTbQ z<%i~8H_%-GZ9kMPPx9jyup+mkpP{Ia(v}WjB*Ve{=bwM-$7s>%ArDIa0cw)BjfHa< zb;MuBIGJc?E)xpClbU6xf+UYti+eo{SbSOW@iz7wu1>E9B-X>-Q z03o(Q@h`8$K4EG~_}S+=Zg5%E4Kbsf$9`!^k=kV>Gnwi@5GCHEC}W;i5K6wrc*yYY zNg<+lw^c2njb`U0s#cS%;_{c%va*964wg|$Oz9D}EmF3L34cv&@(dj~DfHJeMy_jR z+_hcWE`$6Qp%&2}X$xey6ZhVrM??w}j}$xUSmX%in-e@9)FmhR^Ox&1AzGf4F?QxY zl(v8j23WMV=)SP`QJP&SE-aQ^w`vor!@yEznmdQsOgCsQ#_kT#fuIHd_Qgc9&T=l7hv)J2MH_Xl4*@KZxU_0%3x z!0DX+(;|Zwi?><2;^dnU*Dcg;b^bEWHj6)l?c50^Ag@gF#X)dIiGUtKFeSoWK6Wx7 zV%Y&wQCGE^w;-W8w~k|9F{%X9Bczs>M&%?&5%t;?VX-?)ltD{b=%T%Aan*D9%ns`| zTAWGs4V7IB)fNLSEz#^?d*vcwoXorNwb`n#CqJHJ5L4+K3o(4aNafoQvM#WQ)j1is zKu!u|sUB+i2KsnK{U7ObO7$;A>(J+afd!nUD%1`hy&cznY=m52MbUPkGZ68=tksc6 ze-}djUKVzD9AWu}qW%_wFq`o8&S6u^uWLxM{6)73#jRdZDP2!KU|l$Z-yDxy1|9&w zAMQ_%Xa)jwT>HA{vx{Yo-}Z;QPM{7 zzZ7gwe8g&WCnDk8f)7J%SCX;TbKl!cd;C#=nNhi=OJAsCjw+sYk7mTK`t|Cpa8!fr z`_NF;qHXbPAq!6(+4=tYa_ya${$GFbVqTA}B495&NRSyYHw38WPLds1>U(gn{+VM% zWfA@Q(u!X^KfPwU+fQw!{*m^4X94u^geeT|F-_4aw_G3c<;c;5IZT4cerKQaDnOsx zUdLX&rPv;e-}zkPkiF`A6!xVAK>T#b%vk8LsX%4>40RU5s4SJ!++fvWzTT z^YR7y3X9`jRz^=a!@6U4384tR4vy`vRk&$MZJi6`+=8_EizusD9#A_qtFY5qA|`mf(|323!whvHbh^VEaIzs3aJ0q3 zrQO?LGd@d4^Oi1VpfG_;i0T~u(}TxoL!dssOFA1|-`ZwvIk!V1T0cbnw_wD^Zt}#M zZgpRCDyCH!`?hQ)TwP@Sp`(?T-TlgSX*HK*9NIf;zj9#&V)-WhHAVh+8Dh`-tGe#A?|RZ+ zkuaiU$}=sLm`ynS$(ZIKI^rzyZMW7n;eG}id+ihyDH~!t5i~g-;eDIUJC0SF;FGHm zTrFpm{PNReEB0h{>%YS9L;yu zWRS9&bV2UbvQM74VTdD;pZ}ym&5()bXFv4`a4obP5p&(tKX=nFRvR}K-I;Z3$9tk2 znC3taCL5BlK3z}~w=VJtAPy}2S8}dcsFO612wE(6PyF}L?^NGG)#W`9zknegW$f7k zvPH>8(7Ing;`dDKHPFNBYbo}tj>PAvpmJGOgY+$|h&w@q8q5nXWuyf+z(JDx=jXx6lN{HI==5^A^>}pT z2IK}NhI|r^zv4P=Amb?oTAaZGy;e(*gvQ(4(Gk(pwv*IGI}!r17GYM#vi=g<50db7 zJ^nQH*jr3Am8zb1e%5;m=R7TeG0-EQQqmCJ!mlMKVK#aXXZ^1Q*Srce$AM!6irw!$ zM`i@+%teno! z7i5}k?&b$gLUsukscy|{CEXx=9MiqG`-FsQtB4Xup|C$nUxO`_^1Ijcvw-W_2BR>N zNCJNHWBI>1Zdfm5Snv0Eg8cuFt8f2j`hWkI=tx2cp>oct9Fud&`4Gz4rVN`o6ge{@ zBqZjL)0AUkrrDegDW_qMTh2Kj<~(yYU!U)9ulMyIJa5m(?Qvb#{c%5B!#~(Hv{5Qf zn@IBt`N?iB&wFik7l(`foSxV=HefYU3n9s-S;>@Vd0md5ilC;_E0wo~bHyQ?dH2au zWpm&(QNu;&eS9C0tvx&1NY5aYU)WPY`*M$1C(l`4_Q9LbHF)f*k++7O59;B(F2RL;)aZFiDNx=T`bejcv2Ty^YHMiaB#HL~QB zPrfWFD=4aw?W&ZF2hDcBdmYQRoISym1r8rVL#swp4~+)fVXqGVUi3Q7XGoYcPODa& zwOOP8%eKeaqn8-4*`{v5X2@TonyX)<4NWIkh;1eP^x;-nMV?5?^Oj>>mlr?yiO)L% z^_OO2mnxQ{Mz7py5}(k7g_5;V;B2+vXAtvuKL)D~A5P-;9XKVAxcf-~cuXtauXE1% zafa)Syos3FUD5k$IR@G*C1(6NtBoDI5K_K!(jy8dPGO>Cq>(?f(K(C zsK-;)E;J9yGSJX!tLJrgS{q!U?N;S(yuDu#Zx8-`pl`P{V@=jo_3@sXZgy$P`wW-k ze``wnw4;k5TgS>U>WNiAuz%taImm4te)dtSu+42+Coptp{Y{%pQ%Ia?Q&1u~fwtHD z-}J+aGiw(t<73 z;b8c&%aJ={4N~Y#9j2b5j}hE}E)Ayx2DFdLu!{+IOf`dMy@u1@Vt#HeATPfbofrL; z*R&t>gS6(@U<3k@(zX3e0!I+qv28J_0owspqum|I7ro?23_D;f=~EIV&G;GL{==50 zYD-BNHNqn-eD}o-wID6SUp8c~jrzuObadY_p9R}b2@ zB13Wy_P`U6H5)XFI&XP`O0&6A*MNvp*x>Iix0(dV3@MhV{}#v{ZdeQ#%*bwnK{Zqz z)|U?xVxqrH>NxEAmjcZ%?cYC_F7fT($H04H&W~Hvq$%+NxD(DW3hi7|*a2H^BP>>8 z!iza&_!Cje`Zov~OU%xE-)#7u>p&^p1_nEq3%H5B^9 z#t-xZY_^~OTzM@p`itLbDjeON<5@4LN-)=o*o`wJaM-yBxwp%E^@%;%-v zZRM@Kx)d<*L+^_BWObn6W1FdA2Z#d7_Ka_GWt0BM8mUBl(9Eell~E9iC)hfYXVLJN zB|y$cyv7J7F?XZbt>;&Eb+{85zkqZ0>f|8!UlNz`sX)$aAg7NB*I3WF%iWlM2sBqb zct`gn9=2QoJhja!$+mieH&N@>8)th+dD^A8~U#`MTw4w}McY zUF`KlE+m29)bg(6N{kU~7sGwWz^J6Nx_0&Q`+3j$-DD42r!V@PV9E{Q5>>k!E&05{ zD-XT+Lm`6=bC?v@1YBysRm+R% z2K=mp{zNVwS)=c6oXHxc63TBSzCK}nsnhb@`vjf5Y3^!6Ql3~r5rLhiSgEB!@XFJ9 zTw7&!R)@5k(=&K#5;I)>VNQI54H>x2H^PeY;ta(X59}l>T&tR#G${3WrNX=*c0MVw z50*#zxbf;955;W3Hq`qlf~ z{g;UHfC6rdbCVP7(sI)yOet&{g4utXXloLxO-4$C2Wv_!`@`v8TYu`?MgO@u{->Jh z)sA--pI-HR4Q?q*2v4e@tV26QOd7(Si#(-Btxh5zEZMn_x!Qc6#Q!Pgdq{!{0yGY)Nfqc50q8gQwdl#?(2jQ30q2%H z{D$k9+W8m3u)}n;Qy+^?6aNzNGbzN?SE~`gj)B7Q zzLkZ7%p;Z;k`lHSS`7UR5O;BMy9;H#-76d=6uH9{qcLp@-#1#non3ON=-{R+!#(*= zL)FZOU>0LPn+D};v%bqIYE=~qnT3`nl%aU3rR_j<3(HShpkh^+ z7q*=<(Nte0KQ{>RB)DzDO|*``stGnZhr2~$(bM=ATRqly{R1K?+>-Ly+nBgV0H z%-2OhWmQbyFr8c$|>nAT6{S>KUnog!n(;lHuJKfWFDUf z(SU7iTL1obSD3vt0pdS*M2OAZcmNM zZ#LeSKFc5Jg#XxZmmL@wQ=?f&7o`iuwM`l{yZv)&65>sVTG4`jnSkJn9D}xJITjv{ zU86M!<yM}`7FzVpepl$hd)}Tvh61r^55t+z;su_&KIbK+bsI}LWdwucoHwl0`?oZS4v>I(W z?#wGmBP2=#7jPlPwWeEc0Wx*TrUA1E+CG-OteHvD4y{Q9l3mL?PfaQ?C%`zDS(poJcyD z@YD{bjJWBn_GACq&7KTVPOtT(e-@9cKJ3EXiH<~}#mJ{j%ddp4G=sulz2uemcN9uQa&GF z-|8`T4h~k0P>{MqLJmE!{q>X>w*(E@>9$L0ST7XCL*G%2wp$Ft4f&-G=!n!B-4zz9 z6zrh~KpGCJT78}(-- zG6JVYd7||dMJo0YFKCD~8pj5Y!Exg-MY?n1chsu7dF2dAU4gsA+bGn?$M2^+QzHy0 z_a+ahKUEnRC7lP;5+_mF`4&RNt%&sx4~v;M-p~K$241)uoZIg+>5Eij9!?+ZqV7M{ ztWSCmBpvb`^rv}rtni74rEPpmt$bTl+$xztQ$d^lUYUiJ6?t~i##)Q#kFE-SVPY;q%n}6b5zjUb; z)&84a|A-Gcf_{8RJ4yu3O0(BH?$3^$wX?HLuHK6uk&^!Izooj4`Db@yry}A|w!?98IuGcz0}Ukfkisct|C;u=BN!$0GMJBpJA{-1%zs@u#CxmS++Nf+{9yApK!Prt zL5um9t%o-aL%mf+7{xQx2!edAEUWQbWg%U)sV95M3h106Rq+$?!heqkcWu!@NZf+f zHcAUVIQibYaeabvc;{#c?<8^n4NZ>~@sj@aJ1*%ayhB7x4X9;!E65|rgR+}P6&zEI zUv?{Afvyv)cRUn5?~D)Ft*_-aQuDSfAVJiHz)50sS#DDMhjhSHD=&1|N^eEG2XSll zms^~0VW{+bjfG7Q2e|60I6J4CTZIl&#{~2H`CrT6f78ZJeA%)()0wS?)3e;3-2S2ehSxBxud_P- z&a!dl8fiJAo*bV}IZvBUOx$mcv)Z4Vwc1}8VI&C11lTLxd|{jsa6@Tp3b#kE5fGRw zeL9l0w?BV2Zc$sQpt$q@EmOvz)27oY53}|Sx{QBtj_2{o7pS=4$Cp2~6uU>5=d&{o zf#?ty(}vgXr08AZE3FCbUxDO@UCM;UzBA7R((P7Zv3K%AhWNM2F1+Ue$gA@r?kvRq zM)}~qU&VLji}?rqc^*0ePvI!jXEmc;{|%5U0Stgm(fc3R{EX{$@_y%yz@H5hAE$(L ziLj1#S<|n+NCC;-I0}KF^1gpy1KCbVA+WS_&y>8fpDIGS1DAM6><{A^Q?MV=4g3iX zgZoeuVLJPky*b&e9kTuvTm7eNmF=avg7{p?tQ;!|EuLliL{xkuaRuaDTMqOpD_y1Y z`xQNw(w$w>aI@derom(-lE9J|MW}f!@eI+|L%R* z_5*fUw8-wkGr80~B~|52rGb~#K*O`@KXwY$jwbV`?grGgB-=iP7BQYRo(Fcx`RRf5-!alFyYu@&dXe}AyIFQ#r?rDu+qMgc7Yk`W!>)u01?dcS z@rN9lfu=M zufps6#a9sySFiNYi4=+Br{|QI1tx%-8mF|Q>7v3Iay&4M%AXrTy~aX1ZfpMUo%U{n z)8F;Hlq)+g_YT9UTi;w7C{8!bP+nR8l9ZWn;PP~d(j|Yr?>~dHxlkt2(#4R}N_7fa z!SSga9&QHdq#)*U-!OY4yF(W+vl zpwYW|E^3nG_jI4_T^_Mq&$_VksIbxKH)^hPC9Y^p3Pk*rPL~#jHRc&#*FQ|&2qrZcrHA#QZ*aGzJUhEc zX`@VbVc1VEtFQHiU|8v?`SNf9s_MYGR4_T}IEd36*b$sS;HP|I_d5Xbz&>c|7k zKANq}mYbJBUPcO{gri%_?!6$MiQm4W^DFZU5<_Y#bR0QO&VU~6L>2XXH4=HZp=P1& z0om=GrEb~_Chufk`{-`7n<3Kb#HmL6LUfJeDv^1PsB$Odxg2qX(X#PB zbYmOumh}EvxwyS}2XZ9qEzEkLXv!hFi72gf>cl(mKrD6bLioTu+m;V}tDL7-gL)#m zybV?vhhp&G< zE!r^(30xKc4;xGH&44`Y#S7hwyR0u$Y)_kG9+#H478}I7obR-JJZ8skMprBPLCSOi zLX`Y%JMQ=i^@6UY?CIuW#5j?g9-IShBJ_Q?+q4_odU?-TlaC zum8M{FsyBlS&lH(fJK`E)!L0@UT0kP_i6FH7tnCSs6|Wa^ze)%y*Cy7riS)9XKVSa zK~c{JsP#A5yR!dT?l#lo>%}x*PBaPswf%#R=E-x@MyYD1n+?0e2lLdX66

    QbgP$Line40t3Wf*>lu${4)|<1 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

      smP3(e8pq2G?OEP+{IcJd1$MWxi!KVyXC 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 Uxm0*c+hcfe&rHAMu2a + +--- + +## So Wait—What *Is* Goose, Actually? + +Goose is an **MCP client**. + +That means it connects to tools and data through something called the [**Model Context Protocol (MCP)**](https://www.anthropic.com/news/model-context-protocol)—an open standard that makes it possible for AI agents to interact with external systems through natural language. If you’ve used Claude Desktop, Windsurf, Agent mode in VS Code or Cursor you’ve already used an MCP client, even if you didn’t realize it. + +Here’s what makes Goose different: + +- It runs **locally**, not in someone else’s cloud +- You **bring your own LLM**, allowing you to use the one that works best for you +- You can **add new capabilities**, using open-source MCP servers + +Think of it less like “an AI assistant” and more like “your personal automation toolkit.” You decide which LLM to use, what tools it should have access to, and what tasks it can perform. You're not locked in; you're in charge. + +--- + +## 1. Pick the Right LLM + +Goose doesn’t bundle in an LLM. You bring your own LLM. That means you get to choose what kind of model works best for you, whether it’s a fancy hosted one like Claude or Gemini, or something more private and local like Ollama. + +But heads up: not every model is created equal, especially when it comes to privacy, performance, or how much they charge you per token. If you're just exploring, a cloud-hosted LLM with a free tier is a great place to start. But if you’re working with sensitive data or just don’t want to send things off to a third-party server, local is the way to go. + +Either way, Goose gives you the flexibility. + +That said, if you’re looking for the best performance with Goose right now, Anthropic's Claude 3.5 Sonnet and OpenAI's GPT-4o (2024-11-20) are recommended, as they currently offer the strongest support for tool calling. + +Curious how other models stack up? Check out the [Community-Inspired Benchmark Leaderboard](https://block.github.io/goose/blog/2025/03/31/goose-benchmark/#leaderboard) to see how your favorite model performs with Goose. + +And if you’re still deciding, here’s the full list of [available LLM providers](https://block.github.io/goose/docs/getting-started/providers#available-providers). + +--- + +## 2. Understand What MCP Servers Are + +Here’s where things get fun. Goose is a client that speaks **MCP**. MCP is what makes it possible to talk to other apps and tools *as part of your prompt*. Want to read emails, check GitHub issues, run an automated test, or scrape a webpage? That’s where MCP servers come in. + +Each server gives Goose a new ability. + +The real question is: *what do you want Goose to be able to do?* If there's a server for it, you can probably make it happen. And yes, there's an entire [directory of MCP servers](https://glama.ai/mcp/servers) where you can search by tool, downloads, you name it. + +--- + +## 3. There *Can* Be Costs + +Goose itself? Totally free and open source. 🎉 But your LLM provider might not be as generous. + +Most models give you a free tier to play around with, but if you're doing anything intensive or using it often, you’ll eventually run into rate limits or token charges. That’s normal but it can sneak up on you if you’re not expecting it. + +To help you manage this, there is a [Handling Rate Limits Guide](https://block.github.io/goose/docs/guides/handling-llm-rate-limits-with-goose/) that you can check out. + +--- + +## 4. Tap Into the Community + +This part matters more than most people realize. + +Goose has an entire community behind it—folks building, exploring, breaking things (and fixing them), and sharing everything they learn along the way. We hang out on [Discord](https://discord.gg/7GaTvbDwga), we answer questions in [GitHub Discussions](https://github.com/block/goose/discussions), and we host livestreams every week to show off what Goose can do and how to make it do more. + +There’s: + +- **Goosing Around** – casual deep dives where we build in public +- **Wild Goose Case** – showcasing cool community projects +- **Great Goose Off** - same task, same time limit, but different prompts, MCP servers, and strategies + +You’ll find those livestreams on our [YouTube channel](https://www.youtube.com/@blockopensource/streams), and upcoming ones on the Discord calendar. Plus, if you prefer documentation, the [Goose docs](https://block.github.io/goose/) and [blog](https://block.github.io/goose/blog) are constantly being updated with new guides, tips, and tutorials. + +--- + +If you've got those four things: a performant LLM, the right MCP servers, a basic understanding of LLM cost, and a place to ask questions, you're more than ready to Goose. + +Now, head over to the [Quickstart Guide](https://block.github.io/goose/docs/quickstart) and get started. + +Oh and when you get to the [Tic-Tac-Toe game](https://block.github.io/goose/docs/quickstart/#write-prompt), I’ll bet you 10 Goosebucks you won’t beat the bot. + + + + + + + + + + + + + + + \ No newline at end of file From ad9187f209b1ea932a40dbfe325e0871a097ef94 Mon Sep 17 00:00:00 2001 From: Angie Jones Date: Thu, 24 Apr 2025 13:40:44 -0500 Subject: [PATCH 007/216] docs: tutorial shorts (#2342) --- documentation/docs/tutorials/blender-mcp.md | 2 +- documentation/docs/tutorials/selenium-mcp.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/docs/tutorials/blender-mcp.md b/documentation/docs/tutorials/blender-mcp.md index b9f45dad..01bf20b2 100644 --- a/documentation/docs/tutorials/blender-mcp.md +++ b/documentation/docs/tutorials/blender-mcp.md @@ -7,7 +7,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; - + This tutorial covers how to add the [Blender MCP Server](https://github.com/ahujasid/blender-mcp) as a Goose extension to create 3D scenes, control Blender with natural language, generate models, apply materials, and more. diff --git a/documentation/docs/tutorials/selenium-mcp.md b/documentation/docs/tutorials/selenium-mcp.md index 065472b9..819efca1 100644 --- a/documentation/docs/tutorials/selenium-mcp.md +++ b/documentation/docs/tutorials/selenium-mcp.md @@ -7,7 +7,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; - + This tutorial covers how to add the [Selenium MCP Server](https://github.com/angiejones/mcp-selenium) as a Goose extension to automate browser interactions such as navigating web pages and completing forms. From 838bb91e95ce0dce21b8fb2e3e00de48465d1650 Mon Sep 17 00:00:00 2001 From: Angie Jones Date: Thu, 24 Apr 2025 15:34:44 -0500 Subject: [PATCH 008/216] docs: remove invalid step (#2344) --- documentation/docs/guides/session-recipes.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/documentation/docs/guides/session-recipes.md b/documentation/docs/guides/session-recipes.md index 9d72ba59..638f27f5 100644 --- a/documentation/docs/guides/session-recipes.md +++ b/documentation/docs/guides/session-recipes.md @@ -27,10 +27,11 @@ You'll need to provide both instructions and activities for your Recipe. 1. While in the session you want to save as a recipe, click the menu icon **⋮** in the top right corner 2. Select **Make Agent from this session** 3. In the dialog that appears: - - Edit the **instructions** to clarify its purpose. - - Add or remove **activities** as needed. - 4. Click **Save** - 5. Copy the Recipe URL and use it however you like (e.g., share it with teammates, drop it in documentation, or keep it for yourself) + - Name the recipe + - Provide a description + - Some **activities** will be automatically generated. Add or remove as needed. + - A set of **instructions** will also be automatically generated. Review and edit as needed. + 4. Copy the Recipe URL and use it however you like (e.g., share it with teammates, drop it in documentation, or keep it for yourself) From a6026d1484be5d4fb67ec0e523f08c192eca9756 Mon Sep 17 00:00:00 2001 From: Zaki Ali Date: Thu, 24 Apr 2025 14:53:52 -0700 Subject: [PATCH 009/216] fix: only remove toolshim paths that we know of to preserve full paths to extension binaries (#2325) --- .../settings_v2/extensions/utils.ts | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/ui/desktop/src/components/settings_v2/extensions/utils.ts b/ui/desktop/src/components/settings_v2/extensions/utils.ts index 5626d9cc..3c93f3ba 100644 --- a/ui/desktop/src/components/settings_v2/extensions/utils.ts +++ b/ui/desktop/src/components/settings_v2/extensions/utils.ts @@ -167,9 +167,25 @@ export async function replaceWithShims(cmd: string) { } export function removeShims(cmd: string) { - const segments = cmd.split('/'); - // Filter out any empty segments (which can happen with trailing slashes) - const nonEmptySegments = segments.filter((segment) => segment.length > 0); - // Return the last segment or empty string if there are no segments - return nonEmptySegments.length > 0 ? nonEmptySegments[nonEmptySegments.length - 1] : ''; + // Only remove shims if the path matches our known shim patterns + const shimPatterns = [ + /\/goose-shims\/goosed$/, + /\/goose-shims\/jbang$/, + /\/goose-shims\/npx$/, + /\/goose-shims\/uvx$/, + ]; + + // Check if the command matches any shim pattern + const isShim = shimPatterns.some((pattern) => pattern.test(cmd)); + + if (isShim) { + const segments = cmd.split('/'); + // Filter out any empty segments (which can happen with trailing slashes) + const nonEmptySegments = segments.filter((segment) => segment.length > 0); + // Return the last segment or empty string if there are no segments + return nonEmptySegments.length > 0 ? nonEmptySegments[nonEmptySegments.length - 1] : ''; + } + + // If it's not a shim, return the original command + return cmd; } From 9805d317344dac0c674c0f075c8572566dcfc1cd Mon Sep 17 00:00:00 2001 From: John Austin <8884923+JohnMAustin78@users.noreply.github.com> Date: Thu, 24 Apr 2025 15:40:17 -0700 Subject: [PATCH 010/216] docs: Jaustin/goose-allowlist (#2345) Co-authored-by: John Austin Co-authored-by: Angie Jones --- documentation/docs/guides/allowlist.md | 88 ++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 documentation/docs/guides/allowlist.md diff --git a/documentation/docs/guides/allowlist.md b/documentation/docs/guides/allowlist.md new file mode 100644 index 00000000..5a1f3081 --- /dev/null +++ b/documentation/docs/guides/allowlist.md @@ -0,0 +1,88 @@ +--- +sidebar_position: 19 +title: Goose Extension Allowlist +sidebar_label: Extension Allowlist +--- + +Goose is an extensible framework that, by default, allows you to install any MCP server. However, you may want stricter controls on which MCP servers can be installed as extensions (e.g. in a corporate setting). + +This guide explains how you can create an **allowlist** of safe extensions that work with Goose Desktop and CLI. An allowlist lets administrators control which MCP servers can be installed as Goose extensions. When enabled, Goose will only install extensions that are on the list, and will block installation of any others. + +## How It Works + +1. The allowlist is a YAML file that contains a list of allowed extension commands. +2. Goose fetches the allowlist from a URL specified by the `GOOSE_ALLOWLIST` environment variable. +3. The allowlist is fetched when first needed and is cached. It is refetched on every restart of Goose. +4. When a user attempts to install an extension, Goose checks the MCP server's installation command against the allowlist. +5. If the command is not in the allowlist, the extension installation is rejected. + +## Configuration + +### 1. Create and Deploy Allowlist + +The allowlist must be a YAML file with the following structure: + +```yaml +extensions: + - id: extension-id-1 + command: command-name-1 + - id: extension-id-2 + command: command-name-2 + # ... more extensions +``` + +#### Example + +In this example, only the Slack, GitHub, and Jira extensions can be installed: + +```yaml +extensions: + - id: slack + command: uvx mcp_slack + - id: github + command: uvx mcp_github + - id: jira + command: uvx mcp_jira +``` + + +After creating the allowlist, you must deploy it to a URL. + + +### 2. Set Environment Variable + +Create an environment variable called `GOOSE_ALLOWLIST` and set the value to the URL of your YAML file: + +```bash +export GOOSE_ALLOWLIST=https://example.com/goose-allowlist.yaml +``` + +You can also add this export to your shell configuration file (On a Mac, it's your `~/.bashrc` or `~/.zshrc` file). + +:::info +If this environment variable is not set, no allowlist restrictions are applied. With no restrictions, all extensions can be installed. +::: + + +## Best Practices + +To effectively use the allowlist with exact matching: + +1. **Specify commands**: Define the exact command string that you want to allow. +2. **Include full paths**: If you want to allow a command only from a specific path, include the full path in the allowlist. +3. **Audit regularly**: Review your allowlist frequently to ensure it only contains the commands you intend to allow. +4. **Use HTTPS**: Use an HTTPS URL for your allowlist to prevent man-in-the-middle attacks. +5. **Restrict edit access**: Ensure that only authorized users can edit the allowlist. +6. **Validate entries**: Carefully review the allowlist to ensure only trusted commands are included. +7. **Monitor installations**: Watch for rejected commands during extension installation, which might indicate attempted abuse. + + +## Troubleshooting + +If extensions are being rejected unexpectedly: + +1. Check if the `GOOSE_ALLOWLIST` environment variable is set correctly. +2. Verify that the allowlist file is accessible from the server. +3. Ensure the allowlist file is properly formatted YAML. +4. Check [server logs](/docs/guides/logs) for any errors related to fetching or parsing the allowlist. +5. Verify that the command in the extension installations exactly matches what's in the allowlist. \ No newline at end of file From bae5b0c0c0505f6c3f1d42cc7cdd176edc009e07 Mon Sep 17 00:00:00 2001 From: Best Codes <106822363+The-Best-Codes@users.noreply.github.com> Date: Thu, 24 Apr 2025 17:44:56 -0500 Subject: [PATCH 011/216] feat: bottom bar text truncation and tooltips (#2324) --- .../src/components/bottom_menu/BottomMenu.tsx | 40 +++++++++++++++- .../bottom_menu/BottomMenuModeSelection.tsx | 6 ++- .../models/bottom_bar/ModelsBottomBar.tsx | 48 ++++++++++++++++--- 3 files changed, 84 insertions(+), 10 deletions(-) diff --git a/ui/desktop/src/components/bottom_menu/BottomMenu.tsx b/ui/desktop/src/components/bottom_menu/BottomMenu.tsx index 25fab978..8537bc59 100644 --- a/ui/desktop/src/components/bottom_menu/BottomMenu.tsx +++ b/ui/desktop/src/components/bottom_menu/BottomMenu.tsx @@ -1,4 +1,4 @@ -import React, { useState, useEffect, useRef } from 'react'; +import { useState, useEffect, useRef } from 'react'; import { useModel } from '../settings/models/ModelContext'; import { Sliders } from 'lucide-react'; import { AlertType, useAlerts } from '../alerts'; @@ -12,6 +12,7 @@ import { BottomMenuModeSelection } from './BottomMenuModeSelection'; import ModelsBottomBar from '../settings_v2/models/bottom_bar/ModelsBottomBar'; import { useConfig } from '../ConfigContext'; import { getCurrentModelAndProvider } from '../settings_v2/models'; +import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/Tooltip'; const TOKEN_LIMIT_DEFAULT = 128000; // fallback for custom models that the backend doesn't know about const TOKEN_WARNING_THRESHOLD = 0.8; // warning shows at 80% of the token limit @@ -33,6 +34,10 @@ export default function BottomMenu({ const toolCount = useToolCount(); const { getProviders, read } = useConfig(); const [tokenLimit, setTokenLimit] = useState(TOKEN_LIMIT_DEFAULT); + const [isDirTruncated, setIsDirTruncated] = useState(false); + // eslint-disable-next-line no-undef + const dirRef = useRef(null); + const [isTooltipOpen, setIsTooltipOpen] = useState(false); // Load providers and get current model's token limit const loadProviderDetails = async () => { @@ -137,6 +142,21 @@ export default function BottomMenu({ }; }, [isModelMenuOpen]); + useEffect(() => { + const checkTruncation = () => { + if (dirRef.current) { + setIsDirTruncated(dirRef.current.scrollWidth > dirRef.current.clientWidth); + } + }; + checkTruncation(); + window.addEventListener('resize', checkTruncation); + return () => window.removeEventListener('resize', checkTruncation); + }, []); + + useEffect(() => { + setIsTooltipOpen(false); + }, [isDirTruncated]); + return (
      {/* Directory Chooser - Always visible */} @@ -151,7 +171,23 @@ export default function BottomMenu({ }} > - Working in {window.appConfig.get('GOOSE_WORKING_DIR')} + + + + + Working in {window.appConfig.get('GOOSE_WORKING_DIR') as string} + + + {isDirTruncated && ( + + {window.appConfig.get('GOOSE_WORKING_DIR') as string} + + )} + + diff --git a/ui/desktop/src/components/bottom_menu/BottomMenuModeSelection.tsx b/ui/desktop/src/components/bottom_menu/BottomMenuModeSelection.tsx index d6f4e12c..6858c89b 100644 --- a/ui/desktop/src/components/bottom_menu/BottomMenuModeSelection.tsx +++ b/ui/desktop/src/components/bottom_menu/BottomMenuModeSelection.tsx @@ -118,12 +118,14 @@ export const BottomMenuModeSelection = ({ setView }: BottomMenuModeSelectionProp } return ( -
      +
      setIsGooseModeMenuOpen(!isGooseModeMenuOpen)} > - Goose Mode: {getValueByKey(gooseMode)} + + Goose Mode: {getValueByKey(gooseMode)} + {isGooseModeMenuOpen ? ( ) : ( diff --git a/ui/desktop/src/components/settings_v2/models/bottom_bar/ModelsBottomBar.tsx b/ui/desktop/src/components/settings_v2/models/bottom_bar/ModelsBottomBar.tsx index 406545c2..52e4f340 100644 --- a/ui/desktop/src/components/settings_v2/models/bottom_bar/ModelsBottomBar.tsx +++ b/ui/desktop/src/components/settings_v2/models/bottom_bar/ModelsBottomBar.tsx @@ -5,6 +5,7 @@ import { useConfig } from '../../../ConfigContext'; import { getCurrentModelAndProviderForDisplay } from '../index'; import { AddModelModal } from '../subcomponents/AddModelModal'; import { View } from '../../../../App'; +import { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } from '../../../ui/Tooltip'; interface ModelsBottomBarProps { dropdownRef: React.RefObject; @@ -17,6 +18,10 @@ export default function ModelsBottomBar({ dropdownRef, setView }: ModelsBottomBa const [model, setModel] = useState(''); const [isAddModelModalOpen, setIsAddModelModalOpen] = useState(false); const menuRef = useRef(null); + const [isModelTruncated, setIsModelTruncated] = useState(false); + // eslint-disable-next-line no-undef + const modelRef = useRef(null); + const [isTooltipOpen, setIsTooltipOpen] = useState(false); useEffect(() => { (async () => { @@ -24,11 +29,26 @@ export default function ModelsBottomBar({ dropdownRef, setView }: ModelsBottomBa readFromConfig: read, getProviders, }); - setProvider(modelProvider.provider); - setModel(modelProvider.model); + setProvider(modelProvider.provider as string | null); + setModel(modelProvider.model as string); })(); }); + useEffect(() => { + const checkTruncation = () => { + if (modelRef.current) { + setIsModelTruncated(modelRef.current.scrollWidth > modelRef.current.clientWidth); + } + }; + checkTruncation(); + window.addEventListener('resize', checkTruncation); + return () => window.removeEventListener('resize', checkTruncation); + }, [model]); + + useEffect(() => { + setIsTooltipOpen(false); + }, [isModelTruncated]); + // Add click outside handler useEffect(() => { function handleClickOutside(event: MouseEvent) { @@ -52,14 +72,30 @@ export default function ModelsBottomBar({ dropdownRef, setView }: ModelsBottomBa
      setIsModelMenuOpen(!isModelMenuOpen)} > - {model} + + + + + {model || 'Select Model'} + + + {isModelTruncated && ( + + {model || 'Select Model'} + + )} + + {isModelMenuOpen ? ( - + ) : ( - + )}
      From b27061221e56cb6f584ff4cac6e4894177e0b2c7 Mon Sep 17 00:00:00 2001 From: Angie Jones Date: Thu, 24 Apr 2025 19:44:58 -0500 Subject: [PATCH 012/216] docs: new blender video (#2347) --- documentation/docs/tutorials/blender-mcp.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/docs/tutorials/blender-mcp.md b/documentation/docs/tutorials/blender-mcp.md index 01bf20b2..a6d4572c 100644 --- a/documentation/docs/tutorials/blender-mcp.md +++ b/documentation/docs/tutorials/blender-mcp.md @@ -7,7 +7,7 @@ import Tabs from '@theme/Tabs'; import TabItem from '@theme/TabItem'; import YouTubeShortEmbed from '@site/src/components/YouTubeShortEmbed'; - + This tutorial covers how to add the [Blender MCP Server](https://github.com/ahujasid/blender-mcp) as a Goose extension to create 3D scenes, control Blender with natural language, generate models, apply materials, and more. From f02d9a69e6e9303030a8d464587adca298341f93 Mon Sep 17 00:00:00 2001 From: Angie Jones Date: Thu, 24 Apr 2025 22:15:26 -0500 Subject: [PATCH 013/216] docs: added description to Recipe guide (#2350) --- documentation/docs/guides/session-recipes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/documentation/docs/guides/session-recipes.md b/documentation/docs/guides/session-recipes.md index 638f27f5..dda8a6fa 100644 --- a/documentation/docs/guides/session-recipes.md +++ b/documentation/docs/guides/session-recipes.md @@ -2,6 +2,7 @@ sidebar_position: 5 title: Create a Recipe from Your Session sidebar_label: Shareable Recipes +description: "Share a Goose session setup (including tools, goals, and instructions) as a reusable recipe that others can launch with a single click" --- import Tabs from '@theme/Tabs'; From b5273c71f4f12a7342d628079ac5b1cee666f597 Mon Sep 17 00:00:00 2001 From: Yingjie He Date: Fri, 25 Apr 2025 10:47:43 -0700 Subject: [PATCH 014/216] feat: reduce the # of gdrive tools (#2346) --- crates/goose-mcp/src/google_drive/mod.rs | 420 +++++++---------------- 1 file changed, 122 insertions(+), 298 deletions(-) diff --git a/crates/goose-mcp/src/google_drive/mod.rs b/crates/goose-mcp/src/google_drive/mod.rs index 0bd51724..d61883a1 100644 --- a/crates/goose-mcp/src/google_drive/mod.rs +++ b/crates/goose-mcp/src/google_drive/mod.rs @@ -285,55 +285,10 @@ impl GoogleDriveRouter { }), ); - let upload_tool = Tool::new( - "upload".to_string(), - indoc! {r#" - Upload a file to Google Drive. - "#} - .to_string(), - json!({ - "type": "object", - "properties": { - "name": { - "type": "string", - "description": "The desired filename to use for the uploaded file.", - }, - "mimeType": { - "type": "string", - "description": "The MIME type of the file.", - }, - "body": { - "type": "string", - "description": "Plain text body of the file to upload. Mutually exclusive with path.", - }, - "path": { - "type": "string", - "description": "Path to the file to upload. Mutually exclusive with body.", - }, - "parentId": { - "type": "string", - "description": "ID of the parent folder in which to create the file. (default: creates files in the root of 'My Drive')", - }, - "allowSharedDrives": { - "type": "boolean", - "description": "Whether to allow access to shared drives or just your personal drive (default: false)", - } - }, - "required": ["name", "mimeType"], - }), - Some(ToolAnnotations { - title: Some("Upload file to GDrive".to_string()), - read_only_hint: false, - destructive_hint: false, - idempotent_hint: false, - open_world_hint: false, - }), - ); - let create_file_tool = Tool::new( "create_file".to_string(), indoc! {r#" - Create a Google file (Document, Spreadsheet, Slides, folder, or shortcut) in Google Drive. + Create a new file, including Document, Spreadsheet, Slides, folder, or shortcut, in Google Drive. "#} .to_string(), json!({ @@ -343,10 +298,9 @@ impl GoogleDriveRouter { "type": "string", "description": "Name of the file to create", }, - "fileType": { + "mimeType": { "type": "string", - "enum": ["document", "spreadsheet", "slides", "folder", "shortcut"], - "description": "Type of Google file to create (document, spreadsheet, slides, folder, or shortcut)", + "description": "The MIME type of the file.", }, "body": { "type": "string", @@ -369,7 +323,7 @@ impl GoogleDriveRouter { "description": "Whether to allow access to shared drives or just your personal drive (default: false)", } }, - "required": ["name", "fileType"], + "required": ["name", "mimeType"], }), Some(ToolAnnotations { title: Some("Create new file in GDrive".to_string()), @@ -416,7 +370,7 @@ impl GoogleDriveRouter { let update_file_tool = Tool::new( "update_file".to_string(), indoc! {r#" - Update a normal non-Google file (not Document, Spreadsheet, and Slides) in Google Drive with new content. + Update an existing file in Google Drive with new content. "#} .to_string(), json!({ @@ -432,11 +386,11 @@ impl GoogleDriveRouter { }, "body": { "type": "string", - "description": "Plain text body of the file to upload. Mutually exclusive with path.", + "description": "Plain text body of the file to upload. Mutually exclusive with path (required for Google Document and Google Spreadsheet types).", }, "path": { "type": "string", - "description": "Path to a local file to use to update the Google Drive file. Mutually exclusive with body.", + "description": "Path to a local file to use to update the Google Drive file. Mutually exclusive with body (required for Google Slides type)", }, "allowSharedDrives": { "type": "boolean", @@ -446,49 +400,7 @@ impl GoogleDriveRouter { "required": ["fileId", "mimeType"], }), Some(ToolAnnotations { - title: Some("Update a non-Google file".to_string()), - read_only_hint: false, - destructive_hint: true, - idempotent_hint: false, - open_world_hint: false, - }), - ); - - let update_google_file_tool = Tool::new( - "update_google_file".to_string(), - indoc! {r#" - Update a Google file (Document, Spreadsheet, or Slides) in Google Drive. - "#} - .to_string(), - json!({ - "type": "object", - "properties": { - "fileId": { - "type": "string", - "description": "ID of the file to update", - }, - "fileType": { - "type": "string", - "enum": ["document", "spreadsheet", "slides"], - "description": "Type of Google file to update (document, spreadsheet, or slides)", - }, - "body": { - "type": "string", - "description": "Text content for the file (required for document and spreadsheet types)", - }, - "path": { - "type": "string", - "description": "Path to a file to upload (required for slides type)", - }, - "allowSharedDrives": { - "type": "boolean", - "description": "Whether to allow access to shared drives or just your personal drive (default: false)", - } - }, - "required": ["fileId", "fileType"], - }), - Some(ToolAnnotations { - title: Some("Update a Google file".to_string()), + title: Some("Update a file".to_string()), read_only_hint: false, destructive_hint: true, idempotent_hint: false, @@ -819,12 +731,10 @@ impl GoogleDriveRouter { 7. get_comments - List a file or folder's comments 8. create_comment - Create a comment on a file or folder 9. reply - Reply to a comment on a file or folder - 10. create_file - Create Google Workspace files (Docs, Sheets, or Slides) - 11. update_google_file - Update existing Google Workspace files (Docs, Sheets, or Slides) - 12. upload - Upload any kind of file to Google Drive - 13. update_file - Update existing normal non-Google Workspace files - 14. sheets_tool - Work with Google Sheets data using various operations - 15. docs_tool - Work with Google Docs data using various operations + 10. create_file - Create a new file + 11. update_file - Update a existing file + 12. sheets_tool - Work with Google Sheets data using various operations + 13. docs_tool - Work with Google Docs data using various operations ## Available Tools @@ -893,28 +803,24 @@ impl GoogleDriveRouter { Reply to an existing comment. ### 10. Create File Tool - Create Google Workspace files (Docs, Sheets, or Slides) directly in Google Drive. + Create any kind of file, including Google Workspace files (Docs, Sheets, or Slides) directly in Google Drive. - For Google Docs: Converts Markdown text to a Google Document - For Google Sheets: Converts CSV text to a Google Spreadsheet - For Google Slides: Converts a PowerPoint file to Google Slides (requires a path to the powerpoint file) - - ### 11. Update Google File Tool - Update existing Google Workspace files (Docs, Sheets, or Slides) in Google Drive. - - For Google Docs: Updates with new Markdown text - - For Google Sheets: Updates with new CSV text - - For Google Slides: Updates with a new PowerPoint file (requires a path to the powerpoint file) + - Other: No file conversion. *Note*: All updates overwrite the existing content with the new content provided. To modify specific parts of the document, you must include the changes as part of the entire document. - ### 12. Upload Tool - Upload any kind of file to Google Drive. The file will not be converted to a Google Workspace file. + ### 11. Update File Tool + Replace the entire contents of an existing file with new content, including Google Workspace files (Docs, Sheets, or Slides). + - For Google Docs: Updates with new Markdown text + - For Google Sheets: Updates with new CSV text + - For Google Slides: Updates with a new PowerPoint file (requires a path to the powerpoint file) + - Other: No file conversion. - ### 13. Update File Tool - Replace the entire contents of an existing Google Drive file with new content. This is for non-Google Workspace files only. - - ### 14. Sheets Tool + ### 12. Sheets Tool Work with Google Sheets data using various operations: - list_sheets: List all sheets in a spreadsheet - get_columns: Get column headers from a specific sheet @@ -941,7 +847,7 @@ impl GoogleDriveRouter { - title: Title for the new sheet (required for add_sheet operation) - valueInputOption: How input data should be interpreted (RAW or USER_ENTERED) - ### 15. Docs Tool + ### 13. Docs Tool Work with Google Docs data using various operations: - get_document: Get the full document content - insert_text: Insert text at a specific location @@ -986,11 +892,9 @@ impl GoogleDriveRouter { tools: vec![ search_tool, read_tool, - upload_tool, create_file_tool, move_file_tool, update_file_tool, - update_google_file_tool, sheets_tool, docs_tool, get_comments_tool, @@ -1922,7 +1826,8 @@ impl GoogleDriveRouter { } } - async fn upload(&self, params: Value) -> Result, ToolError> { + async fn create_file(&self, params: Value) -> Result, ToolError> { + // Extract common parameters let filename = params .get("name") @@ -1939,64 +1844,11 @@ impl GoogleDriveRouter { "The mimeType param is required".to_string(), ))?; + let parent_id = params.get("parentId").and_then(|q| q.as_str()); + let target_id = params.get("targetId").and_then(|q| q.as_str()); let body = params.get("body").and_then(|q| q.as_str()); let path = params.get("path").and_then(|q| q.as_str()); - let reader: Box = match (body, path) { - (None, None) | (Some(_), Some(_)) => { - return Err(ToolError::InvalidParameters( - "Either the body or path param is required".to_string(), - )) - } - (Some(b), None) => Box::new(Cursor::new(b.as_bytes().to_owned())), - (None, Some(p)) => Box::new(std::fs::File::open(p).map_err(|e| { - ToolError::ExecutionError(format!("Error opening {}: {}", p, e).to_string()) - })?), - }; - - let parent_id = params.get("parentId").and_then(|q| q.as_str()); - - let allow_shared_drives = params - .get("allowSharedDrives") - .and_then(|q| q.as_bool()) - .unwrap_or_default(); - - self.upload_to_drive( - FileOperation::Create { - name: filename.to_string(), - }, - reader, - mime_type, - mime_type, - parent_id, - allow_shared_drives, - None, - ) - .await - } - - async fn create_file(&self, params: Value) -> Result, ToolError> { - // Extract common parameters - let filename = - params - .get("name") - .and_then(|q| q.as_str()) - .ok_or(ToolError::InvalidParameters( - "The name param is required".to_string(), - ))?; - - let file_type = - params - .get("fileType") - .and_then(|q| q.as_str()) - .ok_or(ToolError::InvalidParameters( - "The fileType param is required".to_string(), - ))?; - - let parent_id = params.get("parentId").and_then(|q| q.as_str()); - - let target_id = params.get("targetId").and_then(|q| q.as_str()); - let allow_shared_drives = params .get("allowSharedDrives") .and_then(|q| q.as_bool()) @@ -2004,81 +1856,93 @@ impl GoogleDriveRouter { // Determine source and target MIME types based on file_type let (source_mime_type, target_mime_type, reader): (String, String, Box) = - match file_type { - "document" => { - let body = params.get("body").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The body param is required for document file type".to_string(), - ), - )?; + match mime_type { + "application/vnd.google-apps.document" => { + if body.is_none() { + return Err(ToolError::InvalidParameters( + "The body param is required for google document file type".to_string(), + )); + } ( "text/markdown".to_string(), - "application/vnd.google-apps.document".to_string(), - Box::new(Cursor::new(body.as_bytes().to_owned())), + mime_type.to_string(), + Box::new(Cursor::new(body.unwrap().as_bytes().to_owned())), ) } - "spreadsheet" => { - let body = params.get("body").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The body param is required for spreadsheet file type".to_string(), - ), - )?; + "application/vnd.google-apps.spreadsheet" => { + if body.is_none() { + return Err(ToolError::InvalidParameters( + "The body param is required for google spreadsheet file type" + .to_string(), + )); + } + ( "text/csv".to_string(), - "application/vnd.google-apps.spreadsheet".to_string(), - Box::new(Cursor::new(body.as_bytes().to_owned())), + mime_type.to_string(), + Box::new(Cursor::new(body.unwrap().as_bytes().to_owned())), ) } - "slides" => { - let path = params.get("path").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The path param is required for slides file type".to_string(), - ), - )?; + "application/vnd.google-apps.presentation" => { + if path.is_none() { + return Err(ToolError::InvalidParameters( + "The path param is required for google slides file type".to_string(), + )); + } - let file = std::fs::File::open(path).map_err(|e| { + let file = std::fs::File::open(path.unwrap()).map_err(|e| { ToolError::ExecutionError( - format!("Error opening {}: {}", path, e).to_string(), + format!("Error opening {}: {}", path.unwrap(), e).to_string(), ) })?; ( "application/vnd.openxmlformats-officedocument.presentationml.presentation" .to_string(), - "application/vnd.google-apps.presentation".to_string(), + mime_type.to_string(), Box::new(file), ) } - "folder" => { + "application/vnd.google-apps.folder" => { let emptybuf: [u8; 0] = []; let empty_stream = Cursor::new(emptybuf); ( - "application/vnd.google-apps.folder".to_string(), - "application/vnd.google-apps.folder".to_string(), + mime_type.to_string(), + mime_type.to_string(), Box::new(empty_stream), ) } - "shortcut" => { + "application/vnd.google-apps.shortcut" => { if target_id.is_none() { return Err(ToolError::InvalidParameters( "The targetId param is required when creating a shortcut".to_string(), - )) + )); } let emptybuf: [u8; 0] = []; let empty_stream = Cursor::new(emptybuf); ( - "application/vnd.google-apps.shortcut".to_string(), - "application/vnd.google-apps.shortcut".to_string(), + mime_type.to_string(), + mime_type.to_string(), Box::new(empty_stream), ) } _ => { - return Err(ToolError::InvalidParameters(format!( - "Invalid fileType: {}. Supported types are: document, spreadsheet, slides, folder, shortcut", - file_type - ))) + let reader: Box = match (body, path) { + (None, None) | (Some(_), Some(_)) => { + return Err(ToolError::InvalidParameters( + "Either the body or path param is required".to_string(), + )) + } + (Some(b), None) => Box::new(Cursor::new(b.as_bytes().to_owned())), + (None, Some(p)) => Box::new(std::fs::File::open(p).map_err(|e| { + ToolError::ExecutionError( + format!("Error opening {}: {}", p, e).to_string(), + ) + })?), + }; + (mime_type.to_string(), mime_type.to_string(), reader) } }; @@ -2161,117 +2025,79 @@ impl GoogleDriveRouter { let body = params.get("body").and_then(|q| q.as_str()); let path = params.get("path").and_then(|q| q.as_str()); - let reader: Box = match (body, path) { - (None, None) | (Some(_), Some(_)) => { - return Err(ToolError::InvalidParameters( - "Either the body or path param is required".to_string(), - )) - } - (Some(b), None) => Box::new(Cursor::new(b.as_bytes().to_owned())), - (None, Some(p)) => Box::new(std::fs::File::open(p).map_err(|e| { - ToolError::ExecutionError(format!("Error opening {}: {}", p, e).to_string()) - })?), - }; - - let allow_shared_drives = params - .get("allowSharedDrives") - .and_then(|q| q.as_bool()) - .unwrap_or_default(); - - self.upload_to_drive( - FileOperation::Update { - file_id: file_id.to_string(), - }, - reader, - mime_type, - mime_type, - None, - allow_shared_drives, - None, - ) - .await - } - - async fn update_google_file(&self, params: Value) -> Result, ToolError> { - // Extract common parameters - let file_id = - params - .get("fileId") - .and_then(|q| q.as_str()) - .ok_or(ToolError::InvalidParameters( - "The fileId param is required".to_string(), - ))?; - - let file_type = - params - .get("fileType") - .and_then(|q| q.as_str()) - .ok_or(ToolError::InvalidParameters( - "The fileType param is required".to_string(), - ))?; - - let allow_shared_drives = params - .get("allowSharedDrives") - .and_then(|q| q.as_bool()) - .unwrap_or_default(); - // Determine source and target MIME types based on file_type let (source_mime_type, target_mime_type, reader): (String, String, Box) = - match file_type { - "document" => { - let body = params.get("body").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The body param is required for document file type".to_string(), - ), - )?; + match mime_type { + "application/vnd.google-apps.document" => { + if body.is_none() { + return Err(ToolError::InvalidParameters( + "The body param is required for google document file type".to_string(), + )); + } ( "text/markdown".to_string(), - "application/vnd.google-apps.document".to_string(), - Box::new(Cursor::new(body.as_bytes().to_owned())), + mime_type.to_string(), + Box::new(Cursor::new(body.unwrap().as_bytes().to_owned())), ) } - "spreadsheet" => { - let body = params.get("body").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The body param is required for spreadsheet file type".to_string(), - ), - )?; + "application/vnd.google-apps.spreadsheet" => { + if body.is_none() { + return Err(ToolError::InvalidParameters( + "The body param is required for google spreadsheet file type" + .to_string(), + )); + } + ( "text/csv".to_string(), - "application/vnd.google-apps.spreadsheet".to_string(), - Box::new(Cursor::new(body.as_bytes().to_owned())), + mime_type.to_string(), + Box::new(Cursor::new(body.unwrap().as_bytes().to_owned())), ) } - "slides" => { - let path = params.get("path").and_then(|q| q.as_str()).ok_or( - ToolError::InvalidParameters( - "The path param is required for slides file type".to_string(), - ), - )?; + "application/vnd.google-apps.presentation" => { + if path.is_none() { + return Err(ToolError::InvalidParameters( + "The path param is required for google slides file type".to_string(), + )); + } - let file = std::fs::File::open(path).map_err(|e| { + let file = std::fs::File::open(path.unwrap()).map_err(|e| { ToolError::ExecutionError( - format!("Error opening {}: {}", path, e).to_string(), + format!("Error opening {}: {}", path.unwrap(), e).to_string(), ) })?; ( "application/vnd.openxmlformats-officedocument.presentationml.presentation" .to_string(), - "application/vnd.google-apps.presentation".to_string(), + mime_type.to_string(), Box::new(file), ) } _ => { - return Err(ToolError::InvalidParameters(format!( - "Invalid fileType: {}. Supported types are: document, spreadsheet, slides", - file_type - ))) + let reader: Box = match (body, path) { + (None, None) | (Some(_), Some(_)) => { + return Err(ToolError::InvalidParameters( + "Either the body or path param is required".to_string(), + )) + } + (Some(b), None) => Box::new(Cursor::new(b.as_bytes().to_owned())), + (None, Some(p)) => Box::new(std::fs::File::open(p).map_err(|e| { + ToolError::ExecutionError( + format!("Error opening {}: {}", p, e).to_string(), + ) + })?), + }; + (mime_type.to_string(), mime_type.to_string(), reader) } }; - // Upload the file to Google Drive + let allow_shared_drives = params + .get("allowSharedDrives") + .and_then(|q| q.as_bool()) + .unwrap_or_default(); + self.upload_to_drive( FileOperation::Update { file_id: file_id.to_string(), @@ -3135,11 +2961,9 @@ impl Router for GoogleDriveRouter { match tool_name.as_str() { "search" => this.search(arguments).await, "read" => this.read(arguments).await, - "upload" => this.upload(arguments).await, "create_file" => this.create_file(arguments).await, "move_file" => this.move_file(arguments).await, "update_file" => this.update_file(arguments).await, - "update_google_file" => this.update_google_file(arguments).await, "sheets_tool" => this.sheets_tool(arguments).await, "docs_tool" => this.docs_tool(arguments).await, "create_comment" => this.create_comment(arguments).await, From 32a37a2db33624e8736686d79297f8230c00b740 Mon Sep 17 00:00:00 2001 From: Lily Delalande <119957291+lily-de@users.noreply.github.com> Date: Fri, 25 Apr 2025 15:04:04 -0400 Subject: [PATCH 015/216] ui: context management modal (#2326) --- ui/desktop/src/components/ChatView.tsx | 99 ++++++++-- .../src/components/bottom_menu/BottomMenu.tsx | 178 +++++++++--------- .../SessionSummaryModal.tsx | 126 +++++++++++++ .../components/context_management/index.ts | 37 ++++ ui/desktop/src/hooks/useMessageStream.ts | 1 + 5 files changed, 341 insertions(+), 100 deletions(-) create mode 100644 ui/desktop/src/components/context_management/SessionSummaryModal.tsx create mode 100644 ui/desktop/src/components/context_management/index.ts diff --git a/ui/desktop/src/components/ChatView.tsx b/ui/desktop/src/components/ChatView.tsx index 33af8278..25f597f4 100644 --- a/ui/desktop/src/components/ChatView.tsx +++ b/ui/desktop/src/components/ChatView.tsx @@ -19,6 +19,7 @@ import { fetchSessionDetails } from '../sessions'; // import { configureRecipeExtensions } from '../utils/recipeExtensions'; import 'react-toastify/dist/ReactToastify.css'; import { useMessageStream } from '../hooks/useMessageStream'; +import { SessionSummaryModal } from './context_management/SessionSummaryModal'; import { Recipe } from '../recipe'; import { Message, @@ -29,6 +30,7 @@ import { ToolResponseMessageContent, ToolConfirmationRequestMessageContent, } from '../types/message'; +import { manageContext } from './context_management'; export interface ChatType { id: string; @@ -70,6 +72,16 @@ export default function ChatView({ const [sessionTokenCount, setSessionTokenCount] = useState(0); const scrollRef = useRef(null); + const [isSummaryModalOpen, setIsSummaryModalOpen] = useState(false); + const [summaryContent, setSummaryContent] = useState(''); + const [summarizedThread, setSummarizedThread] = useState([]); + + // Add this function to handle opening the summary modal with content + const handleViewSummary = (summary: string) => { + setSummaryContent(summary); + setIsSummaryModalOpen(true); + }; + // Get recipeConfig directly from appConfig const recipeConfig = window.appConfig.get('recipeConfig') as Recipe | null; @@ -288,9 +300,55 @@ export default function ChatView({ } }; + // Add this function to ChatView.tsx to detect if a message contains ContextLengthExceededContent + const hasContextLengthExceededContent = (message: Message): boolean => { + return message.content.some((content) => content.type === 'contextLengthExceeded'); + }; + + const handleContextLengthExceeded = async () => { + // If we already have a summary, use that + if (summaryContent) { + return summaryContent; + } + + // Otherwise, generate a summary + const response = await manageContext({ messages: messages, manageAction: 'summarize' }); + setSummarizedThread(response.messages); + return response.messages[0].text; + }; + + const SummarizedNotification = ({ + onViewSummary, + }: { + onViewSummary: (summaryContent: string) => void; + }) => { + const handleViewSummary = async () => { + // Await the result to get a string + const summary = summaryContent || (await handleContextLengthExceeded()); + onViewSummary(summary); // Now always passing a string + }; + + return ( +
      + Session summarized + +
      + ); + }; + // Filter out standalone tool response messages for rendering // They will be shown as part of the tool invocation in the assistant message const filteredMessages = messages.filter((message) => { + // TODO: use this summarized thread in the chat window + if (summarizedThread.length > 0) { + // we have a summarized thread + console.log('summarized thread has been created --', summarizedThread); + } // Keep all assistant messages and user messages that aren't just tool responses if (message.role === 'assistant') return true; @@ -379,17 +437,24 @@ export default function ChatView({ {isUserMessage(message) ? ( ) : ( - append(createUserMessage(text))} - appendMessage={(newMessage) => { - const updatedMessages = [...messages, newMessage]; - setMessages(updatedMessages); - }} - /> + <> + {/* Only render GooseMessage if it's not a CLE message (and we are not in alpha mode) */} + {process.env.ALPHA && hasContextLengthExceededContent(message) ? ( + // Render the summarized notification for CLE messages only in alpha mode + + ) : ( + append(createUserMessage(text))} + appendMessage={(newMessage) => { + const updatedMessages = [...messages, newMessage]; + setMessages(updatedMessages); + }} + /> + )} + )}
      ))} @@ -434,6 +499,18 @@ export default function ChatView({ {showGame && setShowGame(false)} />} + {process.env.ALPHA && ( + setIsSummaryModalOpen(false)} + onSave={(editedContent) => { + console.log('Saving summary...'); + setSummaryContent(editedContent); + setIsSummaryModalOpen(false); + }} + summaryContent={summaryContent} + /> + )}
      ); } diff --git a/ui/desktop/src/components/bottom_menu/BottomMenu.tsx b/ui/desktop/src/components/bottom_menu/BottomMenu.tsx index 8537bc59..ffecc350 100644 --- a/ui/desktop/src/components/bottom_menu/BottomMenu.tsx +++ b/ui/desktop/src/components/bottom_menu/BottomMenu.tsx @@ -19,10 +19,10 @@ const TOKEN_WARNING_THRESHOLD = 0.8; // warning shows at 80% of the token limit const TOOLS_MAX_SUGGESTED = 60; // max number of tools before we show a warning export default function BottomMenu({ - hasMessages, - setView, - numTokens = 0, -}: { + hasMessages, + setView, + numTokens = 0, + }: { hasMessages: boolean; setView: (view: View, viewOptions?: ViewOptions) => void; numTokens?: number; @@ -158,18 +158,18 @@ export default function BottomMenu({ }, [isDirTruncated]); return ( -
      - {/* Directory Chooser - Always visible */} - { - if (hasMessages) { - window.electron.directoryChooser(); - } else { - window.electron.directoryChooser(true); - } - }} - > +
      + {/* Directory Chooser - Always visible */} + { + if (hasMessages) { + window.electron.directoryChooser(); + } else { + window.electron.directoryChooser(true); + } + }} + > @@ -191,85 +191,85 @@ export default function BottomMenu({ - {/* Goose Mode Selector Dropdown */} - + {/* Goose Mode Selector Dropdown */} + - {/* Right-side section with ToolCount and Model Selector together */} -
      - {/* Tool and Token count */} - {} - {/* Model Selector Dropdown */} - {settingsV2Enabled ? ( - - ) : ( -
      -
      setIsModelMenuOpen(!isModelMenuOpen)} - > - {(currentModel?.alias ?? currentModel?.name) || 'Select Model'} - {isModelMenuOpen ? ( - - ) : ( - - )} -
      + {/* Right-side section with ToolCount and Model Selector together */} +
      + {/* Tool and Token count */} + {} + {/* Model Selector Dropdown */} + {settingsV2Enabled ? ( + + ) : ( +
      +
      setIsModelMenuOpen(!isModelMenuOpen)} + > + {(currentModel?.alias ?? currentModel?.name) || 'Select Model'} + {isModelMenuOpen ? ( + + ) : ( + + )} +
      - {/* Dropdown Menu */} - {isModelMenuOpen && ( -
      -
      - ( -
      - )} -
      - )} + )} +
      -
      ); -} +} \ No newline at end of file diff --git a/ui/desktop/src/components/context_management/SessionSummaryModal.tsx b/ui/desktop/src/components/context_management/SessionSummaryModal.tsx new file mode 100644 index 00000000..7a875f54 --- /dev/null +++ b/ui/desktop/src/components/context_management/SessionSummaryModal.tsx @@ -0,0 +1,126 @@ +import React, { useRef, useEffect } from 'react'; +import { Card } from '../ui/card'; +import { Geese } from '../icons/Geese'; + +interface SessionSummaryModalProps { + isOpen: boolean; + onClose: () => void; + onSave: (editedContent: string) => void; + summaryContent: string; +} + +// This is a specialized version of BaseModal that's wider just for the SessionSummaryModal +function WiderBaseModal({ + isOpen, + title, + children, + actions, +}: { + isOpen: boolean; + title: string; + children: React.ReactNode; + actions: React.ReactNode; // Buttons for actions +}) { + if (!isOpen) return null; + + return ( +
      + +
      + {/* Header */} +
      +

      {title}

      +
      + + {/* Content - Make it scrollable */} + {children &&
      {children}
      } + + {/* Actions */} +
      {actions}
      +
      +
      +
      + ); +} + +export function SessionSummaryModal({ + isOpen, + onClose, + onSave, + summaryContent, +}: SessionSummaryModalProps) { + // Use a ref for the textarea for uncontrolled component + const textareaRef = useRef(null); + + // Initialize the textarea value when the modal opens + useEffect(() => { + if (isOpen && textareaRef.current) { + textareaRef.current.value = summaryContent; + } + }, [isOpen, summaryContent]); + + // Handle Save action with the edited content from the ref + const handleSave = () => { + const currentText = textareaRef.current ? textareaRef.current.value : ''; + onSave(currentText); + }; + + // Header Component - Icon, Title, and Description + const Header = () => ( +
      + {/* Icon */} +
      + +
      + + {/* Title */} +

      Session Summary

      + + {/* Description */} +

      + This summary was created to manage your context limit. Review and edit to keep your session + running smoothly with the information that matters most. +

      +
      + ); + + // Uncontrolled Summary Content Component + const SummaryContent = () => ( +
      +

      Summarization

      + + -
      - -
      - -
      -

      Generated Link

      - -
      -
      - - - \ No newline at end of file diff --git a/documentation/static/install-link-generator/script.js b/documentation/static/install-link-generator/script.js deleted file mode 100644 index 27c8f4aa..00000000 --- a/documentation/static/install-link-generator/script.js +++ /dev/null @@ -1,258 +0,0 @@ -document.addEventListener('DOMContentLoaded', () => { - // Function to show error message - function showError(message) { - const resultDiv = document.getElementById('generatedLink'); - resultDiv.innerHTML = `
      ${message}
      `; - resultDiv.parentElement.style.display = 'block'; - } - - // Function to handle generated link (display or redirect) - function handleGeneratedLink(link, shouldRedirect = false) { - if (shouldRedirect) { - window.location.href = link; - } else { - displayGeneratedLink(link); - } - } - - // Process URL parameters if present - const urlParams = new URLSearchParams(window.location.search); - if (urlParams.toString()) { - try { - // Check if this is a built-in extension request - if (urlParams.get('cmd') === 'goosed' && urlParams.getAll('arg').includes('mcp')) { - const args = urlParams.getAll('arg'); - const extensionId = args[args.indexOf('mcp') + 1]; - if (!extensionId) { - throw new Error('Missing extension ID in args'); - } - - const server = { - is_builtin: true, - id: extensionId - }; - const link = generateInstallLink(server); - handleGeneratedLink(link, true); - return; - } - - // Handle custom extension - const cmd = urlParams.get('cmd'); - if (!cmd) { - throw new Error('Missing required parameter: cmd'); - } - - const args = urlParams.getAll('arg') || []; - const command = [cmd, ...args].join(' '); - const id = urlParams.get('id'); - const name = urlParams.get('name'); - const description = urlParams.get('description'); - - if (!id || !name || !description) { - throw new Error('Missing required parameters. Need: id, name, and description'); - } - - const server = { - is_builtin: false, - id, - name, - description, - command, - environmentVariables: [] - }; - - // Handle environment variables if present - const envVars = urlParams.getAll('env'); - if (envVars.length > 0) { - envVars.forEach(env => { - const [name, description] = env.split('='); - if (name && description) { - server.environmentVariables.push({ - name, - description, - required: true - }); - } - }); - } - - const link = generateInstallLink(server); - handleGeneratedLink(link, true); - } catch (error) { - showError(error.message); - document.querySelector('.container').style.display = 'block'; - } - } else { - // Show the form if no parameters - document.querySelector('.container').style.display = 'block'; - } - - // Tab switching - const tabs = document.querySelectorAll('.tab-btn'); - tabs.forEach(tab => { - tab.addEventListener('click', () => { - tabs.forEach(t => t.classList.remove('active')); - tab.classList.add('active'); - - document.querySelectorAll('.tab-content').forEach(content => { - content.classList.remove('active'); - }); - document.getElementById(tab.dataset.tab).classList.add('active'); - }); - }); - - // Handle built-in checkbox - const isBuiltinCheckbox = document.getElementById('isBuiltin'); - const nonBuiltinFields = document.querySelector('.non-builtin'); - - isBuiltinCheckbox.addEventListener('change', () => { - nonBuiltinFields.style.display = isBuiltinCheckbox.checked ? 'none' : 'block'; - }); - - // Environment variables handling - const envVarsContainer = document.getElementById('envVars'); - const addEnvVarBtn = document.getElementById('addEnvVar'); - - function createEnvVarInputs() { - const envVarDiv = document.createElement('div'); - envVarDiv.className = 'env-var'; - - const nameInput = document.createElement('input'); - nameInput.type = 'text'; - nameInput.placeholder = 'Variable Name'; - nameInput.className = 'env-name'; - - const descInput = document.createElement('input'); - descInput.type = 'text'; - descInput.placeholder = 'Description'; - descInput.className = 'env-desc'; - - const removeBtn = document.createElement('button'); - removeBtn.type = 'button'; - removeBtn.textContent = 'Remove'; - removeBtn.onclick = () => envVarDiv.remove(); - - envVarDiv.appendChild(nameInput); - envVarDiv.appendChild(descInput); - envVarDiv.appendChild(removeBtn); - - return envVarDiv; - } - - addEnvVarBtn.addEventListener('click', () => { - envVarsContainer.appendChild(createEnvVarInputs()); - }); - - // Generate link from form - document.getElementById('installForm').addEventListener('submit', (e) => { - e.preventDefault(); - const formData = new FormData(e.target); - const server = { - is_builtin: formData.get('is_builtin') === 'on', - id: formData.get('id'), - name: formData.get('name'), - description: formData.get('description'), - command: formData.get('command'), - environmentVariables: [] - }; - - // Collect environment variables - document.querySelectorAll('.env-var').forEach(envVar => { - const name = envVar.querySelector('.env-name').value; - const description = envVar.querySelector('.env-desc').value; - if (name && description) { - server.environmentVariables.push({ - name, - description, - required: true - }); - } - }); - - const link = generateInstallLink(server); - handleGeneratedLink(link); - }); - - // Generate link from JSON - document.getElementById('generateFromJson').addEventListener('click', () => { - try { - const jsonInput = document.getElementById('jsonInput').value; - const server = JSON.parse(jsonInput); - const link = generateInstallLink(server); - handleGeneratedLink(link); - } catch (error) { - showError('Invalid JSON: ' + error.message); - } - }); - - // Link generation logic - function generateInstallLink(server) { - if (server.is_builtin) { - const queryParams = [ - 'cmd=goosed', - 'arg=mcp', - `arg=${encodeURIComponent(server.id)}`, - `description=${encodeURIComponent(server.id)}` - ].join('&'); - return `goose://extension?${queryParams}`; - } - - // Handle the case where the command is a URL - if (server.url) { - const queryParams = [ - `url=${encodeURIComponent(server.url)}`, - `id=${encodeURIComponent(server.id)}`, - `name=${encodeURIComponent(server.name)}`, - `description=${encodeURIComponent(server.description)}`, - ...server.environmentVariables - .filter((env) => env.required) - .map( - (env) => `env=${encodeURIComponent(`${env.name}=${env.description}`)}` - ), - ].join("&"); - - return `goose://extension?${queryParams}`; - } - - const parts = server.command.split(" "); - const baseCmd = parts[0]; - const args = parts.slice(1); - const queryParams = [ - `cmd=${encodeURIComponent(baseCmd)}`, - ...args.map((arg) => `arg=${encodeURIComponent(arg)}`), - `id=${encodeURIComponent(server.id)}`, - `name=${encodeURIComponent(server.name)}`, - `description=${encodeURIComponent(server.description)}`, - ...server.environmentVariables - .filter((env) => env.required) - .map( - (env) => `env=${encodeURIComponent(`${env.name}=${env.description}`)}` - ), - ].join("&"); - - return `goose://extension?${queryParams}`; - } - - function displayGeneratedLink(link) { - const linkElement = document.getElementById('generatedLink'); - linkElement.textContent = link; - linkElement.parentElement.style.display = 'block'; - } - - // Add sample JSON to the textarea - const sampleJson = { - is_builtin: false, - id: "example-extension", - name: "Example Extension", - description: "An example Goose extension", - command: "npx @gooseai/example-extension", - environmentVariables: [ - { - name: "API_KEY", - description: "Your API key", - required: true - } - ] - }; - document.getElementById('jsonInput').value = JSON.stringify(sampleJson, null, 2); -}); \ No newline at end of file diff --git a/documentation/static/install-link-generator/styles.css b/documentation/static/install-link-generator/styles.css deleted file mode 100644 index b9638c49..00000000 --- a/documentation/static/install-link-generator/styles.css +++ /dev/null @@ -1,258 +0,0 @@ -:root { - --primary: #ffffff; - --primary-dark: #e0e0e0; - --secondary: #333333; - --text: #ffffff; - --background: #000000; - --card-bg: #111111; - --success: #ffffff; - --error: #ff4b4b; - --border-color: rgba(255, 255, 255, 0.1); -} - -* { - box-sizing: border-box; - margin: 0; - padding: 0; - transition: all 0.2s ease; -} - -body { - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; - line-height: 1.5; - padding: 16px; - background: var(--background); - color: var(--text); - min-height: 100vh; -} - -.container { - max-width: 600px; - margin: 0 auto; - background: var(--card-bg); - padding: 1.5rem; - border-radius: 12px; - border: 1px solid var(--border-color); -} - -h1 { - text-align: center; - margin-bottom: 1.5rem; - color: var(--text); - font-size: 1.75rem; - font-weight: 600; - letter-spacing: -0.5px; -} - -.tabs { - display: flex; - gap: 0.5rem; - margin-bottom: 1.5rem; - padding: 0.25rem; - background: rgba(255, 255, 255, 0.05); - border-radius: 8px; -} - -.tab-btn { - flex: 1; - padding: 0.75rem; - border: none; - background: transparent; - color: var(--text); - cursor: pointer; - border-radius: 6px; - font-weight: 500; - font-size: 0.875rem; -} - -.tab-btn.active { - background: var(--secondary); -} - -.tab-btn:hover:not(.active) { - background: rgba(255, 255, 255, 0.05); -} - -.tab-content { - display: none; - animation: fadeIn 0.2s ease; -} - -.tab-content.active { - display: block; -} - -.form-group { - margin-bottom: 1rem; -} - -label { - display: block; - margin-bottom: 0.25rem; - font-weight: 500; - color: var(--text); - font-size: 0.75rem; - text-transform: uppercase; - letter-spacing: 0.5px; -} - -input[type="text"], -textarea { - width: 100%; - padding: 0.75rem; - background: rgba(255, 255, 255, 0.05); - border: 1px solid var(--border-color); - border-radius: 6px; - color: var(--text); - font-size: 0.875rem; -} - -input[type="text"]:focus, -textarea:focus { - outline: none; - border-color: var(--primary); -} - -input[type="checkbox"] { - appearance: none; - width: 16px; - height: 16px; - border: 2px solid var(--border-color); - border-radius: 4px; - cursor: pointer; - position: relative; -} - -input[type="checkbox"]:checked { - background-color: var(--primary); - border-color: var(--primary); -} - -input[type="checkbox"]:checked::after { - content: "✓"; - position: absolute; - color: var(--background); - font-size: 12px; - left: 2px; - top: -2px; -} - -textarea { - resize: vertical; - min-height: 100px; -} - -button { - background: var(--secondary); - color: white; - padding: 0.75rem 1.5rem; - border: 1px solid var(--border-color); - border-radius: 6px; - cursor: pointer; - font-size: 0.875rem; - font-weight: 500; - letter-spacing: 0.5px; -} - -button:hover { - background: #444444; -} - -button:active { - transform: translateY(1px); -} - -.result { - margin-top: 1.5rem; - padding-top: 1.5rem; - border-top: 1px solid var(--border-color); -} - -#generatedLink { - padding: 1rem; - background: rgba(255, 255, 255, 0.05); - border-radius: 6px; - word-break: break-all; - font-family: 'SF Mono', 'Fira Code', monospace; - font-size: 0.8125rem; - border: 1px solid var(--border-color); -} - -.env-var { - display: flex; - gap: 0.5rem; - margin-bottom: 0.75rem; - align-items: center; -} - -.env-var input { - flex: 1; -} - -.env-var button { - padding: 0.75rem; - min-width: 40px; - background: #333333; -} - -#addEnvVar { - width: 100%; - margin-top: 0.75rem; - background: #333333; -} - -@keyframes fadeIn { - from { - opacity: 0; - transform: translateY(5px); - } - to { - opacity: 1; - transform: translateY(0); - } -} - -/* Scrollbar styling */ -::-webkit-scrollbar { - width: 6px; - height: 6px; -} - -::-webkit-scrollbar-track { - background: rgba(255, 255, 255, 0.05); - border-radius: 3px; -} - -::-webkit-scrollbar-thumb { - background: #444444; - border-radius: 3px; -} - -::-webkit-scrollbar-thumb:hover { - background: #555555; -} - -/* Focus styles */ -*:focus-visible { - outline: 2px solid var(--primary); - outline-offset: 2px; -} - -/* Responsive adjustments */ -@media (max-width: 640px) { - .container { - padding: 1rem; - } - - h1 { - font-size: 1.5rem; - } - - .tabs { - flex-direction: column; - } - - button { - width: 100%; - } -} \ No newline at end of file diff --git a/documentation/yarn.lock b/documentation/yarn.lock index 7a14d40a..acbb2cd6 100644 --- a/documentation/yarn.lock +++ b/documentation/yarn.lock @@ -84,7 +84,7 @@ "@algolia/requester-fetch" "5.20.0" "@algolia/requester-node-http" "5.20.0" -"@algolia/client-search@5.20.0": +"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@5.20.0": version "5.20.0" resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-5.20.0.tgz" integrity sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ== @@ -163,7 +163,7 @@ "@jridgewell/gen-mapping" "^0.3.5" "@jridgewell/trace-mapping" "^0.3.24" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.25.9", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.16.0", "@babel/code-frame@^7.26.0", "@babel/code-frame@^7.26.2", "@babel/code-frame@^7.8.3": version "7.26.2" resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz" integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== @@ -177,7 +177,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz" integrity sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg== -"@babel/core@^7.21.3", "@babel/core@^7.25.9": +"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.21.3", "@babel/core@^7.25.9", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": version "7.26.0" resolved "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz" integrity sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg== @@ -349,22 +349,15 @@ "@babel/helpers@^7.26.0": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.27.0.tgz#53d156098defa8243eab0f32fa17589075a1b808" + resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.27.0.tgz" integrity sha512-U5eyP/CTFPuNE3qk+WZMxFkp/4zUzdceQlfzf7DdGdhp+Fezd7HD+i8Y24ZuTMKX3wQBld449jijbGq6OdGNQg== dependencies: "@babel/template" "^7.27.0" "@babel/types" "^7.27.0" -"@babel/parser@^7.25.9", "@babel/parser@^7.26.0", "@babel/parser@^7.26.5": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.26.5.tgz" - integrity sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw== - dependencies: - "@babel/types" "^7.26.5" - -"@babel/parser@^7.27.0": +"@babel/parser@^7.26.0", "@babel/parser@^7.26.5", "@babel/parser@^7.27.0": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.27.0.tgz#3d7d6ee268e41d2600091cbd4e145ffee85a44ec" + resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.27.0.tgz" integrity sha512-iaepho73/2Pz7w2eMS0Q5f83+0RKI7i4xmiYeBmDzfRVbQtTOG7Ts0S4HzJVsTMGI9keU8rNfuZr8DKfSt7Yyg== dependencies: "@babel/types" "^7.27.0" @@ -1015,7 +1008,7 @@ "@babel/runtime-corejs3@^7.25.9": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz#c766df350ec7a2caf3ed64e3659b100954589413" + resolved "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.27.0.tgz" integrity sha512-UWjX6t+v+0ckwZ50Y5ShZLnlk95pP5MyW/pon9tiYzl3+18pkTHTFNTKr7rQbfRXPkowt2QAn30o1b6oswszew== dependencies: core-js-pure "^3.30.2" @@ -1023,23 +1016,14 @@ "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.25.9", "@babel/runtime@^7.8.4": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.0.tgz#fbee7cf97c709518ecc1f590984481d5460d4762" + resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.27.0.tgz" integrity sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw== dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.25.9": - version "7.25.9" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz" - integrity sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg== - dependencies: - "@babel/code-frame" "^7.25.9" - "@babel/parser" "^7.25.9" - "@babel/types" "^7.25.9" - -"@babel/template@^7.27.0": +"@babel/template@^7.25.9", "@babel/template@^7.27.0": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.27.0.tgz#b253e5406cc1df1c57dcd18f11760c2dbf40c0b4" + resolved "https://registry.npmjs.org/@babel/template/-/template-7.27.0.tgz" integrity sha512-2ncevenBqXI6qRMukPlXwHKHchC7RyMuu4xv5JBXRfOGVcTy1mXCD12qrp7Jsoxll1EV3+9sE4GugBVRjT2jFA== dependencies: "@babel/code-frame" "^7.26.2" @@ -1059,17 +1043,9 @@ debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.4.4": - version "7.26.5" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.26.5.tgz" - integrity sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg== - dependencies: - "@babel/helper-string-parser" "^7.25.9" - "@babel/helper-validator-identifier" "^7.25.9" - -"@babel/types@^7.27.0": +"@babel/types@^7.21.3", "@babel/types@^7.25.9", "@babel/types@^7.26.0", "@babel/types@^7.26.5", "@babel/types@^7.27.0", "@babel/types@^7.4.4": version "7.27.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.27.0.tgz#ef9acb6b06c3173f6632d993ecb6d4ae470b4559" + resolved "https://registry.npmjs.org/@babel/types/-/types-7.27.0.tgz" integrity sha512-H45s8fVLYjbhFH62dIJ3WtmJ6RSPt/3DRO0ZcT2SUiYiQyz3BLVb9ADEnLl91m74aQPS3AzzeajZHYOalWe3bg== dependencies: "@babel/helper-string-parser" "^7.25.9" @@ -1622,7 +1598,7 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.7.0": +"@docusaurus/plugin-content-docs@*", "@docusaurus/plugin-content-docs@3.7.0": version "3.7.0" resolved "https://registry.npmjs.org/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.7.0.tgz" integrity sha512-GXg5V7kC9FZE4FkUZA8oo/NrlRb06UwuICzI6tcbzj0+TVgjq/mpUXXzSgKzMS82YByi4dY2Q808njcBCyy6tQ== @@ -2037,7 +2013,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -2176,7 +2152,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" "@svgr/babel-plugin-transform-svg-component" "8.0.0" -"@svgr/core@8.1.0": +"@svgr/core@*", "@svgr/core@8.1.0": version "8.1.0" resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== @@ -2497,7 +2473,7 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*": +"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0", "@types/react@>=16", "@types/react@>=18": version "18.3.18" resolved "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz" integrity sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ== @@ -2582,7 +2558,7 @@ resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== -"@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.14.1": +"@webassemblyjs/ast@^1.14.1", "@webassemblyjs/ast@1.14.1": version "1.14.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz" integrity sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ== @@ -2683,7 +2659,7 @@ "@webassemblyjs/wasm-gen" "1.14.1" "@webassemblyjs/wasm-parser" "1.14.1" -"@webassemblyjs/wasm-parser@1.14.1", "@webassemblyjs/wasm-parser@^1.14.1": +"@webassemblyjs/wasm-parser@^1.14.1", "@webassemblyjs/wasm-parser@1.14.1": version "1.14.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz" integrity sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ== @@ -2733,7 +2709,7 @@ acorn-walk@^8.0.0: dependencies: acorn "^8.11.0" -acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.0.0, acorn@^8.0.4, acorn@^8.11.0, acorn@^8.14.0, acorn@^8.8.2: version "8.14.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== @@ -2758,7 +2734,12 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: +ajv-keywords@^3.4.1: + version "3.5.2" + resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + +ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== @@ -2770,7 +2751,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.5: +ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2780,7 +2761,7 @@ ajv@^6.12.2, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: version "8.17.1" resolved "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz" integrity sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g== @@ -2797,7 +2778,7 @@ algoliasearch-helper@^3.22.6: dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^5.14.2, algoliasearch@^5.17.1: +algoliasearch@^5.14.2, algoliasearch@^5.17.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": version "5.20.0" resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-5.20.0.tgz" integrity sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ== @@ -3064,7 +3045,7 @@ braces@^3.0.3, braces@~3.0.2: dependencies: fill-range "^7.1.1" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3: +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.23.0, browserslist@^4.23.1, browserslist@^4.23.3, browserslist@^4.24.0, browserslist@^4.24.3, "browserslist@>= 4.21.0": version "4.24.4" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz" integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== @@ -3727,20 +3708,27 @@ debounce@^1.2.1: resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@2.6.9, debug@^2.6.0: +debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: +debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@4: version "4.4.0" resolved "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz" integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== dependencies: ms "^2.1.3" +debug@2.6.9: + version "2.6.9" + resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" @@ -3814,16 +3802,16 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -depd@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" - integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== - depd@~1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== +depd@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + dequal@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" @@ -4200,7 +4188,7 @@ estree-util-to-js@^2.0.0: estree-util-value-to-estree@^3.0.1: version "3.4.0" - resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz#827122e40c3a756d3c4cf5d5d296fa06026a1a4f" + resolved "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.4.0.tgz" integrity sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ== dependencies: "@types/estree" "^1.0.0" @@ -4378,7 +4366,7 @@ figures@^3.2.0: dependencies: escape-string-regexp "^1.0.5" -file-loader@^6.2.0: +file-loader@*, file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== @@ -4544,7 +4532,7 @@ fs.realpath@^1.0.0: fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: @@ -4603,7 +4591,14 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1, glob-parent@^6.0.2: +glob-parent@^6.0.1: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -4712,16 +4707,16 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + gray-matter@^4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" @@ -4964,7 +4959,7 @@ html-tags@^3.3.1: html-url-attributes@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/html-url-attributes/-/html-url-attributes-3.0.1.tgz#83b052cd5e437071b756cd74ae70f708870c2d87" + resolved "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.1.tgz" integrity sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ== html-void-elements@^3.0.0: @@ -5013,6 +5008,16 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -5024,16 +5029,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-parser-js@>=0.5.1: version "0.5.9" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.9.tgz" @@ -5041,7 +5036,7 @@ http-parser-js@>=0.5.1: http-proxy-middleware@^2.0.3: version "2.0.9" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz#e9e63d68afaa4eee3d147f39149ab84c0c2815ef" + resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.9.tgz" integrity sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q== dependencies: "@types/http-proxy" "^1.17.8" @@ -5091,7 +5086,7 @@ ignore@^5.2.0, ignore@^5.2.4: image-size@^1.0.2: version "1.2.1" - resolved "https://registry.yarnpkg.com/image-size/-/image-size-1.2.1.tgz#ee118aedfe666db1a6ee12bed5821cde3740276d" + resolved "https://registry.npmjs.org/image-size/-/image-size-1.2.1.tgz" integrity sha512-rH+46sQJ2dlwfjfhCyNx5thzrv+dtmBIhPHk0zgRUukHzZ/kRueTJXoYYsclBaKcSMBWuGbOFXtioLpzTb5euw== dependencies: queue "6.0.2" @@ -5137,7 +5132,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: +inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -5147,16 +5142,16 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" - integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== - ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.8" resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== +ini@2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" + integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== + inline-style-parser@0.2.4: version "0.2.4" resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz" @@ -5174,16 +5169,16 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -ipaddr.js@1.9.1: - version "1.9.1" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== - ipaddr.js@^2.0.1: version "2.2.0" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + is-alphabetical@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" @@ -5347,16 +5342,16 @@ is-yarn-global@^0.4.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz" integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" - integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== - isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -6344,11 +6339,6 @@ micromatch@^4.0.2, micromatch@^4.0.5, micromatch@^4.0.8: braces "^3.0.3" picomatch "^2.3.1" -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - "mime-db@>= 1.43.0 < 2": version "1.53.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.53.0.tgz" @@ -6359,14 +6349,40 @@ mime-db@~1.33.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== -mime-types@2.1.18, mime-types@~2.1.17: +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.27: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@^2.1.31: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.17, mime-types@2.1.18: version "2.1.18" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@~2.1.24: + version "2.1.35" + resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6406,7 +6422,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: +minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -6447,16 +6463,16 @@ mrmime@^2.0.0: resolved "https://registry.npmjs.org/mrmime/-/mrmime-2.0.0.tgz" integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== +ms@^2.1.3, ms@2.1.3: + version "2.1.3" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + ms@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== -ms@2.1.3, ms@^2.1.3: - version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - multicast-dns@^7.2.5: version "7.2.5" resolved "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz" @@ -6479,16 +6495,16 @@ nanoid@^3.3.8: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.8.tgz" integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== -negotiator@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" - integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== - negotiator@~0.6.4: version "0.6.4" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz" integrity sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w== +negotiator@0.6.3: + version "0.6.3" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz" @@ -6837,6 +6853,13 @@ path-scurry@^1.11.1: lru-cache "^10.2.0" minipass "^5.0.0 || ^6.0.2 || ^7.0.0" +path-to-regexp@^1.7.0: + version "1.9.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz" + integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== + dependencies: + isarray "0.0.1" + path-to-regexp@0.1.12: version "0.1.12" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz" @@ -6847,13 +6870,6 @@ path-to-regexp@3.3.0: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-3.3.0.tgz" integrity sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw== -path-to-regexp@^1.7.0: - version "1.9.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz" - integrity sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g== - dependencies: - isarray "0.0.1" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -7480,7 +7496,7 @@ postcss-zindex@^6.0.2: resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz" integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== -postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.35, postcss@^8.4.38, postcss@^8.4.47: +"postcss@^7.0.0 || ^8.0.1", postcss@^8, postcss@^8.0.0, postcss@^8.0.3, postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.2.2, postcss@^8.4, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.31, postcss@^8.4.33, postcss@^8.4.35, postcss@^8.4.38, postcss@^8.4.47, postcss@^8.4.6, postcss@>=8.0.9: version "8.5.2" resolved "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz" integrity sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA== @@ -7512,7 +7528,7 @@ prism-react-renderer@^2.3.0: prismjs@^1.29.0: version "1.30.0" - resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.30.0.tgz#d9709969d9d4e16403f6f348c63553b19f0975a9" + resolved "https://registry.npmjs.org/prismjs/-/prismjs-1.30.0.tgz" integrity sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw== process-nextick-args@~2.0.0: @@ -7598,16 +7614,21 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" +range-parser@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + range-parser@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== -range-parser@^1.2.1, range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - raw-body@2.5.2: version "2.5.2" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" @@ -7658,7 +7679,7 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@^19.0.0: +react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react-dom@^18.0.0 || ^19.0.0", react-dom@^19.0.0, "react-dom@>= 16.8.0 < 19.0.0": version "19.0.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-19.0.0.tgz" integrity sha512-4GV5sHFG0e/0AD4X+ySy6UJd3jVl1iNsNHdpad0qhABJ11twS3TTBnseqsKurKcsNqCEFeGL3uLpVChpIO3QfQ== @@ -7703,7 +7724,7 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -"react-loadable@npm:@docusaurus/react-loadable@6.0.0": +react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz" integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== @@ -7712,7 +7733,7 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: react-markdown@^10.1.0: version "10.1.0" - resolved "https://registry.yarnpkg.com/react-markdown/-/react-markdown-10.1.0.tgz#e22bc20faddbc07605c15284255653c0f3bad5ca" + resolved "https://registry.npmjs.org/react-markdown/-/react-markdown-10.1.0.tgz" integrity sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ== dependencies: "@types/hast" "^3.0.0" @@ -7747,7 +7768,7 @@ react-router-dom@^5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@5.3.4, react-router@^5.3.4: +react-router@^5.3.4, react-router@>=5, react-router@5.3.4: version "5.3.4" resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== @@ -7762,7 +7783,7 @@ react-router@5.3.4, react-router@^5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react@^19.0.0: +react@*, "react@^16.13.1 || ^17.0.0 || ^18.0.0", "react@^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", "react@^18.0.0 || ^19.0.0", react@^19.0.0, "react@>= 16.8.0 < 19.0.0", react@>=15, react@>=16, react@>=16.0.0, react@>=18: version "19.0.0" resolved "https://registry.npmjs.org/react/-/react-19.0.0.tgz" integrity sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ== @@ -8124,7 +8145,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: +safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -8149,16 +8170,16 @@ scheduler@^0.25.0: resolved "https://registry.npmjs.org/scheduler/-/scheduler-0.25.0.tgz" integrity sha512-xFVuu11jh+xcO7JOAGJNOXld8/TcEHK/4CituBUeUb5hqxJLj9YuemAEuvm9gQ/+pgXYfbQuqAkiYu+u7YEsNA== -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== +schema-utils@^3.0.0: + version "3.3.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" + integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" + "@types/json-schema" "^7.0.8" + ajv "^6.12.5" + ajv-keywords "^3.5.2" -schema-utils@^3.0.0, schema-utils@^3.2.0: +schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -8177,6 +8198,20 @@ schema-utils@^4.0.0, schema-utils@^4.0.1, schema-utils@^4.3.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + +"search-insights@>= 1 < 3": + version "2.17.3" + resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz" + integrity sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ== + section-matter@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" @@ -8463,7 +8498,7 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0, source-map@~0.6.0: +source-map@^0.6.0: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -8473,6 +8508,11 @@ source-map@^0.7.0: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== +source-map@~0.6.0: + version "0.6.1" + resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + space-separated-tokens@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" @@ -8511,21 +8551,35 @@ srcset@^4.0.0: resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -statuses@2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" - integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== - "statuses@>= 1.4.0 < 2": version "1.5.0" resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + std-env@^3.7.0: version "3.8.0" resolved "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz" integrity sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w== +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + "string-width-cjs@npm:string-width@^4.2.0": version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -8535,7 +8589,16 @@ std-env@^3.7.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -8553,20 +8616,6 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - stringify-entities@^4.0.0: version "4.0.4" resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" @@ -8696,9 +8745,9 @@ swiper@^11.2.6: integrity sha512-8aXpYKtjy3DjcbzZfz+/OX/GhcU5h+looA6PbAzHMZT6ESSycSp9nAjPCenczgJyslV+rUGse64LMGpWE3PX9Q== tailwind-merge@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/tailwind-merge/-/tailwind-merge-3.0.2.tgz#567eff76de12211e24dd909da0f5ed6f4f422b0c" - integrity sha512-l7z+OYZ7mu3DTqrL88RiKrKIqO3NcpEO8V/Od04bNpvk0kiIFndGEoqfuzvj4yuhRkHKjRkII2z+KS2HfPcSxw== + version "3.2.0" + resolved "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-3.2.0.tgz" + integrity sha512-FQT/OVqCD+7edmmJpsgCsY820RTD5AkBryuG5IUqR5YQZSdj5xlH5nLgH7YPths7WsLPSpSBNneJdM8aS8aeFA== tailwindcss@^3.4.1: version "3.4.17" @@ -8860,7 +8909,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@~5.6.2: +"typescript@>= 2.7", typescript@>=4.9.5, typescript@~5.6.2: version "5.6.3" resolved "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz" integrity sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw== @@ -8968,7 +9017,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@1.0.0, unpipe@~1.0.0: +unpipe@~1.0.0, unpipe@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -9184,7 +9233,7 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.88.1, webpack@^5.95.0: +"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.88.1, webpack@^5.95.0, "webpack@>= 4", "webpack@>=4.41.1 || 5.x", webpack@>=5, "webpack@3 || 4 || 5": version "5.97.1" resolved "https://registry.npmjs.org/webpack/-/webpack-5.97.1.tgz" integrity sha512-EksG6gFY3L1eFMROS/7Wzgrii5mBAFe4rIr3r2BTfo7bcc+DWwFZ4OJ/miOuHJO/A85HwyI4eQ0F6IKXesO7Fg== @@ -9227,7 +9276,7 @@ webpackbar@^6.0.1: std-env "^3.7.0" wrap-ansi "^7.0.0" -websocket-driver@>=0.5.1, websocket-driver@^0.7.4: +websocket-driver@^0.7.4, websocket-driver@>=0.5.1: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== From c272b5df95a4adda3ba5a46931cd159d4ba33a82 Mon Sep 17 00:00:00 2001 From: Max Novich Date: Tue, 27 May 2025 10:36:27 -0700 Subject: [PATCH 197/216] Add basic cron scheduler to goose-server (#2621) --- Cargo.lock | 173 ++-- crates/goose-cli/src/cli.rs | 78 ++ crates/goose-cli/src/commands/mod.rs | 1 + crates/goose-cli/src/commands/schedule.rs | 184 ++++ crates/goose-cli/src/session/mod.rs | 2 + crates/goose-server/Cargo.toml | 6 +- crates/goose-server/src/commands/agent.rs | 20 +- crates/goose-server/src/logging.rs | 5 +- crates/goose-server/src/main.rs | 9 - crates/goose-server/src/openapi.rs | 13 +- .../src/routes/config_management.rs | 61 +- crates/goose-server/src/routes/mod.rs | 2 + crates/goose-server/src/routes/reply.rs | 39 +- crates/goose-server/src/routes/schedule.rs | 270 ++++++ crates/goose-server/src/routes/session.rs | 2 +- crates/goose-server/src/state.rs | 26 +- crates/goose-server/ui/desktop/openapi.json | 300 ++++++- crates/goose/Cargo.toml | 5 +- crates/goose/src/agents/reply_parts.rs | 14 +- crates/goose/src/agents/types.rs | 2 + crates/goose/src/lib.rs | 1 + crates/goose/src/scheduler.rs | 850 ++++++++++++++++++ crates/goose/src/session/storage.rs | 5 + crates/goose/tests/agent.rs | 23 +- ui/desktop/openapi.json | 326 ++++++- ui/desktop/package-lock.json | 10 + ui/desktop/package.json | 1 + ui/desktop/src/App.tsx | 89 +- ui/desktop/src/api/sdk.gen.ts | 41 +- ui/desktop/src/api/types.gen.ts | 193 +++- ui/desktop/src/components/icons/TrashIcon.tsx | 19 + .../src/components/more_menu/MoreMenu.tsx | 14 +- .../schedule/CreateScheduleModal.tsx | 439 +++++++++ .../schedule/ScheduleDetailView.tsx | 260 ++++++ .../src/components/schedule/SchedulesView.tsx | 230 +++++ .../sessions/SessionHistoryView.tsx | 75 +- ui/desktop/src/main.ts | 8 +- ui/desktop/src/preload.ts | 2 +- ui/desktop/src/schedule.ts | 108 +++ 39 files changed, 3554 insertions(+), 352 deletions(-) create mode 100644 crates/goose-cli/src/commands/schedule.rs create mode 100644 crates/goose-server/src/routes/schedule.rs create mode 100644 crates/goose/src/scheduler.rs create mode 100644 ui/desktop/src/components/icons/TrashIcon.tsx create mode 100644 ui/desktop/src/components/schedule/CreateScheduleModal.tsx create mode 100644 ui/desktop/src/components/schedule/ScheduleDetailView.tsx create mode 100644 ui/desktop/src/components/schedule/SchedulesView.tsx create mode 100644 ui/desktop/src/schedule.ts diff --git a/Cargo.lock b/Cargo.lock index 159e942d..82a98149 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -719,15 +719,15 @@ dependencies = [ [[package]] name = "axum" -version = "0.7.9" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edca88bc138befd0323b20752846e6587272d3b03b0343c8ea28a6f819e6e71f" +checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" dependencies = [ - "async-trait", - "axum-core 0.4.5", + "axum-core", "axum-macros", "base64 0.22.1", "bytes", + "form_urlencoded", "futures-util", "http 1.2.0", "http-body 1.0.1", @@ -735,7 +735,7 @@ dependencies = [ "hyper 1.6.0", "hyper-util", "itoa", - "matchit 0.7.3", + "matchit", "memchr", "mime", "percent-encoding", @@ -755,54 +755,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "axum" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d6fd624c75e18b3b4c6b9caf42b1afe24437daaee904069137d8bab077be8b8" -dependencies = [ - "axum-core 0.5.0", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "itoa", - "matchit 0.8.4", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde", - "sync_wrapper 1.0.2", - "tower 0.5.2", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "axum-core" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http 1.2.0", - "http-body 1.0.1", - "http-body-util", - "mime", - "pin-project-lite", - "rustversion", - "sync_wrapper 1.0.2", - "tower-layer", - "tower-service", - "tracing", -] - [[package]] name = "axum-core" version = "0.5.0" @@ -829,8 +781,8 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fc6f625a1f7705c6cf62d0d070794e94668988b1c38111baeec177c715f7b" dependencies = [ - "axum 0.8.1", - "axum-core 0.5.0", + "axum", + "axum-core", "bytes", "futures-util", "http 1.2.0", @@ -846,9 +798,9 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.4.2" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d123550fa8d071b7255cb0cc04dc302baa6c8c4a79f55701552684d8399bce" +checksum = "604fde5e028fea851ce1d8570bbdc034bec850d157f7569d10f347d06808c05c" dependencies = [ "proc-macro2", "quote", @@ -1669,6 +1621,15 @@ dependencies = [ "itertools 0.10.5", ] +[[package]] +name = "croner" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38fd53511eaf0b00a185613875fee58b208dfce016577d0ad4bb548e1c4fb3ee" +dependencies = [ + "chrono", +] + [[package]] name = "crossbeam-channel" version = "0.5.15" @@ -1792,7 +1753,7 @@ dependencies = [ "num", "once_cell", "openssl", - "rand", + "rand 0.8.5", ] [[package]] @@ -2073,7 +2034,7 @@ dependencies = [ "hyper-timeout", "log", "pin-project", - "rand", + "rand 0.8.5", "tokio", ] @@ -2529,7 +2490,7 @@ dependencies = [ "aws-config", "aws-sdk-bedrockruntime", "aws-smithy-types", - "axum 0.7.9", + "axum", "base64 0.21.7", "blake3", "chrono", @@ -2552,7 +2513,7 @@ dependencies = [ "nanoid", "once_cell", "paste", - "rand", + "rand 0.8.5", "regex", "reqwest 0.12.12", "serde", @@ -2566,6 +2527,7 @@ dependencies = [ "thiserror 1.0.69", "tokenizers", "tokio", + "tokio-cron-scheduler", "tracing", "tracing-subscriber", "url", @@ -2623,7 +2585,7 @@ dependencies = [ "minijinja", "nix 0.30.1", "once_cell", - "rand", + "rand 0.8.5", "regex", "reqwest 0.12.12", "rustyline", @@ -2741,8 +2703,9 @@ version = "1.0.24" dependencies = [ "anyhow", "async-trait", - "axum 0.7.9", + "axum", "axum-extra", + "base64 0.21.7", "bytes", "chrono", "clap 4.5.31", @@ -2762,6 +2725,7 @@ dependencies = [ "serde_yaml", "thiserror 1.0.69", "tokio", + "tokio-cron-scheduler", "tokio-stream", "tower 0.5.2", "tower-http", @@ -3819,12 +3783,6 @@ dependencies = [ "regex-automata 0.1.10", ] -[[package]] -name = "matchit" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" - [[package]] name = "matchit" version = "0.8.4" @@ -3851,7 +3809,7 @@ dependencies = [ "futures", "mcp-core", "nix 0.30.1", - "rand", + "rand 0.8.5", "reqwest 0.11.27", "serde", "serde_json", @@ -4030,7 +3988,7 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ffa00dec017b5b1a8b7cf5e2c008bfda1aa7e0697ac1508b491fdf2622fb4d8" dependencies = [ - "rand", + "rand 0.8.5", ] [[package]] @@ -4269,7 +4227,7 @@ dependencies = [ "chrono", "getrandom 0.2.15", "http 1.2.0", - "rand", + "rand 0.8.5", "reqwest 0.12.12", "serde", "serde_json", @@ -4816,7 +4774,7 @@ checksum = "a2fe5ef3495d7d2e377ff17b1a8ce2ee2ec2a18cde8b6ad6619d65d0701c135d" dependencies = [ "bytes", "getrandom 0.2.15", - "rand", + "rand 0.8.5", "ring", "rustc-hash 2.1.1", "rustls 0.23.23", @@ -4868,8 +4826,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" dependencies = [ "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.3", ] [[package]] @@ -4879,7 +4847,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.3", ] [[package]] @@ -4891,6 +4869,15 @@ dependencies = [ "getrandom 0.2.15", ] +[[package]] +name = "rand_core" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +dependencies = [ + "getrandom 0.3.1", +] + [[package]] name = "rangemap" version = "1.5.1" @@ -4923,8 +4910,8 @@ dependencies = [ "once_cell", "paste", "profiling", - "rand", - "rand_chacha", + "rand 0.8.5", + "rand_chacha 0.3.1", "simd_helpers", "system-deps", "thiserror 1.0.69", @@ -6268,7 +6255,7 @@ dependencies = [ "monostate", "onig", "paste", - "rand", + "rand 0.8.5", "rayon", "rayon-cond", "regex", @@ -6300,6 +6287,21 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "tokio-cron-scheduler" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c71ce8f810abc9fabebccc30302a952f9e89c6cf246fafaf170fef164063141" +dependencies = [ + "chrono", + "croner", + "num-derive", + "num-traits", + "tokio", + "tracing", + "uuid", +] + [[package]] name = "tokio-io-timeout" version = "1.2.0" @@ -6354,9 +6356,9 @@ dependencies = [ [[package]] name = "tokio-tungstenite" -version = "0.24.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +checksum = "7a9daff607c6d2bf6c16fd681ccb7eecc83e4e2cdc1ca067ffaadfca5de7f084" dependencies = [ "futures-util", "log", @@ -6576,19 +6578,18 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "tungstenite" -version = "0.24.0" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +checksum = "4793cb5e56680ecbb1d843515b23b6de9a75eb04b66643e256a396d43be33c13" dependencies = [ - "byteorder", "bytes", "data-encoding", "http 1.2.0", "httparse", "log", - "rand", + "rand 0.9.1", "sha1", - "thiserror 1.0.69", + "thiserror 2.0.12", "utf-8", ] diff --git a/crates/goose-cli/src/cli.rs b/crates/goose-cli/src/cli.rs index 5430cac6..0e2651f6 100644 --- a/crates/goose-cli/src/cli.rs +++ b/crates/goose-cli/src/cli.rs @@ -9,6 +9,11 @@ use crate::commands::info::handle_info; use crate::commands::mcp::run_server; use crate::commands::project::{handle_project_default, handle_projects_interactive}; use crate::commands::recipe::{handle_deeplink, handle_validate}; +// Import the new handlers from commands::schedule +use crate::commands::schedule::{ + handle_schedule_add, handle_schedule_list, handle_schedule_remove, handle_schedule_run_now, + handle_schedule_sessions, +}; use crate::commands::session::{handle_session_list, handle_session_remove}; use crate::logging::setup_logging; use crate::recipes::recipe::{explain_recipe_with_parameters, load_recipe_as_template}; @@ -99,6 +104,46 @@ enum SessionCommand { }, } +#[derive(Subcommand, Debug)] +enum SchedulerCommand { + #[command(about = "Add a new scheduled job")] + Add { + #[arg(long, help = "Unique ID for the job")] + id: String, + #[arg(long, help = "Cron string for the schedule (e.g., '0 0 * * * *')")] + cron: String, + #[arg( + long, + help = "Recipe source (path to file, or base64 encoded recipe string)" + )] + recipe_source: String, + }, + #[command(about = "List all scheduled jobs")] + List {}, + #[command(about = "Remove a scheduled job by ID")] + Remove { + #[arg(long, help = "ID of the job to remove")] // Changed from positional to named --id + id: String, + }, + /// List sessions created by a specific schedule + #[command(about = "List sessions created by a specific schedule")] + Sessions { + /// ID of the schedule + #[arg(long, help = "ID of the schedule")] // Explicitly make it --id + id: String, + /// Maximum number of sessions to return + #[arg(long, help = "Maximum number of sessions to return")] + limit: Option, + }, + /// Run a scheduled job immediately + #[command(about = "Run a scheduled job immediately")] + RunNow { + /// ID of the schedule to run + #[arg(long, help = "ID of the schedule to run")] // Explicitly make it --id + id: String, + }, +} + #[derive(Subcommand)] pub enum BenchCommand { #[command(name = "init-config", about = "Create a new starter-config")] @@ -418,6 +463,13 @@ enum Command { command: RecipeCommand, }, + /// Manage scheduled jobs + #[command(about = "Manage scheduled jobs", visible_alias = "sched")] + Schedule { + #[command(subcommand)] + command: SchedulerCommand, + }, + /// Update the Goose CLI version #[command(about = "Update the goose CLI version")] Update { @@ -638,6 +690,32 @@ pub async fn cli() -> Result<()> { return Ok(()); } + Some(Command::Schedule { command }) => { + match command { + SchedulerCommand::Add { + id, + cron, + recipe_source, + } => { + handle_schedule_add(id, cron, recipe_source).await?; + } + SchedulerCommand::List {} => { + handle_schedule_list().await?; + } + SchedulerCommand::Remove { id } => { + handle_schedule_remove(id).await?; + } + SchedulerCommand::Sessions { id, limit } => { + // New arm + handle_schedule_sessions(id, limit).await?; + } + SchedulerCommand::RunNow { id } => { + // New arm + handle_schedule_run_now(id).await?; + } + } + return Ok(()); + } Some(Command::Update { canary, reconfigure, diff --git a/crates/goose-cli/src/commands/mod.rs b/crates/goose-cli/src/commands/mod.rs index fdc04a2a..bda22fbd 100644 --- a/crates/goose-cli/src/commands/mod.rs +++ b/crates/goose-cli/src/commands/mod.rs @@ -4,5 +4,6 @@ pub mod info; pub mod mcp; pub mod project; pub mod recipe; +pub mod schedule; pub mod session; pub mod update; diff --git a/crates/goose-cli/src/commands/schedule.rs b/crates/goose-cli/src/commands/schedule.rs new file mode 100644 index 00000000..04498099 --- /dev/null +++ b/crates/goose-cli/src/commands/schedule.rs @@ -0,0 +1,184 @@ +use anyhow::{bail, Context, Result}; +use base64::engine::{general_purpose::STANDARD as BASE64_STANDARD, Engine}; +use goose::scheduler::{ + get_default_scheduled_recipes_dir, get_default_scheduler_storage_path, ScheduledJob, Scheduler, + SchedulerError, +}; +use std::path::Path; + +// Base64 decoding function - might be needed if recipe_source_arg can be base64 +// For now, handle_schedule_add will assume it's a path. +async fn _decode_base64_recipe(source: &str) -> Result { + let bytes = BASE64_STANDARD + .decode(source.as_bytes()) + .with_context(|| "Recipe source is not a valid path and not valid Base64.")?; + String::from_utf8(bytes).with_context(|| "Decoded Base64 recipe source is not valid UTF-8.") +} + +pub async fn handle_schedule_add( + id: String, + cron: String, + recipe_source_arg: String, // This is expected to be a file path by the Scheduler +) -> Result<()> { + println!( + "[CLI Debug] Scheduling job ID: {}, Cron: {}, Recipe Source Path: {}", + id, cron, recipe_source_arg + ); + + // The Scheduler's add_scheduled_job will handle copying the recipe from recipe_source_arg + // to its internal storage and validating the path. + let job = ScheduledJob { + id: id.clone(), + source: recipe_source_arg.clone(), // Pass the original user-provided path + cron, + last_run: None, + }; + + let scheduler_storage_path = + get_default_scheduler_storage_path().context("Failed to get scheduler storage path")?; + let scheduler = Scheduler::new(scheduler_storage_path) + .await + .context("Failed to initialize scheduler")?; + + match scheduler.add_scheduled_job(job).await { + Ok(_) => { + // The scheduler has copied the recipe to its internal directory. + // We can reconstruct the likely path for display if needed, or adjust success message. + let scheduled_recipes_dir = get_default_scheduled_recipes_dir() + .unwrap_or_else(|_| Path::new("./.goose_scheduled_recipes").to_path_buf()); // Fallback for display + let extension = Path::new(&recipe_source_arg) + .extension() + .and_then(|ext| ext.to_str()) + .unwrap_or("yaml"); + let final_recipe_path = scheduled_recipes_dir.join(format!("{}.{}", id, extension)); + + println!( + "Scheduled job '{}' added. Recipe expected at {:?}", + id, final_recipe_path + ); + Ok(()) + } + Err(e) => { + // No local file to clean up by the CLI in this revised flow. + match e { + SchedulerError::JobIdExists(job_id) => { + bail!("Error: Job with ID '{}' already exists.", job_id); + } + SchedulerError::RecipeLoadError(msg) => { + bail!( + "Error with recipe source: {}. Path: {}", + msg, + recipe_source_arg + ); + } + _ => Err(anyhow::Error::new(e)) + .context(format!("Failed to add job '{}' to scheduler", id)), + } + } + } +} + +pub async fn handle_schedule_list() -> Result<()> { + let scheduler_storage_path = + get_default_scheduler_storage_path().context("Failed to get scheduler storage path")?; + let scheduler = Scheduler::new(scheduler_storage_path) + .await + .context("Failed to initialize scheduler")?; + + let jobs = scheduler.list_scheduled_jobs().await; + if jobs.is_empty() { + println!("No scheduled jobs found."); + } else { + println!("Scheduled Jobs:"); + for job in jobs { + println!( + "- ID: {}\n Cron: {}\n Recipe Source (in store): {}\n Last Run: {}", + job.id, + job.cron, + job.source, // This source is now the path within scheduled_recipes_dir + job.last_run + .map_or_else(|| "Never".to_string(), |dt| dt.to_rfc3339()) + ); + } + } + Ok(()) +} + +pub async fn handle_schedule_remove(id: String) -> Result<()> { + let scheduler_storage_path = + get_default_scheduler_storage_path().context("Failed to get scheduler storage path")?; + let scheduler = Scheduler::new(scheduler_storage_path) + .await + .context("Failed to initialize scheduler")?; + + match scheduler.remove_scheduled_job(&id).await { + Ok(_) => { + println!("Scheduled job '{}' and its associated recipe removed.", id); + Ok(()) + } + Err(e) => match e { + SchedulerError::JobNotFound(job_id) => { + bail!("Error: Job with ID '{}' not found.", job_id); + } + _ => Err(anyhow::Error::new(e)) + .context(format!("Failed to remove job '{}' from scheduler", id)), + }, + } +} + +pub async fn handle_schedule_sessions(id: String, limit: Option) -> Result<()> { + let scheduler_storage_path = + get_default_scheduler_storage_path().context("Failed to get scheduler storage path")?; + let scheduler = Scheduler::new(scheduler_storage_path) + .await + .context("Failed to initialize scheduler")?; + + match scheduler.sessions(&id, limit.unwrap_or(50) as usize).await { + Ok(sessions) => { + if sessions.is_empty() { + println!("No sessions found for schedule ID '{}'.", id); + } else { + println!("Sessions for schedule ID '{}':", id); + // sessions is now Vec<(String, SessionMetadata)> + for (session_name, metadata) in sessions { + println!( + " - Session ID: {}, Working Dir: {}, Description: \"{}\", Messages: {}, Schedule ID: {:?}", + session_name, // Display the session_name as Session ID + metadata.working_dir.display(), + metadata.description, + metadata.message_count, + metadata.schedule_id.as_deref().unwrap_or("N/A") + ); + } + } + } + Err(e) => { + bail!("Failed to get sessions for schedule '{}': {:?}", id, e); + } + } + Ok(()) +} + +pub async fn handle_schedule_run_now(id: String) -> Result<()> { + let scheduler_storage_path = + get_default_scheduler_storage_path().context("Failed to get scheduler storage path")?; + let scheduler = Scheduler::new(scheduler_storage_path) + .await + .context("Failed to initialize scheduler")?; + + match scheduler.run_now(&id).await { + Ok(session_id) => { + println!( + "Successfully triggered schedule '{}'. New session ID: {}", + id, session_id + ); + } + Err(e) => match e { + SchedulerError::JobNotFound(job_id) => { + bail!("Error: Job with ID '{}' not found.", job_id); + } + _ => bail!("Failed to run schedule '{}' now: {:?}", id, e), + }, + } + Ok(()) +} diff --git a/crates/goose-cli/src/session/mod.rs b/crates/goose-cli/src/session/mod.rs index 00a7bd10..3b515cc3 100644 --- a/crates/goose-cli/src/session/mod.rs +++ b/crates/goose-cli/src/session/mod.rs @@ -688,6 +688,7 @@ impl Session { id: session_id.clone(), working_dir: std::env::current_dir() .expect("failed to get current session working directory"), + schedule_id: None, }), ) .await?; @@ -793,6 +794,7 @@ impl Session { id: session_id.clone(), working_dir: std::env::current_dir() .expect("failed to get current session working directory"), + schedule_id: None, }), ) .await?; diff --git a/crates/goose-server/Cargo.toml b/crates/goose-server/Cargo.toml index 30ef8925..a343ce5a 100644 --- a/crates/goose-server/Cargo.toml +++ b/crates/goose-server/Cargo.toml @@ -12,9 +12,10 @@ goose = { path = "../goose" } mcp-core = { path = "../mcp-core" } goose-mcp = { path = "../goose-mcp" } mcp-server = { path = "../mcp-server" } -axum = { version = "0.7.2", features = ["ws", "macros"] } +axum = { version = "0.8.1", features = ["ws", "macros"] } tokio = { version = "1.43", features = ["full"] } chrono = "0.4" +tokio-cron-scheduler = "0.14.0" tower-http = { version = "0.5", features = ["cors"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" @@ -26,6 +27,7 @@ tokio-stream = "0.1" anyhow = "1.0" bytes = "1.5" http = "1.0" +base64 = "0.21" config = { version = "0.14.1", features = ["toml"] } thiserror = "1.0" clap = { version = "4.4", features = ["derive"] } @@ -33,7 +35,7 @@ once_cell = "1.20.2" etcetera = "0.8.0" serde_yaml = "0.9.34" axum-extra = "0.10.0" -utoipa = { version = "4.1", features = ["axum_extras"] } +utoipa = { version = "4.1", features = ["axum_extras", "chrono"] } dirs = "6.0.0" reqwest = { version = "0.12.9", features = ["json", "rustls-tls", "blocking"], default-features = false } diff --git a/crates/goose-server/src/commands/agent.rs b/crates/goose-server/src/commands/agent.rs index bf0a2897..f59919bf 100644 --- a/crates/goose-server/src/commands/agent.rs +++ b/crates/goose-server/src/commands/agent.rs @@ -3,7 +3,10 @@ use std::sync::Arc; use crate::configuration; use crate::state; use anyhow::Result; +use etcetera::{choose_app_strategy, AppStrategy}; use goose::agents::Agent; +use goose::config::APP_STRATEGY; +use goose::scheduler::Scheduler as GooseScheduler; use tower_http::cors::{Any, CorsLayer}; use tracing::info; @@ -11,27 +14,30 @@ pub async fn run() -> Result<()> { // Initialize logging crate::logging::setup_logging(Some("goosed"))?; - // Load configuration let settings = configuration::Settings::new()?; - // load secret key from GOOSE_SERVER__SECRET_KEY environment variable let secret_key = std::env::var("GOOSE_SERVER__SECRET_KEY").unwrap_or_else(|_| "test".to_string()); let new_agent = Agent::new(); + let agent_ref = Arc::new(new_agent); - // Create app state with agent - let state = state::AppState::new(Arc::new(new_agent), secret_key.clone()).await; + let app_state = state::AppState::new(agent_ref.clone(), secret_key.clone()).await; + + let schedule_file_path = choose_app_strategy(APP_STRATEGY.clone())? + .data_dir() + .join("schedules.json"); + + let scheduler_instance = GooseScheduler::new(schedule_file_path).await?; + app_state.set_scheduler(scheduler_instance).await; - // Create router with CORS support let cors = CorsLayer::new() .allow_origin(Any) .allow_methods(Any) .allow_headers(Any); - let app = crate::routes::configure(state).layer(cors); + let app = crate::routes::configure(app_state).layer(cors); - // Run server let listener = tokio::net::TcpListener::bind(settings.socket_addr()).await?; info!("listening on {}", listener.local_addr()?); axum::serve(listener, app).await?; diff --git a/crates/goose-server/src/logging.rs b/crates/goose-server/src/logging.rs index c0802964..90db8f8a 100644 --- a/crates/goose-server/src/logging.rs +++ b/crates/goose-server/src/logging.rs @@ -8,6 +8,7 @@ use tracing_subscriber::{ Registry, }; +use goose::config::APP_STRATEGY; use goose::tracing::langfuse_layer; /// Returns the directory where log files should be stored. @@ -17,8 +18,8 @@ fn get_log_directory() -> Result { // - macOS/Linux: ~/.local/state/goose/logs/server // - Windows: ~\AppData\Roaming\Block\goose\data\logs\server // - Windows has no convention for state_dir, use data_dir instead - let home_dir = choose_app_strategy(crate::APP_STRATEGY.clone()) - .context("HOME environment variable not set")?; + let home_dir = + choose_app_strategy(APP_STRATEGY.clone()).context("HOME environment variable not set")?; let base_log_dir = home_dir .in_state_dir("logs/server") diff --git a/crates/goose-server/src/main.rs b/crates/goose-server/src/main.rs index 25fb6f42..ccd28568 100644 --- a/crates/goose-server/src/main.rs +++ b/crates/goose-server/src/main.rs @@ -1,12 +1,3 @@ -use etcetera::AppStrategyArgs; -use once_cell::sync::Lazy; - -pub static APP_STRATEGY: Lazy = Lazy::new(|| AppStrategyArgs { - top_level_domain: "Block".to_string(), - author: "Block".to_string(), - app_name: "goose".to_string(), -}); - mod commands; mod configuration; mod error; diff --git a/crates/goose-server/src/openapi.rs b/crates/goose-server/src/openapi.rs index f74ccec1..0711e3a3 100644 --- a/crates/goose-server/src/openapi.rs +++ b/crates/goose-server/src/openapi.rs @@ -37,7 +37,12 @@ use utoipa::OpenApi; super::routes::reply::confirm_permission, super::routes::context::manage_context, super::routes::session::list_sessions, - super::routes::session::get_session_history + super::routes::session::get_session_history, + super::routes::schedule::create_schedule, + super::routes::schedule::list_schedules, + super::routes::schedule::delete_schedule, + super::routes::schedule::run_now_handler, + super::routes::schedule::sessions_handler ), components(schemas( super::routes::config_management::UpsertConfigQuery, @@ -85,6 +90,12 @@ use utoipa::OpenApi; ModelInfo, SessionInfo, SessionMetadata, + super::routes::schedule::CreateScheduleRequest, + goose::scheduler::ScheduledJob, + super::routes::schedule::RunNowResponse, + super::routes::schedule::ListSchedulesResponse, + super::routes::schedule::SessionsQuery, + super::routes::schedule::SessionDisplayInfo, )) )] pub struct ApiDoc; diff --git a/crates/goose-server/src/routes/config_management.rs b/crates/goose-server/src/routes/config_management.rs index 7774cc4d..02ba313b 100644 --- a/crates/goose-server/src/routes/config_management.rs +++ b/crates/goose-server/src/routes/config_management.rs @@ -6,8 +6,9 @@ use axum::{ routing::{delete, get, post}, Json, Router, }; -use etcetera::{choose_app_strategy, AppStrategy, AppStrategyArgs}; +use etcetera::{choose_app_strategy, AppStrategy}; use goose::config::Config; +use goose::config::APP_STRATEGY; use goose::config::{extensions::name_to_key, PermissionManager}; use goose::config::{ExtensionConfigManager, ExtensionEntry}; use goose::model::ModelConfig; @@ -15,7 +16,6 @@ use goose::providers::base::ProviderMetadata; use goose::providers::providers as get_providers; use goose::{agents::ExtensionConfig, config::permission::PermissionLevel}; use http::{HeaderMap, StatusCode}; -use once_cell::sync::Lazy; use serde::{Deserialize, Serialize}; use serde_json::Value; use serde_yaml; @@ -52,14 +52,12 @@ pub struct ConfigResponse { pub config: HashMap, } -// Define a new structure to encapsulate the provider details along with configuration status #[derive(Debug, Serialize, Deserialize, ToSchema)] pub struct ProviderDetails { - /// Unique identifier and name of the provider pub name: String, - /// Metadata about the provider + pub metadata: ProviderMetadata, - /// Indicates whether the provider is fully configured + pub is_configured: bool, } @@ -70,7 +68,6 @@ pub struct ProvidersResponse { #[derive(Debug, Serialize, Deserialize, ToSchema)] pub struct ToolPermission { - /// Unique identifier and name of the tool, format __ pub tool_name: String, pub permission: PermissionLevel, } @@ -94,7 +91,6 @@ pub async fn upsert_config( headers: HeaderMap, Json(query): Json, ) -> Result, StatusCode> { - // Use the helper function to verify the secret key verify_secret_key(&headers, &state)?; let config = Config::global(); @@ -121,12 +117,10 @@ pub async fn remove_config( headers: HeaderMap, Json(query): Json, ) -> Result, StatusCode> { - // Use the helper function to verify the secret key verify_secret_key(&headers, &state)?; let config = Config::global(); - // Check if the secret flag is true and call the appropriate method let result = if query.is_secret { config.delete_secret(&query.key) } else { @@ -142,7 +136,7 @@ pub async fn remove_config( #[utoipa::path( post, path = "/config/read", - request_body = ConfigKeyQuery, // Switch back to request_body + request_body = ConfigKeyQuery, responses( (status = 200, description = "Configuration value retrieved successfully", body = Value), (status = 404, description = "Configuration key not found") @@ -155,7 +149,6 @@ pub async fn read_config( ) -> Result, StatusCode> { verify_secret_key(&headers, &state)?; - // Special handling for model-limits if query.key == "model-limits" { let limits = ModelConfig::get_all_model_limits(); return Ok(Json( @@ -166,13 +159,10 @@ pub async fn read_config( let config = Config::global(); match config.get(&query.key, query.is_secret) { - // Always get the actual value Ok(value) => { if query.is_secret { - // If it's marked as secret, return a boolean indicating presence Ok(Json(Value::Bool(true))) } else { - // Return the actual value if not secret Ok(Json(value)) } } @@ -197,7 +187,6 @@ pub async fn get_extensions( match ExtensionConfigManager::get_all() { Ok(extensions) => Ok(Json(ExtensionResponse { extensions })), Err(err) => { - // Return UNPROCESSABLE_ENTITY only for DeserializeError, INTERNAL_SERVER_ERROR for everything else if err .downcast_ref::() .is_some_and(|e| matches!(e, goose::config::base::ConfigError::DeserializeError(_))) @@ -228,7 +217,6 @@ pub async fn add_extension( ) -> Result, StatusCode> { verify_secret_key(&headers, &state)?; - // Get existing extensions to check if this is an update let extensions = ExtensionConfigManager::get_all().map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; let key = name_to_key(&extension_query.name); @@ -284,12 +272,10 @@ pub async fn read_all_config( State(state): State>, headers: HeaderMap, ) -> Result, StatusCode> { - // Use the helper function to verify the secret key verify_secret_key(&headers, &state)?; let config = Config::global(); - // Load values from config file let values = config .load_values() .map_err(|_| StatusCode::UNPROCESSABLE_ENTITY)?; @@ -297,7 +283,6 @@ pub async fn read_all_config( Ok(Json(ConfigResponse { config: values })) } -// Modified providers function using the new response type #[utoipa::path( get, path = "/config/providers", @@ -311,14 +296,11 @@ pub async fn providers( ) -> Result>, StatusCode> { verify_secret_key(&headers, &state)?; - // Fetch the list of providers, which are likely stored in the AppState or can be retrieved via a function call let providers_metadata = get_providers(); - // Construct the response by checking configuration status for each provider let providers_response: Vec = providers_metadata .into_iter() .map(|metadata| { - // Check if the provider is configured (this will depend on how you track configuration status) let is_configured = check_provider_configured(&metadata); ProviderDetails { @@ -348,21 +330,16 @@ pub async fn init_config( let config = Config::global(); - // 200 if config already exists if config.exists() { return Ok(Json("Config already exists".to_string())); } - // Find the workspace root (where the top-level Cargo.toml with [workspace] is) let workspace_root = match std::env::current_exe() { Ok(mut exe_path) => { - // Start from the executable's directory and traverse up while let Some(parent) = exe_path.parent() { let cargo_toml = parent.join("Cargo.toml"); if cargo_toml.exists() { - // Read the Cargo.toml file if let Ok(content) = std::fs::read_to_string(&cargo_toml) { - // Check if it contains [workspace] if content.contains("[workspace]") { exe_path = parent.to_path_buf(); break; @@ -376,7 +353,6 @@ pub async fn init_config( Err(_) => return Err(StatusCode::INTERNAL_SERVER_ERROR), }; - // Check if init-config.yaml exists at workspace root let init_config_path = workspace_root.join("init-config.yaml"); if !init_config_path.exists() { return Ok(Json( @@ -384,7 +360,6 @@ pub async fn init_config( )); } - // Read init-config.yaml and validate let init_content = match std::fs::read_to_string(&init_config_path) { Ok(content) => content, Err(_) => return Err(StatusCode::INTERNAL_SERVER_ERROR), @@ -394,7 +369,6 @@ pub async fn init_config( Err(_) => return Err(StatusCode::INTERNAL_SERVER_ERROR), }; - // Save init-config.yaml to ~/.config/goose/config.yaml match config.save_values(init_values) { Ok(_) => Ok(Json("Config initialized successfully".to_string())), Err(_) => Err(StatusCode::INTERNAL_SERVER_ERROR), @@ -418,7 +392,7 @@ pub async fn upsert_permissions( verify_secret_key(&headers, &state)?; let mut permission_manager = PermissionManager::default(); - // Iterate over each tool permission and update permissions + for tool_permission in &query.tool_permissions { permission_manager.update_user_permission( &tool_permission.tool_name, @@ -429,12 +403,6 @@ pub async fn upsert_permissions( Ok(Json("Permissions updated successfully".to_string())) } -pub static APP_STRATEGY: Lazy = Lazy::new(|| AppStrategyArgs { - top_level_domain: "Block".to_string(), - author: "Block".to_string(), - app_name: "goose".to_string(), -}); - #[utoipa::path( post, path = "/config/backup", @@ -460,11 +428,9 @@ pub async fn backup_config( .file_name() .ok_or(StatusCode::INTERNAL_SERVER_ERROR)?; - // Append ".bak" to the file name let mut backup_name = file_name.to_os_string(); backup_name.push(".bak"); - // Construct the new path with the same parent directory let backup = config_path.with_file_name(backup_name); match std::fs::rename(&config_path, &backup) { Ok(_) => Ok(Json(format!("Moved {:?} to {:?}", config_path, backup))), @@ -483,7 +449,7 @@ pub fn routes(state: Arc) -> Router { .route("/config/read", post(read_config)) .route("/config/extensions", get(get_extensions)) .route("/config/extensions", post(add_extension)) - .route("/config/extensions/:name", delete(remove_extension)) + .route("/config/extensions/{name}", delete(remove_extension)) .route("/config/providers", get(providers)) .route("/config/init", post(init_config)) .route("/config/backup", post(backup_config)) @@ -497,16 +463,22 @@ mod tests { #[tokio::test] async fn test_read_model_limits() { - // Create test state and headers let test_state = AppState::new( Arc::new(goose::agents::Agent::default()), "test".to_string(), ) .await; + let sched_storage_path = choose_app_strategy(APP_STRATEGY.clone()) + .unwrap() + .data_dir() + .join("schedules.json"); + let sched = goose::scheduler::Scheduler::new(sched_storage_path) + .await + .unwrap(); + test_state.set_scheduler(sched).await; let mut headers = HeaderMap::new(); headers.insert("X-Secret-Key", "test".parse().unwrap()); - // Execute let result = read_config( State(test_state), headers, @@ -517,16 +489,13 @@ mod tests { ) .await; - // Assert assert!(result.is_ok()); let response = result.unwrap(); - // Parse the response and check the contents let limits: Vec = serde_json::from_value(response.0).unwrap(); assert!(!limits.is_empty()); - // Check for some expected patterns let gpt4_limit = limits.iter().find(|l| l.pattern == "gpt-4o"); assert!(gpt4_limit.is_some()); assert_eq!(gpt4_limit.unwrap().context_limit, 128_000); diff --git a/crates/goose-server/src/routes/mod.rs b/crates/goose-server/src/routes/mod.rs index dcdb577e..89e46f23 100644 --- a/crates/goose-server/src/routes/mod.rs +++ b/crates/goose-server/src/routes/mod.rs @@ -6,6 +6,7 @@ pub mod extension; pub mod health; pub mod recipe; pub mod reply; +pub mod schedule; pub mod session; pub mod utils; use std::sync::Arc; @@ -23,4 +24,5 @@ pub fn configure(state: Arc) -> Router { .merge(config_management::routes(state.clone())) .merge(recipe::routes(state.clone())) .merge(session::routes(state.clone())) + .merge(schedule::routes(state.clone())) } diff --git a/crates/goose-server/src/routes/reply.rs b/crates/goose-server/src/routes/reply.rs index 764b9065..ef84dc58 100644 --- a/crates/goose-server/src/routes/reply.rs +++ b/crates/goose-server/src/routes/reply.rs @@ -35,7 +35,6 @@ use tokio::time::timeout; use tokio_stream::wrappers::ReceiverStream; use utoipa::ToSchema; -// Direct message serialization for the chat request #[derive(Debug, Deserialize)] struct ChatRequest { messages: Vec, @@ -43,7 +42,6 @@ struct ChatRequest { session_working_dir: String, } -// Custom SSE response type for streaming messages pub struct SseResponse { rx: ReceiverStream, } @@ -78,7 +76,6 @@ impl IntoResponse for SseResponse { } } -// Message event types for SSE streaming #[derive(Debug, Serialize)] #[serde(tag = "type")] enum MessageEvent { @@ -87,7 +84,6 @@ enum MessageEvent { Finish { reason: String }, } -// Stream a message as an SSE event async fn stream_event( event: MessageEvent, tx: &mpsc::Sender, @@ -108,19 +104,16 @@ async fn handler( ) -> Result { verify_secret_key(&headers, &state)?; - // Create channel for streaming let (tx, rx) = mpsc::channel(100); let stream = ReceiverStream::new(rx); let messages = request.messages; let session_working_dir = request.session_working_dir; - // Generate a new session ID if not provided in the request let session_id = request .session_id .unwrap_or_else(session::generate_session_id); - // Spawn task to handle streaming tokio::spawn(async move { let agent = state.get_agent().await; let agent = match agent { @@ -166,7 +159,6 @@ async fn handler( } }; - // Get the provider first, before starting the reply stream let provider = agent.provider().await; let mut stream = match agent @@ -175,6 +167,7 @@ async fn handler( Some(SessionConfig { id: session::Identifier::Name(session_id.clone()), working_dir: PathBuf::from(session_working_dir), + schedule_id: None, }), ) .await @@ -200,7 +193,6 @@ async fn handler( } }; - // Collect all messages for storage let mut all_messages = messages.clone(); let session_path = session::get_path(session::Identifier::Name(session_id.clone())); @@ -221,7 +213,7 @@ async fn handler( break; } - // Store messages and generate description in background + let session_path = session_path.clone(); let messages = all_messages.clone(); let provider = Arc::clone(provider.as_ref().unwrap()); @@ -255,7 +247,6 @@ async fn handler( } } - // Send finish event let _ = stream_event( MessageEvent::Finish { reason: "stop".to_string(), @@ -280,7 +271,6 @@ struct AskResponse { response: String, } -// Simple ask an AI for a response, non streaming async fn ask_handler( State(state): State>, headers: HeaderMap, @@ -290,7 +280,6 @@ async fn ask_handler( let session_working_dir = request.session_working_dir; - // Generate a new session ID if not provided in the request let session_id = request .session_id .unwrap_or_else(session::generate_session_id); @@ -300,13 +289,10 @@ async fn ask_handler( .await .map_err(|_| StatusCode::PRECONDITION_FAILED)?; - // Get the provider first, before starting the reply stream let provider = agent.provider().await; - // Create a single message for the prompt let messages = vec![Message::user().with_text(request.prompt)]; - // Get response from agent let mut response_text = String::new(); let mut stream = match agent .reply( @@ -314,6 +300,7 @@ async fn ask_handler( Some(SessionConfig { id: session::Identifier::Name(session_id.clone()), working_dir: PathBuf::from(session_working_dir), + schedule_id: None, }), ) .await @@ -325,7 +312,6 @@ async fn ask_handler( } }; - // Collect all messages for storage let mut all_messages = messages.clone(); let mut response_message = Message::assistant(); @@ -349,15 +335,12 @@ async fn ask_handler( } } - // Add the complete response message to the conversation history if !response_message.content.is_empty() { all_messages.push(response_message); } - // Get the session path - file will be created when needed let session_path = session::get_path(session::Identifier::Name(session_id.clone())); - // Store messages and generate description in background let session_path = session_path.clone(); let messages = all_messages.clone(); let provider = Arc::clone(provider.as_ref().unwrap()); @@ -438,13 +421,11 @@ async fn submit_tool_result( ) -> Result, StatusCode> { verify_secret_key(&headers, &state)?; - // Log the raw request for debugging tracing::info!( "Received tool result request: {}", serde_json::to_string_pretty(&raw.0).unwrap() ); - // Try to parse into our struct let payload: ToolResultRequest = match serde_json::from_value(raw.0.clone()) { Ok(req) => req, Err(e) => { @@ -465,7 +446,6 @@ async fn submit_tool_result( Ok(Json(json!({"status": "ok"}))) } -// Configure routes for this module pub fn routes(state: Arc) -> Router { Router::new() .route("/reply", post(handler)) @@ -488,7 +468,6 @@ mod tests { }; use mcp_core::tool::Tool; - // Mock Provider implementation for testing #[derive(Clone)] struct MockProvider { model_config: ModelConfig, @@ -523,10 +502,8 @@ mod tests { use std::sync::Arc; use tower::ServiceExt; - // This test requires tokio runtime #[tokio::test] async fn test_ask_endpoint() { - // Create a mock app state with mock provider let mock_model_config = ModelConfig::new("test-model".to_string()); let mock_provider = Arc::new(MockProvider { model_config: mock_model_config, @@ -534,11 +511,15 @@ mod tests { let agent = Agent::new(); let _ = agent.update_provider(mock_provider).await; let state = AppState::new(Arc::new(agent), "test-secret".to_string()).await; + let scheduler_path = goose::scheduler::get_default_scheduler_storage_path() + .expect("Failed to get default scheduler storage path"); + let scheduler = goose::scheduler::Scheduler::new(scheduler_path) + .await + .unwrap(); + state.set_scheduler(scheduler).await; - // Build router let app = routes(state); - // Create request let request = Request::builder() .uri("/ask") .method("POST") @@ -554,10 +535,8 @@ mod tests { )) .unwrap(); - // Send request let response = app.oneshot(request).await.unwrap(); - // Assert response status assert_eq!(response.status(), StatusCode::OK); } } diff --git a/crates/goose-server/src/routes/schedule.rs b/crates/goose-server/src/routes/schedule.rs new file mode 100644 index 00000000..b32df60d --- /dev/null +++ b/crates/goose-server/src/routes/schedule.rs @@ -0,0 +1,270 @@ +use std::sync::Arc; + +use axum::{ + extract::{Path, Query, State}, + http::{HeaderMap, StatusCode}, + routing::{delete, get, post}, + Json, Router, +}; +use serde::{Deserialize, Serialize}; + +use chrono::NaiveDateTime; + +use crate::routes::utils::verify_secret_key; +use crate::state::AppState; +use goose::scheduler::ScheduledJob; + +#[derive(Deserialize, Serialize, utoipa::ToSchema)] +pub struct CreateScheduleRequest { + id: String, + recipe_source: String, + cron: String, +} + +#[derive(Serialize, utoipa::ToSchema)] +pub struct ListSchedulesResponse { + jobs: Vec, +} + +// Response for the run_now endpoint +#[derive(Serialize, utoipa::ToSchema)] +pub struct RunNowResponse { + session_id: String, +} + +// Query parameters for the sessions endpoint +#[derive(Deserialize, utoipa::ToSchema, utoipa::IntoParams)] +pub struct SessionsQuery { + #[serde(default = "default_limit")] + limit: u32, +} + +fn default_limit() -> u32 { + 50 // Default limit for sessions listed +} + +// Struct for the frontend session list +#[derive(Serialize, utoipa::ToSchema)] +#[serde(rename_all = "camelCase")] +pub struct SessionDisplayInfo { + id: String, // Derived from session_name (filename) + name: String, // From metadata.description + created_at: String, // Derived from session_name, in ISO 8601 format + working_dir: String, // from metadata.working_dir (as String) + schedule_id: Option, + message_count: usize, + total_tokens: Option, + input_tokens: Option, + output_tokens: Option, + accumulated_total_tokens: Option, + accumulated_input_tokens: Option, + accumulated_output_tokens: Option, +} + +fn parse_session_name_to_iso(session_name: &str) -> String { + NaiveDateTime::parse_from_str(session_name, "%Y%m%d_%H%M%S") + .map(|dt| dt.and_utc().to_rfc3339()) + .unwrap_or_else(|_| String::new()) // Fallback to empty string if parsing fails +} + +#[utoipa::path( + post, + path = "/schedule/create", + request_body = CreateScheduleRequest, + responses( + (status = 200, description = "Scheduled job created successfully", body = ScheduledJob), + (status = 500, description = "Internal server error") + ), + tag = "schedule" +)] +#[axum::debug_handler] +async fn create_schedule( + State(state): State>, + headers: HeaderMap, + Json(req): Json, +) -> Result, StatusCode> { + verify_secret_key(&headers, &state)?; + let scheduler = state + .scheduler() + .await + .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + let job = ScheduledJob { + id: req.id, + source: req.recipe_source, + cron: req.cron, + last_run: None, + }; + scheduler + .add_scheduled_job(job.clone()) + .await + .map_err(|e| { + eprintln!("Error creating schedule: {:?}", e); // Log error + StatusCode::INTERNAL_SERVER_ERROR + })?; + Ok(Json(job)) +} + +#[utoipa::path( + get, + path = "/schedule/list", + responses( + (status = 200, description = "A list of scheduled jobs", body = ListSchedulesResponse), + (status = 500, description = "Internal server error") + ), + tag = "schedule" +)] +#[axum::debug_handler] +async fn list_schedules( + State(state): State>, + headers: HeaderMap, +) -> Result, StatusCode> { + verify_secret_key(&headers, &state)?; + let scheduler = state + .scheduler() + .await + .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + let jobs = scheduler.list_scheduled_jobs().await; + Ok(Json(ListSchedulesResponse { jobs })) +} + +#[utoipa::path( + delete, + path = "/schedule/delete/{id}", + params( + ("id" = String, Path, description = "ID of the schedule to delete") + ), + responses( + (status = 204, description = "Scheduled job deleted successfully"), + (status = 404, description = "Scheduled job not found"), + (status = 500, description = "Internal server error") + ), + tag = "schedule" +)] +#[axum::debug_handler] +async fn delete_schedule( + State(state): State>, + headers: HeaderMap, + Path(id): Path, +) -> Result { + verify_secret_key(&headers, &state)?; + let scheduler = state + .scheduler() + .await + .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + scheduler.remove_scheduled_job(&id).await.map_err(|e| { + eprintln!("Error deleting schedule '{}': {:?}", id, e); + match e { + goose::scheduler::SchedulerError::JobNotFound(_) => StatusCode::NOT_FOUND, + _ => StatusCode::INTERNAL_SERVER_ERROR, + } + })?; + Ok(StatusCode::NO_CONTENT) +} + +#[utoipa::path( + post, + path = "/schedule/{id}/run_now", + params( + ("id" = String, Path, description = "ID of the schedule to run") + ), + responses( + (status = 200, description = "Scheduled job triggered successfully, returns new session ID", body = RunNowResponse), + (status = 404, description = "Scheduled job not found"), + (status = 500, description = "Internal server error when trying to run the job") + ), + tag = "schedule" +)] +#[axum::debug_handler] +async fn run_now_handler( + State(state): State>, + headers: HeaderMap, + Path(id): Path, +) -> Result, StatusCode> { + verify_secret_key(&headers, &state)?; + let scheduler = state + .scheduler() + .await + .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + + match scheduler.run_now(&id).await { + Ok(session_id) => Ok(Json(RunNowResponse { session_id })), + Err(e) => { + eprintln!("Error running schedule '{}' now: {:?}", id, e); + match e { + goose::scheduler::SchedulerError::JobNotFound(_) => Err(StatusCode::NOT_FOUND), + _ => Err(StatusCode::INTERNAL_SERVER_ERROR), + } + } + } +} + +#[utoipa::path( + get, + path = "/schedule/{id}/sessions", + params( + ("id" = String, Path, description = "ID of the schedule"), + SessionsQuery // This will automatically pick up 'limit' as a query parameter + ), + responses( + (status = 200, description = "A list of session display info", body = Vec), + (status = 500, description = "Internal server error") + ), + tag = "schedule" +)] +#[axum::debug_handler] +async fn sessions_handler( + State(state): State>, + headers: HeaderMap, // Added this line + Path(schedule_id_param): Path, // Renamed to avoid confusion with session_id + Query(query_params): Query, +) -> Result>, StatusCode> { + verify_secret_key(&headers, &state)?; // Added this line + let scheduler = state + .scheduler() + .await + .map_err(|_| StatusCode::INTERNAL_SERVER_ERROR)?; + + match scheduler + .sessions(&schedule_id_param, query_params.limit as usize) + .await + { + Ok(session_tuples) => { + // Expecting Vec<(String, goose::session::storage::SessionMetadata)> + let display_infos: Vec = session_tuples + .into_iter() + .map(|(session_name, metadata)| SessionDisplayInfo { + id: session_name.clone(), + name: metadata.description, // Use description as name + created_at: parse_session_name_to_iso(&session_name), + working_dir: metadata.working_dir.to_string_lossy().into_owned(), + schedule_id: metadata.schedule_id, // This is the ID of the schedule itself + message_count: metadata.message_count, + total_tokens: metadata.total_tokens, + input_tokens: metadata.input_tokens, + output_tokens: metadata.output_tokens, + accumulated_total_tokens: metadata.accumulated_total_tokens, + accumulated_input_tokens: metadata.accumulated_input_tokens, + accumulated_output_tokens: metadata.accumulated_output_tokens, + }) + .collect(); + Ok(Json(display_infos)) + } + Err(e) => { + eprintln!( + "Error fetching sessions for schedule '{}': {:?}", + schedule_id_param, e + ); + Err(StatusCode::INTERNAL_SERVER_ERROR) + } + } +} + +pub fn routes(state: Arc) -> Router { + Router::new() + .route("/schedule/create", post(create_schedule)) + .route("/schedule/list", get(list_schedules)) + .route("/schedule/delete/{id}", delete(delete_schedule)) // Corrected + .route("/schedule/{id}/run_now", post(run_now_handler)) // Corrected + .route("/schedule/{id}/sessions", get(sessions_handler)) // Corrected + .with_state(state) +} diff --git a/crates/goose-server/src/routes/session.rs b/crates/goose-server/src/routes/session.rs index a5b22ebb..edbf128f 100644 --- a/crates/goose-server/src/routes/session.rs +++ b/crates/goose-server/src/routes/session.rs @@ -108,6 +108,6 @@ async fn get_session_history( pub fn routes(state: Arc) -> Router { Router::new() .route("/sessions", get(list_sessions)) - .route("/sessions/:session_id", get(get_session_history)) + .route("/sessions/{session_id}", get(get_session_history)) .with_state(state) } diff --git a/crates/goose-server/src/state.rs b/crates/goose-server/src/state.rs index b7f45f19..d8fc7a6c 100644 --- a/crates/goose-server/src/state.rs +++ b/crates/goose-server/src/state.rs @@ -1,21 +1,15 @@ use goose::agents::Agent; +use goose::scheduler::Scheduler; use std::sync::Arc; +use tokio::sync::Mutex; -/// Shared reference to an Agent that can be cloned cheaply -/// without cloning the underlying Agent object pub type AgentRef = Arc; -/// Thread-safe container for an optional Agent reference -/// Outer Arc: Allows multiple route handlers to access the same Mutex -/// - Mutex provides exclusive access for updates -/// - Option allows for the case where no agent exists yet -/// -/// Shared application state #[derive(Clone)] pub struct AppState { - // agent: SharedAgentStore, agent: Option, pub secret_key: String, + pub scheduler: Arc>>>, } impl AppState { @@ -23,6 +17,7 @@ impl AppState { Arc::new(Self { agent: Some(agent.clone()), secret_key, + scheduler: Arc::new(Mutex::new(None)), }) } @@ -31,4 +26,17 @@ impl AppState { .clone() .ok_or_else(|| anyhow::anyhow!("Agent needs to be created first.")) } + + pub async fn set_scheduler(&self, sched: Arc) { + let mut guard = self.scheduler.lock().await; + *guard = Some(sched); + } + + pub async fn scheduler(&self) -> Result, anyhow::Error> { + self.scheduler + .lock() + .await + .clone() + .ok_or_else(|| anyhow::anyhow!("Scheduler not initialized")) + } } diff --git a/crates/goose-server/ui/desktop/openapi.json b/crates/goose-server/ui/desktop/openapi.json index 71924f3a..5e78c8f6 100644 --- a/crates/goose-server/ui/desktop/openapi.json +++ b/crates/goose-server/ui/desktop/openapi.json @@ -37,10 +37,10 @@ "/config/extension": { "post": { "tags": [ - "super::routes::config_management" + "config" ], "summary": "Add an extension configuration", - "operationId": "add_extension", + "operationId": "add_extension_config", "requestBody": { "content": { "application/json": { @@ -208,6 +208,180 @@ } } } + }, + "/schedule/create": { + "post": { + "tags": ["schedule"], + "summary": "Create a new scheduled job", + "operationId": "create_schedule", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateScheduleRequest" + } + } + } + }, + "responses": { + "200": { + "description": "Scheduled job created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScheduledJob" + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/list": { + "get": { + "tags": ["schedule"], + "summary": "List all scheduled jobs", + "operationId": "list_schedules", + "responses": { + "200": { + "description": "A list of scheduled jobs", + "content": { + "application/json": { + "schema": { + "type": "object", + "properties": { + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScheduledJob" + } + } + } + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/delete/{id}": { + "delete": { + "tags": ["schedule"], + "summary": "Delete a scheduled job by ID", + "operationId": "delete_schedule", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "ID of the schedule to delete", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Scheduled job deleted successfully" + }, + "404": { + "description": "Scheduled job not found" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/{id}/run_now": { + "post": { + "tags": ["schedule"], + "summary": "Run a scheduled job immediately", + "operationId": "run_schedule_now", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "ID of the schedule to run", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Scheduled job triggered successfully, returns new session ID", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RunNowResponse" + } + } + } + }, + "404": { + "description": "Scheduled job not found" + }, + "500": { + "description": "Internal server error when trying to run the job" + } + } + } + }, + "/schedule/{id}/sessions": { + "get": { + "tags": ["schedule"], + "summary": "List sessions created by a specific schedule", + "operationId": "list_schedule_sessions", + "parameters": [ + { + "name": "id", + "in": "path", + "required": true, + "description": "ID of the schedule", + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "description": "Maximum number of sessions to return", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "default": 50 + } + } + ], + "responses": { + "200": { + "description": "A list of session metadata", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionMetadata" + } + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } } }, "components": { @@ -273,7 +447,127 @@ "description": "The value to set for the configuration" } } + }, + "CreateScheduleRequest": { + "type": "object", + "required": [ + "id", + "recipe_source", + "cron" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique ID for the new schedule." + }, + "recipe_source": { + "type": "string", + "description": "Path to the recipe file to be executed by this schedule." + }, + "cron": { + "type": "string", + "description": "Cron string defining when the job should run." + } + } + }, + "ScheduledJob": { + "type": "object", + "required": [ + "id", + "source", + "cron" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the scheduled job." + }, + "source": { + "type": "string", + "description": "Path to the recipe file for this job." + }, + "cron": { + "type": "string", + "description": "Cron string defining the schedule." + }, + "last_run": { + "type": "string", + "format": "date-time", + "description": "Timestamp of the last time the job was run.", + "nullable": true + } + } + }, + "SessionMetadata": { + "type": "object", + "required": [ + "working_dir", + "description", + "message_count" + ], + "properties": { + "working_dir": { + "type": "string", + "description": "Working directory for the session." + }, + "description": { + "type": "string", + "description": "A short description of the session." + }, + "schedule_id": { + "type": "string", + "description": "ID of the schedule that triggered this session, if any.", + "nullable": true + }, + "message_count": { + "type": "integer", + "format": "int64", + "description": "Number of messages in the session." + }, + "total_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "input_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "output_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "accumulated_total_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "accumulated_input_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "accumulated_output_tokens": { + "type": "integer", + "format": "int32", + "nullable": true + } + } + }, + "RunNowResponse": { + "type": "object", + "required": [ + "session_id" + ], + "properties": { + "session_id": { + "type": "string", + "description": "The ID of the newly created session." + } + } } } } -} \ No newline at end of file +} diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index 0c51113b..9bfa9e85 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -46,7 +46,7 @@ nanoid = "0.4" sha2 = "0.10" base64 = "0.21" url = "2.5" -axum = "0.7" +axum = "0.8.1" webbrowser = "0.8" dotenv = "0.15" lazy_static = "1.5" @@ -60,7 +60,8 @@ serde_yaml = "0.9.34" once_cell = "1.20.2" etcetera = "0.8.0" rand = "0.8.5" -utoipa = "4.1" +utoipa = { version = "4.1", features = ["chrono"] } +tokio-cron-scheduler = "0.14.0" # For Bedrock provider aws-config = { version = "1.5.16", features = ["behavior-version-latest"] } diff --git a/crates/goose/src/agents/reply_parts.rs b/crates/goose/src/agents/reply_parts.rs index 72515c4a..c777a488 100644 --- a/crates/goose/src/agents/reply_parts.rs +++ b/crates/goose/src/agents/reply_parts.rs @@ -205,18 +205,17 @@ impl Agent { usage: &crate::providers::base::ProviderUsage, messages_length: usize, ) -> Result<()> { - let session_file = session::get_path(session_config.id); - let mut metadata = session::read_metadata(&session_file)?; + let session_file_path = session::storage::get_path(session_config.id.clone()); + let mut metadata = session::storage::read_metadata(&session_file_path)?; + + metadata.schedule_id = session_config.schedule_id.clone(); - metadata.working_dir = session_config.working_dir.clone(); metadata.total_tokens = usage.usage.total_tokens; metadata.input_tokens = usage.usage.input_tokens; metadata.output_tokens = usage.usage.output_tokens; - // The message count is the number of messages in the session + 1 for the response - // The message count does not include the tool response till next iteration + metadata.message_count = messages_length + 1; - // Keep running sum of tokens to track cost over the entire session let accumulate = |a: Option, b: Option| -> Option { match (a, b) { (Some(x), Some(y)) => Some(x + y), @@ -231,7 +230,8 @@ impl Agent { metadata.accumulated_output_tokens, usage.usage.output_tokens, ); - session::update_metadata(&session_file, &metadata).await?; + + session::storage::update_metadata(&session_file_path, &metadata).await?; Ok(()) } diff --git a/crates/goose/src/agents/types.rs b/crates/goose/src/agents/types.rs index 6a2ba381..9d23150a 100644 --- a/crates/goose/src/agents/types.rs +++ b/crates/goose/src/agents/types.rs @@ -22,4 +22,6 @@ pub struct SessionConfig { pub id: session::Identifier, /// Working directory for the session pub working_dir: PathBuf, + /// ID of the schedule that triggered this session, if any + pub schedule_id: Option, // NEW } diff --git a/crates/goose/src/lib.rs b/crates/goose/src/lib.rs index d1389adb..e809863c 100644 --- a/crates/goose/src/lib.rs +++ b/crates/goose/src/lib.rs @@ -7,6 +7,7 @@ pub mod permission; pub mod prompt_template; pub mod providers; pub mod recipe; +pub mod scheduler; pub mod session; pub mod token_counter; pub mod tool_monitor; diff --git a/crates/goose/src/scheduler.rs b/crates/goose/src/scheduler.rs new file mode 100644 index 00000000..f0763f8d --- /dev/null +++ b/crates/goose/src/scheduler.rs @@ -0,0 +1,850 @@ +use std::collections::HashMap; +use std::fs; +use std::io; +use std::path::{Path, PathBuf}; +use std::sync::Arc; + +use anyhow::{anyhow, Result}; +use chrono::{DateTime, Utc}; +use etcetera::{choose_app_strategy, AppStrategy}; +use serde::{Deserialize, Serialize}; +use tokio::sync::Mutex; +use tokio_cron_scheduler::{job::JobId, Job, JobScheduler as TokioJobScheduler}; + +use crate::agents::{Agent, SessionConfig}; +use crate::config::{self, Config}; +use crate::message::Message; +use crate::providers::base::Provider as GooseProvider; // Alias to avoid conflict in test section +use crate::providers::create; +use crate::recipe::Recipe; +use crate::session; +use crate::session::storage::SessionMetadata; + +pub fn get_default_scheduler_storage_path() -> Result { + let strategy = choose_app_strategy(config::APP_STRATEGY.clone()) + .map_err(|e| io::Error::new(io::ErrorKind::NotFound, e.to_string()))?; + let data_dir = strategy.data_dir(); + fs::create_dir_all(&data_dir)?; + Ok(data_dir.join("schedules.json")) +} + +pub fn get_default_scheduled_recipes_dir() -> Result { + let strategy = choose_app_strategy(config::APP_STRATEGY.clone()).map_err(|e| { + SchedulerError::StorageError(io::Error::new(io::ErrorKind::NotFound, e.to_string())) + })?; + let data_dir = strategy.data_dir(); + let recipes_dir = data_dir.join("scheduled_recipes"); + fs::create_dir_all(&recipes_dir).map_err(SchedulerError::StorageError)?; + tracing::debug!( + "Created scheduled recipes directory at: {}", + recipes_dir.display() + ); + Ok(recipes_dir) +} + +#[derive(Debug)] +pub enum SchedulerError { + JobIdExists(String), + JobNotFound(String), + StorageError(io::Error), + RecipeLoadError(String), + AgentSetupError(String), + PersistError(String), + CronParseError(String), + SchedulerInternalError(String), + AnyhowError(anyhow::Error), +} + +impl std::fmt::Display for SchedulerError { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + SchedulerError::JobIdExists(id) => write!(f, "Job ID '{}' already exists.", id), + SchedulerError::JobNotFound(id) => write!(f, "Job ID '{}' not found.", id), + SchedulerError::StorageError(e) => write!(f, "Storage error: {}", e), + SchedulerError::RecipeLoadError(e) => write!(f, "Recipe load error: {}", e), + SchedulerError::AgentSetupError(e) => write!(f, "Agent setup error: {}", e), + SchedulerError::PersistError(e) => write!(f, "Failed to persist schedules: {}", e), + SchedulerError::CronParseError(e) => write!(f, "Invalid cron string: {}", e), + SchedulerError::SchedulerInternalError(e) => { + write!(f, "Scheduler internal error: {}", e) + } + SchedulerError::AnyhowError(e) => write!(f, "Scheduler operation failed: {}", e), + } + } +} + +impl std::error::Error for SchedulerError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + match self { + SchedulerError::StorageError(e) => Some(e), + SchedulerError::AnyhowError(e) => Some(e.as_ref()), + _ => None, + } + } +} + +impl From for SchedulerError { + fn from(err: io::Error) -> Self { + SchedulerError::StorageError(err) + } +} + +impl From for SchedulerError { + fn from(err: serde_json::Error) -> Self { + SchedulerError::PersistError(err.to_string()) + } +} + +impl From for SchedulerError { + fn from(err: anyhow::Error) -> Self { + SchedulerError::AnyhowError(err) + } +} + +#[derive(Clone, Serialize, Deserialize, Debug, utoipa::ToSchema)] +pub struct ScheduledJob { + pub id: String, + pub source: String, + pub cron: String, + pub last_run: Option>, +} + +async fn persist_jobs_from_arc( + storage_path: &Path, + jobs_arc: &Arc>>, +) -> Result<(), SchedulerError> { + let jobs_guard = jobs_arc.lock().await; + let list: Vec = jobs_guard.values().map(|(_, j)| j.clone()).collect(); + if let Some(parent) = storage_path.parent() { + fs::create_dir_all(parent).map_err(SchedulerError::StorageError)?; + } + let data = serde_json::to_string_pretty(&list).map_err(SchedulerError::from)?; + fs::write(storage_path, data).map_err(SchedulerError::StorageError)?; + Ok(()) +} + +pub struct Scheduler { + internal_scheduler: TokioJobScheduler, + jobs: Arc>>, + storage_path: PathBuf, +} + +impl Scheduler { + pub async fn new(storage_path: PathBuf) -> Result, SchedulerError> { + let internal_scheduler = TokioJobScheduler::new() + .await + .map_err(|e| SchedulerError::SchedulerInternalError(e.to_string()))?; + + let jobs = Arc::new(Mutex::new(HashMap::new())); + + let arc_self = Arc::new(Self { + internal_scheduler, + jobs, + storage_path, + }); + + arc_self.load_jobs_from_storage().await?; + arc_self + .internal_scheduler + .start() + .await + .map_err(|e| SchedulerError::SchedulerInternalError(e.to_string()))?; + + Ok(arc_self) + } + + pub async fn add_scheduled_job( + &self, + original_job_spec: ScheduledJob, + ) -> Result<(), SchedulerError> { + let mut jobs_guard = self.jobs.lock().await; + if jobs_guard.contains_key(&original_job_spec.id) { + return Err(SchedulerError::JobIdExists(original_job_spec.id.clone())); + } + + let original_recipe_path = Path::new(&original_job_spec.source); + if !original_recipe_path.exists() { + return Err(SchedulerError::RecipeLoadError(format!( + "Original recipe file not found: {}", + original_job_spec.source + ))); + } + if !original_recipe_path.is_file() { + return Err(SchedulerError::RecipeLoadError(format!( + "Original recipe source is not a file: {}", + original_job_spec.source + ))); + } + + let scheduled_recipes_dir = get_default_scheduled_recipes_dir()?; + let original_extension = original_recipe_path + .extension() + .and_then(|ext| ext.to_str()) + .unwrap_or("yaml"); + + let destination_filename = format!("{}.{}", original_job_spec.id, original_extension); + let destination_recipe_path = scheduled_recipes_dir.join(destination_filename); + + tracing::info!( + "Copying recipe from {} to {}", + original_recipe_path.display(), + destination_recipe_path.display() + ); + fs::copy(original_recipe_path, &destination_recipe_path).map_err(|e| { + SchedulerError::StorageError(io::Error::new( + e.kind(), + format!( + "Failed to copy recipe from {} to {}: {}", + original_job_spec.source, + destination_recipe_path.display(), + e + ), + )) + })?; + + let mut stored_job = original_job_spec.clone(); + stored_job.source = destination_recipe_path.to_string_lossy().into_owned(); + tracing::info!("Updated job source path to: {}", stored_job.source); + + let job_for_task = stored_job.clone(); + let jobs_arc_for_task = self.jobs.clone(); + let storage_path_for_task = self.storage_path.clone(); + + let cron_task = Job::new_async(&stored_job.cron, move |_uuid, _l| { + let task_job_id = job_for_task.id.clone(); + let current_jobs_arc = jobs_arc_for_task.clone(); + let local_storage_path = storage_path_for_task.clone(); + let job_to_execute = job_for_task.clone(); // Clone for run_scheduled_job_internal + + Box::pin(async move { + let current_time = Utc::now(); + let mut needs_persist = false; + { + let mut jobs_map_guard = current_jobs_arc.lock().await; + if let Some((_, current_job_in_map)) = jobs_map_guard.get_mut(&task_job_id) { + current_job_in_map.last_run = Some(current_time); + needs_persist = true; + } + } + + if needs_persist { + if let Err(e) = + persist_jobs_from_arc(&local_storage_path, ¤t_jobs_arc).await + { + tracing::error!( + "Failed to persist last_run update for job {}: {}", + &task_job_id, + e + ); + } + } + // Pass None for provider_override in normal execution + if let Err(e) = run_scheduled_job_internal(job_to_execute, None).await { + tracing::error!( + "Scheduled job '{}' execution failed: {}", + &e.job_id, + e.error + ); + } + }) + }) + .map_err(|e| SchedulerError::CronParseError(e.to_string()))?; + + let job_uuid = self + .internal_scheduler + .add(cron_task) + .await + .map_err(|e| SchedulerError::SchedulerInternalError(e.to_string()))?; + + jobs_guard.insert(stored_job.id.clone(), (job_uuid, stored_job)); + // Pass the jobs_guard by reference for the initial persist after adding a job + self.persist_jobs_to_storage_with_guard(&jobs_guard).await?; + Ok(()) + } + + async fn load_jobs_from_storage(self: &Arc) -> Result<(), SchedulerError> { + if !self.storage_path.exists() { + return Ok(()); + } + let data = fs::read_to_string(&self.storage_path)?; + if data.trim().is_empty() { + return Ok(()); + } + + let list: Vec = serde_json::from_str(&data).map_err(|e| { + SchedulerError::PersistError(format!("Failed to deserialize schedules.json: {}", e)) + })?; + + let mut jobs_guard = self.jobs.lock().await; + for job_to_load in list { + if !Path::new(&job_to_load.source).exists() { + tracing::warn!("Recipe file {} for scheduled job {} not found in shared store. Skipping job load.", job_to_load.source, job_to_load.id); + continue; + } + + let job_for_task = job_to_load.clone(); + let jobs_arc_for_task = self.jobs.clone(); + let storage_path_for_task = self.storage_path.clone(); + + let cron_task = Job::new_async(&job_to_load.cron, move |_uuid, _l| { + let task_job_id = job_for_task.id.clone(); + let current_jobs_arc = jobs_arc_for_task.clone(); + let local_storage_path = storage_path_for_task.clone(); + let job_to_execute = job_for_task.clone(); // Clone for run_scheduled_job_internal + + Box::pin(async move { + let current_time = Utc::now(); + let mut needs_persist = false; + { + let mut jobs_map_guard = current_jobs_arc.lock().await; + if let Some((_, stored_job)) = jobs_map_guard.get_mut(&task_job_id) { + stored_job.last_run = Some(current_time); + needs_persist = true; + } + } + + if needs_persist { + if let Err(e) = + persist_jobs_from_arc(&local_storage_path, ¤t_jobs_arc).await + { + tracing::error!( + "Failed to persist last_run update for loaded job {}: {}", + &task_job_id, + e + ); + } + } + // Pass None for provider_override in normal execution + if let Err(e) = run_scheduled_job_internal(job_to_execute, None).await { + tracing::error!( + "Scheduled job '{}' execution failed: {}", + &e.job_id, + e.error + ); + } + }) + }) + .map_err(|e| SchedulerError::CronParseError(e.to_string()))?; + + let job_uuid = self + .internal_scheduler + .add(cron_task) + .await + .map_err(|e| SchedulerError::SchedulerInternalError(e.to_string()))?; + jobs_guard.insert(job_to_load.id.clone(), (job_uuid, job_to_load)); + } + Ok(()) + } + + // Renamed and kept for direct use when a guard is already held (e.g. add/remove) + async fn persist_jobs_to_storage_with_guard( + &self, + jobs_guard: &tokio::sync::MutexGuard<'_, HashMap>, + ) -> Result<(), SchedulerError> { + let list: Vec = jobs_guard.values().map(|(_, j)| j.clone()).collect(); + if let Some(parent) = self.storage_path.parent() { + fs::create_dir_all(parent)?; + } + let data = serde_json::to_string_pretty(&list)?; + fs::write(&self.storage_path, data)?; + Ok(()) + } + + // New function that locks and calls the helper, for run_now and potentially other places + async fn persist_jobs(&self) -> Result<(), SchedulerError> { + persist_jobs_from_arc(&self.storage_path, &self.jobs).await + } + + pub async fn list_scheduled_jobs(&self) -> Vec { + self.jobs + .lock() + .await + .values() + .map(|(_, j)| j.clone()) + .collect() + } + + pub async fn remove_scheduled_job(&self, id: &str) -> Result<(), SchedulerError> { + let mut jobs_guard = self.jobs.lock().await; + if let Some((job_uuid, scheduled_job)) = jobs_guard.remove(id) { + self.internal_scheduler + .remove(&job_uuid) + .await + .map_err(|e| SchedulerError::SchedulerInternalError(e.to_string()))?; + + let recipe_path = Path::new(&scheduled_job.source); + if recipe_path.exists() { + fs::remove_file(recipe_path).map_err(SchedulerError::StorageError)?; + } + + self.persist_jobs_to_storage_with_guard(&jobs_guard).await?; + Ok(()) + } else { + Err(SchedulerError::JobNotFound(id.to_string())) + } + } + + pub async fn sessions( + &self, + sched_id: &str, + limit: usize, + ) -> Result, SchedulerError> { + // Changed return type + let all_session_files = session::storage::list_sessions() + .map_err(|e| SchedulerError::StorageError(io::Error::other(e)))?; + + let mut schedule_sessions: Vec<(String, SessionMetadata)> = Vec::new(); + + for (session_name, session_path) in all_session_files { + match session::storage::read_metadata(&session_path) { + Ok(metadata) => { + // metadata is not mutable here, and SessionMetadata is original + if metadata.schedule_id.as_deref() == Some(sched_id) { + schedule_sessions.push((session_name, metadata)); // Keep the tuple + } + } + Err(e) => { + tracing::warn!( + "Failed to read metadata for session file {}: {}. Skipping.", + session_path.display(), + e + ); + } + } + } + + schedule_sessions.sort_by(|a, b| b.0.cmp(&a.0)); // Sort by session_name (timestamp string) + + // Keep the tuple, just take the limit + let result_sessions: Vec<(String, SessionMetadata)> = + schedule_sessions.into_iter().take(limit).collect(); + + Ok(result_sessions) // Return the Vec of tuples + } + + pub async fn run_now(&self, sched_id: &str) -> Result { + let job_to_run: ScheduledJob = { + let jobs_guard = self.jobs.lock().await; + match jobs_guard.get(sched_id) { + Some((_, job_def)) => job_def.clone(), + None => return Err(SchedulerError::JobNotFound(sched_id.to_string())), + } + }; + // Pass None for provider_override in normal execution + let session_id = run_scheduled_job_internal(job_to_run.clone(), None) + .await + .map_err(|e| { + SchedulerError::AnyhowError(anyhow!( + "Failed to execute job '{}' immediately: {}", + sched_id, + e.error + )) + })?; + + { + let mut jobs_guard = self.jobs.lock().await; + if let Some((_tokio_job_id, job_in_map)) = jobs_guard.get_mut(sched_id) { + job_in_map.last_run = Some(Utc::now()); + } // MutexGuard is dropped here + } + // Persist after the lock is released and update is made. + self.persist_jobs().await?; + + Ok(session_id) + } +} + +#[derive(Debug)] +struct JobExecutionError { + job_id: String, + error: String, +} + +async fn run_scheduled_job_internal( + job: ScheduledJob, + provider_override: Option>, // New optional parameter +) -> std::result::Result { + tracing::info!("Executing job: {} (Source: {})", job.id, job.source); + + let recipe_path = Path::new(&job.source); + + let recipe_content = match fs::read_to_string(recipe_path) { + Ok(content) => content, + Err(e) => { + return Err(JobExecutionError { + job_id: job.id.clone(), + error: format!("Failed to load recipe file '{}': {}", job.source, e), + }); + } + }; + + let recipe: Recipe = { + let extension = recipe_path + .extension() + .and_then(|os_str| os_str.to_str()) + .unwrap_or("yaml") + .to_lowercase(); + + match extension.as_str() { + "json" | "jsonl" => { + serde_json::from_str::(&recipe_content).map_err(|e| JobExecutionError { + job_id: job.id.clone(), + error: format!("Failed to parse JSON recipe '{}': {}", job.source, e), + }) + } + "yaml" | "yml" => { + serde_yaml::from_str::(&recipe_content).map_err(|e| JobExecutionError { + job_id: job.id.clone(), + error: format!("Failed to parse YAML recipe '{}': {}", job.source, e), + }) + } + _ => Err(JobExecutionError { + job_id: job.id.clone(), + error: format!( + "Unsupported recipe file extension '{}' for: {}", + extension, job.source + ), + }), + } + }?; + + let agent: Agent = Agent::new(); + + let agent_provider: Arc; // Use the aliased GooseProvider + + if let Some(provider) = provider_override { + agent_provider = provider; + } else { + let global_config = Config::global(); + let provider_name: String = match global_config.get_param("GOOSE_PROVIDER") { + Ok(name) => name, + Err(_) => return Err(JobExecutionError { + job_id: job.id.clone(), + error: + "GOOSE_PROVIDER not configured globally. Run 'goose configure' or set env var." + .to_string(), + }), + }; + let model_name: String = + match global_config.get_param("GOOSE_MODEL") { + Ok(name) => name, + Err(_) => return Err(JobExecutionError { + job_id: job.id.clone(), + error: + "GOOSE_MODEL not configured globally. Run 'goose configure' or set env var." + .to_string(), + }), + }; + let model_config = crate::model::ModelConfig::new(model_name.clone()); + agent_provider = create(&provider_name, model_config).map_err(|e| JobExecutionError { + job_id: job.id.clone(), + error: format!( + "Failed to create provider instance '{}': {}", + provider_name, e + ), + })?; + } + + if let Err(e) = agent.update_provider(agent_provider).await { + return Err(JobExecutionError { + job_id: job.id.clone(), + error: format!("Failed to set provider on agent: {}", e), + }); + } + tracing::info!("Agent configured with provider for job '{}'", job.id); + + let session_id_for_return = session::generate_session_id(); + let session_file_path = crate::session::storage::get_path( + crate::session::storage::Identifier::Name(session_id_for_return.clone()), + ); + + if let Some(prompt_text) = recipe.prompt { + let mut all_session_messages: Vec = + vec![Message::user().with_text(prompt_text.clone())]; + + let current_dir = match std::env::current_dir() { + Ok(cd) => cd, + Err(e) => { + return Err(JobExecutionError { + job_id: job.id.clone(), + error: format!("Failed to get current directory for job execution: {}", e), + }); + } + }; + + let session_config = SessionConfig { + id: crate::session::storage::Identifier::Name(session_id_for_return.clone()), + working_dir: current_dir.clone(), + schedule_id: Some(job.id.clone()), + }; + + match agent + .reply(&all_session_messages, Some(session_config.clone())) + .await + { + Ok(mut stream) => { + use futures::StreamExt; + + while let Some(message_result) = stream.next().await { + match message_result { + Ok(msg) => { + if msg.role == mcp_core::role::Role::Assistant { + tracing::info!("[Job {}] Assistant: {:?}", job.id, msg.content); + } + all_session_messages.push(msg); + } + Err(e) => { + tracing::error!( + "[Job {}] Error receiving message from agent: {}", + job.id, + e + ); + break; + } + } + } + + match crate::session::storage::read_metadata(&session_file_path) { + Ok(mut updated_metadata) => { + updated_metadata.message_count = all_session_messages.len(); + if let Err(e) = crate::session::storage::save_messages_with_metadata( + &session_file_path, + &updated_metadata, + &all_session_messages, + ) { + tracing::error!( + "[Job {}] Failed to persist final messages: {}", + job.id, + e + ); + } + } + Err(e) => { + tracing::error!( + "[Job {}] Failed to read updated metadata before final save: {}", + job.id, + e + ); + let fallback_metadata = crate::session::storage::SessionMetadata { + working_dir: current_dir.clone(), + description: String::new(), + schedule_id: Some(job.id.clone()), + message_count: all_session_messages.len(), + total_tokens: None, + input_tokens: None, + output_tokens: None, + accumulated_total_tokens: None, + accumulated_input_tokens: None, + accumulated_output_tokens: None, + }; + if let Err(e_fb) = crate::session::storage::save_messages_with_metadata( + &session_file_path, + &fallback_metadata, + &all_session_messages, + ) { + tracing::error!("[Job {}] Failed to persist final messages with fallback metadata: {}", job.id, e_fb); + } + } + } + } + Err(e) => { + return Err(JobExecutionError { + job_id: job.id.clone(), + error: format!("Agent failed to reply for recipe '{}': {}", job.source, e), + }); + } + } + } else { + tracing::warn!( + "[Job {}] Recipe '{}' has no prompt to execute.", + job.id, + job.source + ); + let metadata = crate::session::storage::SessionMetadata { + working_dir: std::env::current_dir().unwrap_or_default(), + description: "Empty job - no prompt".to_string(), + schedule_id: Some(job.id.clone()), + message_count: 0, + ..Default::default() + }; + if let Err(e) = + crate::session::storage::save_messages_with_metadata(&session_file_path, &metadata, &[]) + { + tracing::error!( + "[Job {}] Failed to persist metadata for empty job: {}", + job.id, + e + ); + } + } + + tracing::info!("Finished job: {}", job.id); + Ok(session_id_for_return) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::recipe::Recipe; + use crate::{ + message::MessageContent, + model::ModelConfig, // Use the actual ModelConfig for the mock's field + providers::base::{ProviderMetadata, ProviderUsage, Usage}, + providers::errors::ProviderError, + }; + use mcp_core::{content::TextContent, tool::Tool, Role}; + // Removed: use crate::session::storage::{get_most_recent_session, read_metadata}; + // `read_metadata` is still used by the test itself, so keep it or its module. + use crate::session::storage::read_metadata; + + use std::env; + use std::fs::{self, File}; + use std::io::Write; + use tempfile::tempdir; + + #[derive(Clone)] + struct MockSchedulerTestProvider { + model_config: ModelConfig, + } + + #[async_trait::async_trait] + impl GooseProvider for MockSchedulerTestProvider { + fn metadata() -> ProviderMetadata { + ProviderMetadata::new( + "mock-scheduler-test", + "Mock for Scheduler Test", + "A mock provider for scheduler tests", // description + "test-model", // default_model + vec!["test-model"], // model_names + "", // model_doc_link (empty string if not applicable) + vec![], // config_keys (empty vec if none) + ) + } + + fn get_model_config(&self) -> ModelConfig { + self.model_config.clone() + } + + async fn complete( + &self, + _system: &str, + _messages: &[Message], + _tools: &[Tool], + ) -> Result<(Message, ProviderUsage), ProviderError> { + Ok(( + Message { + role: Role::Assistant, + created: Utc::now().timestamp(), + content: vec![MessageContent::Text(TextContent { + text: "Mocked scheduled response".to_string(), + annotations: None, + })], + }, + ProviderUsage::new("mock-scheduler-test".to_string(), Usage::default()), + )) + } + } + + // This function is pub(super) making it visible to run_scheduled_job_internal (parent module) + // when cfg(test) is active for the whole compilation unit. + pub(super) fn create_scheduler_test_mock_provider( + model_config: ModelConfig, + ) -> Arc { + Arc::new(MockSchedulerTestProvider { model_config }) + } + + #[tokio::test] + async fn test_scheduled_session_has_schedule_id() -> Result<(), Box> { + // Set environment variables for the test + env::set_var("GOOSE_PROVIDER", "test_provider"); + env::set_var("GOOSE_MODEL", "test_model"); + + let temp_dir = tempdir()?; + let recipe_dir = temp_dir.path().join("recipes_for_test_scheduler"); + fs::create_dir_all(&recipe_dir)?; + + let _ = session::storage::ensure_session_dir().expect("Failed to ensure app session dir"); + + let schedule_id_str = "test_schedule_001_scheduler_check".to_string(); + let recipe_filename = recipe_dir.join(format!("{}.json", schedule_id_str)); + + let dummy_recipe = Recipe { + version: "1.0.0".to_string(), + title: "Test Schedule ID Recipe".to_string(), + description: "A recipe for testing schedule_id propagation.".to_string(), + instructions: None, + prompt: Some("This is a test prompt for a scheduled job.".to_string()), + extensions: None, + context: None, + activities: None, + author: None, + parameters: None, + }; + let mut recipe_file = File::create(&recipe_filename)?; + writeln!( + recipe_file, + "{}", + serde_json::to_string_pretty(&dummy_recipe)? + )?; + recipe_file.flush()?; + drop(recipe_file); + + let dummy_job = ScheduledJob { + id: schedule_id_str.clone(), + source: recipe_filename.to_string_lossy().into_owned(), + cron: "* * * * * * ".to_string(), // Runs every second for quick testing + last_run: None, + }; + + // Create the mock provider instance for the test + let mock_model_config = ModelConfig::new("test_model".to_string()); + let mock_provider_instance = create_scheduler_test_mock_provider(mock_model_config); + + // Call run_scheduled_job_internal, passing the mock provider + let created_session_id = + run_scheduled_job_internal(dummy_job.clone(), Some(mock_provider_instance)) + .await + .expect("run_scheduled_job_internal failed"); + + let session_dir = session::storage::ensure_session_dir()?; + let expected_session_path = session_dir.join(format!("{}.jsonl", created_session_id)); + + assert!( + expected_session_path.exists(), + "Expected session file {} was not created", + expected_session_path.display() + ); + + let metadata = read_metadata(&expected_session_path)?; + + assert_eq!( + metadata.schedule_id, + Some(schedule_id_str.clone()), + "Session metadata schedule_id ({:?}) does not match the job ID ({}). File: {}", + metadata.schedule_id, + schedule_id_str, + expected_session_path.display() + ); + + // Check if messages were written + let messages_in_file = crate::session::storage::read_messages(&expected_session_path)?; + assert!( + !messages_in_file.is_empty(), + "No messages were written to the session file: {}", + expected_session_path.display() + ); + // We expect at least a user prompt and an assistant response + assert!( + messages_in_file.len() >= 2, + "Expected at least 2 messages (prompt + response), found {} in file: {}", + messages_in_file.len(), + expected_session_path.display() + ); + + // Clean up environment variables + env::remove_var("GOOSE_PROVIDER"); + env::remove_var("GOOSE_MODEL"); + + Ok(()) + } +} diff --git a/crates/goose/src/session/storage.rs b/crates/goose/src/session/storage.rs index 38309667..c89f8e1a 100644 --- a/crates/goose/src/session/storage.rs +++ b/crates/goose/src/session/storage.rs @@ -25,6 +25,8 @@ pub struct SessionMetadata { pub working_dir: PathBuf, /// A short description of the session, typically 3 words or less pub description: String, + /// ID of the schedule that triggered this session, if any + pub schedule_id: Option, /// Number of messages in the session pub message_count: usize, /// The total number of tokens used in the session. Retrieved from the provider's last usage. @@ -51,6 +53,7 @@ impl<'de> Deserialize<'de> for SessionMetadata { struct Helper { description: String, message_count: usize, + schedule_id: Option, // For backward compatibility total_tokens: Option, input_tokens: Option, output_tokens: Option, @@ -71,6 +74,7 @@ impl<'de> Deserialize<'de> for SessionMetadata { Ok(SessionMetadata { description: helper.description, message_count: helper.message_count, + schedule_id: helper.schedule_id, total_tokens: helper.total_tokens, input_tokens: helper.input_tokens, output_tokens: helper.output_tokens, @@ -94,6 +98,7 @@ impl SessionMetadata { Self { working_dir, description: String::new(), + schedule_id: None, message_count: 0, total_tokens: None, input_tokens: None, diff --git a/crates/goose/tests/agent.rs b/crates/goose/tests/agent.rs index c4365fd2..bb851ab4 100644 --- a/crates/goose/tests/agent.rs +++ b/crates/goose/tests/agent.rs @@ -152,9 +152,26 @@ async fn run_truncate_test( assert_eq!(responses[0].content.len(), 1); - let response_text = responses[0].content[0].as_text().unwrap(); - assert!(response_text.to_lowercase().contains("no")); - assert!(!response_text.to_lowercase().contains("yes")); + match responses[0].content[0] { + goose::message::MessageContent::Text(ref text_content) => { + assert!(text_content.text.to_lowercase().contains("no")); + assert!(!text_content.text.to_lowercase().contains("yes")); + } + goose::message::MessageContent::ContextLengthExceeded(_) => { + // This is an acceptable outcome for providers that don't truncate themselves + // and correctly report that the context length was exceeded. + println!( + "Received ContextLengthExceeded as expected for {:?}", + provider_type + ); + } + _ => { + panic!( + "Unexpected message content type: {:?}", + responses[0].content[0] + ); + } + } Ok(()) } diff --git a/ui/desktop/openapi.json b/ui/desktop/openapi.json index 2716c125..ee1cc170 100644 --- a/ui/desktop/openapi.json +++ b/ui/desktop/openapi.json @@ -10,7 +10,7 @@ "license": { "name": "Apache-2.0" }, - "version": "1.0.23" + "version": "1.0.24" }, "paths": { "/agent/tools": { @@ -453,6 +453,176 @@ ] } }, + "/schedule/create": { + "post": { + "tags": [ + "schedule" + ], + "operationId": "create_schedule", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateScheduleRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Scheduled job created successfully", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ScheduledJob" + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/delete/{id}": { + "delete": { + "tags": [ + "schedule" + ], + "operationId": "delete_schedule", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the schedule to delete", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "Scheduled job deleted successfully" + }, + "404": { + "description": "Scheduled job not found" + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/list": { + "get": { + "tags": [ + "schedule" + ], + "operationId": "list_schedules", + "responses": { + "200": { + "description": "A list of scheduled jobs", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ListSchedulesResponse" + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } + }, + "/schedule/{id}/run_now": { + "post": { + "tags": [ + "schedule" + ], + "operationId": "run_now_handler", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the schedule to run", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "Scheduled job triggered successfully, returns new session ID", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RunNowResponse" + } + } + } + }, + "404": { + "description": "Scheduled job not found" + }, + "500": { + "description": "Internal server error when trying to run the job" + } + } + } + }, + "/schedule/{id}/sessions": { + "get": { + "tags": [ + "schedule" + ], + "operationId": "sessions_handler", + "parameters": [ + { + "name": "id", + "in": "path", + "description": "ID of the schedule", + "required": true, + "schema": { + "type": "string" + } + }, + { + "name": "limit", + "in": "query", + "required": false, + "schema": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + ], + "responses": { + "200": { + "description": "A list of session display info", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/SessionDisplayInfo" + } + } + } + } + }, + "500": { + "description": "Internal server error" + } + } + } + }, "/sessions": { "get": { "tags": [ @@ -731,6 +901,25 @@ } } }, + "CreateScheduleRequest": { + "type": "object", + "required": [ + "id", + "recipe_source", + "cron" + ], + "properties": { + "cron": { + "type": "string" + }, + "id": { + "type": "string" + }, + "recipe_source": { + "type": "string" + } + } + }, "EmbeddedResource": { "type": "object", "required": [ @@ -1030,6 +1219,20 @@ } } }, + "ListSchedulesResponse": { + "type": "object", + "required": [ + "jobs" + ], + "properties": { + "jobs": { + "type": "array", + "items": { + "$ref": "#/components/schemas/ScheduledJob" + } + } + } + }, "Message": { "type": "object", "description": "A message to or from an LLM", @@ -1334,15 +1537,13 @@ ], "properties": { "is_configured": { - "type": "boolean", - "description": "Indicates whether the provider is fully configured" + "type": "boolean" }, "metadata": { "$ref": "#/components/schemas/ProviderMetadata" }, "name": { - "type": "string", - "description": "Unique identifier and name of the provider" + "type": "string" } } }, @@ -1469,6 +1670,103 @@ "assistant" ] }, + "RunNowResponse": { + "type": "object", + "required": [ + "session_id" + ], + "properties": { + "session_id": { + "type": "string" + } + } + }, + "ScheduledJob": { + "type": "object", + "required": [ + "id", + "source", + "cron" + ], + "properties": { + "cron": { + "type": "string" + }, + "id": { + "type": "string" + }, + "last_run": { + "type": "string", + "format": "date-time", + "nullable": true + }, + "source": { + "type": "string" + } + } + }, + "SessionDisplayInfo": { + "type": "object", + "required": [ + "id", + "name", + "createdAt", + "workingDir", + "messageCount" + ], + "properties": { + "accumulatedInputTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "accumulatedOutputTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "accumulatedTotalTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "createdAt": { + "type": "string" + }, + "id": { + "type": "string" + }, + "inputTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "messageCount": { + "type": "integer", + "minimum": 0 + }, + "name": { + "type": "string" + }, + "outputTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "scheduleId": { + "type": "string", + "nullable": true + }, + "totalTokens": { + "type": "integer", + "format": "int32", + "nullable": true + }, + "workingDir": { + "type": "string" + } + } + }, "SessionHistoryResponse": { "type": "object", "required": [ @@ -1579,6 +1877,11 @@ "description": "The number of output tokens used in the session. Retrieved from the provider's last usage.", "nullable": true }, + "schedule_id": { + "type": "string", + "description": "ID of the schedule that triggered this session, if any", + "nullable": true + }, "total_tokens": { "type": "integer", "format": "int32", @@ -1592,6 +1895,16 @@ } } }, + "SessionsQuery": { + "type": "object", + "properties": { + "limit": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + }, "SummarizationRequested": { "type": "object", "required": [ @@ -1757,8 +2070,7 @@ "$ref": "#/components/schemas/PermissionLevel" }, "tool_name": { - "type": "string", - "description": "Unique identifier and name of the tool, format __" + "type": "string" } } }, diff --git a/ui/desktop/package-lock.json b/ui/desktop/package-lock.json index bd70c8b5..6cc2c894 100644 --- a/ui/desktop/package-lock.json +++ b/ui/desktop/package-lock.json @@ -31,6 +31,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cors": "^2.8.5", + "cronstrue": "^2.48.0", "dotenv": "^16.4.5", "electron-log": "^5.2.2", "electron-squirrel-startup": "^1.0.1", @@ -6796,6 +6797,15 @@ "node": ">= 6" } }, + "node_modules/cronstrue": { + "version": "2.61.0", + "resolved": "https://registry.npmjs.org/cronstrue/-/cronstrue-2.61.0.tgz", + "integrity": "sha512-ootN5bvXbIQI9rW94+QsXN5eROtXWwew6NkdGxIRpS/UFWRggL0G5Al7a9GTBFEsuvVhJ2K3CntIIVt7L2ILhA==", + "license": "MIT", + "bin": { + "cronstrue": "bin/cli.js" + } + }, "node_modules/cross-dirname": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/cross-dirname/-/cross-dirname-0.1.0.tgz", diff --git a/ui/desktop/package.json b/ui/desktop/package.json index 48370ff3..c74a1f93 100644 --- a/ui/desktop/package.json +++ b/ui/desktop/package.json @@ -102,6 +102,7 @@ "class-variance-authority": "^0.7.0", "clsx": "^2.1.1", "cors": "^2.8.5", + "cronstrue": "^2.48.0", "dotenv": "^16.4.5", "electron-log": "^5.2.2", "electron-squirrel-startup": "^1.0.1", diff --git a/ui/desktop/src/App.tsx b/ui/desktop/src/App.tsx index f032675e..91392ce0 100644 --- a/ui/desktop/src/App.tsx +++ b/ui/desktop/src/App.tsx @@ -8,7 +8,6 @@ import { ToastContainer } from 'react-toastify'; import { toastService } from './toasts'; import { extractExtensionName } from './components/settings/extensions/utils'; import { GoosehintsModal } from './components/GoosehintsModal'; -import { SessionDetails } from './sessions'; import ChatView from './components/ChatView'; import SuspenseLoader from './suspense-loader'; @@ -18,6 +17,7 @@ import MoreModelsView from './components/settings/models/MoreModelsView'; import ConfigureProvidersView from './components/settings/providers/ConfigureProvidersView'; import SessionsView from './components/sessions/SessionsView'; import SharedSessionView from './components/sessions/SharedSessionView'; +import SchedulesView from './components/schedule/SchedulesView'; import ProviderSettings from './components/settings_v2/providers/ProviderSettingsPage'; import RecipeEditor from './components/RecipeEditor'; import { useChat } from './hooks/useChat'; @@ -28,7 +28,8 @@ import { addExtensionFromDeepLink as addExtensionFromDeepLinkV2 } from './compon import { backupConfig, initConfig, readAllConfig } from './api/sdk.gen'; import PermissionSettingsView from './components/settings_v2/permission/PermissionSetting'; -// Views and their options +import { type SessionDetails } from './sessions'; + export type View = | 'welcome' | 'chat' @@ -39,6 +40,7 @@ export type View = | 'ConfigureProviders' | 'settingsV2' | 'sessions' + | 'schedules' | 'sharedSession' | 'loading' | 'recipeEditor' @@ -47,8 +49,7 @@ export type View = export type ViewOptions = | SettingsViewOptions | { resumedSession?: SessionDetails } - // eslint-disable-next-line @typescript-eslint/no-explicit-any - | Record; + | Record; export type ViewConfig = { view: View; @@ -69,7 +70,6 @@ const getInitialView = (): ViewConfig => { }; } - // Any other URL-specified view if (viewFromUrl) { return { view: viewFromUrl as View, @@ -77,7 +77,6 @@ const getInitialView = (): ViewConfig => { }; } - // Default case return { view: 'loading', viewOptions: {}, @@ -93,10 +92,10 @@ export default function App() { const [extensionConfirmLabel, setExtensionConfirmLabel] = useState(''); const [extensionConfirmTitle, setExtensionConfirmTitle] = useState(''); const [{ view, viewOptions }, setInternalView] = useState(getInitialView()); + const { getExtensions, addExtension, read } = useConfig(); const initAttemptedRef = useRef(false); - // Utility function to extract the command from the link function extractCommand(link: string): string { const url = new URL(link); const cmd = url.searchParams.get('cmd') || 'Unknown Command'; @@ -104,7 +103,6 @@ export default function App() { return `${cmd} ${args.join(' ')}`.trim(); } - // Utility function to extract the remote url from the link function extractRemoteUrl(link: string): string { const url = new URL(link); return url.searchParams.get('url'); @@ -116,7 +114,6 @@ export default function App() { }; useEffect(() => { - // Guard against multiple initialization attempts if (initAttemptedRef.current) { console.log('Initialization already attempted, skipping...'); return; @@ -129,7 +126,6 @@ export default function App() { const viewType = urlParams.get('view'); const recipeConfig = window.appConfig.get('recipeConfig'); - // If we have a specific view type in the URL, use that and skip provider detection if (viewType) { if (viewType === 'recipeEditor' && recipeConfig) { console.log('Setting view to recipeEditor with config:', recipeConfig); @@ -142,39 +138,31 @@ export default function App() { const initializeApp = async () => { try { - // checks if there is a config, and if not creates it await initConfig(); - - // now try to read config, if we fail and are migrating backup, then re-init config try { await readAllConfig({ throwOnError: true }); } catch (error) { - // NOTE: we do this check here and in providerUtils.ts, be sure to clean up both in the future const configVersion = localStorage.getItem('configVersion'); const shouldMigrateExtensions = !configVersion || parseInt(configVersion, 10) < 3; if (shouldMigrateExtensions) { await backupConfig({ throwOnError: true }); await initConfig(); } else { - // if we've migrated throw this back up throw new Error('Unable to read config file, it may be malformed'); } } - // note: if in a non recipe session, recipeConfig is undefined, otherwise null if error if (recipeConfig === null) { setFatalError('Cannot read recipe config. Please check the deeplink and try again.'); return; } const config = window.electron.getConfig(); - const provider = (await read('GOOSE_PROVIDER', false)) ?? config.GOOSE_DEFAULT_PROVIDER; const model = (await read('GOOSE_MODEL', false)) ?? config.GOOSE_DEFAULT_MODEL; if (provider && model) { setView('chat'); - try { await initializeSystem(provider, model, { getExtensions, @@ -182,13 +170,9 @@ export default function App() { }); } catch (error) { console.error('Error in initialization:', error); - - // propagate the error upward so the global ErrorUI shows in cases - // where going through welcome/onboarding wouldn't address the issue if (error instanceof MalformedConfigError) { throw error; } - setView('welcome'); } } else { @@ -201,8 +185,6 @@ export default function App() { ); setView('welcome'); } - - // Reset toast service after initialization toastService.configure({ silent: false }); }; @@ -215,8 +197,7 @@ export default function App() { setFatalError(`${error instanceof Error ? error.message : 'Unknown error'}`); } })(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); // Empty dependency array since we only want this to run once + }, [read, getExtensions, addExtension]); const [isGoosehintsModalOpen, setIsGoosehintsModalOpen] = useState(false); const [isLoadingSession, setIsLoadingSession] = useState(false); @@ -236,32 +217,26 @@ export default function App() { } }, []); - // Handle shared session deep links useEffect(() => { const handleOpenSharedSession = async (_event: IpcRendererEvent, link: string) => { window.electron.logInfo(`Opening shared session from deep link ${link}`); setIsLoadingSharedSession(true); setSharedSessionError(null); - try { await openSharedSessionFromDeepLink(link, setView); - // No need to handle errors here as openSharedSessionFromDeepLink now handles them internally } catch (error) { - // This should not happen, but just in case console.error('Unexpected error opening shared session:', error); - setView('sessions'); // Fallback to sessions view + setView('sessions'); } finally { setIsLoadingSharedSession(false); } }; - window.electron.on('open-shared-session', handleOpenSharedSession); return () => { window.electron.off('open-shared-session', handleOpenSharedSession); }; }, []); - // Keyboard shortcut handler useEffect(() => { console.log('Setting up keyboard shortcuts'); const handleKeyDown = (event: KeyboardEvent) => { @@ -277,7 +252,6 @@ export default function App() { } } }; - window.addEventListener('keydown', handleKeyDown); return () => { window.removeEventListener('keydown', handleKeyDown); @@ -288,17 +262,15 @@ export default function App() { console.log('Setting up fatal error handler'); const handleFatalError = (_event: IpcRendererEvent, errorMessage: string) => { console.error('Encountered a fatal error: ', errorMessage); - // Log additional context that might help diagnose the issue console.error('Current view:', view); console.error('Is loading session:', isLoadingSession); setFatalError(errorMessage); }; - window.electron.on('fatal-error', handleFatalError); return () => { window.electron.off('fatal-error', handleFatalError); }; - }, [view, isLoadingSession]); // Add dependencies to provide context in error logs + }, [view, isLoadingSession]); useEffect(() => { console.log('Setting up view change handler'); @@ -306,14 +278,10 @@ export default function App() { console.log(`Received view change request to: ${newView}`); setView(newView); }; - - // Get initial view and config const urlParams = new URLSearchParams(window.location.search); const viewFromUrl = urlParams.get('view'); if (viewFromUrl) { - // Get the config from the electron window config const windowConfig = window.electron.getConfig(); - if (viewFromUrl === 'recipeEditor') { const initialViewOptions = { recipeConfig: windowConfig?.recipeConfig, @@ -324,12 +292,10 @@ export default function App() { setView(viewFromUrl); } } - window.electron.on('set-view', handleSetView); return () => window.electron.off('set-view', handleSetView); }, []); - // Add cleanup for session states when view changes useEffect(() => { console.log(`View changed to: ${view}`); if (view !== 'chat' && view !== 'recipeEditor') { @@ -338,10 +304,7 @@ export default function App() { } }, [view]); - // Configuration for extension security const config = window.electron.getConfig(); - // If GOOSE_ALLOWLIST_WARNING is true, use warning-only mode (STRICT_ALLOWLIST=false) - // If GOOSE_ALLOWLIST_WARNING is not set or false, use strict blocking mode (STRICT_ALLOWLIST=true) const STRICT_ALLOWLIST = config.GOOSE_ALLOWLIST_WARNING === true ? false : true; useEffect(() => { @@ -354,35 +317,24 @@ export default function App() { const extName = extractExtensionName(link); window.electron.logInfo(`Adding extension from deep link ${link}`); setPendingLink(link); - - // Default values for confirmation dialog let warningMessage = ''; let label = 'OK'; let title = 'Confirm Extension Installation'; let isBlocked = false; let useDetailedMessage = false; - - // For SSE extensions (with remoteUrl), always use detailed message if (remoteUrl) { useDetailedMessage = true; } else { - // For command-based extensions, check against allowlist try { const allowedCommands = await window.electron.getAllowedExtensions(); - - // Only check and show warning if we have a non-empty allowlist if (allowedCommands && allowedCommands.length > 0) { const isCommandAllowed = allowedCommands.some((allowedCmd) => command.startsWith(allowedCmd) ); - if (!isCommandAllowed) { - // Not in allowlist - use detailed message and show warning/block useDetailedMessage = true; title = '⛔️ Untrusted Extension ⛔️'; - if (STRICT_ALLOWLIST) { - // Block installation completely unless override is active isBlocked = true; label = 'Extension Blocked'; warningMessage = @@ -390,7 +342,6 @@ export default function App() { 'Installation is blocked by your administrator. ' + 'Please contact your administrator if you need this extension.'; } else { - // Allow override (either because STRICT_ALLOWLIST is false or secret key combo was used) label = 'Override and install'; warningMessage = '\n\n⚠️ WARNING: This extension command is not in the allowed list. ' + @@ -398,51 +349,38 @@ export default function App() { 'Please contact an admin if you are unsure or want to allow this extension.'; } } - // If in allowlist, use simple message (useDetailedMessage remains false) } - // If no allowlist, use simple message (useDetailedMessage remains false) } catch (error) { console.error('Error checking allowlist:', error); } } - - // Set the appropriate message based on the extension type and allowlist status if (useDetailedMessage) { - // Detailed message for SSE extensions or non-allowlisted command extensions const detailedMessage = remoteUrl ? `You are about to install the ${extName} extension which connects to:\n\n${remoteUrl}\n\nThis extension will be able to access your conversations and provide additional functionality.` : `You are about to install the ${extName} extension which runs the command:\n\n${command}\n\nThis extension will be able to access your conversations and provide additional functionality.`; - setModalMessage(`${detailedMessage}${warningMessage}`); } else { - // Simple message for allowlisted command extensions or when no allowlist exists const messageDetails = `Command: ${command}`; setModalMessage( `Are you sure you want to install the ${extName} extension?\n\n${messageDetails}` ); } - setExtensionConfirmLabel(label); setExtensionConfirmTitle(title); - - // If blocked, disable the confirmation button functionality by setting a special flag if (isBlocked) { - setPendingLink(null); // Clear the pending link so confirmation does nothing + setPendingLink(null); } - setModalVisible(true); } catch (error) { console.error('Error handling add-extension event:', error); } }; - window.electron.on('add-extension', handleAddExtension); return () => { window.electron.off('add-extension', handleAddExtension); }; }, [STRICT_ALLOWLIST]); - // Focus the first found input field useEffect(() => { const handleFocusInput = (_event: IpcRendererEvent) => { const inputField = document.querySelector('input[type="text"], textarea') as HTMLInputElement; @@ -456,28 +394,24 @@ export default function App() { }; }, []); - // TODO: modify const handleConfirm = async () => { if (pendingLink) { console.log(`Confirming installation of extension from: ${pendingLink}`); - setModalVisible(false); // Dismiss modal immediately + setModalVisible(false); try { await addExtensionFromDeepLinkV2(pendingLink, addExtension, setView); console.log('Extension installation successful'); } catch (error) { console.error('Failed to add extension:', error); - // Consider showing a user-visible error notification here } finally { setPendingLink(null); } } else { - // This case happens when pendingLink was cleared due to blocking console.log('Extension installation blocked by allowlist restrictions'); setModalVisible(false); } }; - // TODO: modify const handleCancel = () => { console.log('Cancelled extension installation.'); setModalVisible(false); @@ -566,6 +500,7 @@ export default function App() { /> )} {view === 'sessions' && } + {view === 'schedules' && setView('chat')} />} {view === 'sharedSession' && ( = ClientOptions & { @@ -144,6 +144,45 @@ export const manageContext = (options: Opt }); }; +export const createSchedule = (options: Options) => { + return (options.client ?? _heyApiClient).post({ + url: '/schedule/create', + ...options, + headers: { + 'Content-Type': 'application/json', + ...options?.headers + } + }); +}; + +export const deleteSchedule = (options: Options) => { + return (options.client ?? _heyApiClient).delete({ + url: '/schedule/delete/{id}', + ...options + }); +}; + +export const listSchedules = (options?: Options) => { + return (options?.client ?? _heyApiClient).get({ + url: '/schedule/list', + ...options + }); +}; + +export const runNowHandler = (options: Options) => { + return (options.client ?? _heyApiClient).post({ + url: '/schedule/{id}/run_now', + ...options + }); +}; + +export const sessionsHandler = (options: Options) => { + return (options.client ?? _heyApiClient).get({ + url: '/schedule/{id}/sessions', + ...options + }); +}; + export const listSessions = (options?: Options) => { return (options?.client ?? _heyApiClient).get({ url: '/sessions', diff --git a/ui/desktop/src/api/types.gen.ts b/ui/desktop/src/api/types.gen.ts index 6f0b909b..5ffb382d 100644 --- a/ui/desktop/src/api/types.gen.ts +++ b/ui/desktop/src/api/types.gen.ts @@ -62,6 +62,12 @@ export type ContextManageResponse = { tokenCounts: Array; }; +export type CreateScheduleRequest = { + cron: string; + id: string; + recipe_source: string; +}; + export type EmbeddedResource = { annotations?: Annotations | null; resource: ResourceContents; @@ -166,6 +172,10 @@ export type ImageContent = { mimeType: string; }; +export type ListSchedulesResponse = { + jobs: Array; +}; + /** * A message to or from an LLM */ @@ -228,14 +238,8 @@ export type PermissionLevel = 'always_allow' | 'ask_before' | 'never_allow'; export type PrincipalType = 'Extension' | 'Tool'; export type ProviderDetails = { - /** - * Indicates whether the provider is fully configured - */ is_configured: boolean; metadata: ProviderMetadata; - /** - * Unique identifier and name of the provider - */ name: string; }; @@ -294,6 +298,32 @@ export type ResourceContents = { export type Role = 'user' | 'assistant'; +export type RunNowResponse = { + session_id: string; +}; + +export type ScheduledJob = { + cron: string; + id: string; + last_run?: string | null; + source: string; +}; + +export type SessionDisplayInfo = { + accumulatedInputTokens?: number | null; + accumulatedOutputTokens?: number | null; + accumulatedTotalTokens?: number | null; + createdAt: string; + id: string; + inputTokens?: number | null; + messageCount: number; + name: string; + outputTokens?: number | null; + scheduleId?: string | null; + totalTokens?: number | null; + workingDir: string; +}; + export type SessionHistoryResponse = { /** * List of messages in the session conversation @@ -352,6 +382,10 @@ export type SessionMetadata = { * The number of output tokens used in the session. Retrieved from the provider's last usage. */ output_tokens?: number | null; + /** + * ID of the schedule that triggered this session, if any + */ + schedule_id?: string | null; /** * The total number of tokens used in the session. Retrieved from the provider's last usage. */ @@ -362,6 +396,10 @@ export type SessionMetadata = { working_dir: string; }; +export type SessionsQuery = { + limit?: number; +}; + export type SummarizationRequested = { msg: string; }; @@ -464,9 +502,6 @@ export type ToolInfo = { export type ToolPermission = { permission: PermissionLevel; - /** - * Unique identifier and name of the tool, format __ - */ tool_name: string; }; @@ -849,6 +884,146 @@ export type ManageContextResponses = { export type ManageContextResponse = ManageContextResponses[keyof ManageContextResponses]; +export type CreateScheduleData = { + body: CreateScheduleRequest; + path?: never; + query?: never; + url: '/schedule/create'; +}; + +export type CreateScheduleErrors = { + /** + * Internal server error + */ + 500: unknown; +}; + +export type CreateScheduleResponses = { + /** + * Scheduled job created successfully + */ + 200: ScheduledJob; +}; + +export type CreateScheduleResponse = CreateScheduleResponses[keyof CreateScheduleResponses]; + +export type DeleteScheduleData = { + body?: never; + path: { + /** + * ID of the schedule to delete + */ + id: string; + }; + query?: never; + url: '/schedule/delete/{id}'; +}; + +export type DeleteScheduleErrors = { + /** + * Scheduled job not found + */ + 404: unknown; + /** + * Internal server error + */ + 500: unknown; +}; + +export type DeleteScheduleResponses = { + /** + * Scheduled job deleted successfully + */ + 204: void; +}; + +export type DeleteScheduleResponse = DeleteScheduleResponses[keyof DeleteScheduleResponses]; + +export type ListSchedulesData = { + body?: never; + path?: never; + query?: never; + url: '/schedule/list'; +}; + +export type ListSchedulesErrors = { + /** + * Internal server error + */ + 500: unknown; +}; + +export type ListSchedulesResponses = { + /** + * A list of scheduled jobs + */ + 200: ListSchedulesResponse; +}; + +export type ListSchedulesResponse2 = ListSchedulesResponses[keyof ListSchedulesResponses]; + +export type RunNowHandlerData = { + body?: never; + path: { + /** + * ID of the schedule to run + */ + id: string; + }; + query?: never; + url: '/schedule/{id}/run_now'; +}; + +export type RunNowHandlerErrors = { + /** + * Scheduled job not found + */ + 404: unknown; + /** + * Internal server error when trying to run the job + */ + 500: unknown; +}; + +export type RunNowHandlerResponses = { + /** + * Scheduled job triggered successfully, returns new session ID + */ + 200: RunNowResponse; +}; + +export type RunNowHandlerResponse = RunNowHandlerResponses[keyof RunNowHandlerResponses]; + +export type SessionsHandlerData = { + body?: never; + path: { + /** + * ID of the schedule + */ + id: string; + }; + query?: { + limit?: number; + }; + url: '/schedule/{id}/sessions'; +}; + +export type SessionsHandlerErrors = { + /** + * Internal server error + */ + 500: unknown; +}; + +export type SessionsHandlerResponses = { + /** + * A list of session display info + */ + 200: Array; +}; + +export type SessionsHandlerResponse = SessionsHandlerResponses[keyof SessionsHandlerResponses]; + export type ListSessionsData = { body?: never; path?: never; diff --git a/ui/desktop/src/components/icons/TrashIcon.tsx b/ui/desktop/src/components/icons/TrashIcon.tsx new file mode 100644 index 00000000..63db6fc4 --- /dev/null +++ b/ui/desktop/src/components/icons/TrashIcon.tsx @@ -0,0 +1,19 @@ +// /Users/mnovich/Development/goose-1.0/ui/desktop/src/components/icons/TrashIcon.tsx +import React from 'react'; + +interface IconProps extends React.SVGProps {} + +export const TrashIcon: React.FC = (props) => ( + + + +); diff --git a/ui/desktop/src/components/more_menu/MoreMenu.tsx b/ui/desktop/src/components/more_menu/MoreMenu.tsx index 5820093d..b3323dd0 100644 --- a/ui/desktop/src/components/more_menu/MoreMenu.tsx +++ b/ui/desktop/src/components/more_menu/MoreMenu.tsx @@ -125,17 +125,14 @@ export default function MoreMenu({ useEffect(() => { const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)'); - // Handler for system theme changes const handleThemeChange = (e: { matches: boolean }) => { if (themeMode === 'system') { setDarkMode(e.matches); } }; - // Add listener for system theme changes mediaQuery.addEventListener('change', handleThemeChange); - // Initial setup if (themeMode === 'system') { setDarkMode(mediaQuery.matches); localStorage.setItem('use_system_theme', 'true'); @@ -145,7 +142,6 @@ export default function MoreMenu({ localStorage.setItem('theme', themeMode); } - // Cleanup return () => mediaQuery.removeEventListener('change', handleThemeChange); }, [themeMode]); @@ -221,6 +217,16 @@ export default function MoreMenu({ Session history + {process.env.ALPHA && ( + setView('schedules')} + subtitle="Manage scheduled runs" + icon={ + )} + setIsGoosehintsModalOpen(true)} subtitle="Customize instructions" diff --git a/ui/desktop/src/components/schedule/CreateScheduleModal.tsx b/ui/desktop/src/components/schedule/CreateScheduleModal.tsx new file mode 100644 index 00000000..8ea6a06a --- /dev/null +++ b/ui/desktop/src/components/schedule/CreateScheduleModal.tsx @@ -0,0 +1,439 @@ +import React, { useState, useEffect, FormEvent } from 'react'; +import { Card } from '../ui/card'; +import { Button } from '../ui/button'; +import { Input } from '../ui/input'; +import { Select } from '../ui/select'; +import cronstrue from 'cronstrue'; + +type FrequencyValue = 'once' | 'hourly' | 'daily' | 'weekly' | 'monthly'; + +interface FrequencyOption { + value: FrequencyValue; + label: string; +} + +export interface NewSchedulePayload { + id: string; + recipe_source: string; + cron: string; +} + +interface CreateScheduleModalProps { + isOpen: boolean; + onClose: () => void; + onSubmit: (payload: NewSchedulePayload) => Promise; + isLoadingExternally: boolean; + apiErrorExternally: string | null; +} + +const frequencies: FrequencyOption[] = [ + { value: 'once', label: 'Once' }, + { value: 'hourly', label: 'Hourly' }, + { value: 'daily', label: 'Daily' }, + { value: 'weekly', label: 'Weekly' }, + { value: 'monthly', label: 'Monthly' }, +]; + +const daysOfWeekOptions: { value: string; label: string }[] = [ + { value: '1', label: 'Mon' }, + { value: '2', label: 'Tue' }, + { value: '3', label: 'Wed' }, + { value: '4', label: 'Thu' }, + { value: '5', label: 'Fri' }, + { value: '6', label: 'Sat' }, + { value: '0', label: 'Sun' }, +]; + +const modalLabelClassName = 'block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1'; +const cronPreviewTextColor = 'text-xs text-gray-500 dark:text-gray-400 mt-1'; +const cronPreviewSpecialNoteColor = 'text-xs text-yellow-600 dark:text-yellow-500 mt-1'; +const checkboxLabelClassName = 'flex items-center text-sm text-textStandard dark:text-gray-300'; +const checkboxInputClassName = + 'h-4 w-4 text-indigo-600 border-gray-300 dark:border-gray-600 rounded focus:ring-indigo-500 mr-2'; + +export const CreateScheduleModal: React.FC = ({ + isOpen, + onClose, + onSubmit, + isLoadingExternally, + apiErrorExternally, +}) => { + const [scheduleId, setScheduleId] = useState(''); + const [recipeSourcePath, setRecipeSourcePath] = useState(''); + const [frequency, setFrequency] = useState('daily'); + const [selectedDate, setSelectedDate] = useState( + () => new Date().toISOString().split('T')[0] + ); + const [selectedTime, setSelectedTime] = useState('09:00'); + const [selectedMinute, setSelectedMinute] = useState('0'); + const [selectedDaysOfWeek, setSelectedDaysOfWeek] = useState>(new Set(['1'])); + const [selectedDayOfMonth, setSelectedDayOfMonth] = useState('1'); + const [derivedCronExpression, setDerivedCronExpression] = useState(''); + const [readableCronExpression, setReadableCronExpression] = useState(''); + const [internalValidationError, setInternalValidationError] = useState(null); + + const resetForm = () => { + setScheduleId(''); + setRecipeSourcePath(''); + setFrequency('daily'); + setSelectedDate(new Date().toISOString().split('T')[0]); + setSelectedTime('09:00'); + setSelectedMinute('0'); + setSelectedDaysOfWeek(new Set(['1'])); + setSelectedDayOfMonth('1'); + setInternalValidationError(null); + setReadableCronExpression(''); + }; + + const handleBrowseFile = async () => { + const filePath = await window.electron.selectFileOrDirectory(); + if (filePath) { + if (filePath.endsWith('.yaml') || filePath.endsWith('.yml')) { + setRecipeSourcePath(filePath); + setInternalValidationError(null); + } else { + setInternalValidationError('Invalid file type: Please select a YAML file (.yaml or .yml)'); + console.warn('Invalid file type: Please select a YAML file (.yaml or .yml)'); + } + } + }; + + useEffect(() => { + const generateCronExpression = (): string => { + const timeParts = selectedTime.split(':'); + const minutePart = timeParts.length > 1 ? String(parseInt(timeParts[1], 10)) : '0'; + const hourPart = timeParts.length > 0 ? String(parseInt(timeParts[0], 10)) : '0'; + if (isNaN(parseInt(minutePart)) || isNaN(parseInt(hourPart))) { + return 'Invalid time format.'; + } + const secondsPart = '0'; + switch (frequency) { + case 'once': + if (selectedDate && selectedTime) { + try { + const dateObj = new Date(`${selectedDate}T${selectedTime}`); + if (isNaN(dateObj.getTime())) return "Invalid date/time for 'once'."; + return `${secondsPart} ${dateObj.getMinutes()} ${dateObj.getHours()} ${dateObj.getDate()} ${ + dateObj.getMonth() + 1 + } *`; + } catch (e) { + return "Error parsing date/time for 'once'."; + } + } + return 'Date and Time are required for "Once" frequency.'; + case 'hourly': { + const sMinute = parseInt(selectedMinute, 10); + if (isNaN(sMinute) || sMinute < 0 || sMinute > 59) { + return 'Invalid minute (0-59) for hourly frequency.'; + } + return `${secondsPart} ${sMinute} * * * *`; + } + case 'daily': + return `${secondsPart} ${minutePart} ${hourPart} * * *`; + case 'weekly': { + if (selectedDaysOfWeek.size === 0) { + return 'Select at least one day for weekly frequency.'; + } + const days = Array.from(selectedDaysOfWeek) + .sort((a, b) => parseInt(a) - parseInt(b)) + .join(','); + return `${secondsPart} ${minutePart} ${hourPart} * * ${days}`; + } + case 'monthly': { + const sDayOfMonth = parseInt(selectedDayOfMonth, 10); + if (isNaN(sDayOfMonth) || sDayOfMonth < 1 || sDayOfMonth > 31) { + return 'Invalid day of month (1-31) for monthly frequency.'; + } + return `${secondsPart} ${minutePart} ${hourPart} ${sDayOfMonth} * *`; + } + default: + return 'Invalid frequency selected.'; + } + }; + const cron = generateCronExpression(); + setDerivedCronExpression(cron); + try { + if ( + cron.includes('Invalid') || + cron.includes('required') || + cron.includes('Error') || + cron.includes('Select at least one') + ) { + setReadableCronExpression('Invalid cron details provided.'); + } else { + setReadableCronExpression(cronstrue.toString(cron)); + } + } catch (e) { + setReadableCronExpression('Could not parse cron string.'); + } + }, [ + frequency, + selectedDate, + selectedTime, + selectedMinute, + selectedDaysOfWeek, + selectedDayOfMonth, + ]); + + const handleDayOfWeekChange = (dayValue: string) => { + setSelectedDaysOfWeek((prev) => { + const newSet = new Set(prev); + if (newSet.has(dayValue)) { + newSet.delete(dayValue); + } else { + newSet.add(dayValue); + } + return newSet; + }); + }; + + const handleLocalSubmit = async (event: FormEvent) => { + event.preventDefault(); + setInternalValidationError(null); + + if (!scheduleId.trim()) { + setInternalValidationError('Schedule ID is required.'); + return; + } + if (!recipeSourcePath) { + setInternalValidationError('Recipe source file is required.'); + return; + } + if ( + !derivedCronExpression || + derivedCronExpression.includes('Invalid') || + derivedCronExpression.includes('required') || + derivedCronExpression.includes('Error') || + derivedCronExpression.includes('Select at least one') + ) { + setInternalValidationError(`Invalid cron expression: ${derivedCronExpression}`); + return; + } + if (frequency === 'weekly' && selectedDaysOfWeek.size === 0) { + setInternalValidationError('For weekly frequency, select at least one day.'); + return; + } + + const newSchedulePayload: NewSchedulePayload = { + id: scheduleId.trim(), + recipe_source: recipeSourcePath, + cron: derivedCronExpression, + }; + + await onSubmit(newSchedulePayload); + }; + + const handleClose = () => { + resetForm(); + onClose(); + }; + + if (!isOpen) return null; + + return ( +
      + +
      +

      + Create New Schedule +

      +
      + +
      + {apiErrorExternally && ( +

      + {apiErrorExternally} +

      + )} + {internalValidationError && ( +

      + {internalValidationError} +

      + )} + +
      + + setScheduleId(e.target.value)} + placeholder="e.g., daily-summary-job" + required + /> +
      +
      + + + {recipeSourcePath && ( +

      + Selected: {recipeSourcePath} +

      + )} +
      +
      + + setSelectedDate(e.target.value)} + required + /> +
      +
      + + setSelectedTime(e.target.value)} + required + /> +
      + + )} + {frequency === 'hourly' && ( +
      + + setSelectedMinute(e.target.value)} + required + /> +
      + )} + {(frequency === 'daily' || frequency === 'weekly' || frequency === 'monthly') && ( +
      + + setSelectedTime(e.target.value)} + required + /> +
      + )} + {frequency === 'weekly' && ( +
      + +
      + {daysOfWeekOptions.map((day) => ( + + ))} +
      +
      + )} + {frequency === 'monthly' && ( +
      + + setSelectedDayOfMonth(e.target.value)} + required + /> +
      + )} +
      +

      + Generated Cron:{' '} + + {derivedCronExpression} + +

      +

      + Human Readable: {readableCronExpression} +

      +

      Syntax: S M H D M DoW. (S=0, DoW: 0/7=Sun)

      + {frequency === 'once' && ( +

      + Note: "Once" schedules recur annually. True one-time tasks may need backend deletion + after execution. +

      + )} +
      +
      + + {/* Actions */} +
      + + +
      +
      +
      + ); +}; diff --git a/ui/desktop/src/components/schedule/ScheduleDetailView.tsx b/ui/desktop/src/components/schedule/ScheduleDetailView.tsx new file mode 100644 index 00000000..4ae3a86d --- /dev/null +++ b/ui/desktop/src/components/schedule/ScheduleDetailView.tsx @@ -0,0 +1,260 @@ +import React, { useState, useEffect, useCallback } from 'react'; +import { Button } from '../ui/button'; +import { ScrollArea } from '../ui/scroll-area'; +import BackButton from '../ui/BackButton'; +import { Card } from '../ui/card'; +import MoreMenuLayout from '../more_menu/MoreMenuLayout'; +import { fetchSessionDetails, SessionDetails } from '../../sessions'; +import { getScheduleSessions, runScheduleNow } from '../../schedule'; +import SessionHistoryView from '../sessions/SessionHistoryView'; +import { toastError, toastSuccess } from '../../toasts'; + +interface ScheduleSessionMeta { + id: string; + name: string; + createdAt: string; + workingDir?: string; + scheduleId?: string | null; + messageCount?: number; + totalTokens?: number | null; + inputTokens?: number | null; + outputTokens?: number | null; + accumulatedTotalTokens?: number | null; + accumulatedInputTokens?: number | null; + accumulatedOutputTokens?: number | null; +} + +interface ScheduleDetailViewProps { + scheduleId: string | null; + onNavigateBack: () => void; +} + +const ScheduleDetailView: React.FC = ({ scheduleId, onNavigateBack }) => { + const [sessions, setSessions] = useState([]); + const [isLoadingSessions, setIsLoadingSessions] = useState(false); + const [sessionsError, setSessionsError] = useState(null); + const [runNowLoading, setRunNowLoading] = useState(false); + + const [selectedSessionDetails, setSelectedSessionDetails] = useState(null); + const [isLoadingSessionDetails, setIsLoadingSessionDetails] = useState(false); + const [sessionDetailsError, setSessionDetailsError] = useState(null); + + const fetchScheduleSessions = useCallback(async (sId: string) => { + if (!sId) return; + setIsLoadingSessions(true); + setSessionsError(null); + try { + const fetchedSessions = await getScheduleSessions(sId, 20); // MODIFIED + // Assuming ScheduleSession from ../../schedule can be cast or mapped to ScheduleSessionMeta + // You may need to transform/map fields if they differ significantly + setSessions(fetchedSessions as ScheduleSessionMeta[]); + } catch (err) { + console.error('Failed to fetch schedule sessions:', err); + setSessionsError(err instanceof Error ? err.message : 'Failed to fetch schedule sessions'); + } finally { + setIsLoadingSessions(false); + } + }, []); + + useEffect(() => { + if (scheduleId && !selectedSessionDetails) { + fetchScheduleSessions(scheduleId); + } else if (!scheduleId) { + setSessions([]); + setSessionsError(null); + setRunNowLoading(false); + setSelectedSessionDetails(null); + } + }, [scheduleId, fetchScheduleSessions, selectedSessionDetails]); + + const handleRunNow = async () => { + if (!scheduleId) return; + setRunNowLoading(true); + try { + const newSessionId = await runScheduleNow(scheduleId); // MODIFIED + toastSuccess({ + title: 'Schedule Triggered', + msg: `Successfully triggered schedule. New session ID: ${newSessionId}`, + }); + setTimeout(() => { + if (scheduleId) fetchScheduleSessions(scheduleId); + }, 1000); + } catch (err) { + console.error('Failed to run schedule now:', err); + const errorMsg = err instanceof Error ? err.message : 'Failed to trigger schedule'; + toastError({ title: 'Run Schedule Error', msg: errorMsg }); + } finally { + setRunNowLoading(false); + } + }; + + const loadAndShowSessionDetails = async (sessionId: string) => { + setIsLoadingSessionDetails(true); + setSessionDetailsError(null); + setSelectedSessionDetails(null); + try { + const details = await fetchSessionDetails(sessionId); + setSelectedSessionDetails(details); + } catch (err) { + console.error(`Failed to load session details for ${sessionId}:`, err); + const errorMsg = err instanceof Error ? err.message : 'Failed to load session details.'; + setSessionDetailsError(errorMsg); + toastError({ + title: 'Failed to load session details', + msg: errorMsg, + }); + } finally { + setIsLoadingSessionDetails(false); + } + }; + + const handleSessionCardClick = (sessionIdFromCard: string) => { + loadAndShowSessionDetails(sessionIdFromCard); + }; + + const handleResumeViewedSession = () => { + if (selectedSessionDetails) { + const { session_id, metadata } = selectedSessionDetails; + if (metadata.working_dir) { + console.log( + `Resuming session ID ${session_id} in new chat window. Dir: ${metadata.working_dir}` + ); + window.electron.createChatWindow(undefined, metadata.working_dir, undefined, session_id); + } else { + console.error('Cannot resume session: working directory is missing.'); + toastError({ title: 'Cannot Resume Session', msg: 'Working directory is missing.' }); + } + } + }; + + if (selectedSessionDetails) { + return ( + { + setSelectedSessionDetails(null); + setSessionDetailsError(null); + }} + onResume={handleResumeViewedSession} + onRetry={() => loadAndShowSessionDetails(selectedSessionDetails.session_id)} + showActionButtons={true} + /> + ); + } + + if (!scheduleId) { + return ( +
      + + +

      + Schedule Not Found +

      +

      + No schedule ID was provided. Please return to the schedules list and select a schedule. +

      +
      + ); + } + + return ( +
      + +
      + +

      + Schedule Details +

      +

      + Viewing Schedule ID: {scheduleId} +

      +
      + + +
      +
      +

      Actions

      + +
      + +
      +

      + Recent Sessions for this Schedule +

      + {isLoadingSessions && ( +

      Loading sessions...

      + )} + {sessionsError && ( +

      + Error: {sessionsError} +

      + )} + {!isLoadingSessions && !sessionsError && sessions.length === 0 && ( +

      + No sessions found for this schedule. +

      + )} + + {!isLoadingSessions && sessions.length > 0 && ( +
      + {sessions.map((session) => ( + handleSessionCardClick(session.id)} + role="button" + tabIndex={0} + onKeyPress={(e) => { + if (e.key === 'Enter' || e.key === ' ') { + handleSessionCardClick(session.id); + } + }} + > +

      + {session.name || `Session ID: ${session.id}`}{' '} +

      +

      + Created:{' '} + {session.createdAt ? new Date(session.createdAt).toLocaleString() : 'N/A'} +

      + {session.messageCount !== undefined && ( +

      + Messages: {session.messageCount} +

      + )} + {session.workingDir && ( +

      + Dir: {session.workingDir} +

      + )} + {session.accumulatedTotalTokens !== undefined && + session.accumulatedTotalTokens !== null && ( +

      + Tokens: {session.accumulatedTotalTokens} +

      + )} +

      + ID: {session.id} +

      +
      + ))} +
      + )} +
      +
      +
      +
      + ); +}; + +export default ScheduleDetailView; diff --git a/ui/desktop/src/components/schedule/SchedulesView.tsx b/ui/desktop/src/components/schedule/SchedulesView.tsx new file mode 100644 index 00000000..b89e2138 --- /dev/null +++ b/ui/desktop/src/components/schedule/SchedulesView.tsx @@ -0,0 +1,230 @@ +import React, { useState, useEffect } from 'react'; +import { listSchedules, createSchedule, deleteSchedule, ScheduledJob } from '../../schedule'; +import BackButton from '../ui/BackButton'; +import { ScrollArea } from '../ui/scroll-area'; +import MoreMenuLayout from '../more_menu/MoreMenuLayout'; +import { Card } from '../ui/card'; +import { Button } from '../ui/button'; +import { TrashIcon } from '../icons/TrashIcon'; +import Plus from '../ui/Plus'; +import { CreateScheduleModal, NewSchedulePayload } from './CreateScheduleModal'; +import ScheduleDetailView from './ScheduleDetailView'; +import cronstrue from 'cronstrue'; + +interface SchedulesViewProps { + onClose: () => void; +} + +const SchedulesView: React.FC = ({ onClose }) => { + const [schedules, setSchedules] = useState([]); + const [isLoading, setIsLoading] = useState(false); + const [isSubmitting, setIsSubmitting] = useState(false); + const [apiError, setApiError] = useState(null); + const [submitApiError, setSubmitApiError] = useState(null); + const [isCreateModalOpen, setIsCreateModalOpen] = useState(false); + + const [viewingScheduleId, setViewingScheduleId] = useState(null); + + const fetchSchedules = async () => { + setIsLoading(true); + setApiError(null); + try { + const fetchedSchedules = await listSchedules(); + setSchedules(fetchedSchedules); + } catch (error) { + console.error('Failed to fetch schedules:', error); + setApiError( + error instanceof Error + ? error.message + : 'An unknown error occurred while fetching schedules.' + ); + } finally { + setIsLoading(false); + } + }; + + useEffect(() => { + if (viewingScheduleId === null) { + fetchSchedules(); + } + }, [viewingScheduleId]); + + const handleOpenCreateModal = () => { + setSubmitApiError(null); + setIsCreateModalOpen(true); + }; + + const handleCloseCreateModal = () => { + setIsCreateModalOpen(false); + setSubmitApiError(null); + }; + + const handleCreateScheduleSubmit = async (payload: NewSchedulePayload) => { + setIsSubmitting(true); + setSubmitApiError(null); + try { + await createSchedule(payload); + await fetchSchedules(); + setIsCreateModalOpen(false); + } catch (error) { + console.error('Failed to create schedule:', error); + const errorMessage = + error instanceof Error ? error.message : 'Unknown error creating schedule.'; + setSubmitApiError(errorMessage); + } finally { + setIsSubmitting(false); + } + }; + + const handleDeleteSchedule = async (idToDelete: string) => { + if (!window.confirm(`Are you sure you want to delete schedule "${idToDelete}"?`)) return; + if (viewingScheduleId === idToDelete) { + setViewingScheduleId(null); + } + setIsLoading(true); + setApiError(null); + try { + await deleteSchedule(idToDelete); + await fetchSchedules(); + } catch (error) { + console.error(`Failed to delete schedule "${idToDelete}":`, error); + setApiError( + error instanceof Error ? error.message : `Unknown error deleting "${idToDelete}".` + ); + } finally { + setIsLoading(false); + } + }; + + const handleNavigateToScheduleDetail = (scheduleId: string) => { + setViewingScheduleId(scheduleId); + }; + + const handleNavigateBackFromDetail = () => { + setViewingScheduleId(null); + }; + + const getReadableCron = (cronString: string) => { + try { + return cronstrue.toString(cronString); + } catch (e) { + console.warn(`Could not parse cron string "${cronString}":`, e); + return cronString; + } + }; + + if (viewingScheduleId) { + return ( + + ); + } + + return ( +
      + +
      + +

      + Schedules Management +

      +
      + + +
      + + + {apiError && ( +

      + Error: {apiError} +

      + )} + +
      +

      + Existing Schedules +

      + {isLoading && schedules.length === 0 && ( +

      Loading schedules...

      + )} + {!isLoading && !apiError && schedules.length === 0 && ( +

      + No schedules found. Create one to get started! +

      + )} + + {!isLoading && schedules.length > 0 && ( +
      + {schedules.map((job) => ( + handleNavigateToScheduleDetail(job.id)} + > +
      +
      +

      + {job.id} +

      +

      + Source: {job.source} +

      +

      + Schedule: {getReadableCron(job.cron)} +

      +

      + Last Run:{' '} + {job.last_run ? new Date(job.last_run).toLocaleString() : 'Never'} +

      +
      +
      + +
      +
      +
      + ))} +
      + )} +
      +
      +
      + +
      + ); +}; + +export default SchedulesView; diff --git a/ui/desktop/src/components/sessions/SessionHistoryView.tsx b/ui/desktop/src/components/sessions/SessionHistoryView.tsx index 8cadecf0..da6c2cb8 100644 --- a/ui/desktop/src/components/sessions/SessionHistoryView.tsx +++ b/ui/desktop/src/components/sessions/SessionHistoryView.tsx @@ -26,6 +26,7 @@ interface SessionHistoryViewProps { onBack: () => void; onResume: () => void; onRetry: () => void; + showActionButtons?: boolean; } const SessionHistoryView: React.FC = ({ @@ -35,6 +36,7 @@ const SessionHistoryView: React.FC = ({ onBack, onResume, onRetry, + showActionButtons = true, }) => { const [isShareModalOpen, setIsShareModalOpen] = useState(false); const [shareLink, setShareLink] = useState(''); @@ -47,7 +49,6 @@ const SessionHistoryView: React.FC = ({ if (savedSessionConfig) { try { const config = JSON.parse(savedSessionConfig); - // If config.enabled is true and config.baseUrl is non-empty, we can share if (config.enabled && config.baseUrl) { setCanShare(true); } @@ -61,7 +62,6 @@ const SessionHistoryView: React.FC = ({ setIsSharing(true); try { - // Get the session sharing configuration from localStorage const savedSessionConfig = localStorage.getItem('session_sharing_config'); if (!savedSessionConfig) { throw new Error('Session sharing is not configured. Please configure it in settings.'); @@ -72,7 +72,6 @@ const SessionHistoryView: React.FC = ({ throw new Error('Session sharing is not enabled or base URL is not configured.'); } - // Create a shared session const shareToken = await createSharedSession( config.baseUrl, session.metadata.working_dir, @@ -81,7 +80,6 @@ const SessionHistoryView: React.FC = ({ session.metadata.total_tokens ); - // Create the shareable link const shareableLink = `goose://sessions/${shareToken}`; setShareLink(shareableLink); setIsShareModalOpen(true); @@ -112,9 +110,7 @@ const SessionHistoryView: React.FC = ({
      - {/* Top Row - back, info, reopen thread (fixed) */} - {/* Session info row */}

      {session.metadata.description || session.session_id} @@ -143,37 +139,39 @@ const SessionHistoryView: React.FC = ({

      -
      - + {showActionButtons && ( +
      + - -
      + +
      + )} = ({ onRetry={onRetry} /> - {/* Share Link Modal */} - {/* Share Icon */}
      - {/* Centered Title */}

      Share Session (beta)

      - {/* Description & Link */}

      Share this session link to give others a read only view of your goose chat. @@ -219,7 +213,6 @@ const SessionHistoryView: React.FC = ({

      - {/* Footer */}
      + ); +} diff --git a/ui-v2/src/components/DateDisplay.tsx b/ui-v2/src/components/DateDisplay.tsx new file mode 100644 index 00000000..2d05f83d --- /dev/null +++ b/ui-v2/src/components/DateDisplay.tsx @@ -0,0 +1,46 @@ +import React, { useEffect, useState } from 'react'; +import { useTimeline } from '../contexts/TimelineContext'; + +export function DateDisplay() { + const { currentDate } = useTimeline(); + const [displayDate, setDisplayDate] = useState(currentDate); + const [isFlipping, setIsFlipping] = useState(false); + + useEffect(() => { + setIsFlipping(true); + const timer = setTimeout(() => { + setDisplayDate(currentDate); + setIsFlipping(false); + }, 50); // Reduced from 100ms to 50ms for faster flip + + return () => clearTimeout(timer); + }, [currentDate]); + + const formatDate = (date: Date) => { + const monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; + const dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; + + return { + month: monthNames[date.getMonth()], + day: date.getDate(), + weekday: dayNames[date.getDay()] + }; + }; + + const formattedDate = formatDate(displayDate); + + return ( +
      +
      + {formattedDate.weekday} {formattedDate.month} {formattedDate.day} +
      +
      + ); +} diff --git a/ui-v2/src/components/Timeline.tsx b/ui-v2/src/components/Timeline.tsx index f601e23d..2edfba35 100644 --- a/ui-v2/src/components/Timeline.tsx +++ b/ui-v2/src/components/Timeline.tsx @@ -1,4 +1,5 @@ import React, { useRef, useMemo, useEffect } from 'react'; +import { useTimeline } from '../contexts/TimelineContext'; import ChartTile from './tiles/ChartTile.tsx'; import HighlightTile from './tiles/HighlightTile.tsx'; import PieChartTile from './tiles/PieChartTile.tsx'; @@ -244,6 +245,7 @@ const generateTileData = (date: Date) => { export default function Timeline() { const containerRef = useRef(null); const sectionRefs = useRef<(HTMLDivElement | null)[]>([]); + const { setCurrentDate } = useTimeline(); const sections = useMemo(() => { const result = []; @@ -267,7 +269,7 @@ export default function Timeline() { }, []); // Function to center the timeline in a section - const centerTimeline = (sectionElement: HTMLDivElement) => { + const centerTimeline = (sectionElement: HTMLDivElement, animate: boolean = true) => { if (!sectionElement) return; requestAnimationFrame(() => { @@ -275,10 +277,14 @@ export default function Timeline() { const viewportWidth = sectionElement.clientWidth; const scrollToX = Math.max(0, (totalWidth - viewportWidth) / 2); - sectionElement.scrollTo({ - left: scrollToX, - behavior: 'smooth', - }); + if (animate) { + sectionElement.scrollTo({ + left: scrollToX, + behavior: 'smooth' + }); + } else { + sectionElement.scrollLeft = scrollToX; + } }); }; @@ -287,18 +293,72 @@ export default function Timeline() { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { + const section = entry.target as HTMLDivElement; + + // When section comes into view if (entry.isIntersecting) { - const section = entry.target as HTMLDivElement; - centerTimeline(section); + // Update current date + const sectionIndex = sectionRefs.current.indexOf(section); + if (sectionIndex !== -1) { + const date = sections[sectionIndex].date; + setCurrentDate(date); + } + } + + // When section is fully visible and centered + if (entry.intersectionRatio > 0.8) { + centerTimeline(section, true); } }); }, { - threshold: 0.5, - rootMargin: '0px', + threshold: [0, 0.8, 1], // Track when section is hidden, mostly visible, and fully visible + rootMargin: '-10% 0px', // Slightly reduced margin for more natural triggering } ); + // Add scroll handler for even faster updates + const handleScroll = () => { + if (!containerRef.current) return; + + // Find the section closest to the middle of the viewport + const viewportMiddle = window.innerHeight / 2; + let closestSection: HTMLDivElement | null = null; + let closestDistance = Infinity; + + sectionRefs.current.forEach((section) => { + if (!section) return; + const rect = section.getBoundingClientRect(); + const sectionMiddle = rect.top + rect.height / 2; + const distance = Math.abs(sectionMiddle - viewportMiddle); + + if (distance < closestDistance) { + closestDistance = distance; + closestSection = section; + } + }); + + if (closestSection) { + const sectionIndex = sectionRefs.current.indexOf(closestSection); + if (sectionIndex !== -1) { + const date = sections[sectionIndex].date; + setCurrentDate(date); + } + } + }; + + // Add scroll event listener with throttling + let lastScrollTime = 0; + const throttledScrollHandler = () => { + const now = Date.now(); + if (now - lastScrollTime >= 150) { // Throttle to ~6-7 times per second + handleScroll(); + lastScrollTime = now; + } + }; + + containerRef.current?.addEventListener('scroll', throttledScrollHandler, { passive: true }); + // Add resize handler const handleResize = () => { // Find the currently visible section @@ -306,12 +366,11 @@ export default function Timeline() { if (!section) return false; const rect = section.getBoundingClientRect(); const viewportHeight = window.innerHeight; - // Check if the section is mostly visible in the viewport return rect.top >= -viewportHeight / 2 && rect.bottom <= viewportHeight * 1.5; }); if (visibleSection) { - centerTimeline(visibleSection); + centerTimeline(visibleSection, true); // Animate on resize } }; @@ -322,13 +381,14 @@ export default function Timeline() { sectionRefs.current.forEach((section) => { if (section) { observer.observe(section); - centerTimeline(section); + centerTimeline(section, false); // No animation on initial load } }); // Cleanup function return () => { window.removeEventListener('resize', handleResize); + containerRef.current?.removeEventListener('scroll', throttledScrollHandler); sectionRefs.current.forEach((section) => { if (section) { observer.unobserve(section); @@ -363,7 +423,7 @@ export default function Timeline() {
      (sectionRefs.current[index] = el)} - className="h-screen relative snap-center snap-always overflow-y-hidden overflow-x-scroll snap-x snap-mandatory scrollbar-hide" + className="h-screen relative snap-center snap-always overflow-y-hidden overflow-x-scroll snap-x snap-mandatory scrollbar-hide animate-[fadein_300ms_ease-in-out]" >
      {/* Main flex container */} @@ -392,19 +452,31 @@ export default function Timeline() { /> {/* Date Display */} -
      +
      {section.date.toLocaleString('default', { month: 'short' })}
      {section.date.getDate()}
      {section.date.toLocaleString('default', { weekday: 'long' })}
      diff --git a/ui-v2/src/components/chat/ChatDock.tsx b/ui-v2/src/components/chat/ChatDock.tsx new file mode 100644 index 00000000..4f44eb32 --- /dev/null +++ b/ui-v2/src/components/chat/ChatDock.tsx @@ -0,0 +1,47 @@ +import React from 'react'; +import { motion } from 'framer-motion'; + +interface ChatDockProps { + onTileCreatorToggle: () => void; +} + +export const ChatDock: React.FC = ({ onTileCreatorToggle }) => { + return ( + + + + + + + + + + + ); +}; diff --git a/ui-v2/src/components/chat/ChatIcons.tsx b/ui-v2/src/components/chat/ChatIcons.tsx new file mode 100644 index 00000000..aa36413b --- /dev/null +++ b/ui-v2/src/components/chat/ChatIcons.tsx @@ -0,0 +1,115 @@ +import React, { useState } from "react"; +import { motion } from "framer-motion"; +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "../ui/tooltip"; + +// Define the tool items +const CHAT_TOOLS = [ + { + icon: ( + + + + ), + label: "Make a Tile", + color: "bg-[#4F6BFF] hover:bg-[#4F6BFF]/90", + rotation: -3, + }, + { + icon: ( + + + + ), + label: "Tasks", + color: "bg-[#E042A5] hover:bg-[#E042A5]/90", + rotation: 2, + }, + { + icon: ( + + + + ), + label: "Add", + color: "bg-[#05C168] hover:bg-[#05C168]/90", + rotation: -2, + }, + { + icon: ( + + + + ), + label: "Issues", + color: "bg-[#FF9900] hover:bg-[#FF9900]/90", + rotation: 3, + }, +]; + +interface ChatIconsProps { + className?: string; +} + +export const ChatIcons: React.FC = ({ className }) => { + const [hoveredIndex, setHoveredIndex] = useState(null); + + return ( +
      +
      +
      + {CHAT_TOOLS.map((tool, index) => { + const getX = () => { + if (hoveredIndex === null) return 0; + const spread = 16; + const centerOffset = hoveredIndex * -spread; + return (index * spread) + centerOffset; + }; + + return ( + setHoveredIndex(index)} + onHoverEnd={() => setHoveredIndex(null)} + > + + + + {tool.icon} + + + + {tool.label} + + + + ); + })} +
      +
      +
      + ); +}; diff --git a/ui-v2/src/components/chat/ChatInput.tsx b/ui-v2/src/components/chat/ChatInput.tsx new file mode 100644 index 00000000..0703f82b --- /dev/null +++ b/ui-v2/src/components/chat/ChatInput.tsx @@ -0,0 +1,133 @@ +import React, { useState, useRef, useEffect } from 'react'; +import { motion } from 'framer-motion'; + +interface ChatInputProps { + handleSubmit: (event: React.FormEvent) => void; + isLoading?: boolean; + onStop?: () => void; + initialValue?: string; +} + +export const ChatInput: React.FC = ({ + handleSubmit, + isLoading = false, + onStop, + initialValue = '', +}) => { + const [input, setInput] = useState(initialValue); + const [key, setKey] = useState(0); // Add a key to force re-render + const textareaRef = useRef(null); + const containerRef = useRef(null); + + const adjustTextareaHeight = () => { + const textarea = textareaRef.current; + if (textarea) { + textarea.style.height = 'auto'; + textarea.style.height = Math.min(textarea.scrollHeight, 200) + 'px'; + } + }; + + useEffect(() => { + adjustTextareaHeight(); + }, [input]); + + // Watch for class changes on html element (theme changes) + useEffect(() => { + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + if (mutation.attributeName === 'class') { + setKey(prev => prev + 1); // Force textarea to re-render + } + }); + }); + + const htmlElement = document.documentElement; + observer.observe(htmlElement, { attributes: true }); + + return () => observer.disconnect(); + }, []); + + const handleFormSubmit = (e: React.FormEvent) => { + e.preventDefault(); + if (!input.trim() || isLoading) return; + + handleSubmit(e); + setInput(''); + if (textareaRef.current) { + textareaRef.current.style.height = 'auto'; + } + }; + + const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === 'Enter' && !e.shiftKey) { + e.preventDefault(); + const form = (e.target as HTMLTextAreaElement).form; + if (form) form.requestSubmit(); + } + }; + + return ( + +
      +
      +

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%0AqBf$&buQ%SSy&Uw7k=ThRdq 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ʛvH4ihR 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