Initial commit
This commit is contained in:
@@ -0,0 +1,191 @@
|
||||
import assert from 'node:assert/strict'
|
||||
|
||||
import type { ChatMessage } from '../types/chat'
|
||||
import {
|
||||
analyzeCheckpointMessages,
|
||||
checkpointReplyMetadataForComposer,
|
||||
isCheckpointCardMetadata,
|
||||
isCheckpointType,
|
||||
toCheckpointReplyMetadata,
|
||||
} from './checkpointUtils'
|
||||
|
||||
const checkpoint: ChatMessage = {
|
||||
id: 'msg-checkpoint',
|
||||
channelId: 'session:task-1',
|
||||
sender: 'assistant',
|
||||
senderName: 'OPC',
|
||||
content: 'Please review the delivery.',
|
||||
timestamp: 1,
|
||||
mentions: [],
|
||||
metadata: {
|
||||
checkpoint_type: 'company_delivery_feedback',
|
||||
checkpoint_id: 'cp-delivery',
|
||||
work_item_projection_title: 'CEO Delivery',
|
||||
feedback_scope: 'final',
|
||||
},
|
||||
}
|
||||
|
||||
assert.equal(isCheckpointType('company_delivery_feedback'), true)
|
||||
assert.equal(isCheckpointType('company_staffing_selection'), true)
|
||||
assert.equal(isCheckpointCardMetadata(checkpoint.metadata), true)
|
||||
assert.deepEqual(toCheckpointReplyMetadata(checkpoint.metadata), {
|
||||
response_to_checkpoint_id: 'cp-delivery',
|
||||
response_to_checkpoint_type: 'company_delivery_feedback',
|
||||
response_to_escalation_id: undefined,
|
||||
})
|
||||
|
||||
const pending = analyzeCheckpointMessages([checkpoint])
|
||||
assert.deepEqual([...pending.pendingMessageIds], ['msg-checkpoint'])
|
||||
assert.deepEqual(pending.latestPendingReplyMetadata, {
|
||||
response_to_checkpoint_id: 'cp-delivery',
|
||||
response_to_checkpoint_type: 'company_delivery_feedback',
|
||||
response_to_escalation_id: undefined,
|
||||
})
|
||||
assert.equal(checkpointReplyMetadataForComposer(pending.latestPendingReplyMetadata), undefined)
|
||||
|
||||
const legacySelfEvolutionResult: ChatMessage = {
|
||||
...checkpoint,
|
||||
id: 'msg-self-evolution-result',
|
||||
content: 'Self-evolution finished without writing updates because the agents did not return valid evolution patches.',
|
||||
metadata: {
|
||||
checkpoint_type: 'company_delivery_feedback',
|
||||
checkpoint_id: 'cp-delivery',
|
||||
kind: 'company_self_evolution_result',
|
||||
self_evolution_completed: true,
|
||||
},
|
||||
}
|
||||
assert.equal(isCheckpointCardMetadata(legacySelfEvolutionResult.metadata), false)
|
||||
const ignoredSelfEvolutionResult = analyzeCheckpointMessages([legacySelfEvolutionResult])
|
||||
assert.deepEqual([...ignoredSelfEvolutionResult.pendingMessageIds], [])
|
||||
assert.deepEqual([...ignoredSelfEvolutionResult.respondedMessageIds], [])
|
||||
assert.equal(checkpointReplyMetadataForComposer({
|
||||
response_to_checkpoint_id: 'esc-approval',
|
||||
response_to_checkpoint_type: 'human_escalation',
|
||||
response_to_escalation_id: 'esc-approval',
|
||||
}), undefined)
|
||||
assert.deepEqual(checkpointReplyMetadataForComposer({
|
||||
response_to_checkpoint_id: 'cp-staffing',
|
||||
response_to_checkpoint_type: 'company_staffing_selection',
|
||||
}), {
|
||||
response_to_checkpoint_id: 'cp-staffing',
|
||||
response_to_checkpoint_type: 'company_staffing_selection',
|
||||
})
|
||||
|
||||
const duplicatePending = analyzeCheckpointMessages([
|
||||
checkpoint,
|
||||
{
|
||||
...checkpoint,
|
||||
id: 'msg-checkpoint-duplicate',
|
||||
channelId: 'session:task-2',
|
||||
timestamp: 2,
|
||||
},
|
||||
])
|
||||
assert.deepEqual([...duplicatePending.pendingMessageIds], ['msg-checkpoint'])
|
||||
assert.deepEqual([...duplicatePending.respondedMessageIds], [])
|
||||
assert.deepEqual([...duplicatePending.duplicateMessageIds], ['msg-checkpoint-duplicate'])
|
||||
|
||||
const duplicateResponded = analyzeCheckpointMessages([
|
||||
{
|
||||
...checkpoint,
|
||||
metadata: {
|
||||
...checkpoint.metadata,
|
||||
checkpoint_status: 'responded',
|
||||
},
|
||||
},
|
||||
{
|
||||
...checkpoint,
|
||||
id: 'msg-checkpoint-duplicate',
|
||||
channelId: 'session:task-2',
|
||||
timestamp: 2,
|
||||
metadata: {
|
||||
...checkpoint.metadata,
|
||||
checkpoint_status: 'responded',
|
||||
},
|
||||
},
|
||||
])
|
||||
assert.deepEqual([...duplicateResponded.respondedMessageIds], ['msg-checkpoint'])
|
||||
assert.deepEqual([...duplicateResponded.duplicateMessageIds], ['msg-checkpoint-duplicate'])
|
||||
|
||||
const replyBeforeEngineResolution = analyzeCheckpointMessages([
|
||||
checkpoint,
|
||||
{
|
||||
id: 'msg-user',
|
||||
channelId: 'session:task-1',
|
||||
sender: 'user',
|
||||
senderName: 'You',
|
||||
content: 'Please make one more change.',
|
||||
timestamp: 2,
|
||||
mentions: [],
|
||||
metadata: {
|
||||
response_to_checkpoint_id: 'cp-delivery',
|
||||
response_to_checkpoint_type: 'company_delivery_feedback',
|
||||
},
|
||||
},
|
||||
])
|
||||
assert.deepEqual([...replyBeforeEngineResolution.respondedMessageIds], ['msg-checkpoint'])
|
||||
assert.deepEqual([...replyBeforeEngineResolution.pendingMessageIds], [])
|
||||
assert.equal(replyBeforeEngineResolution.latestPendingReplyMetadata, undefined)
|
||||
|
||||
const responded = analyzeCheckpointMessages([
|
||||
{
|
||||
...checkpoint,
|
||||
metadata: {
|
||||
...checkpoint.metadata,
|
||||
checkpoint_status: 'responded',
|
||||
checkpoint_response_message_id: 'msg-user',
|
||||
},
|
||||
},
|
||||
])
|
||||
assert.deepEqual([...responded.respondedMessageIds], ['msg-checkpoint'])
|
||||
|
||||
const expiredApproval: ChatMessage = {
|
||||
id: 'msg-expired-approval',
|
||||
channelId: 'session:task-1',
|
||||
sender: 'assistant',
|
||||
senderName: 'OPC',
|
||||
content: 'Approve external_agent?',
|
||||
timestamp: 3,
|
||||
mentions: [],
|
||||
metadata: {
|
||||
checkpoint_type: 'human_escalation',
|
||||
checkpoint_id: 'esc-expired',
|
||||
escalation_id: 'esc-expired',
|
||||
escalation_type: 'decision_needed',
|
||||
prompt: 'Approve external_agent?',
|
||||
options: [{ id: 'approve_once', label: 'Approve once' }],
|
||||
checkpoint_status: 'timeout',
|
||||
},
|
||||
}
|
||||
const staleApproval: ChatMessage = {
|
||||
...expiredApproval,
|
||||
id: 'msg-stale-approval',
|
||||
metadata: {
|
||||
...expiredApproval.metadata,
|
||||
checkpoint_id: 'esc-stale',
|
||||
escalation_id: 'esc-stale',
|
||||
checkpoint_status: 'stale',
|
||||
},
|
||||
}
|
||||
const supersededRecruitment: ChatMessage = {
|
||||
...checkpoint,
|
||||
id: 'msg-superseded-recruitment',
|
||||
metadata: {
|
||||
...checkpoint.metadata,
|
||||
checkpoint_type: 'company_recruitment_confirmation',
|
||||
checkpoint_id: 'cp-recruit-old',
|
||||
checkpoint_status: 'superseded',
|
||||
},
|
||||
}
|
||||
const ignoredDelivery: ChatMessage = {
|
||||
...checkpoint,
|
||||
id: 'msg-ignored-delivery',
|
||||
metadata: {
|
||||
...checkpoint.metadata,
|
||||
checkpoint_status: 'ignored',
|
||||
},
|
||||
}
|
||||
const terminal = analyzeCheckpointMessages([expiredApproval, staleApproval, supersededRecruitment, ignoredDelivery])
|
||||
assert.deepEqual([...terminal.pendingMessageIds], [])
|
||||
assert.deepEqual([...terminal.respondedMessageIds], ['msg-expired-approval', 'msg-stale-approval', 'msg-superseded-recruitment', 'msg-ignored-delivery'])
|
||||
|
||||
console.log('checkpointUtils.test.ts: OK (checkpoint pending/reply/terminal status handling)')
|
||||
Reference in New Issue
Block a user