You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: apps/website/content/docs/ag-ui/api/api-docs.json
+6Lines changed: 6 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -461,6 +461,12 @@
461
461
"description": "Full interrupt batch and its request ownership phase.",
462
462
"optional": false
463
463
},
464
+
{
465
+
"name": "isInputBlocked",
466
+
"type": "Signal<boolean>",
467
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
Await `agent.ready` before rendering restored approval controls; actions also wait for hydration. An interrupted in-flight claim restores as uncertain, and an acknowledged attempt requires recovery. Configure `persistence.reconcile(record)` to obtain an authoritative backend outcome and call `agent.reconcileInterrupt()` to apply it. The callback returns `unknown`, or `pending`, `acknowledged`, or `completed` with authoritative `committed` and `session` snapshots. An unknown outcome keeps recovery blocked. The adapter does not provide a backend reconciliation endpoint, and stored client state cannot recreate a checkpoint lost by a restarted `MemorySaver` process.
170
170
171
+
The optional `isInputBlocked` signal disables ordinary chat input during hydration, reconciliation, and unresolved interrupt phases. The built-in composer preserves drafts while blocked; approval controls still submit through the resume path.
172
+
171
173
Providers dispose the adapter with their injector. If you create it with `toAgent()` directly, call `agent.dispose()` when finished. Disposal unsubscribes and stops local work; it does not delete or cancel backend checkpoints.
Copy file name to clipboardExpand all lines: apps/website/content/docs/chat/api/api-docs.json
+19-1Lines changed: 19 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -5996,6 +5996,12 @@
5996
5996
"description": "Optional display projection of the pending interrupt. A runtime may expose\na separate full batch and lifecycle surface. A cleared display projection\ndoes not by itself prove that resumed backend work completed.",
5997
5997
"optional": true
5998
5998
},
5999
+
{
6000
+
"name": "isInputBlocked",
6001
+
"type": "Signal<boolean>",
6002
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
6003
+
"optional": true
6004
+
},
5999
6005
{
6000
6006
"name": "isLoading",
6001
6007
"type": "Signal<boolean>",
@@ -6316,6 +6322,12 @@
6316
6322
"description": "Optional display projection of the pending interrupt. A runtime may expose\na separate full batch and lifecycle surface. A cleared display projection\ndoes not by itself prove that resumed backend work completed.",
6317
6323
"optional": true
6318
6324
},
6325
+
{
6326
+
"name": "isInputBlocked",
6327
+
"type": "Signal<boolean>",
6328
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
6329
+
"optional": true
6330
+
},
6319
6331
{
6320
6332
"name": "isLoading",
6321
6333
"type": "Signal<boolean>",
@@ -7496,6 +7508,12 @@
7496
7508
"description": "Optional display projection of the pending interrupt. A runtime may expose\na separate full batch and lifecycle surface. A cleared display projection\ndoes not by itself prove that resumed backend work completed.",
7497
7509
"optional": true
7498
7510
},
7511
+
{
7512
+
"name": "isInputBlocked",
7513
+
"type": "Signal<boolean>",
7514
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
7515
+
"optional": true
7516
+
},
7499
7517
{
7500
7518
"name": "isLoading",
7501
7519
"type": "WritableSignal<boolean>",
@@ -9652,7 +9670,7 @@
9652
9670
{
9653
9671
"name": "submitMessage",
9654
9672
"kind": "function",
9655
-
"description": "Submits a trimmed message to the agent.\nReturns the trimmed string on success, or `null` if the input was empty.",
9673
+
"description": "Submits a trimmed message to the agent.\nReturns the trimmed string on dispatch, or `null` for empty or blocked input.",
Copy file name to clipboardExpand all lines: apps/website/content/docs/langgraph/api/api-docs.json
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1534,6 +1534,12 @@
1534
1534
"description": "Current human-in-the-loop pause, or `undefined` when the run is not paused.\n\nNarrowed from the neutral `Agent` contract, where `interrupt` is optional\nbecause a runtime without human-in-the-loop support omits it. The LangGraph\nadapter always provides it, so `injectAgent().interrupt()` type-checks\ndirectly under `strictNullChecks` — no `?.()` needed.",
1535
1535
"optional": false
1536
1536
},
1537
+
{
1538
+
"name": "isInputBlocked",
1539
+
"type": "Signal<boolean>",
1540
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
1541
+
"optional": true
1542
+
},
1537
1543
{
1538
1544
"name": "isLoading",
1539
1545
"type": "Signal<boolean>",
@@ -1968,6 +1974,12 @@
1968
1974
"description": "Current human-in-the-loop pause, or `undefined` when the run is not paused.\n\nNarrowed from the neutral `Agent` contract, where `interrupt` is optional\nbecause a runtime without human-in-the-loop support omits it. The LangGraph\nadapter always provides it, so `injectAgent().interrupt()` type-checks\ndirectly under `strictNullChecks` — no `?.()` needed.",
1969
1975
"optional": false
1970
1976
},
1977
+
{
1978
+
"name": "isInputBlocked",
1979
+
"type": "Signal<boolean>",
1980
+
"description": "Optional gate for ordinary composer input while the runtime requires resolution or recovery. Resume actions remain adapter-controlled.",
0 commit comments