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
{{ message }}
Repository navigation
Commit 1df3a77
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: docs/rfds/plan-operations.mdx
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,9 +32,9 @@ Add a new `SessionUpdate` variant — `plan_update` — that carries a `plan` fi
32
32
|`file`| Agent provides a file URI containing the plan |`uri: string`|
33
33
|`markdown`| Agent provides raw markdown text |`content: string`|
34
34
35
-
All variants carry a required `id: string` that identifies the plan, and an optional `_meta` for extensibility.
35
+
All variants carry a required `planId: string` that identifies the plan, and an optional `_meta` for extensibility.
36
36
37
-
Additionally, introduce a `plan_removed` session update type that carries only a plan `id` to signal dismissal. This keeps `plan_update` focused purely on content updates and makes removal a distinct, self-describing event.
37
+
Additionally, introduce a `plan_removed` session update type that carries only a `planId` to signal dismissal. This keeps `plan_update` focused purely on content updates and makes removal a distinct, self-describing event.
38
38
39
39
The existing `plan` session update type is **not modified** and continues to work as before. Agents that want multi-plan support, new plan formats, or removal capabilities use `plan_update` and `plan_removed` only when the client advertises `plan`; otherwise they fall back to the existing `plan` session update type.
40
40
@@ -50,15 +50,15 @@ This field is optional. When present as `{}`, it signals the client supports the
50
50
51
51
### Multiple Plans
52
52
53
-
The `id` field on every plan variant identifies a specific plan.
53
+
The `planId` field on every plan variant identifies a specific plan.
54
54
55
-
- Each `plan_update` targets the plan with the given `id`
55
+
- Each `plan_update` targets the plan with the given `planId`
56
56
- Client tracks plans by ID; updates replace the content of that specific plan
57
57
- Different plans may use different types (e.g., one `items` plan and one `markdown` plan)
58
58
59
59
### Plan Removal
60
60
61
-
Agent sends a `plan_removed` session update with the plan's `id` to dismiss it. This is a separate session update type from `plan_update`, keeping content updates and lifecycle events distinct.
61
+
Agent sends a `plan_removed` session update with the plan's `planId` to dismiss it. This is a separate session update type from `plan_update`, keeping content updates and lifecycle events distinct.
### Why a new session update type instead of extending the existing `plan`?
139
139
140
-
The existing `plan` variant flattens `Plan`'s `entries` field directly into the `SessionUpdate` discriminated union object. Adding a nested `plan` field, optional `id`, and polymorphic types to the same variant would require breaking the existing format or complex dual-deserialization logic. A new `plan_update` variant avoids this, but agents must only send it to clients that advertised `plan`; clients that do not advertise support can continue to receive the existing `plan` update.
140
+
The existing `plan` variant flattens `Plan`'s `entries` field directly into the `SessionUpdate` discriminated union object. Adding a nested `plan` field, optional `planId`, and polymorphic types to the same variant would require breaking the existing format or complex dual-deserialization logic. A new `plan_update` variant avoids this, but agents must only send it to clients that advertised `plan`; clients that do not advertise support can continue to receive the existing `plan` update.
141
141
142
142
### Why a separate `plan_removed` session update type instead of a removal variant inside `plan_update`?
0 commit comments