@bpmsoftwaresolutions/ai-engine-client 1.1.61 → 1.1.62
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/package.json +1 -1
- package/src/index.js +220 -1
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -452,6 +452,12 @@ export class AIEngineClient {
|
|
|
452
452
|
acceptTransferPacket: (request) => this.acceptCommunicationTransferPacket(request),
|
|
453
453
|
closeTransferPacket: (request) => this.closeCommunicationTransferPacket(request),
|
|
454
454
|
getTransferHealth: (request) => this.getCommunicationTransferHealth(request),
|
|
455
|
+
openAgentChannel: (request) => this.openAgentChannel(request),
|
|
456
|
+
acceptAgentChannel: (request) => this.acceptAgentChannel(request),
|
|
457
|
+
postAgentHeartbeat: (request) => this.postAgentHeartbeat(request),
|
|
458
|
+
postAgentMessage: (request) => this.postAgentMessage(request),
|
|
459
|
+
acknowledgeAgentMessage: (request) => this.acknowledgeAgentMessage(request),
|
|
460
|
+
closeAgentChannel: (request) => this.closeAgentChannel(request),
|
|
455
461
|
createBundle: (request) => this.createCommunicationBundle(request),
|
|
456
462
|
getBundle: (bundleId) => this.getCommunicationBundle(bundleId),
|
|
457
463
|
listBundles: (request) => this.listCommunicationBundles(request),
|
|
@@ -499,6 +505,12 @@ export class AIEngineClient {
|
|
|
499
505
|
raiseBlocker: (request) => this.raiseCollaborationBlocker(request),
|
|
500
506
|
beginImplementation: (request) => this.beginCollaborationImplementation(request),
|
|
501
507
|
requestClosure: (request) => this.requestCollaborationClosure(request),
|
|
508
|
+
openAgentChannel: (request) => this.openAgentChannel(request),
|
|
509
|
+
acceptAgentChannel: (request) => this.acceptAgentChannel(request),
|
|
510
|
+
postAgentHeartbeat: (request) => this.postAgentHeartbeat(request),
|
|
511
|
+
postAgentMessage: (request) => this.postAgentMessage(request),
|
|
512
|
+
acknowledgeAgentMessage: (request) => this.acknowledgeAgentMessage(request),
|
|
513
|
+
closeAgentChannel: (request) => this.closeAgentChannel(request),
|
|
502
514
|
whoIsOnline: (request) => this.whoIsOnline(request),
|
|
503
515
|
findOnlineParticipant: (request) => this.findOnlineParticipant(request),
|
|
504
516
|
listCommunicationChannels: (request) => this.listCommunicationChannels(request),
|
|
@@ -1179,10 +1191,20 @@ export class AIEngineClient {
|
|
|
1179
1191
|
} = {}) {
|
|
1180
1192
|
const normalizedTransferChannelId = cleanText(transfer_channel_id) || cleanText(transferChannelId) || cleanText(channel_id) || cleanText(channelId);
|
|
1181
1193
|
if (!normalizedTransferChannelId) throw new Error('transfer_channel_id is required.');
|
|
1194
|
+
let normalizedPacketId = cleanText(work_transfer_packet_id) || cleanText(workTransferPacketId) || cleanText(packet_id) || cleanText(packetId);
|
|
1195
|
+
if (!normalizedPacketId) {
|
|
1196
|
+
try {
|
|
1197
|
+
const status = await this.getCommunicationChannelStatus({ transferChannelId: normalizedTransferChannelId });
|
|
1198
|
+
normalizedPacketId = cleanText(status?.packet_id || status?.packetId || status?.work_transfer_packet_id);
|
|
1199
|
+
} catch (error) {
|
|
1200
|
+
void error;
|
|
1201
|
+
}
|
|
1202
|
+
}
|
|
1203
|
+
if (!normalizedPacketId) throw new Error('work_transfer_packet_id is required.');
|
|
1182
1204
|
return this._request(`/api/agent-communications/transfer-channels/${encodeURIComponent(normalizedTransferChannelId)}/connect`, {
|
|
1183
1205
|
method: 'POST',
|
|
1184
1206
|
body: {
|
|
1185
|
-
work_transfer_packet_id:
|
|
1207
|
+
work_transfer_packet_id: normalizedPacketId,
|
|
1186
1208
|
workflow_run_id: cleanText(workflow_run_id) || cleanText(workflowRunId),
|
|
1187
1209
|
participant_role: cleanText(participant_role) || cleanText(participantRole),
|
|
1188
1210
|
expected_peer_role: cleanText(expected_peer_role) || cleanText(expectedPeerRole),
|
|
@@ -1205,6 +1227,203 @@ export class AIEngineClient {
|
|
|
1205
1227
|
});
|
|
1206
1228
|
}
|
|
1207
1229
|
|
|
1230
|
+
async openAgentChannel(request = {}) {
|
|
1231
|
+
return this.connectToTransferChannel(request);
|
|
1232
|
+
}
|
|
1233
|
+
|
|
1234
|
+
async _resolveMessageWatchId(request = {}) {
|
|
1235
|
+
const directWatchId = cleanText(request.message_watch_id) || cleanText(request.messageWatchId) || cleanText(request.watch_id) || cleanText(request.watchId);
|
|
1236
|
+
if (directWatchId) {
|
|
1237
|
+
return directWatchId;
|
|
1238
|
+
}
|
|
1239
|
+
const normalizedTransferChannelId = cleanText(request.transfer_channel_id) || cleanText(request.transferChannelId) || cleanText(request.channel_id) || cleanText(request.channelId);
|
|
1240
|
+
if (!normalizedTransferChannelId) return null;
|
|
1241
|
+
try {
|
|
1242
|
+
const watches = await this._request(`/api/agent-communications/transfer-channels/${encodeURIComponent(normalizedTransferChannelId)}/message-watches`);
|
|
1243
|
+
const watchRows = Array.isArray(watches?.message_watches) ? watches.message_watches.filter((row) => row && typeof row === 'object') : [];
|
|
1244
|
+
watchRows.sort((a, b) => String(b.updated_at || b.created_at || '').localeCompare(String(a.updated_at || a.created_at || '')));
|
|
1245
|
+
const activeWatch = watchRows.find((watch) => ['watching', 'waiting', 'stale', 'blocked', 'active'].includes(String(watch.current_status || '').trim().toLowerCase()));
|
|
1246
|
+
return cleanText((activeWatch || watchRows[0] || {}).message_watch_id);
|
|
1247
|
+
} catch (error) {
|
|
1248
|
+
void error;
|
|
1249
|
+
return null;
|
|
1250
|
+
}
|
|
1251
|
+
}
|
|
1252
|
+
|
|
1253
|
+
async acceptAgentChannel({
|
|
1254
|
+
messageWatchId,
|
|
1255
|
+
message_watch_id,
|
|
1256
|
+
watchId,
|
|
1257
|
+
watch_id,
|
|
1258
|
+
observedMessageId,
|
|
1259
|
+
observed_message_id,
|
|
1260
|
+
observedMessageKind,
|
|
1261
|
+
observed_message_kind,
|
|
1262
|
+
expectedMessageKind,
|
|
1263
|
+
expected_message_kind,
|
|
1264
|
+
transferChannelId,
|
|
1265
|
+
transfer_channel_id,
|
|
1266
|
+
channelId,
|
|
1267
|
+
channel_id,
|
|
1268
|
+
lastCheckedAt,
|
|
1269
|
+
last_checked_at,
|
|
1270
|
+
operatorNudge,
|
|
1271
|
+
operator_nudge,
|
|
1272
|
+
metadata = {},
|
|
1273
|
+
} = {}) {
|
|
1274
|
+
const normalizedWatchId = cleanText(message_watch_id) || cleanText(messageWatchId) || cleanText(watch_id) || cleanText(watchId) || await this._resolveMessageWatchId({ transfer_channel_id, transferChannelId, channel_id, channelId });
|
|
1275
|
+
if (!normalizedWatchId) throw new Error('message_watch_id is required.');
|
|
1276
|
+
return this._request(`/api/agent-communications/message-watches/${encodeURIComponent(normalizedWatchId)}/acknowledge`, {
|
|
1277
|
+
method: 'POST',
|
|
1278
|
+
body: {
|
|
1279
|
+
observed_message_id: cleanText(observed_message_id) || cleanText(observedMessageId),
|
|
1280
|
+
observed_message_kind: cleanText(observed_message_kind) || cleanText(observedMessageKind) || cleanText(expected_message_kind) || cleanText(expectedMessageKind),
|
|
1281
|
+
last_checked_at: last_checked_at || lastCheckedAt,
|
|
1282
|
+
operator_nudge: cleanText(operator_nudge) || cleanText(operatorNudge),
|
|
1283
|
+
metadata: isPlainObject(metadata) ? metadata : {},
|
|
1284
|
+
},
|
|
1285
|
+
});
|
|
1286
|
+
}
|
|
1287
|
+
|
|
1288
|
+
async postAgentHeartbeat({
|
|
1289
|
+
transferChannelId,
|
|
1290
|
+
transfer_channel_id,
|
|
1291
|
+
channelId,
|
|
1292
|
+
channel_id,
|
|
1293
|
+
workTransferPacketId,
|
|
1294
|
+
work_transfer_packet_id,
|
|
1295
|
+
packetId,
|
|
1296
|
+
packet_id,
|
|
1297
|
+
workflowRunId,
|
|
1298
|
+
workflow_run_id,
|
|
1299
|
+
participantRole,
|
|
1300
|
+
participant_role,
|
|
1301
|
+
role,
|
|
1302
|
+
activityState,
|
|
1303
|
+
activity_state,
|
|
1304
|
+
agentSessionId,
|
|
1305
|
+
agent_session_id,
|
|
1306
|
+
actorSessionId,
|
|
1307
|
+
actor_session_id,
|
|
1308
|
+
currentPhase,
|
|
1309
|
+
current_phase,
|
|
1310
|
+
phase,
|
|
1311
|
+
currentTaskSummary,
|
|
1312
|
+
current_task_summary,
|
|
1313
|
+
isActive,
|
|
1314
|
+
is_active,
|
|
1315
|
+
observedAt,
|
|
1316
|
+
observed_at,
|
|
1317
|
+
metadata = {},
|
|
1318
|
+
} = {}) {
|
|
1319
|
+
const normalizedTransferChannelId = cleanText(transfer_channel_id) || cleanText(transferChannelId) || cleanText(channel_id) || cleanText(channelId);
|
|
1320
|
+
if (!normalizedTransferChannelId) throw new Error('transfer_channel_id is required.');
|
|
1321
|
+
let normalizedPacketId = cleanText(work_transfer_packet_id) || cleanText(workTransferPacketId) || cleanText(packet_id) || cleanText(packetId);
|
|
1322
|
+
if (!normalizedPacketId) {
|
|
1323
|
+
try {
|
|
1324
|
+
const status = await this.getCommunicationChannelStatus({ transferChannelId: normalizedTransferChannelId });
|
|
1325
|
+
normalizedPacketId = cleanText(status?.packet_id || status?.packetId || status?.work_transfer_packet_id);
|
|
1326
|
+
} catch (error) {
|
|
1327
|
+
void error;
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
if (!normalizedPacketId) throw new Error('work_transfer_packet_id is required.');
|
|
1331
|
+
return this._request(`/api/agent-communications/transfer-channels/${encodeURIComponent(normalizedTransferChannelId)}/heartbeats`, {
|
|
1332
|
+
method: 'POST',
|
|
1333
|
+
body: {
|
|
1334
|
+
work_transfer_packet_id: normalizedPacketId,
|
|
1335
|
+
workflow_run_id: cleanText(workflow_run_id) || cleanText(workflowRunId),
|
|
1336
|
+
participant_role: cleanText(participant_role) || cleanText(participantRole) || cleanText(role),
|
|
1337
|
+
activity_state: cleanText(activity_state) || cleanText(activityState) || 'active',
|
|
1338
|
+
agent_session_id: cleanText(agent_session_id) || cleanText(agentSessionId),
|
|
1339
|
+
actor_session_id: cleanText(actor_session_id) || cleanText(actorSessionId),
|
|
1340
|
+
current_phase: cleanText(current_phase) || cleanText(currentPhase) || cleanText(phase),
|
|
1341
|
+
current_task_summary: cleanText(current_task_summary) || cleanText(currentTaskSummary),
|
|
1342
|
+
is_active: is_active ?? isActive ?? true,
|
|
1343
|
+
observed_at: observed_at || observedAt,
|
|
1344
|
+
metadata: isPlainObject(metadata) ? metadata : {},
|
|
1345
|
+
},
|
|
1346
|
+
});
|
|
1347
|
+
}
|
|
1348
|
+
|
|
1349
|
+
async postAgentMessage(request = {}) {
|
|
1350
|
+
return this._sendAgentCommsMessage(request);
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
async acknowledgeAgentMessage({
|
|
1354
|
+
transferChannelId,
|
|
1355
|
+
transfer_channel_id,
|
|
1356
|
+
channelId,
|
|
1357
|
+
channel_id,
|
|
1358
|
+
messageWatchId,
|
|
1359
|
+
message_watch_id,
|
|
1360
|
+
watchId,
|
|
1361
|
+
watch_id,
|
|
1362
|
+
messageId,
|
|
1363
|
+
message_id,
|
|
1364
|
+
messageKind,
|
|
1365
|
+
message_kind,
|
|
1366
|
+
observedMessageId,
|
|
1367
|
+
observed_message_id,
|
|
1368
|
+
observedMessageKind,
|
|
1369
|
+
observed_message_kind,
|
|
1370
|
+
operatorNudge,
|
|
1371
|
+
operator_nudge,
|
|
1372
|
+
metadata = {},
|
|
1373
|
+
} = {}) {
|
|
1374
|
+
const normalizedWatchId = cleanText(message_watch_id) || cleanText(messageWatchId) || cleanText(watch_id) || cleanText(watchId) || await this._resolveMessageWatchId({ transfer_channel_id, transferChannelId, channel_id, channelId });
|
|
1375
|
+
if (!normalizedWatchId) throw new Error('message_watch_id is required.');
|
|
1376
|
+
return this._request(`/api/agent-communications/message-watches/${encodeURIComponent(normalizedWatchId)}/acknowledge-message`, {
|
|
1377
|
+
method: 'POST',
|
|
1378
|
+
body: {
|
|
1379
|
+
observed_message_id: cleanText(observed_message_id) || cleanText(observedMessageId) || cleanText(message_id) || cleanText(messageId),
|
|
1380
|
+
observed_message_kind: cleanText(observed_message_kind) || cleanText(observedMessageKind) || cleanText(message_kind) || cleanText(messageKind),
|
|
1381
|
+
operator_nudge: cleanText(operator_nudge) || cleanText(operatorNudge),
|
|
1382
|
+
metadata: isPlainObject(metadata) ? metadata : {},
|
|
1383
|
+
},
|
|
1384
|
+
});
|
|
1385
|
+
}
|
|
1386
|
+
|
|
1387
|
+
async closeAgentChannel({
|
|
1388
|
+
transferChannelId,
|
|
1389
|
+
transfer_channel_id,
|
|
1390
|
+
channelId,
|
|
1391
|
+
channel_id,
|
|
1392
|
+
closureStatus,
|
|
1393
|
+
closure_status,
|
|
1394
|
+
closureReason,
|
|
1395
|
+
closure_reason,
|
|
1396
|
+
failureReason,
|
|
1397
|
+
failure_reason,
|
|
1398
|
+
evidence = {},
|
|
1399
|
+
evidenceManifestSha256,
|
|
1400
|
+
evidence_manifest_sha256,
|
|
1401
|
+
closedByAgentSessionId,
|
|
1402
|
+
closed_by_agent_session_id,
|
|
1403
|
+
closedByActorSessionId,
|
|
1404
|
+
closed_by_actor_session_id,
|
|
1405
|
+
closedByClaimId,
|
|
1406
|
+
closed_by_claim_id,
|
|
1407
|
+
metadata = {},
|
|
1408
|
+
} = {}) {
|
|
1409
|
+
const normalizedTransferChannelId = cleanText(transfer_channel_id) || cleanText(transferChannelId) || cleanText(channel_id) || cleanText(channelId);
|
|
1410
|
+
if (!normalizedTransferChannelId) throw new Error('transfer_channel_id is required.');
|
|
1411
|
+
return this._request(`/api/agent-communications/transfer-channels/${encodeURIComponent(normalizedTransferChannelId)}/close`, {
|
|
1412
|
+
method: 'POST',
|
|
1413
|
+
body: {
|
|
1414
|
+
closure_status: cleanText(closure_status) || cleanText(closureStatus) || 'closed',
|
|
1415
|
+
closure_reason: cleanText(closure_reason) || cleanText(closureReason),
|
|
1416
|
+
failure_reason: cleanText(failure_reason) || cleanText(failureReason),
|
|
1417
|
+
evidence: isPlainObject(evidence) ? evidence : {},
|
|
1418
|
+
evidence_manifest_sha256: cleanText(evidence_manifest_sha256) || cleanText(evidenceManifestSha256),
|
|
1419
|
+
closed_by_agent_session_id: cleanText(closed_by_agent_session_id) || cleanText(closedByAgentSessionId),
|
|
1420
|
+
closed_by_actor_session_id: cleanText(closed_by_actor_session_id) || cleanText(closedByActorSessionId),
|
|
1421
|
+
closed_by_claim_id: cleanText(closed_by_claim_id) || cleanText(closedByClaimId),
|
|
1422
|
+
metadata: isPlainObject(metadata) ? metadata : {},
|
|
1423
|
+
},
|
|
1424
|
+
});
|
|
1425
|
+
}
|
|
1426
|
+
|
|
1208
1427
|
async respondToMessageWatch({
|
|
1209
1428
|
transferChannelId,
|
|
1210
1429
|
transfer_channel_id,
|