@tea-agent/loop-agent 0.40.0-next.8 → 0.40.0
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/AGENTS.md +1 -1
- package/CHANGELOG.md +21 -20
- package/README.md +2 -2
- package/dist/application/dag/generate-task-dag.js +6 -2
- package/dist/build-stamp.json +3 -3
- package/dist/cli/command-definitions.js +9 -5
- package/dist/cli/program.js +38 -3
- package/dist/commands/client-recovery.js +8 -36
- package/dist/commands/init-model-catalog.js +22 -0
- package/dist/commands/task-advance.js +23 -1
- package/dist/commands/task-source-prepare.js +5 -0
- package/dist/commands/task-status.js +1 -0
- package/dist/executors/dag-pi-executor.js +3 -0
- package/dist/executors/pi-executor.js +4 -2
- package/dist/executors/pi-sdk-executor.js +79 -6
- package/dist/executors/shell-executor.js +94 -20
- package/dist/governance/checks.js +1 -0
- package/dist/shared/operator/capabilities.js +9 -1
- package/dist/shared/pi-context-pressure/checkpoint.js +116 -0
- package/dist/shared/pi-context-pressure/compaction-policy.js +151 -0
- package/dist/shared/pi-context-pressure/env.js +58 -0
- package/dist/shared/pi-context-pressure/extension.js +100 -0
- package/dist/shared/pi-context-pressure/index.js +7 -0
- package/dist/shared/pi-context-pressure/overflow.js +252 -0
- package/dist/shared/pi-context-pressure/sift-bridge.js +386 -0
- package/dist/shared/pi-context-pressure/telemetry.js +51 -0
- package/dist/worker/console/chat/assistant-content.js +7 -0
- package/dist/worker/console/chat/chat-event-store.js +82 -11
- package/dist/worker/console/chat/goal-round-driver.js +72 -0
- package/dist/worker/console/chat/goals.js +300 -0
- package/dist/worker/console/chat/pi-runtime.js +285 -8
- package/dist/worker/console/chat/provider-error.js +2 -1
- package/dist/worker/console/chat/repo-browser.js +94 -12
- package/dist/worker/console/chat/routes.js +495 -30
- package/dist/worker/console/chat/session-catalog.js +48 -0
- package/dist/worker/console/chat/session-stats.js +96 -0
- package/dist/worker/console/chat/session-store.js +27 -18
- package/dist/worker/console/chat/shortcuts.js +7 -0
- package/dist/worker/console/chat/sift-bridge.js +1 -0
- package/dist/worker/console/chat/turn-process.js +42 -5
- package/dist/worker/console/dag-execution-receipt.js +20 -2
- package/dist/worker/console/operator-actions.js +20 -5
- package/dist/worker/console/operator-selection.js +6 -2
- package/dist/worker/console/pi-plugins.catalog.json +73658 -0
- package/dist/worker/console/pi-plugins.js +179 -0
- package/dist/worker/console/routes.js +246 -6
- package/dist/worker/console/server.js +173 -42
- package/dist/worker/console/static/assets/{abnfDiagram-N423BO3Z-BYBmDfPW.js → abnfDiagram-N423BO3Z-Dy71QJp3.js} +1 -1
- package/dist/worker/console/static/assets/{arc-BKMmxpGF.js → arc-M25fNMTE.js} +1 -1
- package/dist/worker/console/static/assets/{architectureDiagram-T3A2C74G-DJpwxr1d.js → architectureDiagram-T3A2C74G-CUWlVl1a.js} +1 -1
- package/dist/worker/console/static/assets/{blockDiagram-VBNYF7ZC-BaPj_ZlY.js → blockDiagram-VBNYF7ZC-Dd0Whpx2.js} +1 -1
- package/dist/worker/console/static/assets/{c4Diagram-5PPSVZJV-B8iGmHlm.js → c4Diagram-5PPSVZJV-BdfeCkI5.js} +1 -1
- package/dist/worker/console/static/assets/channel-Ba0AKiEZ.js +1 -0
- package/dist/worker/console/static/assets/{chunk-2GRJ4B5K-DaxXQayc.js → chunk-2GRJ4B5K-D_1sUkyD.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-2Q5K7J3B-DqQKGA7q.js → chunk-2Q5K7J3B-Cxnxf36E.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5RXB4S5H-CgMKpJBB.js → chunk-5RXB4S5H-D9RG3G_x.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-5VM5RSS4-BpToUlaW.js → chunk-5VM5RSS4-Zz9jgjLX.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-6Q2QTUOP-BsEWOHxv.js → chunk-6Q2QTUOP-BCggDRCH.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-GF5L2VYU-CKGSCe71.js → chunk-GF5L2VYU-CFg-5iAS.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-JWPE2WC7-Bm1U5299.js → chunk-JWPE2WC7-DRQTE8x_.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-KBJHAD2P-BI0ov870.js → chunk-KBJHAD2P-C_Dw7uZ8.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-RYQCIY6F-BmnQo0iJ.js → chunk-RYQCIY6F-BjIiApsk.js} +1 -1
- package/dist/worker/console/static/assets/{chunk-XXDRQBXY-BJBqa6Xc.js → chunk-XXDRQBXY-B5XQD4KG.js} +1 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-BU3IjVEe.js +1 -0
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-BU3IjVEe.js +1 -0
- package/dist/worker/console/static/assets/{cose-bilkent-JH36ORCC-BuN9-7AR.js → cose-bilkent-JH36ORCC-huHqH6WQ.js} +1 -1
- package/dist/worker/console/static/assets/{cynefin-VYW2F7L2-Bw22jc2k.js → cynefin-VYW2F7L2-BSi6yZqP.js} +1 -1
- package/dist/worker/console/static/assets/{cynefinDiagram-MW4NZA55-BHnSH8Dr.js → cynefinDiagram-MW4NZA55-Bs_Jp31y.js} +1 -1
- package/dist/worker/console/static/assets/{dagre-VZM6K2ZE-BoXXIegj.js → dagre-VZM6K2ZE-CYxavikT.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-7IWD3JNH-CU8qyPhT.js → diagram-7IWD3JNH-B6TErl71.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-B4RE2ZJO-lrjhF0S8.js → diagram-B4RE2ZJO-CvH4J2ii.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-LBJQPF4R-DL0QDEpo.js → diagram-LBJQPF4R-v1NBAqXS.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-Q27KOJAE-DxVMJMBH.js → diagram-Q27KOJAE-CUNHVAn2.js} +1 -1
- package/dist/worker/console/static/assets/{diagram-UB23O5K3-CFg9FzvG.js → diagram-UB23O5K3-Dzz1gUu-.js} +1 -1
- package/dist/worker/console/static/assets/{ebnfDiagram-BXEA7PRR-CQgP9fTG.js → ebnfDiagram-BXEA7PRR-CCF8_LjK.js} +1 -1
- package/dist/worker/console/static/assets/{erDiagram-JOGREHBK-A5vQXx9U.js → erDiagram-JOGREHBK-DObdPVLa.js} +1 -1
- package/dist/worker/console/static/assets/{flowDiagram-UKHOOZJN-ytXnLyXD.js → flowDiagram-UKHOOZJN-DlN8Pxrj.js} +1 -1
- package/dist/worker/console/static/assets/{ganttDiagram-PKOTCBZU-CYuksfnS.js → ganttDiagram-PKOTCBZU-BJKIPTGX.js} +1 -1
- package/dist/worker/console/static/assets/{gitGraphDiagram-DS77QQ5N-f_jW3zgU.js → gitGraphDiagram-DS77QQ5N-XcSSnObi.js} +1 -1
- package/dist/worker/console/static/assets/index-CIYzS16i.css +1 -0
- package/dist/worker/console/static/assets/index-CS3QOTfl.js +451 -0
- package/dist/worker/console/static/assets/{infoDiagram-6WML65LV-C3HLE-xV.js → infoDiagram-6WML65LV-BKrRKMww.js} +1 -1
- package/dist/worker/console/static/assets/{ishikawaDiagram-WSZJBQD7-DwpgejS6.js → ishikawaDiagram-WSZJBQD7-CN5dk-yb.js} +1 -1
- package/dist/worker/console/static/assets/{journeyDiagram-NVQOT4AX-ll0YWX1y.js → journeyDiagram-NVQOT4AX-B4P4KZ-Y.js} +1 -1
- package/dist/worker/console/static/assets/{kanban-definition-27J2QSJJ-Hq3rchvU.js → kanban-definition-27J2QSJJ-BRlteP32.js} +1 -1
- package/dist/worker/console/static/assets/{linear-BaGjJx8z.js → linear-CG8D9fuL.js} +1 -1
- package/dist/worker/console/static/assets/{mermaid.core-CKGQHWX_.js → mermaid.core-BuB6P2rX.js} +5 -5
- package/dist/worker/console/static/assets/{mindmap-definition-FAOFIHXS-DM1FA6Dr.js → mindmap-definition-FAOFIHXS-DYXGl_DR.js} +1 -1
- package/dist/worker/console/static/assets/{pegDiagram-VL7TDLO6-Xa9fHkE2.js → pegDiagram-VL7TDLO6-BM48yEVG.js} +1 -1
- package/dist/worker/console/static/assets/{pieDiagram-7S7Q4E2Y-pCd4PDqJ.js → pieDiagram-7S7Q4E2Y-mT8NL-Ow.js} +1 -1
- package/dist/worker/console/static/assets/{quadrantDiagram-CIZ2JOQS-KqjpEBLk.js → quadrantDiagram-CIZ2JOQS-C4pZ6DH_.js} +1 -1
- package/dist/worker/console/static/assets/{railroadDiagram-AXF67PYL-DgvR7LZD.js → railroadDiagram-AXF67PYL-BKAcr70m.js} +1 -1
- package/dist/worker/console/static/assets/{requirementDiagram-LRYGKXZP-Bys1UCWA.js → requirementDiagram-LRYGKXZP-CRxcKpoO.js} +1 -1
- package/dist/worker/console/static/assets/{sankeyDiagram-W5VNT64P-Ms9npnZt.js → sankeyDiagram-W5VNT64P-Ds4LxQDI.js} +1 -1
- package/dist/worker/console/static/assets/{sequenceDiagram-SI44F4Z6-DEIWrtQZ.js → sequenceDiagram-SI44F4Z6-CPLwPf_p.js} +1 -1
- package/dist/worker/console/static/assets/{sizeCapture-X5ZJPWSS-DELJ0AhZ.js → sizeCapture-X5ZJPWSS-CL65uij0.js} +1 -1
- package/dist/worker/console/static/assets/{stateDiagram-OKZ733FA-BpHt9wKh.js → stateDiagram-OKZ733FA-CO0Mgd1W.js} +1 -1
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BUewAVYS.js +1 -0
- package/dist/worker/console/static/assets/{swimlanes-SLNWSIFB-GKRsBluT.js → swimlanes-SLNWSIFB-Cxv3TSNw.js} +2 -2
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-Bhe67Wjl.js +8 -0
- package/dist/worker/console/static/assets/{timeline-definition-Z64GVDOM-Cwsq1DxL.js → timeline-definition-Z64GVDOM-Dw85f9L2.js} +1 -1
- package/dist/worker/console/static/assets/{vennDiagram-T6HMQDX7-CfaqtKx0.js → vennDiagram-T6HMQDX7-B4QLCqCy.js} +1 -1
- package/dist/worker/console/static/assets/{wardleyDiagram-T6FBY63Y-BlEUtK_g.js → wardleyDiagram-T6FBY63Y-B_yKCWwn.js} +1 -1
- package/dist/worker/console/static/assets/{xychartDiagram-ELKLHX3M-CHSRXPvO.js → xychartDiagram-ELKLHX3M-nniBEGv2.js} +1 -1
- package/dist/worker/console/static/index.html +2 -2
- package/dist/worker/console/static-src/operator-chat/chat-sse-events.js +95 -25
- package/dist/worker/console/static-src/operator-chat/compaction-message.js +35 -1
- package/dist/worker/console/static-src/operator-chat/open-preview-in-browser.js +3 -1
- package/dist/worker/console/static-src/operator-chat/spatial-overlay.js +1 -2
- package/dist/worker/console/static-src/operator-chat/useChatSessions.js +26 -19
- package/dist/worker/console/static-src/operator-chat/useChatStream.js +0 -11
- package/dist/worker/console/static-src/operator-chat/useChatThread.js +14 -1
- package/dist/worker/console/static-src/operator-chat/useRepoBrowser.js +34 -4
- package/dist/worker/console/static-src/operator-chat/useRuntimeControls.js +28 -3
- package/dist/worker/console/static-src/operator-chat/workspace-reorder.js +18 -0
- package/dist/worker/console/static-src/shell/useWorkspaces.js +150 -34
- package/dist/worker/console/static-src/shell/workspace-route.js +3 -1
- package/dist/worker/console/workspace-context.js +28 -3
- package/dist/worker/console/workspace-registry.js +333 -60
- package/dist/worker/observe/static/inspect-bootstrap.d.ts +8 -0
- package/dist/worker/observe/static/inspect-bootstrap.js +57 -0
- package/dist/worker/observe/static/inspect-workspace.js +54 -10
- package/dist/worker/observe/static/operator-chrome.css +23 -4
- package/dist/worker/observe/static/operator-chrome.js +7 -2
- package/dist/worker/observe/static/styles.css +87 -25
- package/dist/worker/observe/static/views/dag-inspector.js +42 -1
- package/dist/worker/observe/static/views/dags.js +7 -5
- package/dist/worker/observe/static/views/session-timeline.js +135 -0
- package/dist/workflows/dag/backend-test-case-coverage-analysis.js +162 -8
- package/dist/workflows/dag/backend-test-pytest-collection.js +70 -2
- package/dist/workflows/dag/backend-test-result-contract.js +5 -1
- package/dist/workflows/dag/backend-test-scenario-param.js +339 -53
- package/dist/workflows/dag/backend-test-writer-completeness.js +18 -12
- package/dist/workflows/dag/init-hybrid.js +32 -9
- package/dist/workflows/dag/types.js +13 -0
- package/docs/architecture/runtime-boundaries.md +2 -1
- package/docs/templates/agent-dag.schema.json +18 -0
- package/docs/templates/backend-test-dag.json +27 -9
- package/docs/templates/init-managed-agents.md +1 -1
- package/package.json +3 -2
- package/skills/loop-agent/references/command-reference.md +15 -1
- package/dist/worker/console/static/assets/channel-CrzAa3FA.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-JCYQIIEL-B7QwCCb4.js +0 -1
- package/dist/worker/console/static/assets/classDiagram-v2-OCEON4UE-B7QwCCb4.js +0 -1
- package/dist/worker/console/static/assets/index-BB6KxwT_.css +0 -1
- package/dist/worker/console/static/assets/index-D_wxbadT.js +0 -407
- package/dist/worker/console/static/assets/stateDiagram-v2-UEYNNEHI-BEeSswlv.js +0 -1
- package/dist/worker/console/static/assets/swimlanesDiagram-ULZ7WXOC-B2m_wca8.js +0 -8
- package/dist/worker/console/static-src/operator-chat/activity-rail-presentation.js +0 -73
- package/dist/worker/console/static-src/operator-chat/useActivityRailTransition.js +0 -59
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as r,b as e,a,S as s}from"./chunk-5RXB4S5H-CgMKpJBB.js";import{_ as i}from"./mermaid.core-CKGQHWX_.js";import"./chunk-XXDRQBXY-BJBqa6Xc.js";import"./chunk-KBJHAD2P-BI0ov870.js";import"./chunk-2GRJ4B5K-DaxXQayc.js";import"./index-D_wxbadT.js";var u={parser:a,get db(){return new s(2)},renderer:e,styles:r,init:i(t=>{t.state||(t.state={}),t.state.arrowMarkerAbsolute=t.arrowMarkerAbsolute},"init")};export{u as diagram};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import{c as r,s as e}from"./flowDiagram-UKHOOZJN-ytXnLyXD.js";import{_ as a}from"./mermaid.core-CKGQHWX_.js";import"./chunk-5VM5RSS4-BpToUlaW.js";import"./chunk-XXDRQBXY-BJBqa6Xc.js";import"./chunk-KBJHAD2P-BI0ov870.js";import"./chunk-2GRJ4B5K-DaxXQayc.js";import"./channel-CrzAa3FA.js";import"./index-D_wxbadT.js";var o=a(t=>`${e(t)}
|
|
2
|
-
.swimlane.cluster rect {
|
|
3
|
-
stroke: ${t.clusterBorder} !important;
|
|
4
|
-
}
|
|
5
|
-
[data-look="neo"].cluster rect {
|
|
6
|
-
filter: none;
|
|
7
|
-
}
|
|
8
|
-
`,"getStyles"),s=o,n=r({defaultLayout:"swimlane",styles:s});export{n as diagram};
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { useLayoutEffect, useState } from "react";
|
|
2
|
-
export const ACTIVITY_RAIL_WIDTH = 420;
|
|
3
|
-
export const ACTIVITY_RAIL_GAP = 12;
|
|
4
|
-
/**
|
|
5
|
-
* Resolve Activity Rail placement from the actual free space to the right of
|
|
6
|
-
* ChatMain. Activity presence is deliberately not an input: session data may
|
|
7
|
-
* show/hide the Rail, but it must never change the conversation geometry.
|
|
8
|
-
*/
|
|
9
|
-
export function resolveActivityRailPresentation(input) {
|
|
10
|
-
if (input.layoutMode === "narrow")
|
|
11
|
-
return "sheet";
|
|
12
|
-
const railWidth = input.railWidth ?? ACTIVITY_RAIL_WIDTH;
|
|
13
|
-
const gap = input.gap ?? ACTIVITY_RAIL_GAP;
|
|
14
|
-
const available = input.viewportWidth - input.mainRight;
|
|
15
|
-
return available >= railWidth + gap ? "sidecar" : "drawer";
|
|
16
|
-
}
|
|
17
|
-
const INITIAL = {
|
|
18
|
-
presentation: "drawer",
|
|
19
|
-
sidecarRect: null,
|
|
20
|
-
};
|
|
21
|
-
/** Measure ChatMain without feeding Activity state back into the page layout. */
|
|
22
|
-
export function useActivityRailPresentation(mainRef, layoutMode, refreshKey) {
|
|
23
|
-
const [snapshot, setSnapshot] = useState(INITIAL);
|
|
24
|
-
useLayoutEffect(() => {
|
|
25
|
-
const main = mainRef.current;
|
|
26
|
-
if (!main)
|
|
27
|
-
return;
|
|
28
|
-
const verticalAnchor = main.closest(".panel--chat") ?? main;
|
|
29
|
-
let frame = 0;
|
|
30
|
-
const measure = () => {
|
|
31
|
-
window.cancelAnimationFrame(frame);
|
|
32
|
-
frame = window.requestAnimationFrame(() => {
|
|
33
|
-
const rect = main.getBoundingClientRect();
|
|
34
|
-
const verticalRect = verticalAnchor.getBoundingClientRect();
|
|
35
|
-
const presentation = resolveActivityRailPresentation({
|
|
36
|
-
layoutMode,
|
|
37
|
-
viewportWidth: window.innerWidth,
|
|
38
|
-
mainRight: rect.right,
|
|
39
|
-
});
|
|
40
|
-
const sidecarRect = presentation === "sidecar"
|
|
41
|
-
? {
|
|
42
|
-
top: verticalRect.top,
|
|
43
|
-
left: rect.right + ACTIVITY_RAIL_GAP,
|
|
44
|
-
height: verticalRect.height,
|
|
45
|
-
width: ACTIVITY_RAIL_WIDTH,
|
|
46
|
-
}
|
|
47
|
-
: null;
|
|
48
|
-
setSnapshot((current) => {
|
|
49
|
-
if (current.presentation === presentation &&
|
|
50
|
-
current.sidecarRect?.top === sidecarRect?.top &&
|
|
51
|
-
current.sidecarRect?.left === sidecarRect?.left &&
|
|
52
|
-
current.sidecarRect?.height === sidecarRect?.height &&
|
|
53
|
-
current.sidecarRect?.width === sidecarRect?.width) {
|
|
54
|
-
return current;
|
|
55
|
-
}
|
|
56
|
-
return { presentation, sidecarRect };
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
};
|
|
60
|
-
measure();
|
|
61
|
-
const observer = new ResizeObserver(measure);
|
|
62
|
-
observer.observe(main);
|
|
63
|
-
if (verticalAnchor !== main)
|
|
64
|
-
observer.observe(verticalAnchor);
|
|
65
|
-
window.addEventListener("resize", measure);
|
|
66
|
-
return () => {
|
|
67
|
-
window.cancelAnimationFrame(frame);
|
|
68
|
-
observer.disconnect();
|
|
69
|
-
window.removeEventListener("resize", measure);
|
|
70
|
-
};
|
|
71
|
-
}, [layoutMode, mainRef, refreshKey]);
|
|
72
|
-
return snapshot;
|
|
73
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { useEffect, useMemo, useRef, useState } from "react";
|
|
2
|
-
export const ACTIVITY_RAIL_ENTER_MS = 160;
|
|
3
|
-
export const ACTIVITY_RAIL_LEAVE_MS = 120;
|
|
4
|
-
export const ACTIVITY_RAIL_SWITCH_MS = 120;
|
|
5
|
-
export function activityRailSnapshotTotal(snapshot) {
|
|
6
|
-
if (!snapshot)
|
|
7
|
-
return 0;
|
|
8
|
-
return (snapshot.operationCards.length +
|
|
9
|
-
snapshot.humanGateCards.length +
|
|
10
|
-
snapshot.artifactCards.length);
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Keep the Rail shell independent from ChatMain while sessions change. Old
|
|
14
|
-
* content is non-interactive during the short switching/leaving phase, then is
|
|
15
|
-
* replaced or removed without ever changing conversation geometry.
|
|
16
|
-
*/
|
|
17
|
-
export function useActivityRailTransition(current) {
|
|
18
|
-
const currentTotal = activityRailSnapshotTotal(current);
|
|
19
|
-
const [state, setState] = useState(() => currentTotal > 0
|
|
20
|
-
? { phase: "visible", snapshot: current }
|
|
21
|
-
: { phase: "hidden", snapshot: null });
|
|
22
|
-
const stateRef = useRef(state);
|
|
23
|
-
stateRef.current = state;
|
|
24
|
-
const currentKey = useMemo(() => `${current?.sessionId ?? "none"}:${currentTotal}`, [current?.sessionId, currentTotal]);
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
const timers = [];
|
|
27
|
-
const displayed = stateRef.current.snapshot;
|
|
28
|
-
if (!current || currentTotal === 0) {
|
|
29
|
-
if (!displayed) {
|
|
30
|
-
setState({ phase: "hidden", snapshot: null });
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
setState({ phase: "leaving", snapshot: displayed });
|
|
34
|
-
timers.push(window.setTimeout(() => {
|
|
35
|
-
setState({ phase: "hidden", snapshot: null });
|
|
36
|
-
}, ACTIVITY_RAIL_LEAVE_MS));
|
|
37
|
-
}
|
|
38
|
-
else if (!displayed) {
|
|
39
|
-
setState({ phase: "entering", snapshot: current });
|
|
40
|
-
timers.push(window.setTimeout(() => {
|
|
41
|
-
setState({ phase: "visible", snapshot: current });
|
|
42
|
-
}, ACTIVITY_RAIL_ENTER_MS));
|
|
43
|
-
}
|
|
44
|
-
else if (displayed.sessionId !== current.sessionId) {
|
|
45
|
-
setState({ phase: "switching", snapshot: current });
|
|
46
|
-
timers.push(window.setTimeout(() => {
|
|
47
|
-
setState({ phase: "visible", snapshot: current });
|
|
48
|
-
}, ACTIVITY_RAIL_SWITCH_MS));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
setState({ phase: "visible", snapshot: current });
|
|
52
|
-
}
|
|
53
|
-
return () => {
|
|
54
|
-
for (const timer of timers)
|
|
55
|
-
window.clearTimeout(timer);
|
|
56
|
-
};
|
|
57
|
-
}, [current, currentKey, currentTotal]);
|
|
58
|
-
return state;
|
|
59
|
-
}
|