@stigmer/react 3.0.8-dev.20260612122433 → 3.0.8-dev.20260613051837
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/execution/ExecutionProgress.d.ts.map +1 -1
- package/execution/ExecutionProgress.js +5 -1
- package/execution/ExecutionProgress.js.map +1 -1
- package/execution/MessageThread.d.ts +32 -3
- package/execution/MessageThread.d.ts.map +1 -1
- package/execution/MessageThread.js +59 -10
- package/execution/MessageThread.js.map +1 -1
- package/execution/useExecutionStream.d.ts +76 -5
- package/execution/useExecutionStream.d.ts.map +1 -1
- package/execution/useExecutionStream.js +166 -23
- package/execution/useExecutionStream.js.map +1 -1
- package/internal/VirtualizedThread.d.ts +3 -1
- package/internal/VirtualizedThread.d.ts.map +1 -1
- package/internal/VirtualizedThread.js +4 -2
- package/internal/VirtualizedThread.js.map +1 -1
- package/internal/backoff.d.ts +61 -0
- package/internal/backoff.d.ts.map +1 -0
- package/internal/backoff.js +79 -0
- package/internal/backoff.js.map +1 -0
- package/internal/store/conversation-store.d.ts +34 -0
- package/internal/store/conversation-store.d.ts.map +1 -1
- package/internal/store/conversation-store.js +50 -2
- package/internal/store/conversation-store.js.map +1 -1
- package/internal/store/workflow-execution-event-store.d.ts +12 -0
- package/internal/store/workflow-execution-event-store.d.ts.map +1 -1
- package/internal/store/workflow-execution-event-store.js +7 -0
- package/internal/store/workflow-execution-event-store.js.map +1 -1
- package/internal/stream-controller.d.ts +57 -21
- package/internal/stream-controller.d.ts.map +1 -1
- package/internal/stream-controller.js +117 -3
- package/internal/stream-controller.js.map +1 -1
- package/internal/useFetch.d.ts +7 -0
- package/internal/useFetch.d.ts.map +1 -1
- package/internal/useFetch.js +21 -0
- package/internal/useFetch.js.map +1 -1
- package/package.json +4 -4
- package/session/SessionViewer.js +26 -1
- package/session/SessionViewer.js.map +1 -1
- package/session/useSessionConversation.d.ts +41 -4
- package/session/useSessionConversation.d.ts.map +1 -1
- package/session/useSessionConversation.js +74 -10
- package/session/useSessionConversation.js.map +1 -1
- package/session/useSessionExecutions.d.ts +17 -1
- package/session/useSessionExecutions.d.ts.map +1 -1
- package/session/useSessionExecutions.js +6 -2
- package/session/useSessionExecutions.js.map +1 -1
- package/src/execution/ExecutionProgress.tsx +12 -0
- package/src/execution/MessageThread.tsx +174 -5
- package/src/execution/__tests__/MessageThread.test.tsx +64 -0
- package/src/execution/__tests__/useExecutionStream.test.tsx +279 -0
- package/src/execution/useExecutionStream.ts +254 -34
- package/src/internal/VirtualizedThread.tsx +7 -1
- package/src/internal/__tests__/backoff.test.ts +99 -0
- package/src/internal/__tests__/stream-controller.test.ts +165 -10
- package/src/internal/__tests__/useFetch.test.tsx +59 -0
- package/src/internal/backoff.ts +100 -0
- package/src/internal/store/__tests__/conversation-store.test.ts +61 -0
- package/src/internal/store/conversation-store.ts +68 -3
- package/src/internal/store/workflow-execution-event-store.ts +22 -0
- package/src/internal/stream-controller.ts +151 -26
- package/src/internal/useFetch.ts +26 -0
- package/src/session/SessionViewer.tsx +89 -0
- package/src/session/__tests__/useSessionConversation.test.tsx +53 -0
- package/src/session/useSessionConversation.ts +121 -15
- package/src/session/useSessionExecutions.ts +23 -1
- package/src/workflow/WorkflowExecutionHeader.tsx +4 -1
- package/src/workflow/WorkflowExecutionTimeline.tsx +2 -1
- package/src/workflow/__tests__/useWorkflowExecutionEventStream.test.tsx +117 -1
- package/src/workflow/execution/useWaterfallEntries.ts +2 -1
- package/src/workflow/useWorkflowExecutionEventStream.ts +122 -41
- package/src/workflow/waterfall/WaterfallTimeline.tsx +2 -1
- package/styles.css +1 -1
- package/workflow/WorkflowExecutionHeader.d.ts.map +1 -1
- package/workflow/WorkflowExecutionHeader.js +3 -1
- package/workflow/WorkflowExecutionHeader.js.map +1 -1
- package/workflow/WorkflowExecutionTimeline.d.ts.map +1 -1
- package/workflow/WorkflowExecutionTimeline.js +1 -1
- package/workflow/WorkflowExecutionTimeline.js.map +1 -1
- package/workflow/execution/useWaterfallEntries.d.ts.map +1 -1
- package/workflow/execution/useWaterfallEntries.js +1 -1
- package/workflow/execution/useWaterfallEntries.js.map +1 -1
- package/workflow/useWorkflowExecutionEventStream.d.ts +32 -4
- package/workflow/useWorkflowExecutionEventStream.d.ts.map +1 -1
- package/workflow/useWorkflowExecutionEventStream.js +75 -32
- package/workflow/useWorkflowExecutionEventStream.js.map +1 -1
- package/workflow/waterfall/WaterfallTimeline.d.ts.map +1 -1
- package/workflow/waterfall/WaterfallTimeline.js +1 -1
- package/workflow/waterfall/WaterfallTimeline.js.map +1 -1
|
@@ -14,6 +14,8 @@ const IDLE_STATE = { stage: "idle" };
|
|
|
14
14
|
export class ConversationStore {
|
|
15
15
|
_execution = null;
|
|
16
16
|
_streamState = IDLE_STATE;
|
|
17
|
+
_connectTimedOut = false;
|
|
18
|
+
_isSlow = false;
|
|
17
19
|
_listeners = new Set();
|
|
18
20
|
// -- Ingestion -----------------------------------------------------------
|
|
19
21
|
/**
|
|
@@ -38,15 +40,46 @@ export class ConversationStore {
|
|
|
38
40
|
this._streamState = state;
|
|
39
41
|
this._notify();
|
|
40
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Set the hard connect-timeout signal — the stream opened but no first
|
|
45
|
+
* snapshot arrived within the watchdog window even after a silent retry.
|
|
46
|
+
*
|
|
47
|
+
* Orthogonal to {@link setStreamState}: the stream may still be live, so
|
|
48
|
+
* this is **not** a lifecycle stage and deliberately does not touch the
|
|
49
|
+
* `error` stage (that is auto-reconnect's domain). Booleans are stable by
|
|
50
|
+
* value, so no snapshot caching is needed; listeners fire only on change.
|
|
51
|
+
*/
|
|
52
|
+
setConnectTimedOut(value) {
|
|
53
|
+
if (this._connectTimedOut === value)
|
|
54
|
+
return;
|
|
55
|
+
this._connectTimedOut = value;
|
|
56
|
+
this._notify();
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Set the soft slow-stall hint — the stream is non-terminal but has gone
|
|
60
|
+
* silent past the watchdog window. Purely informational ("still working,
|
|
61
|
+
* taking longer than usual"); cleared by the next snapshot. Never aborts.
|
|
62
|
+
*/
|
|
63
|
+
setSlow(value) {
|
|
64
|
+
if (this._isSlow === value)
|
|
65
|
+
return;
|
|
66
|
+
this._isSlow = value;
|
|
67
|
+
this._notify();
|
|
68
|
+
}
|
|
41
69
|
/**
|
|
42
70
|
* Reset to initial state. Used when the session identity changes
|
|
43
71
|
* or the hook unmounts.
|
|
44
72
|
*/
|
|
45
73
|
reset() {
|
|
46
|
-
const
|
|
74
|
+
const wasClean = this._execution === null &&
|
|
75
|
+
this._streamState.stage === "idle" &&
|
|
76
|
+
!this._connectTimedOut &&
|
|
77
|
+
!this._isSlow;
|
|
47
78
|
this._execution = null;
|
|
48
79
|
this._streamState = IDLE_STATE;
|
|
49
|
-
|
|
80
|
+
this._connectTimedOut = false;
|
|
81
|
+
this._isSlow = false;
|
|
82
|
+
if (!wasClean)
|
|
50
83
|
this._notify();
|
|
51
84
|
}
|
|
52
85
|
// -- useSyncExternalStore contract ---------------------------------------
|
|
@@ -68,6 +101,14 @@ export class ConversationStore {
|
|
|
68
101
|
getStreamState = () => {
|
|
69
102
|
return this._streamState;
|
|
70
103
|
};
|
|
104
|
+
/** Stable snapshot selector for the hard connect-timeout signal. */
|
|
105
|
+
getConnectTimedOut = () => {
|
|
106
|
+
return this._connectTimedOut;
|
|
107
|
+
};
|
|
108
|
+
/** Stable snapshot selector for the soft slow-stall hint. */
|
|
109
|
+
getSlow = () => {
|
|
110
|
+
return this._isSlow;
|
|
111
|
+
};
|
|
71
112
|
// -- Internal ------------------------------------------------------------
|
|
72
113
|
_notify() {
|
|
73
114
|
for (const listener of this._listeners) {
|
|
@@ -88,6 +129,13 @@ function streamStateEqual(a, b) {
|
|
|
88
129
|
a.executionId === b.executionId &&
|
|
89
130
|
a.error === b.error)
|
|
90
131
|
return true;
|
|
132
|
+
// Each retry bumps `attempt`, so two reconnecting states are only equal
|
|
133
|
+
// when the attempt matches — every attempt must re-notify subscribers.
|
|
134
|
+
if (a.stage === "reconnecting" &&
|
|
135
|
+
b.stage === "reconnecting" &&
|
|
136
|
+
a.executionId === b.executionId &&
|
|
137
|
+
a.attempt === b.attempt)
|
|
138
|
+
return true;
|
|
91
139
|
if ("executionId" in a && "executionId" in b)
|
|
92
140
|
return a.executionId === b.executionId;
|
|
93
141
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-store.js","sourceRoot":"","sources":["../../../src/internal/store/conversation-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"conversation-store.js","sourceRoot":"","sources":["../../../src/internal/store/conversation-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,18 @@ export type WorkflowEventStreamState = {
|
|
|
8
8
|
} | {
|
|
9
9
|
readonly stage: "streaming";
|
|
10
10
|
readonly executionId: string;
|
|
11
|
+
} | {
|
|
12
|
+
/**
|
|
13
|
+
* A non-terminal event stream drop is being retried in the background.
|
|
14
|
+
* Accumulated events stay visible and no error is surfaced until retries
|
|
15
|
+
* are exhausted. On reconnect the subscription resumes from the last
|
|
16
|
+
* received `sequence_number`, so no events are lost. `attempt` is the
|
|
17
|
+
* 1-based retry count; `error` is the transient cause (diagnostic only).
|
|
18
|
+
*/
|
|
19
|
+
readonly stage: "reconnecting";
|
|
20
|
+
readonly executionId: string;
|
|
21
|
+
readonly attempt: number;
|
|
22
|
+
readonly error: Error;
|
|
11
23
|
} | {
|
|
12
24
|
readonly stage: "complete";
|
|
13
25
|
readonly executionId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-execution-event-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workflow-execution-event-store.d.ts","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -323,6 +323,13 @@ function streamStateEqual(a, b) {
|
|
|
323
323
|
a.executionId === b.executionId &&
|
|
324
324
|
a.error === b.error)
|
|
325
325
|
return true;
|
|
326
|
+
// Each retry bumps `attempt`, so two reconnecting states are only equal
|
|
327
|
+
// when the attempt matches — every attempt must re-notify subscribers.
|
|
328
|
+
if (a.stage === "reconnecting" &&
|
|
329
|
+
b.stage === "reconnecting" &&
|
|
330
|
+
a.executionId === b.executionId &&
|
|
331
|
+
a.attempt === b.attempt)
|
|
332
|
+
return true;
|
|
326
333
|
if ("executionId" in a && "executionId" in b)
|
|
327
334
|
return a.executionId === b.executionId;
|
|
328
335
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-execution-event-store.js","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-execution-event-store.js","sourceRoot":"","sources":["../../../src/internal/store/workflow-execution-event-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kEAAkE,CAAC;AAgCrG,MAAM,UAAU,GAA6B,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AA8B/D,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,MAAM,kBAAkB,GAAuB;IAC7C,kBAAkB,EAAE,WAAW;IAC/B,mBAAmB,EAAE,cAAc;IACnC,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAE,cAAc;IAC/B,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAQF;;;;;;;;;;GAUG;AACH,MAAM,OAAO,2BAA2B;IAC9B,OAAO,GAAsC,EAAE,CAAC;IAChD,YAAY,GAA6B,UAAU,CAAC;IACpD,UAAU,GAAG,IAAI,GAAG,EAAY,CAAC;IAEjC,gBAAgB,GAAiD,IAAI,CAAC;IACtE,iBAAiB,GAA8B,IAAI,CAAC;IACpD,WAAW,GAAG,CAAC,CAAC;IAExB,2EAA2E;IAE3E;;;;OAIG;IACH,YAAY,CAAC,MAAyC;QACpD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;YACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc;YACtD,CAAC,CAAC,WAAW,CAAC;QAEhB,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC;QACtE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEnC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACtB,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;gBAAE,OAAO,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc;gBAAE,OAAO,CAAC,CAAC;YAClD,OAAO,CAAC,CAAC;QACX,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAE9B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IACE,GAAG,CAAC,SAAS,KAAK,iBAAiB,CAAC,iBAAiB;gBACrD,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,kBAAkB,EACvC,CAAC;gBACD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAClD,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,KAA+B;QAC5C,IAAI,gBAAgB,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;YAAE,OAAO;QACvD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,MAAM,QAAQ,GACZ,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,KAAK,MAAM,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;QACrB,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAChC,CAAC;IAED,0EAA0E;IAE1E,SAAS,GAAG,CAAC,QAAkB,EAAgB,EAAE;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC9B,OAAO,GAAG,EAAE;YACV,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,SAAS,GAAG,GAAsC,EAAE;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC,CAAC;IAEF,cAAc,GAAG,GAA6B,EAAE;QAC9C,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC,CAAC;IAEF,iBAAiB,GAAG,GAAW,EAAE;QAC/B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,WAAW,CAAC;QAClD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,cAAc,CAAC;IAC9D,CAAC,CAAC;IAEF,aAAa,GAAG,GAAW,EAAE;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC,CAAC;IAEF;;;;OAIG;IACH,aAAa,GAAG,GAA0C,EAAE;QAC1D,IAAI,IAAI,CAAC,gBAAgB;YAAE,OAAO,IAAI,CAAC,gBAAgB,CAAC;QACxD,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC,CAAC;IAEF;;;OAGG;IACH,cAAc,GAAG,GAAuB,EAAE;QACxC,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAC1D,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC,CAAC;IAEF,2EAA2E;IAEnE,OAAO;QACb,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF;AAED,8EAA8E;AAC9E,qBAAqB;AACrB,8EAA8E;AAE9E,SAAS,gBAAgB,CACvB,MAAyC;IAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QAEtB,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;YACf,KAAK,aAAa;gBAChB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,QAAQ;oBACR,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1B,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW;oBAC3C,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW;oBAC3C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;oBACpC,KAAK,EAAE,EAAE;oBACT,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE;oBAC9C,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;oBAChC,eAAe,EAAE,IAAI,EAAE,eAAe,IAAI,EAAE;oBAC5C,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC;oBACvC,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC;iBAC1C,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,eAAe;gBAClB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,QAAQ;oBACR,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1B,MAAM,EAAE,WAAW;oBACnB,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;oBACtC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;oBAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;oBAC9B,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC;oBACvC,KAAK,EAAE,EAAE;oBACT,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE;oBAC9C,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;oBAChC,eAAe,EAAE,EAAE;oBACnB,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC;oBACvC,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC;iBAC1C,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,YAAY;gBACf,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,QAAQ;oBACR,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;oBACjD,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;oBACtC,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW;oBAC3C,UAAU,EAAE,IAAI,EAAE,UAAU,IAAI,WAAW;oBAC3C,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;oBACpC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;oBACpB,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE;oBAC9C,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;oBAChC,eAAe,EAAE,EAAE;oBACnB,aAAa,EAAE,IAAI,EAAE,aAAa,IAAI,CAAC;oBACvC,cAAc,EAAE,IAAI,EAAE,cAAc,IAAI,CAAC;iBAC1C,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,aAAa;gBAChB,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;oBAChB,QAAQ;oBACR,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;oBAC1B,MAAM,EAAE,SAAS;oBACjB,UAAU,EAAE,CAAC;oBACb,UAAU,EAAE,WAAW;oBACvB,UAAU,EAAE,WAAW;oBACvB,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,EAAE;oBACT,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,IAAI,EAAE;oBAC9C,SAAS,EAAE,EAAE;oBACb,eAAe,EAAE,EAAE;oBACnB,aAAa,EAAE,CAAC;oBAChB,cAAc,EAAE,CAAC;iBAClB,CAAC,CAAC;gBACH,MAAM;YAER,KAAK,cAAc;gBACjB,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;gBACrD,CAAC;gBACD,MAAM;YAER,KAAK,kBAAkB;gBACrB,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAChB,GAAG,IAAI;wBACP,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;wBACnE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS;qBAC/C,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,mBAAmB;gBACtB,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAChB,GAAG,IAAI;wBACP,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB;wBACnE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;wBAChE,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa;wBAC1D,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc;wBAC7D,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW;4BAC9C,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc;4BACxB,CAAC,CAAC,IAAI,CAAC,UAAU;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE;wBAChB,GAAG,IAAI;wBACP,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;wBAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;wBAClC,eAAe,EAAE,EAAE;qBACpB,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,mBAAmB;gBACtB,IAAI,IAAI,EAAE,CAAC;oBACT,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAC;gBAC7D,CAAC;gBACD,MAAM;YAER,KAAK,kBAAkB;gBACrB,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,kBAAkB,EAAE,CAAC;oBAC/C,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAyC;IAEzC,4CAA4C;IAC5C,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAClC,OAAO;gBACL,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB;gBAC9C,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;gBAChD,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;gBACtC,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe;gBACxC,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,iBAAiB;aAC7C,CAAC;QACJ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,CAAC,IAAI,KAAK,oBAAoB,EAAE,CAAC;YACpC,OAAO;gBACL,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe;gBAC3C,mBAAmB,EAAE,cAAc;gBACnC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;gBACnC,eAAe,EAAE,cAAc;gBAC/B,iBAAiB,EAAE,KAAK;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,IAAI,SAAS,GAAG,WAAW,CAAC;IAC5B,IAAI,WAAW,GAAG,WAAW,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YACzC,SAAS,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;YAC1C,WAAW,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,IAAI,SAAS,GAAG,WAAW,IAAI,WAAW,GAAG,WAAW,EAAE,CAAC;QACzD,OAAO;YACL,kBAAkB,EAAE,SAAS;YAC7B,mBAAmB,EAAE,cAAc;YACnC,cAAc,EAAE,WAAW;YAC3B,eAAe,EAAE,cAAc;YAC/B,iBAAiB,EAAE,KAAK;SACzB,CAAC;IACJ,CAAC;IAED,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,SAAS,gBAAgB,CACvB,CAA2B,EAC3B,CAA2B;IAE3B,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpC,IACE,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,KAAK,KAAK,OAAO;QACnB,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAEnB,OAAO,IAAI,CAAC;IACd,wEAAwE;IACxE,uEAAuE;IACvE,IACE,CAAC,CAAC,KAAK,KAAK,cAAc;QAC1B,CAAC,CAAC,KAAK,KAAK,cAAc;QAC1B,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW;QAC/B,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO;QAEvB,OAAO,IAAI,CAAC;IACd,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,IAAI,CAAC;QAC1C,OAAO,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,WAAW,CAAC;IACzC,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
1
|
import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly executionId: string;
|
|
17
|
-
readonly error: Error;
|
|
18
|
-
};
|
|
2
|
+
import type { StreamState } from "./store/conversation-store";
|
|
3
|
+
/**
|
|
4
|
+
* Hard connect-timeout: time the stream may stay `connecting` (no first
|
|
5
|
+
* snapshot) before the watchdog acts. Sized well above a healthy connect
|
|
6
|
+
* (the server sends the initial snapshot in ~1 RTT) yet short enough that a
|
|
7
|
+
* silent hang surfaces an affordance within a few seconds, not minutes.
|
|
8
|
+
*/
|
|
9
|
+
export declare const DEFAULT_CONNECT_TIMEOUT_MS = 10000;
|
|
10
|
+
/**
|
|
11
|
+
* Soft slow-stall threshold: a non-terminal stream that produces no new
|
|
12
|
+
* snapshot for this long flips an informational "still working" hint. Long
|
|
13
|
+
* enough that ordinary model thinking-time never trips it.
|
|
14
|
+
*/
|
|
15
|
+
export declare const DEFAULT_SLOW_THRESHOLD_MS = 60000;
|
|
19
16
|
/**
|
|
20
17
|
* Callback interface for the stream controller to communicate with
|
|
21
18
|
* its host (the React hook). All mutations to external state go
|
|
@@ -25,7 +22,27 @@ export interface StreamControllerSink {
|
|
|
25
22
|
/** Ingest a snapshot into the store (applies structural sharing). */
|
|
26
23
|
ingestSnapshot(snapshot: AgentExecution): void;
|
|
27
24
|
/** Transition the store's stream lifecycle state. */
|
|
28
|
-
setStreamState(state:
|
|
25
|
+
setStreamState(state: StreamState): void;
|
|
26
|
+
/**
|
|
27
|
+
* The hard connect-timeout elapsed while still `connecting`. The host owns
|
|
28
|
+
* the self-heal-once-then-surface policy (it holds the `connectKey` reconnect
|
|
29
|
+
* counter and the per-subscription guard that survives a reconnect, which
|
|
30
|
+
* the controller — reset on every teardown — cannot).
|
|
31
|
+
*/
|
|
32
|
+
onConnectTimeout(): void;
|
|
33
|
+
/** Set or clear the soft slow-stall hint signal. */
|
|
34
|
+
setSlow(value: boolean): void;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Injectable watchdog configuration. Timers default to `setTimeout`/
|
|
38
|
+
* `clearTimeout`; tests pass fakes so the watchdog is exercised without real
|
|
39
|
+
* time. Mirrors the existing `scheduleFlush`/`cancelFlush` injection idiom.
|
|
40
|
+
*/
|
|
41
|
+
export interface StreamControllerWatchdog {
|
|
42
|
+
readonly setTimer?: (cb: () => void, ms: number) => number;
|
|
43
|
+
readonly clearTimer?: (id: number) => void;
|
|
44
|
+
readonly connectTimeoutMs?: number;
|
|
45
|
+
readonly slowThresholdMs?: number;
|
|
29
46
|
}
|
|
30
47
|
/**
|
|
31
48
|
* Framework-agnostic finite state machine that manages the lifecycle
|
|
@@ -48,9 +65,15 @@ export declare class StreamController {
|
|
|
48
65
|
private _sink;
|
|
49
66
|
private _scheduleFlush;
|
|
50
67
|
private _cancelFlush;
|
|
51
|
-
|
|
68
|
+
private _setTimer;
|
|
69
|
+
private _clearTimer;
|
|
70
|
+
private _connectTimeoutMs;
|
|
71
|
+
private _slowThresholdMs;
|
|
72
|
+
private _connectTimerId;
|
|
73
|
+
private _slowTimerId;
|
|
74
|
+
constructor(sink: StreamControllerSink, scheduleFlush?: (cb: () => void) => number, cancelFlush?: (id: number) => void, watchdog?: StreamControllerWatchdog);
|
|
52
75
|
/** Current FSM state (read-only). */
|
|
53
|
-
get state():
|
|
76
|
+
get state(): StreamState;
|
|
54
77
|
/**
|
|
55
78
|
* Transition to `connecting` for the given execution ID.
|
|
56
79
|
* If already active for a different ID, resets first.
|
|
@@ -62,6 +85,14 @@ export declare class StreamController {
|
|
|
62
85
|
* Terminal snapshots flush immediately.
|
|
63
86
|
*/
|
|
64
87
|
handleSnapshot(snapshot: AgentExecution): void;
|
|
88
|
+
/**
|
|
89
|
+
* Enter the `reconnecting` stage after a transient drop. Unlike
|
|
90
|
+
* {@link start}, this preserves the buffered snapshot and never resets the
|
|
91
|
+
* store, so the last-known-good conversation stays on screen while the
|
|
92
|
+
* background retry is in flight. No-op once idle (the subscription is
|
|
93
|
+
* already torn down).
|
|
94
|
+
*/
|
|
95
|
+
handleReconnecting(attempt: number, error: Error): void;
|
|
65
96
|
/**
|
|
66
97
|
* Handle stream completion (iterator exhausted without error).
|
|
67
98
|
* If we still have a buffered snapshot, flush it first.
|
|
@@ -72,7 +103,7 @@ export declare class StreamController {
|
|
|
72
103
|
* so the UI shows the last known good state alongside the error.
|
|
73
104
|
*/
|
|
74
105
|
handleError(error: Error): void;
|
|
75
|
-
/** Reset to idle. Cancels any pending flush. */
|
|
106
|
+
/** Reset to idle. Cancels any pending flush and watchdog timers. */
|
|
76
107
|
reset(): void;
|
|
77
108
|
/** Whether the controller has a buffered snapshot awaiting flush. */
|
|
78
109
|
get hasPendingFlush(): boolean;
|
|
@@ -81,5 +112,10 @@ export declare class StreamController {
|
|
|
81
112
|
private _scheduleFlushOnce;
|
|
82
113
|
private _flushBuffer;
|
|
83
114
|
private _cancelPendingFlush;
|
|
115
|
+
private _armConnectTimer;
|
|
116
|
+
private _armSlowTimer;
|
|
117
|
+
private _cancelConnectTimer;
|
|
118
|
+
private _cancelSlowTimer;
|
|
119
|
+
private _cancelWatchdogs;
|
|
84
120
|
}
|
|
85
121
|
//# sourceMappingURL=stream-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-controller.d.ts","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-controller.d.ts","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6DAA6D,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAe9D;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,QAAS,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/C,qDAAqD;IACrD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IACzC;;;;;OAKG;IACH,gBAAgB,IAAI,IAAI,CAAC;IACzB,oDAAoD;IACpD,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3D,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAMD;;;;;;;;;;;;;GAaG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,cAAc,CAA6B;IACnD,OAAO,CAAC,YAAY,CAAuB;IAG3C,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,YAAY,CAAuB;gBAGzC,IAAI,EAAE,oBAAoB,EAC1B,aAAa,GAAE,CAAC,EAAE,EAAE,MAAM,IAAI,KAAK,MAE4B,EAC/D,WAAW,GAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAEO,EACpC,QAAQ,CAAC,EAAE,wBAAwB;IAerC,qCAAqC;IACrC,IAAI,KAAK,IAAI,WAAW,CAEvB;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAWhC;;;;OAIG;IACH,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAiC9C;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAYvD;;;OAGG;IACH,eAAe,IAAI,IAAI;IAYvB;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAW/B,oEAAoE;IACpE,KAAK,IAAI,IAAI;IAUb,qEAAqE;IACrE,IAAI,eAAe,IAAI,OAAO,CAE7B;IAMD,OAAO,CAAC,kBAAkB;IAK1B,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,aAAa;IAarB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,gBAAgB;CAIzB"}
|
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { isTerminalPhase } from "../execution/execution-phases";
|
|
2
2
|
import { ExecutionPhase } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/enum_pb";
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
// Types
|
|
5
|
+
// ---------------------------------------------------------------------------
|
|
6
|
+
// The controller's FSM state is exactly the store's `StreamState` — they
|
|
7
|
+
// were once duplicated unions kept in lock-step by hand. The controller
|
|
8
|
+
// reuses the store's type so the lifecycle (including the `reconnecting`
|
|
9
|
+
// stage) is defined in one place and can never drift.
|
|
3
10
|
const IDLE = { stage: "idle" };
|
|
11
|
+
/**
|
|
12
|
+
* Hard connect-timeout: time the stream may stay `connecting` (no first
|
|
13
|
+
* snapshot) before the watchdog acts. Sized well above a healthy connect
|
|
14
|
+
* (the server sends the initial snapshot in ~1 RTT) yet short enough that a
|
|
15
|
+
* silent hang surfaces an affordance within a few seconds, not minutes.
|
|
16
|
+
*/
|
|
17
|
+
export const DEFAULT_CONNECT_TIMEOUT_MS = 10_000;
|
|
18
|
+
/**
|
|
19
|
+
* Soft slow-stall threshold: a non-terminal stream that produces no new
|
|
20
|
+
* snapshot for this long flips an informational "still working" hint. Long
|
|
21
|
+
* enough that ordinary model thinking-time never trips it.
|
|
22
|
+
*/
|
|
23
|
+
export const DEFAULT_SLOW_THRESHOLD_MS = 60_000;
|
|
4
24
|
// ---------------------------------------------------------------------------
|
|
5
25
|
// StreamController
|
|
6
26
|
// ---------------------------------------------------------------------------
|
|
@@ -25,14 +45,29 @@ export class StreamController {
|
|
|
25
45
|
_sink;
|
|
26
46
|
_scheduleFlush;
|
|
27
47
|
_cancelFlush;
|
|
48
|
+
// -- Watchdog ------------------------------------------------------------
|
|
49
|
+
_setTimer;
|
|
50
|
+
_clearTimer;
|
|
51
|
+
_connectTimeoutMs;
|
|
52
|
+
_slowThresholdMs;
|
|
53
|
+
_connectTimerId = null;
|
|
54
|
+
_slowTimerId = null;
|
|
28
55
|
constructor(sink, scheduleFlush = typeof requestAnimationFrame !== "undefined"
|
|
29
56
|
? (cb) => requestAnimationFrame(cb)
|
|
30
57
|
: (cb) => setTimeout(cb, 16), cancelFlush = typeof cancelAnimationFrame !== "undefined"
|
|
31
58
|
? (id) => cancelAnimationFrame(id)
|
|
32
|
-
: (id) => clearTimeout(id)) {
|
|
59
|
+
: (id) => clearTimeout(id), watchdog) {
|
|
33
60
|
this._sink = sink;
|
|
34
61
|
this._scheduleFlush = scheduleFlush;
|
|
35
62
|
this._cancelFlush = cancelFlush;
|
|
63
|
+
this._setTimer =
|
|
64
|
+
watchdog?.setTimer ??
|
|
65
|
+
((cb, ms) => setTimeout(cb, ms));
|
|
66
|
+
this._clearTimer = watchdog?.clearTimer ?? ((id) => clearTimeout(id));
|
|
67
|
+
this._connectTimeoutMs =
|
|
68
|
+
watchdog?.connectTimeoutMs ?? DEFAULT_CONNECT_TIMEOUT_MS;
|
|
69
|
+
this._slowThresholdMs =
|
|
70
|
+
watchdog?.slowThresholdMs ?? DEFAULT_SLOW_THRESHOLD_MS;
|
|
36
71
|
}
|
|
37
72
|
/** Current FSM state (read-only). */
|
|
38
73
|
get state() {
|
|
@@ -45,6 +80,11 @@ export class StreamController {
|
|
|
45
80
|
start(executionId) {
|
|
46
81
|
this._cancelPendingFlush();
|
|
47
82
|
this._bufferedSnapshot = null;
|
|
83
|
+
// Arm both watchdogs the moment we begin connecting. The connect-timeout
|
|
84
|
+
// guards the first snapshot; the slow-stall hint guards every quiet stretch
|
|
85
|
+
// thereafter. Both are reset by the next snapshot and cleared on any exit.
|
|
86
|
+
this._armConnectTimer();
|
|
87
|
+
this._armSlowTimer();
|
|
48
88
|
this._transition({ stage: "connecting", executionId });
|
|
49
89
|
}
|
|
50
90
|
/**
|
|
@@ -59,19 +99,47 @@ export class StreamController {
|
|
|
59
99
|
const phase = snapshot.status?.phase ?? ExecutionPhase.EXECUTION_PHASE_UNSPECIFIED;
|
|
60
100
|
const terminal = isTerminalPhase(phase);
|
|
61
101
|
if (terminal) {
|
|
102
|
+
this._cancelWatchdogs();
|
|
103
|
+
this._sink.setSlow(false);
|
|
62
104
|
this._cancelPendingFlush();
|
|
63
105
|
this._bufferedSnapshot = null;
|
|
64
106
|
this._sink.ingestSnapshot(snapshot);
|
|
65
107
|
this._transition({ stage: "complete", executionId });
|
|
66
108
|
}
|
|
67
109
|
else {
|
|
68
|
-
|
|
110
|
+
// A snapshot proves the (re)connection is healthy: the connect-timeout no
|
|
111
|
+
// longer applies, and the slow-stall window restarts from now.
|
|
112
|
+
this._cancelConnectTimer();
|
|
113
|
+
this._armSlowTimer();
|
|
114
|
+
// Advance from either the initial `connecting` or a `reconnecting` retry
|
|
115
|
+
// into `streaming`.
|
|
116
|
+
if (this._state.stage === "connecting" ||
|
|
117
|
+
this._state.stage === "reconnecting") {
|
|
69
118
|
this._transition({ stage: "streaming", executionId });
|
|
70
119
|
}
|
|
71
120
|
this._bufferedSnapshot = snapshot;
|
|
72
121
|
this._scheduleFlushOnce();
|
|
73
122
|
}
|
|
74
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* Enter the `reconnecting` stage after a transient drop. Unlike
|
|
126
|
+
* {@link start}, this preserves the buffered snapshot and never resets the
|
|
127
|
+
* store, so the last-known-good conversation stays on screen while the
|
|
128
|
+
* background retry is in flight. No-op once idle (the subscription is
|
|
129
|
+
* already torn down).
|
|
130
|
+
*/
|
|
131
|
+
handleReconnecting(attempt, error) {
|
|
132
|
+
const executionId = this._activeExecutionId();
|
|
133
|
+
if (!executionId)
|
|
134
|
+
return;
|
|
135
|
+
// Auto-reconnect (#174) has taken over with its own visible affordance and
|
|
136
|
+
// bounded attempt budget, so the silence watchdogs stand down — they exist
|
|
137
|
+
// for the case where the stream stalls *without* a drop. The slow hint is
|
|
138
|
+
// cleared so "reconnecting" and "slow" never show at once.
|
|
139
|
+
this._cancelWatchdogs();
|
|
140
|
+
this._sink.setSlow(false);
|
|
141
|
+
this._transition({ stage: "reconnecting", executionId, attempt, error });
|
|
142
|
+
}
|
|
75
143
|
/**
|
|
76
144
|
* Handle stream completion (iterator exhausted without error).
|
|
77
145
|
* If we still have a buffered snapshot, flush it first.
|
|
@@ -80,6 +148,8 @@ export class StreamController {
|
|
|
80
148
|
const executionId = this._activeExecutionId();
|
|
81
149
|
if (!executionId)
|
|
82
150
|
return;
|
|
151
|
+
this._cancelWatchdogs();
|
|
152
|
+
this._sink.setSlow(false);
|
|
83
153
|
this._flushBuffer();
|
|
84
154
|
if (this._state.stage !== "complete") {
|
|
85
155
|
this._transition({ stage: "complete", executionId });
|
|
@@ -93,12 +163,16 @@ export class StreamController {
|
|
|
93
163
|
const executionId = this._activeExecutionId();
|
|
94
164
|
if (!executionId)
|
|
95
165
|
return;
|
|
166
|
+
this._cancelWatchdogs();
|
|
167
|
+
this._sink.setSlow(false);
|
|
96
168
|
this._cancelPendingFlush();
|
|
97
169
|
this._flushBuffer();
|
|
98
170
|
this._transition({ stage: "error", executionId, error });
|
|
99
171
|
}
|
|
100
|
-
/** Reset to idle. Cancels any pending flush. */
|
|
172
|
+
/** Reset to idle. Cancels any pending flush and watchdog timers. */
|
|
101
173
|
reset() {
|
|
174
|
+
this._cancelWatchdogs();
|
|
175
|
+
this._sink.setSlow(false);
|
|
102
176
|
this._cancelPendingFlush();
|
|
103
177
|
this._bufferedSnapshot = null;
|
|
104
178
|
if (this._state.stage !== "idle") {
|
|
@@ -142,5 +216,45 @@ export class StreamController {
|
|
|
142
216
|
this._rafId = null;
|
|
143
217
|
}
|
|
144
218
|
}
|
|
219
|
+
// -- Watchdog timers ------------------------------------------------------
|
|
220
|
+
_armConnectTimer() {
|
|
221
|
+
this._cancelConnectTimer();
|
|
222
|
+
this._connectTimerId = this._setTimer(() => {
|
|
223
|
+
this._connectTimerId = null;
|
|
224
|
+
// Only meaningful while still awaiting the first snapshot; any later
|
|
225
|
+
// stage has its own handling and has already cleared this timer.
|
|
226
|
+
if (this._state.stage !== "connecting")
|
|
227
|
+
return;
|
|
228
|
+
this._sink.onConnectTimeout();
|
|
229
|
+
}, this._connectTimeoutMs);
|
|
230
|
+
}
|
|
231
|
+
_armSlowTimer() {
|
|
232
|
+
this._cancelSlowTimer();
|
|
233
|
+
// Re-arming means activity just resumed (or is starting), so a prior slow
|
|
234
|
+
// hint no longer holds — clear it before counting the next quiet stretch.
|
|
235
|
+
this._sink.setSlow(false);
|
|
236
|
+
this._slowTimerId = this._setTimer(() => {
|
|
237
|
+
this._slowTimerId = null;
|
|
238
|
+
if (this._state.stage !== "connecting" && this._state.stage !== "streaming")
|
|
239
|
+
return;
|
|
240
|
+
this._sink.setSlow(true);
|
|
241
|
+
}, this._slowThresholdMs);
|
|
242
|
+
}
|
|
243
|
+
_cancelConnectTimer() {
|
|
244
|
+
if (this._connectTimerId !== null) {
|
|
245
|
+
this._clearTimer(this._connectTimerId);
|
|
246
|
+
this._connectTimerId = null;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
_cancelSlowTimer() {
|
|
250
|
+
if (this._slowTimerId !== null) {
|
|
251
|
+
this._clearTimer(this._slowTimerId);
|
|
252
|
+
this._slowTimerId = null;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
_cancelWatchdogs() {
|
|
256
|
+
this._cancelConnectTimer();
|
|
257
|
+
this._cancelSlowTimer();
|
|
258
|
+
}
|
|
145
259
|
}
|
|
146
260
|
//# sourceMappingURL=stream-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-controller.js","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8DAA8D,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-controller.js","sourceRoot":"","sources":["../../src/internal/stream-controller.ts"],"names":[],"mappings":"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"}
|
package/internal/useFetch.d.ts
CHANGED
|
@@ -9,6 +9,13 @@ export interface UseFetchOptions {
|
|
|
9
9
|
* request piling on slow connections.
|
|
10
10
|
*/
|
|
11
11
|
readonly refetchInterval?: number | false;
|
|
12
|
+
/**
|
|
13
|
+
* Re-fetch when the window regains focus or the tab becomes visible
|
|
14
|
+
* again. Covers the app-relaunch / tab-switch case where data may have
|
|
15
|
+
* gone stale while the app was backgrounded. A focus refetch is skipped
|
|
16
|
+
* while a fetch is already in flight. Defaults to `false`.
|
|
17
|
+
*/
|
|
18
|
+
readonly refetchOnWindowFocus?: boolean;
|
|
12
19
|
/**
|
|
13
20
|
* Stable string key for cross-mount caching.
|
|
14
21
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAItF,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE1C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAClC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,CAAC,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"useFetch.d.ts","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAA4C,MAAM,OAAO,CAAC;AAItF,oCAAoC;AACpC,MAAM,WAAW,eAAe;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAE1C;;;;;OAKG;IACH,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAExC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,kFAAkF;IAClF,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;IAC/B,kEAAkE;IAClE,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC9B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EACxB,OAAO,EAAE,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAClC,IAAI,EAAE,cAAc,EACpB,WAAW,EAAE,CAAC,EACd,OAAO,CAAC,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC,CAmInB"}
|
package/internal/useFetch.js
CHANGED
|
@@ -117,6 +117,27 @@ export function useFetch(fetchFn, deps, initialData, options) {
|
|
|
117
117
|
}, refetchInterval);
|
|
118
118
|
return () => clearInterval(id);
|
|
119
119
|
}, [refetchInterval, fetchFn, refetch]);
|
|
120
|
+
const refetchOnWindowFocus = options?.refetchOnWindowFocus;
|
|
121
|
+
useEffect(() => {
|
|
122
|
+
if (!refetchOnWindowFocus || !fetchFn)
|
|
123
|
+
return;
|
|
124
|
+
if (typeof window === "undefined")
|
|
125
|
+
return;
|
|
126
|
+
const onActive = () => {
|
|
127
|
+
if (!isFetchingRef.current)
|
|
128
|
+
refetch();
|
|
129
|
+
};
|
|
130
|
+
const onVisible = () => {
|
|
131
|
+
if (document.visibilityState === "visible")
|
|
132
|
+
onActive();
|
|
133
|
+
};
|
|
134
|
+
window.addEventListener("focus", onActive);
|
|
135
|
+
document.addEventListener("visibilitychange", onVisible);
|
|
136
|
+
return () => {
|
|
137
|
+
window.removeEventListener("focus", onActive);
|
|
138
|
+
document.removeEventListener("visibilitychange", onVisible);
|
|
139
|
+
};
|
|
140
|
+
}, [refetchOnWindowFocus, fetchFn, refetch]);
|
|
120
141
|
const isLoading = isFetching && !hasDataRef.current;
|
|
121
142
|
const isRefetching = isFetching && hasDataRef.current;
|
|
122
143
|
return { data, isLoading, isRefetching, error, refetch };
|
package/internal/useFetch.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAuB,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"useFetch.js","sourceRoot":"","sources":["../../src/internal/useFetch.ts"],"names":[],"mappings":"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"}
|