@dolusoft/hirebase-mcp 1.1.15 → 1.1.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -20
- package/dist/application/dto/filter-input.d.ts +1 -0
- package/dist/application/use-cases/bulk-add-cvs.d.ts +14 -0
- package/dist/application/use-cases/bulk-add-cvs.js +32 -0
- package/dist/application/use-cases/bulk-add-cvs.js.map +1 -0
- package/dist/application/use-cases/filter-candidates.js +3 -0
- package/dist/application/use-cases/filter-candidates.js.map +1 -1
- package/dist/infrastructure/config/app-config.d.ts +0 -2
- package/dist/infrastructure/config/app-config.js +0 -2
- package/dist/infrastructure/config/app-config.js.map +1 -1
- package/dist/interface/cli/index.js +0 -0
- package/dist/interface/dashboard/html.d.ts +1 -0
- package/dist/interface/dashboard/html.js +1007 -0
- package/dist/interface/dashboard/html.js.map +1 -0
- package/dist/interface/dashboard/public/200.html +1 -1
- package/dist/interface/dashboard/public/404.html +1 -1
- package/dist/interface/dashboard/public/_nuxt/{0AdCNZ2r.js → BTmld7lv.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/BtFgTcXQ.js +30 -0
- package/dist/interface/dashboard/public/_nuxt/{BLxpBE0v.js → BwTYWIW-.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{CWPXgICh.js → CdJZeyak.js} +3 -3
- package/dist/interface/dashboard/public/_nuxt/{BMfODfbX.js → D9vxbU2B.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{QW9Ku0B8.js → DHg6ig_T.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/DhFk2_Al.js +1 -0
- package/dist/interface/dashboard/public/_nuxt/{BTjyj6yg.js → DtX-aPBA.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{Bq8olVvK.js → DvCMYK3d.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{iHi62RBH.js → FR49ZCl_.js} +3 -3
- package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/027020ec-4e7d-4fc7-8447-19800f7d0bac.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/149e5d62-f8be-402c-b0cc-2efe0560d9d2.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/18e19101-a96b-41dc-b602-f9a8f013a036.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/1c51a4c0-5c2f-4100-97d3-01a1a9c5e5b9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/2fd3d0d3-6004-4659-9055-d27aa6656fd3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/32cf8bd4-f9b8-477d-bcff-75df710335e1.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3b25d236-f3cd-4770-94da-08dd37064dec.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/4d9b8de6-1292-42ca-8f07-c47ba5f61768.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/54792d4b-ca55-4b5d-b0dd-1d7dc34de344.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5959a14b-2494-4e0d-be28-fef9adfd889d.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/60cda583-d704-4d4e-b37e-7ab337e3b6cc.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/64d05a43-99ec-4c22-934e-071b310b968f.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6c1632a5-f0af-41e3-9d88-12294e03a0b9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6c80982c-5e2c-446c-aaf6-7000a976e493.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/79161adb-748c-4d36-a031-a71899a56ecd.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/7aef47ca-0757-4b22-af19-6003a977fe0c.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/84e5a87d-4ae5-48dd-8d5e-5b1fe89f7243.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/86082677-a11d-4acf-ab04-c3c067a71622.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/8892e611-c2b4-425b-a6a5-988314d8da4d.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/9bfe6b22-73f8-4584-b13d-ed1df5600e12.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/a39bf957-ddae-41a6-a183-08292363098b.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/aba3eed8-dd4e-4a25-a13d-7dd320288af5.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b0bf7fc4-02c1-46fd-acca-f4458feed978.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b2847d83-b695-45d4-9dca-d7498158a501.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c73136b0-98f2-4b13-bce6-b2c2bffada81.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c8382eda-1354-4f92-b6d0-5b5b9f43354a.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e3abaa8f-1b4f-440f-8aa0-ad466815fcb3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e707aa44-7202-413d-bcd5-1538b5b56570.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ea661002-05ab-4bfb-b02f-c91bb721c5e9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ec2a9f02-6137-4473-bc4f-0e48df1e085b.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2125e1d-c0bd-469a-a543-5f766f310d69.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2f23a12-a792-480e-922a-ee8b73dc0310.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f4e23d88-bf4b-4110-976f-4e7a2c538e98.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f6503b83-d731-40f8-9110-c1599663b3ba.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/fb00efc4-219c-4174-8827-fe876fe21945.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/feac6d04-6bc5-4fa4-a241-79e897d7f8c1.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/entry.BSUaoqsu.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/index.BH5Gbe6q.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/{index.CYscfxlP.css → index.CEZKOBlO.css} +1 -1
- package/dist/interface/dashboard/public/_nuxt/index.TQmbXYdV.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/{B7h8tXDC.js → iov8YEuI.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{C2IKXOYU.js → qq1iUjth.js} +1 -1
- package/dist/interface/dashboard/public/index.html +1 -1
- package/dist/interface/mcp/server.js +0 -12
- package/dist/interface/mcp/server.js.map +1 -1
- package/dist/interface/mcp/tools/{add-contact.d.ts → bulk-add-cvs.d.ts} +1 -1
- package/dist/interface/mcp/tools/bulk-add-cvs.js +28 -0
- package/dist/interface/mcp/tools/bulk-add-cvs.js.map +1 -0
- package/dist/interface/mcp/tools/filter-candidates.js +4 -2
- package/dist/interface/mcp/tools/filter-candidates.js.map +1 -1
- package/dist/interface/mcp/types.d.ts +0 -2
- package/package.json +71 -72
- package/dist/application/ports/calendar-service.d.ts +0 -42
- package/dist/application/ports/calendar-service.js +0 -2
- package/dist/application/ports/calendar-service.js.map +0 -1
- package/dist/infrastructure/calendar/google-calendar.service.d.ts +0 -24
- package/dist/infrastructure/calendar/google-calendar.service.js +0 -353
- package/dist/infrastructure/calendar/google-calendar.service.js.map +0 -1
- package/dist/infrastructure/calendar/index.d.ts +0 -1
- package/dist/infrastructure/calendar/index.js +0 -2
- package/dist/infrastructure/calendar/index.js.map +0 -1
- package/dist/interface/dashboard/public/_nuxt/-_rMc6Se.js +0 -401
- package/dist/interface/dashboard/public/_nuxt/B4WYmHkq.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/BeosaLTc.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/BgeIs7YY.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/Br9ERNIk.js +0 -401
- package/dist/interface/dashboard/public/_nuxt/CMEleUsa.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/CVllyrh5.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/CXsAVqtn.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/D0GfmhnA.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/D6QLZU2u.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/D7CcqX9g.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/DGNE26xE.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DP7mgmwO.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DPvkvsJV.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DxJl84Er.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/JwuJcHj8.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/XEtfQxBf.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/bQmPafrB.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/055843bb-5e41-4bc3-b42b-417d89074bec.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/0887dec6-b9e4-4d5c-aa20-c4d3743164d1.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/131e7c46-6af5-4dbc-a481-1e187b75e916.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/20776565-55f5-45a5-9256-34c44a89cabb.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/270f5a83-1457-4ae7-9cc9-e677a3d11f3f.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/359e6b85-6a49-4c04-9d61-55b27d691ee2.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3d499c69-a6ad-40af-aa0f-3de728bce182.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/4a4130b0-8c3a-45a8-b0ec-75fb365382a4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5b1398f2-12db-4829-bd27-8f6bea84da51.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5f5dc585-4404-4cc1-aed7-f41e599fa82b.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6288f3fe-6fd0-4910-840f-965365a82bbe.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/7d22d81c-6f64-4bbf-95cc-7bfaaa0a4e40.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/88c871e1-0450-4184-8097-9b16d5055c91.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/8d4cac7e-e9ef-4e89-9b6e-f688d6c878c0.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/a6dffe72-f4cc-4c31-aa18-893d6b1f925a.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ac99623a-06e9-4b63-975f-d2bdc89c09c0.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ae588cf0-9aba-4273-90ff-7dba058efdbb.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b2c71ec3-fe3e-4002-8e4c-c70c755ffa47.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b5e2b874-04ff-45e9-812e-19ff99dedd2b.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b66d956d-5fb7-4cb6-a107-1ff18fa416e8.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/bb377d8b-070b-490b-89de-8b16bf942832.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/bce1d1a3-5447-4650-a9d7-0ef8860fe4cd.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c0c615e1-5140-47a4-b69b-45cd18b1bd53.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c8f77a43-342e-4c12-b54f-a5a303d0bfc1.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/dcd6fa82-0beb-4b20-a2e0-bc4e6105f567.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/dd11345e-76cc-4eda-8846-6955403f11f4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e0401d8c-cb34-406e-b220-bbb78db509ed.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e3b88d80-27cc-46a4-aa8c-5eb9f2b1afe4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/edf56071-c990-47a9-adea-2c94846f4652.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2781c1c-3867-4fd2-a6bb-b35695221f0d.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2cd9466-7680-4df3-88a7-7b7428a61966.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.BdLSmlNR.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.CCPYWN-f.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.u_d2fXHa.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.B4sfIgIL.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.C1uHm-Vo.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.DCAZalej.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.Dj1j62L8.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.xroKz4Z7.css +0 -1
- package/dist/interface/mcp/tools/add-contact.js +0 -43
- package/dist/interface/mcp/tools/add-contact.js.map +0 -1
- package/dist/interface/mcp/tools/authorize-calendar.d.ts +0 -3
- package/dist/interface/mcp/tools/authorize-calendar.js +0 -20
- package/dist/interface/mcp/tools/authorize-calendar.js.map +0 -1
- package/dist/interface/mcp/tools/create-calendar-event.d.ts +0 -3
- package/dist/interface/mcp/tools/create-calendar-event.js +0 -46
- package/dist/interface/mcp/tools/create-calendar-event.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{u as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,_ as d}from"./
|
|
1
|
+
import{u as s,o as a,c as i,a as t,t as n,b as u,w as c,d as l,_ as d}from"./CdJZeyak.js";import{_ as f}from"./DlAUqK2U.js";const p={class:"antialiased bg-white dark:bg-[#020420] dark:text-white font-sans grid min-h-screen overflow-hidden place-content-center text-[#020420] tracking-wide"},m={class:"max-w-520px text-center"},h=["textContent"],b=["textContent"],x=["textContent"],g={class:"flex items-center justify-center w-full"},y={__name:"error-404",props:{appName:{type:String,default:"Nuxt"},status:{type:Number,default:404},statusText:{type:String,default:"Page not found"},description:{type:String,default:"Sorry, the page you are looking for could not be found."},backHome:{type:String,default:"Go back home"}},setup(e){const r=e;return s({title:`${r.status} - ${r.statusText} | ${r.appName}`,script:[{innerHTML:`!function(){const e=document.createElement("link").relList;if(!(e&&e.supports&&e.supports("modulepreload"))){for(const e of document.querySelectorAll('link[rel="modulepreload"]'))r(e);new MutationObserver(e=>{for(const o of e)if("childList"===o.type)for(const e of o.addedNodes)"LINK"===e.tagName&&"modulepreload"===e.rel&&r(e)}).observe(document,{childList:!0,subtree:!0})}function r(e){if(e.ep)return;e.ep=!0;const r=function(e){const r={};return e.integrity&&(r.integrity=e.integrity),e.referrerPolicy&&(r.referrerPolicy=e.referrerPolicy),"use-credentials"===e.crossOrigin?r.credentials="include":"anonymous"===e.crossOrigin?r.credentials="omit":r.credentials="same-origin",r}(e);fetch(e.href,r)}}();`}],style:[{innerHTML:'*,:after,:before{border-color:var(--un-default-border-color,#e5e7eb);border-style:solid;border-width:0;box-sizing:border-box}:after,:before{--un-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}h1,h2{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}h1,h2,p{margin:0}*,:after,:before{--un-rotate:0;--un-rotate-x:0;--un-rotate-y:0;--un-rotate-z:0;--un-scale-x:1;--un-scale-y:1;--un-scale-z:1;--un-skew-x:0;--un-skew-y:0;--un-translate-x:0;--un-translate-y:0;--un-translate-z:0;--un-pan-x: ;--un-pan-y: ;--un-pinch-zoom: ;--un-scroll-snap-strictness:proximity;--un-ordinal: ;--un-slashed-zero: ;--un-numeric-figure: ;--un-numeric-spacing: ;--un-numeric-fraction: ;--un-border-spacing-x:0;--un-border-spacing-y:0;--un-ring-offset-shadow:0 0 transparent;--un-ring-shadow:0 0 transparent;--un-shadow-inset: ;--un-shadow:0 0 transparent;--un-ring-inset: ;--un-ring-offset-width:0px;--un-ring-offset-color:#fff;--un-ring-width:0px;--un-ring-color:rgba(147,197,253,.5);--un-blur: ;--un-brightness: ;--un-contrast: ;--un-drop-shadow: ;--un-grayscale: ;--un-hue-rotate: ;--un-invert: ;--un-saturate: ;--un-sepia: ;--un-backdrop-blur: ;--un-backdrop-brightness: ;--un-backdrop-contrast: ;--un-backdrop-grayscale: ;--un-backdrop-hue-rotate: ;--un-backdrop-invert: ;--un-backdrop-opacity: ;--un-backdrop-saturate: ;--un-backdrop-sepia: }'}]}),(k,_)=>{const o=d;return a(),i("div",p,[t("div",m,[t("h1",{class:"font-semibold leading-none mb-4 sm:text-[110px] tabular-nums text-[80px]",textContent:n(e.status)},null,8,h),t("h2",{class:"font-semibold mb-2 sm:text-3xl text-2xl",textContent:n(e.statusText)},null,8,b),t("p",{class:"mb-4 px-2 text-[#64748B] text-md",textContent:n(e.description)},null,8,x),t("div",g,[u(o,{to:"/",class:"font-medium hover:text-[#00DC82] text-sm underline underline-offset-3"},{default:c(()=>[l(n(e.backHome),1)]),_:1})])])])}}},N=f(y,[["__scopeId","data-v-50266764"]]);export{N as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"1c51a4c0-5c2f-4100-97d3-01a1a9c5e5b9",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1772697915063,false]</script></body></html>
|
|
@@ -12,7 +12,6 @@ import { DocxParser } from '../../infrastructure/parsers/docx-parser.js';
|
|
|
12
12
|
import { OpenAiEmbeddingService } from '../../infrastructure/ai/openai-embedding-service.js';
|
|
13
13
|
import { OpenAiStructuredExtractor } from '../../infrastructure/ai/openai-structured-extractor.js';
|
|
14
14
|
import { CsvExportService } from '../../infrastructure/export/csv-export-service.js';
|
|
15
|
-
import { GoogleCalendarService } from '../../infrastructure/calendar/google-calendar.service.js';
|
|
16
15
|
import { DashboardEventBus } from '../dashboard/event-bus.js';
|
|
17
16
|
import { wrapAllRegisteredTools } from '../dashboard/tool-wrapper.js';
|
|
18
17
|
import { startDashboardServer } from '../dashboard/server.js';
|
|
@@ -43,9 +42,6 @@ import { registerSetPendingActionTool } from './tools/set-pending-action.js';
|
|
|
43
42
|
import { registerGetPipelineTool } from './tools/get-pipeline.js';
|
|
44
43
|
import { registerGetCandidateHistoryTool } from './tools/get-candidate-history.js';
|
|
45
44
|
import { registerGetPendingActionsTool } from './tools/get-pending-actions.js';
|
|
46
|
-
import { registerAuthorizeCalendarTool } from './tools/authorize-calendar.js';
|
|
47
|
-
import { registerCreateCalendarEventTool } from './tools/create-calendar-event.js';
|
|
48
|
-
import { registerAddContactTool } from './tools/add-contact.js';
|
|
49
45
|
export async function createServer() {
|
|
50
46
|
const config = loadConfig();
|
|
51
47
|
configureVectorDimension(config.embeddingModel);
|
|
@@ -60,10 +56,6 @@ export async function createServer() {
|
|
|
60
56
|
const embeddingService = new OpenAiEmbeddingService(config.openaiApiKey, config.embeddingModel);
|
|
61
57
|
const extractor = new OpenAiStructuredExtractor(config.openaiApiKey, config.extractionModel);
|
|
62
58
|
const exportService = new CsvExportService();
|
|
63
|
-
let calendarService;
|
|
64
|
-
if (config.googleClientId && config.googleClientSecret) {
|
|
65
|
-
calendarService = new GoogleCalendarService(config.googleClientId, config.googleClientSecret, config.lancedbPath);
|
|
66
|
-
}
|
|
67
59
|
const deps = {
|
|
68
60
|
candidateRepo,
|
|
69
61
|
chunkRepo,
|
|
@@ -75,7 +67,6 @@ export async function createServer() {
|
|
|
75
67
|
embeddingService,
|
|
76
68
|
extractor,
|
|
77
69
|
exportService,
|
|
78
|
-
calendarService,
|
|
79
70
|
};
|
|
80
71
|
const server = new McpServer({
|
|
81
72
|
name: 'hirebase',
|
|
@@ -108,9 +99,6 @@ export async function createServer() {
|
|
|
108
99
|
registerGetPipelineTool(server, deps);
|
|
109
100
|
registerGetCandidateHistoryTool(server, deps);
|
|
110
101
|
registerGetPendingActionsTool(server, deps);
|
|
111
|
-
registerAuthorizeCalendarTool(server, deps);
|
|
112
|
-
registerCreateCalendarEventTool(server, deps);
|
|
113
|
-
registerAddContactTool(server, deps);
|
|
114
102
|
if (config.dashboardEnabled) {
|
|
115
103
|
const eventBus = new DashboardEventBus();
|
|
116
104
|
wrapAllRegisteredTools(server, eventBus, deps);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/interface/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2CAA2C,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,wBAAwB,EAAE,MAAM,8CAA8C,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,kEAAkE,CAAC;AAC9G,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AACtG,OAAO,EAAE,wBAAwB,EAAE,MAAM,gEAAgE,CAAC;AAC1G,OAAO,EAAE,2BAA2B,EAAE,MAAM,oEAAoE,CAAC;AACjH,OAAO,EAAE,4BAA4B,EAAE,MAAM,oEAAoE,CAAC;AAClH,OAAO,EAAE,iCAAiC,EAAE,MAAM,0EAA0E,CAAC;AAC7H,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qDAAqD,CAAC;AAC7F,OAAO,EAAE,yBAAyB,EAAE,MAAM,wDAAwD,CAAC;AACnG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mDAAmD,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/interface/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { Dependencies } from '../types.js';
|
|
3
|
-
export declare function
|
|
3
|
+
export declare function registerBulkAddCvsTool(server: McpServer, deps: Dependencies): void;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { z } from 'zod/v4';
|
|
2
|
+
import { AddCvUseCase } from '../../../application/use-cases/add-cv.js';
|
|
3
|
+
import { BulkAddCvsUseCase } from '../../../application/use-cases/bulk-add-cvs.js';
|
|
4
|
+
export function registerBulkAddCvsTool(server, deps) {
|
|
5
|
+
const addCvUseCase = new AddCvUseCase(deps.candidateRepo, deps.chunkRepo, deps.parsers, deps.embeddingService, deps.extractor);
|
|
6
|
+
const useCase = new BulkAddCvsUseCase(addCvUseCase);
|
|
7
|
+
server.tool('bulk_add_cvs', 'Process all CV files (PDF and DOCX) in a directory and add them to the database.', { directory_path: z.string().describe('Absolute path to the directory containing CV files') }, async ({ directory_path }) => {
|
|
8
|
+
try {
|
|
9
|
+
const result = await useCase.execute(directory_path);
|
|
10
|
+
const summary = {
|
|
11
|
+
succeeded: result.succeeded.length,
|
|
12
|
+
failed: result.failed.length,
|
|
13
|
+
succeededCandidates: result.succeeded.map((c) => ({ id: c.id, name: c.name })),
|
|
14
|
+
failedFiles: result.failed,
|
|
15
|
+
};
|
|
16
|
+
return {
|
|
17
|
+
content: [{ type: 'text', text: JSON.stringify(summary, null, 2) }],
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
return {
|
|
22
|
+
content: [{ type: 'text', text: JSON.stringify({ error: error.message }) }],
|
|
23
|
+
isError: true,
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=bulk-add-cvs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-add-cvs.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/bulk-add-cvs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAGnF,MAAM,UAAU,sBAAsB,CAAC,MAAiB,EAAE,IAAkB;IAC1E,MAAM,YAAY,GAAG,IAAI,YAAY,CACnC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,SAAS,CACf,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,YAAY,CAAC,CAAC;IAEpD,MAAM,CAAC,IAAI,CACT,cAAc,EACd,kFAAkF,EAClF,EAAE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC,EAAE,EAC7F,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;QAC3B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG;gBACd,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,MAAM;gBAClC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAC5B,mBAAmB,EAAE,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9E,WAAW,EAAE,MAAM,CAAC,MAAM;aAC3B,CAAC;YACF,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -2,15 +2,17 @@ import { z } from 'zod/v4';
|
|
|
2
2
|
import { FilterCandidatesUseCase } from '../../../application/use-cases/filter-candidates.js';
|
|
3
3
|
export function registerFilterCandidatesTool(server, deps) {
|
|
4
4
|
const useCase = new FilterCandidatesUseCase(deps.candidateRepo);
|
|
5
|
-
server.tool('filter_candidates', 'Filter candidates using structured criteria like skills, location, experience years, languages, and tags.', {
|
|
5
|
+
server.tool('filter_candidates', 'Filter candidates using structured criteria like name, skills, location, experience years, languages, and tags.', {
|
|
6
|
+
name: z.string().optional().describe('Candidate name to search for (partial match, e.g. "Okan" or "Şahin")'),
|
|
6
7
|
skills: z.array(z.string()).optional().describe('Required skills to filter by'),
|
|
7
8
|
location: z.string().optional().describe('Location to filter by (partial match)'),
|
|
8
9
|
min_experience_years: z.number().optional().describe('Minimum years of experience'),
|
|
9
10
|
languages: z.array(z.string()).optional().describe('Required languages'),
|
|
10
11
|
tags: z.array(z.string()).optional().describe('Required tags'),
|
|
11
|
-
}, async ({ skills, location, min_experience_years, languages, tags }) => {
|
|
12
|
+
}, async ({ name, skills, location, min_experience_years, languages, tags }) => {
|
|
12
13
|
try {
|
|
13
14
|
const results = await useCase.execute({
|
|
15
|
+
name,
|
|
14
16
|
skills,
|
|
15
17
|
location,
|
|
16
18
|
minExperienceYears: min_experience_years,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-candidates.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/filter-candidates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAG9F,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,IAAkB;IAChF,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEhE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"filter-candidates.js","sourceRoot":"","sources":["../../../../src/interface/mcp/tools/filter-candidates.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,qDAAqD,CAAC;AAG9F,MAAM,UAAU,4BAA4B,CAAC,MAAiB,EAAE,IAAkB;IAChF,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAEhE,MAAM,CAAC,IAAI,CACT,mBAAmB,EACnB,iHAAiH,EACjH;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;QAC5G,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QAC/E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QACjF,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QACnF,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACxE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;KAC/D,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE;QAC1E,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC;gBACpC,IAAI;gBACJ,MAAM;gBACN,QAAQ;gBACR,kBAAkB,EAAE,oBAAoB;gBACxC,SAAS;gBACT,IAAI;aACL,CAAC,CAAC;YACH,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aAC7E,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC/F,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,6 @@ import type { IDocumentParser } from '../../application/ports/document-parser.js
|
|
|
5
5
|
import type { IEmbeddingService } from '../../application/ports/embedding-service.js';
|
|
6
6
|
import type { IStructuredExtractor } from '../../application/ports/structured-extractor.js';
|
|
7
7
|
import type { IExportService } from '../../application/ports/export-service.js';
|
|
8
|
-
import type { ICalendarService } from '../../application/ports/calendar-service.js';
|
|
9
8
|
import type { IJobPostingRepository } from '../../domain/repositories/job-posting-repository.js';
|
|
10
9
|
import type { IApplicationRepository } from '../../domain/repositories/application-repository.js';
|
|
11
10
|
import type { IApplicationEventRepository } from '../../domain/repositories/application-event-repository.js';
|
|
@@ -23,6 +22,5 @@ export interface Dependencies {
|
|
|
23
22
|
embeddingService: IEmbeddingService;
|
|
24
23
|
extractor: IStructuredExtractor;
|
|
25
24
|
exportService: IExportService;
|
|
26
|
-
calendarService?: ICalendarService;
|
|
27
25
|
}
|
|
28
26
|
export {};
|
package/package.json
CHANGED
|
@@ -1,72 +1,71 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@dolusoft/hirebase-mcp",
|
|
3
|
-
"version": "1.1.
|
|
4
|
-
"description": "HireBase - AI-powered CV search engine with LanceDB and MCP",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/interface/cli/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"hirebase-mcp": "dist/interface/cli/index.js"
|
|
9
|
-
},
|
|
10
|
-
"files": [
|
|
11
|
-
"dist/**/*",
|
|
12
|
-
"README.md",
|
|
13
|
-
"LICENSE"
|
|
14
|
-
],
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
"
|
|
61
|
-
"
|
|
62
|
-
"ws": "^8.
|
|
63
|
-
"
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@dolusoft/hirebase-mcp",
|
|
3
|
+
"version": "1.1.17",
|
|
4
|
+
"description": "HireBase - AI-powered CV search engine with LanceDB and MCP",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/interface/cli/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"hirebase-mcp": "dist/interface/cli/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist/**/*",
|
|
12
|
+
"README.md",
|
|
13
|
+
"LICENSE"
|
|
14
|
+
],
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=22.0.0"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"mcp",
|
|
20
|
+
"mcp-server",
|
|
21
|
+
"rag",
|
|
22
|
+
"lancedb",
|
|
23
|
+
"cv",
|
|
24
|
+
"resume",
|
|
25
|
+
"recruitment",
|
|
26
|
+
"hiring",
|
|
27
|
+
"ai",
|
|
28
|
+
"vector-search",
|
|
29
|
+
"semantic-search",
|
|
30
|
+
"openai",
|
|
31
|
+
"embeddings",
|
|
32
|
+
"ocr",
|
|
33
|
+
"tesseract"
|
|
34
|
+
],
|
|
35
|
+
"repository": {
|
|
36
|
+
"type": "git",
|
|
37
|
+
"url": "https://github.com/dolusoft/hirebase.git"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/dolusoft/hirebase#readme",
|
|
40
|
+
"author": "Dolusoft",
|
|
41
|
+
"license": "MIT",
|
|
42
|
+
"publishConfig": {
|
|
43
|
+
"access": "public"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@lancedb/lancedb": "^0.26.2",
|
|
47
|
+
"@modelcontextprotocol/sdk": "^1.26.0",
|
|
48
|
+
"@napi-rs/canvas": "^0.1.94",
|
|
49
|
+
"mammoth": "^1.11.0",
|
|
50
|
+
"nanoid": "^5.1.6",
|
|
51
|
+
"openai": "^6.22.0",
|
|
52
|
+
"papaparse": "^5.5.3",
|
|
53
|
+
"tesseract.js": "^7.0.0",
|
|
54
|
+
"unpdf": "^1.4.0",
|
|
55
|
+
"ws": "^8.19.0",
|
|
56
|
+
"zod": "^4.3.6",
|
|
57
|
+
"zod-to-json-schema": "^3.25.1"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@types/node": "^25.3.0",
|
|
61
|
+
"@types/papaparse": "^5.5.2",
|
|
62
|
+
"@types/ws": "^8.18.1",
|
|
63
|
+
"typescript": "^5.9.3"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsc && cd dashboard && pnpm generate && cd .. && node scripts/copy-dashboard.mjs",
|
|
67
|
+
"build:server": "tsc",
|
|
68
|
+
"start": "node --env-file=.env dist/interface/cli/index.js",
|
|
69
|
+
"dev": "tsc --watch"
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
export interface CalendarEventInput {
|
|
2
|
-
title: string;
|
|
3
|
-
description?: string;
|
|
4
|
-
location?: string;
|
|
5
|
-
startTime: string;
|
|
6
|
-
endTime: string;
|
|
7
|
-
attendees?: string[];
|
|
8
|
-
}
|
|
9
|
-
export interface CalendarEventResult {
|
|
10
|
-
id: string;
|
|
11
|
-
title: string;
|
|
12
|
-
htmlLink: string;
|
|
13
|
-
startTime: string;
|
|
14
|
-
endTime: string;
|
|
15
|
-
}
|
|
16
|
-
export interface ContactInput {
|
|
17
|
-
firstName: string;
|
|
18
|
-
lastName?: string;
|
|
19
|
-
phone?: string;
|
|
20
|
-
email?: string;
|
|
21
|
-
company?: string;
|
|
22
|
-
title?: string;
|
|
23
|
-
notes?: string;
|
|
24
|
-
groupName?: string;
|
|
25
|
-
}
|
|
26
|
-
export interface ContactResult {
|
|
27
|
-
resourceName: string;
|
|
28
|
-
name: string;
|
|
29
|
-
phone?: string;
|
|
30
|
-
email?: string;
|
|
31
|
-
groupName?: string;
|
|
32
|
-
}
|
|
33
|
-
export interface ICalendarService {
|
|
34
|
-
isAuthorized(): Promise<boolean>;
|
|
35
|
-
authorize(): Promise<{
|
|
36
|
-
success: boolean;
|
|
37
|
-
message: string;
|
|
38
|
-
}>;
|
|
39
|
-
createEvent(event: CalendarEventInput): Promise<CalendarEventResult>;
|
|
40
|
-
deleteEvent(eventId: string): Promise<void>;
|
|
41
|
-
createContact(contact: ContactInput): Promise<ContactResult>;
|
|
42
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"calendar-service.js","sourceRoot":"","sources":["../../../src/application/ports/calendar-service.ts"],"names":[],"mappings":""}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { ICalendarService, CalendarEventInput, CalendarEventResult, ContactInput, ContactResult } from '../../application/ports/calendar-service.js';
|
|
2
|
-
export declare class GoogleCalendarService implements ICalendarService {
|
|
3
|
-
private clientId;
|
|
4
|
-
private clientSecret;
|
|
5
|
-
private tokenPath;
|
|
6
|
-
private tokens;
|
|
7
|
-
private tokensLoaded;
|
|
8
|
-
constructor(clientId: string, clientSecret: string, dataPath: string);
|
|
9
|
-
isAuthorized(): Promise<boolean>;
|
|
10
|
-
authorize(): Promise<{
|
|
11
|
-
success: boolean;
|
|
12
|
-
message: string;
|
|
13
|
-
}>;
|
|
14
|
-
createEvent(event: CalendarEventInput): Promise<CalendarEventResult>;
|
|
15
|
-
deleteEvent(eventId: string): Promise<void>;
|
|
16
|
-
createContact(contact: ContactInput): Promise<ContactResult>;
|
|
17
|
-
private hasRequiredScopes;
|
|
18
|
-
private clearTokens;
|
|
19
|
-
private ensureTokensLoaded;
|
|
20
|
-
private saveTokens;
|
|
21
|
-
private getAccessToken;
|
|
22
|
-
private exchangeCodeForTokens;
|
|
23
|
-
private findOrCreateContactGroup;
|
|
24
|
-
}
|