@yeaft/webchat-agent 1.0.322 → 1.0.324
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/local-runtime/version.json +1 -1
- package/local-runtime/web/app.bundle.js +18 -5
- package/local-runtime/web/app.bundle.js.gz +0 -0
- package/local-runtime/web/index.html +2 -2
- package/local-runtime/web/style.bundle.css +1 -1
- package/local-runtime/web/style.bundle.css.gz +0 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"1.0.
|
|
1
|
+
{"version":"1.0.324"}
|
|
@@ -4641,8 +4641,11 @@ ${String(e||"").trim()}
|
|
|
4641
4641
|
`}});function zf(e){let t=typeof e=="number"?e:Date.parse(e||"");return Number.isFinite(t)?t:0}function Kf(e){return[...e].sort((t,s)=>{if(!!t.pinned!=!!s.pinned)return t.pinned?-1:1;let n=zf(s.metadataUpdatedAt||s.createdAt)-zf(t.metadataUpdatedAt||t.createdAt);return n!==0?n:String(t.catalogKey||"").localeCompare(String(s.catalogKey||""))})}function kt(e){return e?.id||""}function vy(e,t,s={}){let i=Math.max(0,Number(s.width)||0),o=Math.max(0,Number(s.height)||0),a=Math.min(Math.max(160,Number(t?.width)||0),Math.max(0,i-16)),l=Math.max(0,Number(t?.height)||0),c=Math.max(0,o-e.bottom-4-8),d=Math.max(0,e.top-4-8),u=c<l&&d>c,p=Math.min(l,u?d:c),f=Math.min(Math.max(8,e.right-a),Math.max(8,i-8-a)),g=u?e.top-4-p:e.bottom+4;return{top:Math.min(Math.max(8,g),Math.max(8,o-8-p)),left:f,width:a,maxHeight:p,placement:u?"above":"below"}}var Ei,sl=F(()=>{Ei={name:"UnifiedSessionList",emits:["select","create","action","project-action","close-work-center"],props:{sessions:{type:Array,default:()=>[]},projects:{type:Array,default:()=>[]},activeRoute:{type:Object,default:null},isSessionUnread:{type:Function,default:null},processingConversations:{type:Object,default:()=>({})},isYeaftSessionProcessing:{type:Function,default:null},agents:{type:Array,default:()=>[]},workCenterOpen:{type:Boolean,default:!1}},data(){return{collapsedProjects:{},openMenuKey:null,openProjectMenuKey:null,draggedRow:null,dragTargetProjectId:null,projectCreateOpen:!1,projectCreateName:"",projectCreateSubmitting:!1,projectInstructionOpen:!1,projectInstructionProject:null,projectInstructionDraft:"",projectInstructionSubmitting:!1,floatingMenu:null,floatingMenuStyle:{},floatingMenuTrigger:null}},mounted(){document.addEventListener("pointerdown",this.closeMenusFromDocument,!0),document.addEventListener("keydown",this.closeMenusFromKeyboard),window.addEventListener("resize",this.positionFloatingMenu),window.addEventListener("scroll",this.positionFloatingMenu,!0)},beforeUnmount(){document.removeEventListener("pointerdown",this.closeMenusFromDocument,!0),document.removeEventListener("keydown",this.closeMenusFromKeyboard),window.removeEventListener("resize",this.positionFloatingMenu),window.removeEventListener("scroll",this.positionFloatingMenu,!0)},computed:{projectStore(){try{return window.Pinia?.useChatStore?.()||null}catch{return null}},projectRows(){return[...this.projects.length>0?this.projects:this.projectStore?.sessionProjects||[]].sort((t,s)=>(t.sortOrder??Number.MAX_SAFE_INTEGER)-(s.sortOrder??Number.MAX_SAFE_INTEGER))},projectBySessionKey(){let e=new Map;for(let t of this.projectRows){let s=Array.isArray(t.members)?t.members:t.agentId?(t.sessionIds||[]).map(n=>({agentId:t.agentId,sessionId:n})):[];for(let n of s)n?.agentId&&n?.sessionId&&e.set(`${n.agentId}${n.sessionId}`,t)}return e},projectSessionRows(){let e=new Map(this.projectRows.map(t=>[kt(t),[]]));for(let t of this.sessions){if(t.runtimeProvider!=="yeaft")continue;let s=this.projectBySessionKey.get(`${t.routeRef?.agentId}${t.routeRef?.sessionId}`),n=kt(s);s&&e.has(n)&&e.get(n).push(t)}return e},rowsByProject(){let e=new Map;for(let[t,s]of this.projectSessionRows)e.set(t,Kf(s.filter(n=>this.isRowOnline(n))));return e},recentRows(){return Kf(this.sessions.filter(e=>{if(!this.isRowOnline(e))return!1;if(e.runtimeProvider==="yeaft"){let t=`${e.routeRef?.agentId}${e.routeRef?.sessionId}`;if(this.projectBySessionKey.has(t))return!1}return!0}))}},methods:{closeMenus(){this.openMenuKey=null,this.openProjectMenuKey=null,this.floatingMenu=null,this.floatingMenuStyle={},this.floatingMenuTrigger=null},closeMenusFromDocument(e){e?.target?.closest?.(".session-menu, .session-dots-btn")||this.closeMenus()},closeMenusFromKeyboard(e){e?.key==="Escape"&&(this.closeMenus(),this.cancelProjectCreate(),this.projectInstructionOpen&&this.closeProjectInstruction())},toggleProjectMenu(e,t){let s=kt(e);if(this.openProjectMenuKey===s){this.closeMenus();return}this.openMenuKey=null,this.openProjectMenuKey=s,this.floatingMenu={kind:"project",project:e},this.floatingMenuTrigger=t?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)},toggleSessionMenu(e,t,s){if(this.openMenuKey===e.catalogKey){this.closeMenus();return}this.openProjectMenuKey=null,this.openMenuKey=e.catalogKey,this.floatingMenu={kind:"session",row:e,inProject:t===!0,currentProject:this.projectBySessionKey.get(`${e.routeRef?.agentId}${e.routeRef?.sessionId}`)||null,page:"actions"},this.floatingMenuTrigger=s?.currentTarget||null,this.$nextTick(this.positionFloatingMenu)},positionFloatingMenu(){let e=this.floatingMenuTrigger,t=this.$refs.floatingMenu;if(!this.floatingMenu||!e?.isConnected||!t){this.floatingMenu&&e&&!e.isConnected&&this.closeMenus();return}let s=vy(e.getBoundingClientRect(),{width:t.scrollWidth||t.offsetWidth||160,height:t.scrollHeight||t.offsetHeight||0},{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight});this.floatingMenuStyle={top:`${s.top}px`,left:`${s.left}px`,width:`${s.width}px`,maxHeight:`${s.maxHeight}px`}},isActive(e){let t=e?.routeRef,s=this.activeRoute;return!!t&&!!s&&t.runtimeProvider===s.runtimeProvider&&t.agentId===s.agentId&&t.sessionId===s.sessionId},isProcessing(e){return e?.runtimeProvider==="yeaft"?typeof this.isYeaftSessionProcessing=="function"?!!this.isYeaftSessionProcessing(e.routeRef.sessionId,e.routeRef.agentId):!1:!!this.processingConversations?.[e?.routeRef?.sessionId]},isUnread(e){return typeof this.isSessionUnread=="function"?!!this.isSessionUnread(e):!1},isProjectUnread(e){return(this.projectSessionRows.get(kt(e))||[]).some(s=>this.isUnread(s))},projectKey(e){return kt(e)},isAgentOnline(e){return!!e&&this.agents.some(t=>t.id===e&&t.online)},isRowOnline(e){return e?.availability!=="online"?!1:this.isAgentOnline(e?.routeRef?.agentId)},canEditProject(e){return e?.id?!e.legacyAgentId||this.isAgentOnline(e.legacyAgentId):!1},canEditRow(e){return!e?.routeRef?.agentId||e.availability!=="online"?!1:this.isAgentOnline(e.routeRef.agentId)},canMoveRowToProject(e,t=null){return this.canEditRow(e)?t?this.canEditProject(t)?!t.legacyAgentId||t.legacyAgentId===e.routeRef.agentId:!1:!0:!1},projectMoveTargets(e,t=null){let s=kt(t);return this.projectRows.filter(n=>kt(n)!==s&&this.canMoveRowToProject(e,n))},openProjectMoveList(){!this.floatingMenu||this.floatingMenu.kind!=="session"||(this.floatingMenu={...this.floatingMenu,page:"projects"},this.$nextTick(this.positionFloatingMenu))},closeProjectMoveList(){!this.floatingMenu||this.floatingMenu.kind!=="session"||(this.floatingMenu={...this.floatingMenu,page:"actions"},this.$nextTick(this.positionFloatingMenu))},isProjectCollapsed(e){return this.collapsedProjects[kt(e)]===!0},toggleProject(e){let t=kt(e);this.collapsedProjects={...this.collapsedProjects,[t]:!this.collapsedProjects[t]},this.closeMenus()},providerLabel(e){return e.runtimeProvider==="yeaft"?"Yeaft":e.runtimeProvider==="copilot"?"Copilot":"Claude"},agentLabel(e){let t=this.agents.find(s=>s.id===e?.routeRef?.agentId);return e?.agentName||t?.name||e?.routeRef?.agentId||""},createSession(){this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("create")},selectRow(e){this.closeMenus(),this.workCenterOpen&&this.$emit("close-work-center"),this.$emit("select",e)},selectRowFromKeyboard(e,t){t?.target===t?.currentTarget&&(t.preventDefault(),this.selectRow(e))},runAction(e,t){if(this.closeMenus(),!this.canEditRow(t))return;if(e==="rename"){let n=window.prompt(this.$t("yeaft.session.renamePrompt",{name:t.title}),t.title);if(!n?.trim()||n.trim()===t.title)return;this.$emit("action",{action:e,row:t,title:n.trim()});return}let s=e==="delete"?"remove":e;this.$emit("action",{action:s,row:t})},dispatchProjectAction(e){if(e?.action==="move-session"&&!this.canMoveRowToProject(e?.row,e?.project||null))return!1;this.$emit("project-action",e);let t=this.projectStore;if(!t?.mutateProject)return!0;let{action:s,project:n,row:r,name:i,agentId:o}=e,a=o||r?.routeRef?.agentId||null;if(s==="create")return t.mutateProject("create",{name:i},a);let l=n?.legacyProjectId||n?.id;return s==="rename"?t.mutateProject("rename",{projectId:l,name:i},n?.legacyAgentId||a):s==="update-instruction"?t.mutateProject("update_instruction",{projectId:l,instruction:e.instruction||""},n?.legacyAgentId||a):s==="delete"?t.mutateProject("delete",{projectId:l},n?.legacyAgentId||a):s==="move-session"&&r?.routeRef?.sessionId?t.mutateProject("move_session",{sessionId:r.routeRef.sessionId,projectId:n?.legacyProjectId||n?.id||null},a):!1},createProject(){this.projectCreateSubmitting||(this.projectCreateOpen=!0,this.projectCreateName="",this.$nextTick(()=>this.$refs.projectCreateInput?.focus?.()))},cancelProjectCreate(){this.projectCreateSubmitting||(this.projectCreateOpen=!1,this.projectCreateName="")},async submitProjectCreate(){let e=this.projectCreateName.trim();if(!(!e||this.projectCreateSubmitting)){this.projectCreateSubmitting=!0;try{(await this.dispatchProjectAction({action:"create",name:e}))?.ok!==!1&&(this.projectCreateOpen=!1,this.projectCreateName="")}finally{this.projectCreateSubmitting=!1}}},renameProject(e){if(!this.canEditProject(e))return;let t=window.prompt(this.$t("sidebar.projects.renamePrompt"),e.name);this.closeMenus(),t?.trim()&&t.trim()!==e.name&&this.dispatchProjectAction({action:"rename",project:e,name:t.trim()})},deleteProject(e){this.canEditProject(e)&&(this.closeMenus(),window.confirm(this.$t("sidebar.projects.deleteConfirm",{name:e.name}))&&this.dispatchProjectAction({action:"delete",project:e}))},editProjectInstruction(e){this.canEditProject(e)&&(this.closeMenus(),this.projectInstructionProject=e,this.projectInstructionDraft=typeof e.instruction=="string"?e.instruction:"",this.projectInstructionOpen=!0,this.$nextTick(()=>this.$refs.projectInstructionInput?.focus?.()))},closeProjectInstruction(){this.projectInstructionSubmitting||(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")},async saveProjectInstruction(){let e=this.projectInstructionProject;if(!(!e||this.projectInstructionSubmitting)){this.projectInstructionSubmitting=!0;try{(await this.dispatchProjectAction({action:"update-instruction",project:e,instruction:this.projectInstructionDraft}))?.ok!==!1&&(this.projectInstructionOpen=!1,this.projectInstructionProject=null,this.projectInstructionDraft="")}finally{this.projectInstructionSubmitting=!1}}},moveRow(e,t=null){return this.closeMenus(),this.canMoveRowToProject(e,t)?this.dispatchProjectAction({action:"move-session",row:e,project:t}):!1},startDrag(e,t){e.runtimeProvider!=="yeaft"||!this.canEditRow(e)||(this.draggedRow=e,t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",e.catalogKey))},dragOverProject(e,t){if(!this.canMoveRowToProject(this.draggedRow,e)){this.dragTargetProjectId=null;return}t.preventDefault(),t.dataTransfer.dropEffect="move",this.dragTargetProjectId=kt(e)},dropOnProject(e,t){t.preventDefault(),this.canMoveRowToProject(this.draggedRow,e)&&this.moveRow(this.draggedRow,e),this.finishDrag()},dragOverRecents(e){this.draggedRow&&(e.preventDefault(),this.dragTargetProjectId="__recents__")},dropOnRecents(e){e.preventDefault(),this.draggedRow&&this.moveRow(this.draggedRow,null),this.finishDrag()},finishDrag(){this.draggedRow=null,this.dragTargetProjectId=null}},template:`
|
|
4642
4642
|
<nav class="sidebar-navigation" :aria-label="$t('sidebar.surface.sessions')">
|
|
4643
4643
|
<div class="sidebar-primary-actions">
|
|
4644
|
-
<button type="button" class="sidebar-primary-action" @click="createSession">
|
|
4645
|
-
<svg viewBox="0 0 24 24" aria-hidden="true"
|
|
4644
|
+
<button type="button" class="sidebar-primary-action" @click="createSession" :title="$t('sidebar.sessions.newChat')" :aria-label="$t('sidebar.sessions.newChat')">
|
|
4645
|
+
<svg class="sidebar-primary-action-icon" viewBox="0 0 24 24" aria-hidden="true">
|
|
4646
|
+
<path class="sidebar-primary-action-frame" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>
|
|
4647
|
+
<path class="sidebar-primary-action-pen" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852Z"/>
|
|
4648
|
+
</svg>
|
|
4646
4649
|
<span>{{ $t('sidebar.sessions.newChat') }}</span>
|
|
4647
4650
|
</button>
|
|
4648
4651
|
</div>
|
|
@@ -4651,8 +4654,10 @@ ${String(e||"").trim()}
|
|
|
4651
4654
|
<section class="sidebar-section projects-section">
|
|
4652
4655
|
<div class="sidebar-section-heading">
|
|
4653
4656
|
<span>{{ $t('sidebar.projects.title') }}</span>
|
|
4654
|
-
<button type="button" class="sidebar-tool-button" @click="createProject" :disabled="projectCreateOpen" :title="$t('sidebar.projects.new')" :aria-label="$t('sidebar.projects.new')">
|
|
4655
|
-
<svg viewBox="0 0 24 24" aria-hidden="true"
|
|
4657
|
+
<button type="button" class="sidebar-tool-button sidebar-project-add-button" @click="createProject" :disabled="projectCreateOpen" :title="$t('sidebar.projects.new')" :aria-label="$t('sidebar.projects.new')">
|
|
4658
|
+
<svg class="sidebar-project-add-icon" viewBox="0 0 24 24" aria-hidden="true">
|
|
4659
|
+
<path class="sidebar-project-add-mark" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" d="M12 5v14M5 12h14"/>
|
|
4660
|
+
</svg>
|
|
4656
4661
|
</button>
|
|
4657
4662
|
</div>
|
|
4658
4663
|
|
|
@@ -4733,7 +4738,15 @@ ${String(e||"").trim()}
|
|
|
4733
4738
|
</section>
|
|
4734
4739
|
|
|
4735
4740
|
<section class="sidebar-section recents-section" :class="{ 'drag-over': dragTargetProjectId === '__recents__' }" @dragover="dragOverRecents" @dragleave="dragTargetProjectId = null" @drop="dropOnRecents">
|
|
4736
|
-
<div class="sidebar-section-heading"
|
|
4741
|
+
<div class="sidebar-section-heading">
|
|
4742
|
+
<span>{{ $t('sidebar.recents.title') }}</span>
|
|
4743
|
+
<button type="button" class="sidebar-tool-button sidebar-recents-create" @click="createSession" :title="$t('sidebar.sessions.newChat')" :aria-label="$t('sidebar.sessions.newChat')">
|
|
4744
|
+
<svg class="sidebar-recents-create-icon" viewBox="0 0 24 24" aria-hidden="true">
|
|
4745
|
+
<path class="sidebar-recents-create-frame" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"/>
|
|
4746
|
+
<path class="sidebar-recents-create-pen" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852Z"/>
|
|
4747
|
+
</svg>
|
|
4748
|
+
</button>
|
|
4749
|
+
</div>
|
|
4737
4750
|
<div
|
|
4738
4751
|
v-for="row in recentRows"
|
|
4739
4752
|
:key="row.catalogKey"
|
|
Binary file
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, viewport-fit=cover">
|
|
6
6
|
<title>Yeaft</title>
|
|
7
7
|
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect width='32' height='32' rx='8' fill='%232c2c2c'/><path d='M16 22V13M16 13L10 8M16 13L22 8' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round' fill='none'/><circle cx='10' cy='8' r='2.4' fill='white'/><circle cx='22' cy='8' r='2.4' fill='white'/><circle cx='16' cy='22' r='2.4' fill='white'/></svg>">
|
|
8
|
-
<link rel="stylesheet" href="style.bundle.css?v=
|
|
8
|
+
<link rel="stylesheet" href="style.bundle.css?v=e723be26">
|
|
9
9
|
<script src="vendor.bundle.js?v=103fd8e7"></script>
|
|
10
10
|
<script defer src="jszip.min.js"></script>
|
|
11
11
|
<script defer src="docx-preview.min.js"></script>
|
|
@@ -16,6 +16,6 @@
|
|
|
16
16
|
</head>
|
|
17
17
|
<body>
|
|
18
18
|
<div id="app"></div>
|
|
19
|
-
<script type="module" src="app.bundle.js?v=
|
|
19
|
+
<script type="module" src="app.bundle.js?v=5335e949"></script>
|
|
20
20
|
</body>
|
|
21
21
|
</html>
|