@jskit-ai/assistant-core 0.1.216 → 0.1.217

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.
@@ -8,14 +8,14 @@
8
8
  "build": "vite build"
9
9
  },
10
10
  "dependencies": {
11
- "@jskit-ai/assistant-core": "0.1.216",
12
- "@jskit-ai/http-runtime": "0.1.236",
13
- "@jskit-ai/kernel": "0.1.238",
11
+ "@jskit-ai/assistant-core": "0.1.217",
12
+ "@jskit-ai/http-runtime": "0.1.237",
13
+ "@jskit-ai/kernel": "0.1.239",
14
14
  "@mdi/js": "^7.4.47",
15
15
  "vue": "^3.5.13",
16
16
  "vuetify": "^4.0.0",
17
- "@jskit-ai/connectors-core": "0.1.55",
18
- "@jskit-ai/connectors-catalog": "0.1.55"
17
+ "@jskit-ai/connectors-core": "0.1.56",
18
+ "@jskit-ai/connectors-catalog": "0.1.56"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@vitejs/plugin-vue": "^6.0.7",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/assistant-core",
3
- "version": "0.1.216",
3
+ "version": "0.1.217",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "test": "node --test --test-concurrency=1"
@@ -47,8 +47,8 @@
47
47
  "@ai-sdk/perplexity": "^4.0.43",
48
48
  "@ai-sdk/togetherai": "^3.0.49",
49
49
  "@ai-sdk/xai": "^4.0.58",
50
- "@jskit-ai/resource-core": "0.1.180",
51
- "@jskit-ai/resource-crud-core": "0.1.180",
50
+ "@jskit-ai/resource-core": "0.1.181",
51
+ "@jskit-ai/resource-crud-core": "0.1.181",
52
52
  "@mdi/js": "^7.4.47",
53
53
  "@openrouter/ai-sdk-provider": "^3.0.0",
54
54
  "ai": "^7.0.101",
@@ -57,8 +57,8 @@
57
57
  "ws": "^8.20.1"
58
58
  },
59
59
  "peerDependencies": {
60
- "@jskit-ai/http-runtime": "0.1.236",
61
- "@jskit-ai/kernel": "0.1.238",
60
+ "@jskit-ai/http-runtime": "0.1.237",
61
+ "@jskit-ai/kernel": "0.1.239",
62
62
  "vue": "^3.5.13",
63
63
  "vuetify": "^4.0.0"
64
64
  },
@@ -1,14 +1,15 @@
1
1
  <template>
2
- <div v-if="message.delivery" role="status">
3
- <p>{{ message.text }}</p>
4
- <p v-if="message.delivery.error" class="text-body-small">{{ message.delivery.error }}</p>
2
+ <div v-if="message.delivery" class="d-flex flex-wrap align-center ga-1 text-caption text-error" role="status">
3
+ <span>{{ message.delivery.error || message.text }}</span>
5
4
  <v-btn
6
- variant="tonal"
7
- min-height="48"
5
+ variant="text"
6
+ color="error"
7
+ size="x-small"
8
+ aria-label="Retry delivery check"
8
9
  :disabled="message.delivery.checking"
9
10
  @click="$emit('check-delivery', message.delivery.messageId)"
10
11
  >
11
- {{ message.delivery.checking ? 'Checking delivery…' : 'Check delivery' }}
12
+ {{ message.delivery.checking ? 'Checking…' : 'Retry' }}
12
13
  </v-btn>
13
14
  </div>
14
15
  <slot v-else>
@@ -139,8 +139,7 @@
139
139
  class="assistant-transcript__message assistant-transcript__message--user"
140
140
  :class="{
141
141
  'assistant-transcript__message--pending': entry.turn.optimistic?.status === 'pending',
142
- 'assistant-transcript__message--failed': entry.turn.optimistic?.status === 'failed',
143
- 'assistant-transcript__message--unconfirmed': Boolean(entry.delivery)
142
+ 'assistant-transcript__message--failed': entry.turn.optimistic?.status === 'failed'
144
143
  }"
145
144
  >
146
145
  <div
@@ -176,30 +175,28 @@
176
175
  <time v-if="entry.message.displayAt">{{ entry.message.displayAt }}</time>
177
176
  <span v-if="entry.turn.optimistic?.status === 'pending'" role="status">Pending</span>
178
177
  </div>
179
- <div v-if="entry.delivery" class="assistant-transcript__unconfirmed-delivery">
180
- <AssistantConversationStatus
181
- :message="{ ...entry.delivery, text: 'Delivery unconfirmed' }"
182
- @check-delivery="emit('check-delivery', $event)"
183
- />
184
- </div>
185
178
  <slot name="user-message-actions" :message="entry.message" :turn="entry.turn" />
186
179
  <div
187
- v-if="entry.turn.optimistic?.status === 'failed'"
180
+ v-if="entry.delivery || entry.turn.optimistic?.status === 'failed'"
188
181
  class="assistant-transcript__optimistic-failure"
189
182
  >
190
- <span role="status">Failed: {{ entry.turn.optimistic.error || "Message could not be sent." }}</span>
183
+ <span role="status">{{ entry.delivery ? entry.delivery.delivery.error || 'Delivery unconfirmed.' : `Failed: ${entry.turn.optimistic.error || 'Message could not be sent.'}` }}</span>
191
184
  <div v-if="!entry.turn.preview" class="assistant-transcript__optimistic-actions">
192
185
  <v-btn
193
186
  class="assistant-transcript__delivery-action"
194
- color="primary"
187
+ color="error"
195
188
  size="x-small"
196
189
  type="button"
197
- variant="tonal"
198
- @click="emit('resend-turn', entry.turn.optimistic.id)"
190
+ variant="text"
191
+ :disabled="entry.delivery?.delivery.checking"
192
+ :aria-label="entry.delivery ? 'Retry delivery check' : undefined"
193
+ :title="entry.delivery ? entry.delivery.delivery.error || 'Check delivery before resending.' : undefined"
194
+ @click="entry.delivery ? emit('check-delivery', entry.delivery.delivery.messageId) : emit('resend-turn', entry.turn.optimistic.id)"
199
195
  >
200
- Retry
196
+ {{ entry.delivery?.delivery.checking ? 'Checking…' : 'Retry' }}
201
197
  </v-btn>
202
198
  <v-btn
199
+ v-if="!entry.delivery"
203
200
  class="assistant-transcript__delivery-action"
204
201
  size="x-small"
205
202
  type="button"
@@ -209,6 +206,7 @@
209
206
  Cancel
210
207
  </v-btn>
211
208
  <v-btn
209
+ v-if="!entry.delivery"
212
210
  class="assistant-transcript__delivery-action"
213
211
  size="x-small"
214
212
  type="button"
@@ -1442,26 +1440,6 @@ watch(() => props.visible, (visible) => {
1442
1440
  margin-top: -0.15rem;
1443
1441
  }
1444
1442
 
1445
- .assistant-transcript__message--user.assistant-transcript__message--unconfirmed {
1446
- background: rgba(var(--v-theme-warning), 0.08);
1447
- border: 1px solid rgba(var(--v-theme-warning), 0.6);
1448
- }
1449
-
1450
- .assistant-transcript__unconfirmed-delivery {
1451
- border-top: 1px solid rgba(var(--v-theme-warning), 0.4);
1452
- font-size: 0.875rem;
1453
- padding-top: 0.65rem;
1454
- }
1455
-
1456
- .assistant-transcript__unconfirmed-delivery :deep(p:first-child) {
1457
- font-weight: 700;
1458
- margin-bottom: 0.4rem;
1459
- }
1460
-
1461
- .assistant-transcript__unconfirmed-delivery :deep(p) {
1462
- overflow-wrap: anywhere;
1463
- }
1464
-
1465
1443
  .assistant-transcript__optimistic-failure {
1466
1444
  align-items: center;
1467
1445
  color: rgba(var(--v-theme-error), 0.92);