@ateam-ai-mobile/core 0.1.3 → 0.1.5
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/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +88 -60
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +87 -60
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/api/tenants.ts +16 -3
- package/src/chat/store.ts +93 -73
- package/src/index.ts +1 -0
package/dist/index.mjs
CHANGED
|
@@ -456,69 +456,81 @@ var useChatStore = create((set, get) => ({
|
|
|
456
456
|
finalMessages.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
457
457
|
let firstRunning = keptPlaceholders.find((m) => m.jobProgress?.status === "running");
|
|
458
458
|
try {
|
|
459
|
-
|
|
459
|
+
let activeChains = [];
|
|
460
|
+
const chainsRes = await fetch(`${getCoreApiUrl()}/api/chains/active`, {
|
|
460
461
|
headers: coreHeaders()
|
|
461
462
|
});
|
|
462
|
-
if (
|
|
463
|
-
const
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
};
|
|
514
|
-
finalMessages.push(reattachBubble);
|
|
515
|
-
if (jobProgress.status === "running") firstRunning = reattachBubble;
|
|
516
|
-
}
|
|
517
|
-
finalMessages.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
518
|
-
streamJob(chainId, getTenant(), getToken());
|
|
463
|
+
if (chainsRes.ok) {
|
|
464
|
+
const body = await chainsRes.json();
|
|
465
|
+
activeChains = Array.isArray(body?.chains) ? body.chains : [];
|
|
466
|
+
} else {
|
|
467
|
+
const legacy = await fetch(`${getCoreApiUrl()}/api/chain/current`, {
|
|
468
|
+
headers: coreHeaders()
|
|
469
|
+
});
|
|
470
|
+
if (legacy.ok) {
|
|
471
|
+
const lb = await legacy.json();
|
|
472
|
+
if (lb?.data?.id) activeChains = [lb.data];
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
for (const slim of activeChains) {
|
|
476
|
+
if (!slim?.id) continue;
|
|
477
|
+
const chainId = String(slim.id);
|
|
478
|
+
const alreadyTracked = finalMessages.some(
|
|
479
|
+
(m) => m.role === "assistant" && m.jobProgress?.jobId === chainId
|
|
480
|
+
);
|
|
481
|
+
if (alreadyTracked) continue;
|
|
482
|
+
const progress = snapshotToProgress(
|
|
483
|
+
{ ...slim, status: slim.chainStatus || slim.status },
|
|
484
|
+
chainId
|
|
485
|
+
);
|
|
486
|
+
const chainCreatedAt = typeof slim.createdAt === "number" ? slim.createdAt : typeof slim.lastUpdate === "number" ? slim.lastUpdate : Date.now();
|
|
487
|
+
const chainLastUpdate = typeof slim.lastUpdate === "number" ? slim.lastUpdate : chainCreatedAt;
|
|
488
|
+
const jobProgress = {
|
|
489
|
+
jobId: chainId,
|
|
490
|
+
actorId: extractActorId(slim),
|
|
491
|
+
status: "running",
|
|
492
|
+
chainStartedAt: chainCreatedAt,
|
|
493
|
+
...progress
|
|
494
|
+
};
|
|
495
|
+
const goal = typeof slim.goal === "string" ? slim.goal : "";
|
|
496
|
+
const userExists = finalMessages.some(
|
|
497
|
+
(m) => m.role === "user" && (m.chainId === chainId || goal && m.content === goal)
|
|
498
|
+
);
|
|
499
|
+
if (goal && !userExists) {
|
|
500
|
+
finalMessages.push({
|
|
501
|
+
id: `user-${chainId}`,
|
|
502
|
+
role: "user",
|
|
503
|
+
content: goal,
|
|
504
|
+
timestamp: new Date(chainCreatedAt),
|
|
505
|
+
chainId
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
let matchIdx = -1;
|
|
509
|
+
for (let i = finalMessages.length - 1; i >= 0; i--) {
|
|
510
|
+
const m = finalMessages[i];
|
|
511
|
+
if (m.role === "assistant" && m.chainId === chainId) {
|
|
512
|
+
matchIdx = i;
|
|
513
|
+
break;
|
|
519
514
|
}
|
|
520
515
|
}
|
|
516
|
+
if (matchIdx >= 0) {
|
|
517
|
+
finalMessages[matchIdx] = { ...finalMessages[matchIdx], jobProgress };
|
|
518
|
+
if (jobProgress.status === "running" && !firstRunning) firstRunning = finalMessages[matchIdx];
|
|
519
|
+
} else {
|
|
520
|
+
const reattachBubble = {
|
|
521
|
+
id: `job-${chainId}`,
|
|
522
|
+
role: "assistant",
|
|
523
|
+
content: "Working on it...",
|
|
524
|
+
timestamp: new Date(chainLastUpdate),
|
|
525
|
+
jobProgress,
|
|
526
|
+
chainId
|
|
527
|
+
};
|
|
528
|
+
finalMessages.push(reattachBubble);
|
|
529
|
+
if (jobProgress.status === "running" && !firstRunning) firstRunning = reattachBubble;
|
|
530
|
+
}
|
|
531
|
+
streamJob(chainId, getTenant(), getToken());
|
|
521
532
|
}
|
|
533
|
+
finalMessages.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
522
534
|
} catch {
|
|
523
535
|
}
|
|
524
536
|
set({
|
|
@@ -908,8 +920,22 @@ async function pollJob(jobId, token) {
|
|
|
908
920
|
|
|
909
921
|
// src/api/tenants.ts
|
|
910
922
|
async function listMyTenants() {
|
|
911
|
-
const
|
|
912
|
-
|
|
923
|
+
const token = getToken();
|
|
924
|
+
if (!token) return [];
|
|
925
|
+
try {
|
|
926
|
+
const res = await fetch(`${getConsumerAuthApiUrl()}/platform/consumer/my-tenants`, {
|
|
927
|
+
headers: { Authorization: `Bearer ${token}` }
|
|
928
|
+
});
|
|
929
|
+
const data = await res.json().catch(() => null);
|
|
930
|
+
if (!res.ok || !data?.ok || !Array.isArray(data.tenants)) return [];
|
|
931
|
+
return data.tenants.map((t) => ({
|
|
932
|
+
id: t.id,
|
|
933
|
+
name: t.name || t.id,
|
|
934
|
+
role: t.role ?? null
|
|
935
|
+
}));
|
|
936
|
+
} catch {
|
|
937
|
+
return [];
|
|
938
|
+
}
|
|
913
939
|
}
|
|
914
940
|
async function switchTenant(targetTenantId) {
|
|
915
941
|
const token = getToken();
|
|
@@ -1652,6 +1678,7 @@ export {
|
|
|
1652
1678
|
pluginCommandEmitter,
|
|
1653
1679
|
postCommandResult,
|
|
1654
1680
|
recordEvent,
|
|
1681
|
+
refreshToken,
|
|
1655
1682
|
setAcsCacheStorage,
|
|
1656
1683
|
setAcsReachabilityReporter,
|
|
1657
1684
|
setHomeActionOrder,
|