@adminforth/agent 1.26.5 → 1.26.6

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/build.log CHANGED
@@ -38,5 +38,5 @@ custom/skills/fetch_data/SKILL.md
38
38
  custom/skills/mutate_data/
39
39
  custom/skills/mutate_data/SKILL.md
40
40
 
41
- sent 207,297 bytes received 562 bytes 415,718.00 bytes/sec
42
- total size is 204,983 speedup is 0.99
41
+ sent 207,895 bytes received 562 bytes 416,914.00 bytes/sec
42
+ total size is 205,615 speedup is 0.99
@@ -14,6 +14,7 @@
14
14
  </div>
15
15
  <transition name="expand" class="max-h-96 overflow-y-auto mb-4 pt-1">
16
16
  <CustomAutoScrollContainer
17
+ ref="scrollContainerRef"
17
18
  :enabled="isResponseInProgress"
18
19
  behavior="smooth"
19
20
  v-if="ToolOrReasoningParts.length > 0"
@@ -38,7 +39,7 @@
38
39
 
39
40
  <script setup lang="ts">
40
41
  import type { IFormattedToolCallPart, IMessage, IPart, IToolGroup } from '../types';
41
- import { ref, computed, watch, defineAsyncComponent, onMounted } from 'vue';
42
+ import { ref, computed, watch, onUnmounted, onMounted } from 'vue';
42
43
  import ReasoningRenderer from './ReasoningRenderer.vue';
43
44
  import { IconAngleDownOutline } from '@iconify-prerendered/vue-flowbite';
44
45
  import ThreeDotsAnimation from './ThreeDotsAnimation.vue';
@@ -52,15 +53,35 @@
52
53
  isLastMessageInChat: boolean
53
54
  }>()
54
55
 
55
- // const AutoScrollContainer = defineAsyncComponent(() => import('@incremark/vue').then(module => module.AutoScrollContainer))
56
56
  const agentStore = useAgentStore();
57
57
  const thinkingStartTime = ref<number | null>(null);
58
58
  const thinkingDuration = ref(0);
59
+ const scrollContainerRef = ref<InstanceType<typeof CustomAutoScrollContainer> | null>(null);
60
+ const innerScrollContainerRef = ref<HTMLElement | null>(null);
59
61
 
60
62
  onMounted(() => {
61
63
  thinkingStartTime.value = Date.now();
62
64
  })
63
65
 
66
+ watch(scrollContainerRef, async () => {
67
+ if (innerScrollContainerRef.value) {
68
+ innerScrollContainerRef.value.removeEventListener('scroll', handleScroll);
69
+ }
70
+
71
+ if (scrollContainerRef.value) {
72
+ innerScrollContainerRef.value = scrollContainerRef.value.container.scrollEl;
73
+ innerScrollContainerRef.value.addEventListener('scroll', handleScroll);
74
+ }
75
+ })
76
+
77
+ onUnmounted(() => {
78
+ scrollContainerRef.value?.container.scrollEl?.removeEventListener('scroll', handleScroll);
79
+ })
80
+
81
+ function handleScroll() {
82
+ scrollContainerRef.value?.handleScroll();
83
+ }
84
+
64
85
  const ToolOrReasoningParts = computed(() => {
65
86
  return props.message.parts.filter((part: IPart) => part.type === 'data-tool-call' || part.type === 'reasoning');
66
87
  });
@@ -18,7 +18,7 @@
18
18
  </h3>
19
19
  <transition name="expand">
20
20
  <CustomAutoScrollContainer
21
- v-if="isExpanded" v-show="isExpanded" class="mb-4 text-sm max-h-64 pl-4"
21
+ v-if="isExpanded" v-show="isExpanded" class="text-sm max-h-64 pl-4"
22
22
  :wrapperStyle="{
23
23
  marginRight: '8rem',
24
24
  }"
@@ -14,6 +14,7 @@
14
14
  </div>
15
15
  <transition name="expand" class="max-h-96 overflow-y-auto mb-4 pt-1">
16
16
  <CustomAutoScrollContainer
17
+ ref="scrollContainerRef"
17
18
  :enabled="isResponseInProgress"
18
19
  behavior="smooth"
19
20
  v-if="ToolOrReasoningParts.length > 0"
@@ -38,7 +39,7 @@
38
39
 
39
40
  <script setup lang="ts">
40
41
  import type { IFormattedToolCallPart, IMessage, IPart, IToolGroup } from '../types';
41
- import { ref, computed, watch, defineAsyncComponent, onMounted } from 'vue';
42
+ import { ref, computed, watch, onUnmounted, onMounted } from 'vue';
42
43
  import ReasoningRenderer from './ReasoningRenderer.vue';
43
44
  import { IconAngleDownOutline } from '@iconify-prerendered/vue-flowbite';
44
45
  import ThreeDotsAnimation from './ThreeDotsAnimation.vue';
@@ -52,15 +53,35 @@
52
53
  isLastMessageInChat: boolean
53
54
  }>()
54
55
 
55
- // const AutoScrollContainer = defineAsyncComponent(() => import('@incremark/vue').then(module => module.AutoScrollContainer))
56
56
  const agentStore = useAgentStore();
57
57
  const thinkingStartTime = ref<number | null>(null);
58
58
  const thinkingDuration = ref(0);
59
+ const scrollContainerRef = ref<InstanceType<typeof CustomAutoScrollContainer> | null>(null);
60
+ const innerScrollContainerRef = ref<HTMLElement | null>(null);
59
61
 
60
62
  onMounted(() => {
61
63
  thinkingStartTime.value = Date.now();
62
64
  })
63
65
 
66
+ watch(scrollContainerRef, async () => {
67
+ if (innerScrollContainerRef.value) {
68
+ innerScrollContainerRef.value.removeEventListener('scroll', handleScroll);
69
+ }
70
+
71
+ if (scrollContainerRef.value) {
72
+ innerScrollContainerRef.value = scrollContainerRef.value.container.scrollEl;
73
+ innerScrollContainerRef.value.addEventListener('scroll', handleScroll);
74
+ }
75
+ })
76
+
77
+ onUnmounted(() => {
78
+ scrollContainerRef.value?.container.scrollEl?.removeEventListener('scroll', handleScroll);
79
+ })
80
+
81
+ function handleScroll() {
82
+ scrollContainerRef.value?.handleScroll();
83
+ }
84
+
64
85
  const ToolOrReasoningParts = computed(() => {
65
86
  return props.message.parts.filter((part: IPart) => part.type === 'data-tool-call' || part.type === 'reasoning');
66
87
  });
@@ -18,7 +18,7 @@
18
18
  </h3>
19
19
  <transition name="expand">
20
20
  <CustomAutoScrollContainer
21
- v-if="isExpanded" v-show="isExpanded" class="mb-4 text-sm max-h-64 pl-4"
21
+ v-if="isExpanded" v-show="isExpanded" class="text-sm max-h-64 pl-4"
22
22
  :wrapperStyle="{
23
23
  marginRight: '8rem',
24
24
  }"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adminforth/agent",
3
- "version": "1.26.5",
3
+ "version": "1.26.6",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "type": "module",