spine-framework-portal 0.2.24 → 0.2.26
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/functions/custom_support-triage.ts +8 -2
- package/hooks/useTickets.ts +3 -27
- package/package.json +1 -1
- package/seed/types.json +2 -0
|
@@ -79,7 +79,11 @@ async function handleNewTicket(
|
|
|
79
79
|
const agentMsg = await runAgent(threadRecord.id, message, ctx)
|
|
80
80
|
|
|
81
81
|
const confidence = agentMsg?.data?.confidence ?? 0
|
|
82
|
-
|
|
82
|
+
// Derive escalated from confidence vs threshold — don't rely solely on the
|
|
83
|
+
// message data field, which may not be set if running an older framework build.
|
|
84
|
+
const { data: pcRow } = await adminDb.from('prompt_configs').select('confidence_threshold').eq('id', promptConfigId).single()
|
|
85
|
+
const threshold = pcRow?.confidence_threshold ?? 0.75
|
|
86
|
+
const escalated = agentMsg?.data?.escalated ?? (confidence < threshold)
|
|
83
87
|
|
|
84
88
|
// 4. Backfill suggested title if agent produced one, and stamp confidence/status
|
|
85
89
|
const suggestedTitle = agentMsg?.data?.suggested_title || message.slice(0, 80)
|
|
@@ -122,7 +126,9 @@ async function handleReply(
|
|
|
122
126
|
const agentMsg = await runAgent(thread_id, message, ctx)
|
|
123
127
|
|
|
124
128
|
const confidence = agentMsg?.data?.confidence ?? 0
|
|
125
|
-
const
|
|
129
|
+
const { data: pcRow2 } = await adminDb.from('prompt_configs').select('confidence_threshold').eq('id', _ids.promptConfigId).single()
|
|
130
|
+
const threshold2 = pcRow2?.confidence_threshold ?? 0.75
|
|
131
|
+
const escalated = agentMsg?.data?.escalated ?? (confidence < threshold2)
|
|
126
132
|
|
|
127
133
|
if (escalated) {
|
|
128
134
|
const { data: currentTicket } = await adminDb
|
package/hooks/useTickets.ts
CHANGED
|
@@ -177,18 +177,8 @@ export function useSubmitFeedback() {
|
|
|
177
177
|
setLoading(true)
|
|
178
178
|
setError(null)
|
|
179
179
|
try {
|
|
180
|
-
//
|
|
181
|
-
|
|
182
|
-
method: 'PATCH',
|
|
183
|
-
body: JSON.stringify({
|
|
184
|
-
data: {
|
|
185
|
-
feedback,
|
|
186
|
-
feedback_at: new Date().toISOString()
|
|
187
|
-
}
|
|
188
|
-
}),
|
|
189
|
-
})
|
|
190
|
-
|
|
191
|
-
// Best-effort: record feedback in the core ai-interactions log
|
|
180
|
+
// Route through ai-interactions which safely merges data fields and
|
|
181
|
+
// handles not_helpful → human_assigned escalation server-side.
|
|
192
182
|
await fetchJSON('/.netlify/functions/ai-interactions', {
|
|
193
183
|
method: 'POST',
|
|
194
184
|
body: JSON.stringify({
|
|
@@ -197,21 +187,7 @@ export function useSubmitFeedback() {
|
|
|
197
187
|
ticket_id: ticketId,
|
|
198
188
|
feedback: feedback === 'up' ? 'helpful' : 'not_helpful',
|
|
199
189
|
}),
|
|
200
|
-
})
|
|
201
|
-
|
|
202
|
-
// If thumbs down, escalate to human
|
|
203
|
-
if (feedback === 'down') {
|
|
204
|
-
await fetchJSON(`/.netlify/functions/admin-data?entity=items&id=${ticketId}`, {
|
|
205
|
-
method: 'PATCH',
|
|
206
|
-
body: JSON.stringify({
|
|
207
|
-
data: {
|
|
208
|
-
status: 'human_assigned',
|
|
209
|
-
aim_escalation_reason: 'thumbs_down'
|
|
210
|
-
}
|
|
211
|
-
}),
|
|
212
|
-
})
|
|
213
|
-
}
|
|
214
|
-
|
|
190
|
+
})
|
|
215
191
|
return { success: true }
|
|
216
192
|
} catch (e: any) {
|
|
217
193
|
setError(e.message)
|
package/package.json
CHANGED
package/seed/types.json
CHANGED
|
@@ -1390,6 +1390,7 @@
|
|
|
1390
1390
|
"is_active": { "data_type": "boolean", "label": "Active", "required": true, "system": true },
|
|
1391
1391
|
"created_at": { "data_type": "datetime", "label": "Created", "required": false, "system": true, "readonly": true },
|
|
1392
1392
|
"updated_at": { "data_type": "datetime", "label": "Updated", "required": false, "system": true, "readonly": true },
|
|
1393
|
+
"updated_by": { "data_type": "uuid", "label": "Updated By", "system": true, "readonly": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1393
1394
|
"message_type": { "data_type": "text", "label": "Message Type", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1394
1395
|
"confidence": { "data_type": "number", "label": "AI Confidence", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1395
1396
|
"retrieval_confidence": { "data_type": "number", "label": "Retrieval Confidence", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
@@ -1503,6 +1504,7 @@
|
|
|
1503
1504
|
"is_active": { "data_type": "boolean", "label": "Active", "required": true, "system": true },
|
|
1504
1505
|
"created_at": { "data_type": "datetime", "label": "Created", "required": false, "system": true, "readonly": true },
|
|
1505
1506
|
"updated_at": { "data_type": "datetime", "label": "Updated", "required": false, "system": true, "readonly": true },
|
|
1507
|
+
"updated_by": { "data_type": "uuid", "label": "Updated By", "system": true, "readonly": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1506
1508
|
"message_type": { "data_type": "text", "label": "Message Type", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1507
1509
|
"confidence": { "data_type": "number", "label": "AI Confidence", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|
|
1508
1510
|
"retrieval_confidence": { "data_type": "number", "label": "Retrieval Confidence", "system": true, "permissions": { "system_admin": ["read"], "support_admin": ["read"], "support": ["read"], "member_admin": ["read"], "member": ["read"] } },
|