@deepseek-ai/dsh-experimental-client-ui-forge 0.0.0-stage → 0.2.2-alpha.2

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.
Files changed (56) hide show
  1. package/LICENSE +21 -0
  2. package/README.i18n.yaml +37 -0
  3. package/README.md +134 -2
  4. package/README.zh.md +135 -0
  5. package/lib/client.js +8745 -0
  6. package/lib/index.js +3131 -0
  7. package/lib/typert.host.d.ts +3 -0
  8. package/lib/typert.host.js +2222 -0
  9. package/lib/typert.remote-client.d.ts +79 -0
  10. package/lib/typert.remote-client.js +1284 -0
  11. package/lib/types/client/ActionToast.d.ts +14 -0
  12. package/lib/types/client/ChangeRequestCard.d.ts +54 -0
  13. package/lib/types/client/ChangesTab.d.ts +49 -0
  14. package/lib/types/client/ChangesTabTitle.d.ts +13 -0
  15. package/lib/types/client/DiffFile.d.ts +75 -0
  16. package/lib/types/client/FileLabel.d.ts +20 -0
  17. package/lib/types/client/ForgeTab.d.ts +54 -0
  18. package/lib/types/client/ForgeTabTitle.d.ts +11 -0
  19. package/lib/types/client/HeaderButton.d.ts +27 -0
  20. package/lib/types/client/LocalChangesCard.d.ts +29 -0
  21. package/lib/types/client/RefreshGlyph.d.ts +18 -0
  22. package/lib/types/client/SessionHoverForge.d.ts +20 -0
  23. package/lib/types/client/SessionRowForge.d.ts +39 -0
  24. package/lib/types/client/WorktreeProgress.d.ts +44 -0
  25. package/lib/types/client/WorktreeToggle.d.ts +42 -0
  26. package/lib/types/client/changes-address.d.ts +70 -0
  27. package/lib/types/client/changes-store.d.ts +39 -0
  28. package/lib/types/client/checkout.d.ts +34 -0
  29. package/lib/types/client/diff-rows.d.ts +96 -0
  30. package/lib/types/client/format.d.ts +21 -0
  31. package/lib/types/client/glyphs.d.ts +33 -0
  32. package/lib/types/client/index.d.ts +25 -0
  33. package/lib/types/client/locales.d.ts +228 -0
  34. package/lib/types/client/mount.d.ts +17 -0
  35. package/lib/types/client/session-list.d.ts +46 -0
  36. package/lib/types/client/source.d.ts +146 -0
  37. package/lib/types/client/status.d.ts +95 -0
  38. package/lib/types/diff.d.ts +32 -0
  39. package/lib/types/git.d.ts +93 -0
  40. package/lib/types/index.d.ts +275 -0
  41. package/lib/types/local-diff.d.ts +93 -0
  42. package/lib/types/panel.d.ts +135 -0
  43. package/lib/types/parse.d.ts +57 -0
  44. package/lib/types/patch-cache.d.ts +33 -0
  45. package/lib/types/states.d.ts +89 -0
  46. package/lib/types/types.d.ts +395 -0
  47. package/lib/types/worktree.d.ts +225 -0
  48. package/locale/de.json +6 -0
  49. package/locale/en.json +6 -0
  50. package/locale/es.json +6 -0
  51. package/locale/fr.json +6 -0
  52. package/locale/ja.json +6 -0
  53. package/locale/pt.json +6 -0
  54. package/locale/ru.json +6 -0
  55. package/locale/zh.json +6 -0
  56. package/package.json +123 -3
@@ -0,0 +1,2222 @@
1
+ /* Generated by @deepseek-ai/dsh-typert-generator from FaceModel — do not edit. */
2
+ import { z } from 'zod'
3
+
4
+ import { createTypertRemoteInfo } from '@deepseek-ai/dsh-typert-protocol/remote-info'
5
+
6
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0$schema$value
7
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0$schema$value ??= z.string())
8
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_result$schema$value
9
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_result$schema$value ??= z.object({
10
+ 'current': z.union([z.literal(null), z.string()]).readonly().describe('Checked-out branch, or null when HEAD is detached.'),
11
+ 'branches': z.array(z.string()).readonly().describe('Local branch names, `current` first and then most recently committed first, at most `maxBranches`.'),
12
+ }))
13
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0$schema$value
14
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0$schema$value ??= z.string())
15
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_result$schema$value
16
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_result$schema$value ??= z.void())
17
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0$schema$value
18
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0$schema$value ??= z.string())
19
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1$schema$value
20
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1$schema$value ??= z.string())
21
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_result$schema$value
22
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_result$schema$value ??= z.object({
23
+ 'headSha': z.string().readonly().describe('Head commit the diff describes.'),
24
+ 'files': z.array(z.object({
25
+ 'path': z.string().readonly().describe('Path relative to the repository root after the change, or before it for a deleted file.'),
26
+ 'previousPath': z.union([z.literal(null), z.string()]).readonly().describe('Path before a rename, else null.'),
27
+ 'status': z.union([z.literal("deleted"), z.literal("added"), z.literal("modified"), z.literal("renamed")]).readonly().describe('How the file changed.'),
28
+ 'binary': z.boolean().readonly().describe('Whether the content is binary, which carries no hunks.'),
29
+ 'oversized': z.boolean().readonly().describe('Whether an untracked file exceeds `maxDiffBytes`, so it carries no hunks.'),
30
+ 'untracked': z.boolean().readonly().describe('Whether Git does not track the file yet; only local diffs list such files.'),
31
+ 'additions': z.number().readonly().describe('Lines added.'),
32
+ 'deletions': z.number().readonly().describe('Lines deleted.'),
33
+ 'hunks': z.array(z.object({
34
+ 'oldStart': z.number().readonly().describe('First old line the hunk covers, or the old line it comes before when it covers none.'),
35
+ 'oldLines': z.number().readonly().describe('Old lines the hunk covers.'),
36
+ 'newStart': z.number().readonly().describe('First new line the hunk covers, or the new line it comes before when it covers none.'),
37
+ 'newLines': z.number().readonly().describe('New lines the hunk covers.'),
38
+ 'lines': z.array(z.string()).readonly().describe('Lines in patch form: a leading space for context, `+` for added, `-` for deleted, and `\\` for a missing final newline.'),
39
+ })).readonly().describe('Hunks in file order; none for a binary file or a change of mode or name only.'),
40
+ })).readonly().describe('Changed files in the host\'s order.'),
41
+ 'localAhead': z.union([z.literal(null), z.number()]).readonly().describe('Commits the checkout\'s branch has beyond the head when that branch is the change request\'s head branch and the head commit is present locally; null otherwise.'),
42
+ 'fileUrls': z.record(z.string(), z.string()).readonly().readonly().describe('Web page of each changed file at the head commit, by path.'),
43
+ }))
44
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestStates_result$schema$value
45
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestStates_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestStates_result$schema$value ??= z.union([z.object({
46
+ 'type': z.literal("baseline").readonly(),
47
+ 'states': z.array(z.object({
48
+ 'title': z.string().readonly().describe('Title as the author wrote it.'),
49
+ 'state': z.union([z.literal("open"), z.literal("closed"), z.literal("merged")]).readonly().describe('Lifecycle state.'),
50
+ 'url': z.string().readonly().describe('Web page of the change request.'),
51
+ 'draft': z.boolean().readonly().describe('Whether the author marked the change request as a draft.'),
52
+ 'checksRollup': z.union([z.literal("pending"), z.literal("success"), z.literal("none"), z.literal("failure")]).readonly().describe('Combined check outcome.'),
53
+ 'reviewDecision': z.union([z.literal("none"), z.literal("approved"), z.literal("changes-requested"), z.literal("review-required")]).readonly().describe('Aggregate review outcome.'),
54
+ 'mergeability': z.union([z.literal("unknown"), z.literal("mergeable"), z.literal("conflicting")]).readonly().describe('Merge conflict status; `unknown` while the host computes it.'),
55
+ 'number': z.number().readonly().describe('Change request number on its code host.'),
56
+ })).readonly(),
57
+ }), z.object({
58
+ 'type': z.literal("changed").readonly(),
59
+ 'states': z.array(z.object({
60
+ 'title': z.string().readonly().describe('Title as the author wrote it.'),
61
+ 'state': z.union([z.literal("open"), z.literal("closed"), z.literal("merged")]).readonly().describe('Lifecycle state.'),
62
+ 'url': z.string().readonly().describe('Web page of the change request.'),
63
+ 'draft': z.boolean().readonly().describe('Whether the author marked the change request as a draft.'),
64
+ 'checksRollup': z.union([z.literal("pending"), z.literal("success"), z.literal("none"), z.literal("failure")]).readonly().describe('Combined check outcome.'),
65
+ 'reviewDecision': z.union([z.literal("none"), z.literal("approved"), z.literal("changes-requested"), z.literal("review-required")]).readonly().describe('Aggregate review outcome.'),
66
+ 'mergeability': z.union([z.literal("unknown"), z.literal("mergeable"), z.literal("conflicting")]).readonly().describe('Merge conflict status; `unknown` while the host computes it.'),
67
+ 'number': z.number().readonly().describe('Change request number on its code host.'),
68
+ })).readonly(),
69
+ })]))
70
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0$schema$value
71
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0$schema$value ??= z.string())
72
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1$schema$value
73
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1$schema$value ??= z.string())
74
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2$schema$value
75
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2$schema$value ??= z.string())
76
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3$schema$value
77
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3$schema$value ??= z.string())
78
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_result$schema$value
79
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_result$schema$value ??= z.string())
80
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0$schema$value
81
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0$schema$value ??= z.string())
82
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_result$schema$value
83
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_result$schema$value ??= z.void())
84
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0$schema$value
85
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0$schema$value ??= z.string())
86
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1$schema$value
87
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1$schema$value ??= z.string())
88
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_result$schema$value
89
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_result$schema$value ??= z.void())
90
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0$schema$value
91
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0$schema$value ??= z.string())
92
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_result$schema$value
93
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_result$schema$value ??= z.object({
94
+ 'directory': z.string().readonly().describe('Current working directory of the Session.'),
95
+ 'checkout': z.union([z.object({
96
+ 'state': z.literal("pending").readonly(),
97
+ }), z.object({
98
+ 'state': z.literal("none").readonly(),
99
+ }), z.object({
100
+ 'state': z.literal("failed").readonly(),
101
+ 'message': z.string().readonly(),
102
+ }), z.object({
103
+ 'state': z.literal("ready").readonly(),
104
+ 'checkout': z.object({
105
+ 'root': z.string().readonly().describe('Top-level directory of the checkout.'),
106
+ 'branch': z.union([z.literal(null), z.string()]).readonly().describe('Checked-out branch, or null when HEAD is detached.'),
107
+ 'linked': z.boolean().readonly().describe('Whether the checkout is a linked worktree of another checkout\'s repository.'),
108
+ 'commit': z.union([z.literal(null), z.string()]).readonly().describe('Abbreviated commit HEAD names, or null while the checked-out branch has no commit.'),
109
+ }).readonly(),
110
+ })]).readonly().describe('Inspection result for `directory`.'),
111
+ 'repository': z.union([z.literal(null), z.object({
112
+ 'forge': z.string().readonly().describe('Provider family that serves the repository, such as `github`.'),
113
+ 'host': z.string().readonly().describe('Lowercase host name, such as `github.com`.'),
114
+ 'owner': z.string().readonly().describe('Owner or namespace path as the host spells it.'),
115
+ 'name': z.string().readonly().describe('Repository name as the host spells it.'),
116
+ })]).readonly().describe('Code host repository of the checkout\'s upstream remote or `origin`, or null when no provider serves them.'),
117
+ 'readiness': z.union([z.literal(null), z.object({
118
+ 'state': z.union([z.literal("ready"), z.literal("unauthenticated"), z.literal("unavailable")]).readonly().describe('`ready`, `unauthenticated` (sign-in needed), or `unavailable` (tool missing or host unreachable).'),
119
+ 'message': z.union([z.literal(null), z.string()]).readonly().describe('Human-readable detail, or null when ready.'),
120
+ })]).readonly().describe('Sign-in state for the repository\'s host, or null before the first probe and without a repository.'),
121
+ 'changeRequests': z.array(z.object({
122
+ 'snapshot': z.union([z.literal(null), z.object({
123
+ 'ref': z.object({
124
+ 'repository': z.object({
125
+ 'forge': z.string().readonly().describe('Provider family that serves the repository, such as `github`.'),
126
+ 'host': z.string().readonly().describe('Lowercase host name, such as `github.com`.'),
127
+ 'owner': z.string().readonly().describe('Owner or namespace path as the host spells it.'),
128
+ 'name': z.string().readonly().describe('Repository name as the host spells it.'),
129
+ }).readonly().describe('Repository that holds the change request.'),
130
+ 'number': z.number().readonly().describe('Host-assigned change request number.'),
131
+ }).readonly().describe('Change request the snapshot describes.'),
132
+ 'url': z.string().readonly().describe('Web page of the change request.'),
133
+ 'title': z.string().readonly().describe('Title as the author wrote it.'),
134
+ 'state': z.union([z.literal("open"), z.literal("closed"), z.literal("merged")]).readonly().describe('Lifecycle state.'),
135
+ 'draft': z.boolean().readonly().describe('Whether the author marked the change request as a draft.'),
136
+ 'author': z.union([z.literal(null), z.string()]).readonly().describe('Author login, or null when the host hides it.'),
137
+ 'headBranch': z.string().readonly().describe('Branch that carries the proposed commits.'),
138
+ 'headSha': z.string().readonly().describe('Commit object name at the head of the change request.'),
139
+ 'baseBranch': z.string().readonly().describe('Branch the change request merges into.'),
140
+ 'additions': z.number().readonly().describe('Lines the change request adds.'),
141
+ 'deletions': z.number().readonly().describe('Lines the change request deletes.'),
142
+ 'mergeability': z.union([z.literal("unknown"), z.literal("mergeable"), z.literal("conflicting")]).readonly().describe('Merge conflict status; `unknown` while the host computes it.'),
143
+ 'mergeReady': z.boolean().readonly().describe('Whether the host would merge the change request now for the signed-in user: open, not a draft, and meeting the base branch\'s merge rules.'),
144
+ 'mergeMethods': z.array(z.union([z.literal("merge"), z.literal("squash"), z.literal("rebase")])).readonly().describe('Merge methods the repository accepts, the signed-in user\'s usual one first.'),
145
+ 'reviewDecision': z.union([z.literal("none"), z.literal("approved"), z.literal("changes-requested"), z.literal("review-required")]).readonly().describe('Aggregate review outcome.'),
146
+ 'checks': z.array(z.object({
147
+ 'name': z.string().readonly().describe('Check name as the host displays it.'),
148
+ 'state': z.union([z.literal("cancelled"), z.literal("pending"), z.literal("neutral"), z.literal("success"), z.literal("failure"), z.literal("skipped")]).readonly().describe('Normalized check outcome.'),
149
+ 'url': z.union([z.literal(null), z.string()]).readonly().describe('Web page for the check, or null when the host reports none.'),
150
+ 'workflow': z.union([z.literal(null), z.string()]).readonly().describe('Workflow that produced the check, or null when the host reports none.'),
151
+ 'startedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the check started, or null before it starts and when the host reports none.'),
152
+ 'completedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the check completed, or null while it runs and when the host reports none.'),
153
+ })).readonly().describe('Checks on the head commit in host order.'),
154
+ 'checksRollup': z.union([z.literal("pending"), z.literal("success"), z.literal("none"), z.literal("failure")]).readonly().describe('Combined check outcome.'),
155
+ 'checksTruncated': z.boolean().readonly().describe('Whether the host reported more checks than `checks` contains.'),
156
+ 'unresolvedThreads': z.number().readonly().describe('Number of review threads that are not resolved.'),
157
+ 'updatedAt': z.string().readonly().describe('ISO 8601 time of the host\'s last update to the change request.'),
158
+ 'closedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the change request was merged or closed, or null while it is open.'),
159
+ })]).readonly().describe('Latest snapshot a poll returned, kept while later polls fail, or null before the first successful poll.'),
160
+ 'url': z.string().readonly().describe('Web URL as first recorded.'),
161
+ 'origin': z.union([z.literal("created"), z.literal("referenced"), z.literal("discovered"), z.literal("tracked")]).readonly().describe('How the change request became bound.'),
162
+ 'ref': z.union([z.literal(null), z.object({
163
+ 'repository': z.object({
164
+ 'forge': z.string().readonly().describe('Provider family that serves the repository, such as `github`.'),
165
+ 'host': z.string().readonly().describe('Lowercase host name, such as `github.com`.'),
166
+ 'owner': z.string().readonly().describe('Owner or namespace path as the host spells it.'),
167
+ 'name': z.string().readonly().describe('Repository name as the host spells it.'),
168
+ }).readonly().describe('Repository that holds the change request.'),
169
+ 'number': z.number().readonly().describe('Host-assigned change request number.'),
170
+ })]).readonly().describe('Parsed reference, or null when no registered provider serves the URL.'),
171
+ 'update': z.union([z.literal(null), z.object({
172
+ 'key': z.string().readonly().describe('Canonical identity of the watched change request.'),
173
+ 'fetchedAt': z.number().readonly().describe('Epoch milliseconds when the result settled.'),
174
+ 'snapshot': z.object({
175
+ 'ref': z.object({
176
+ 'repository': z.object({
177
+ 'forge': z.string().readonly().describe('Provider family that serves the repository, such as `github`.'),
178
+ 'host': z.string().readonly().describe('Lowercase host name, such as `github.com`.'),
179
+ 'owner': z.string().readonly().describe('Owner or namespace path as the host spells it.'),
180
+ 'name': z.string().readonly().describe('Repository name as the host spells it.'),
181
+ }).readonly().describe('Repository that holds the change request.'),
182
+ 'number': z.number().readonly().describe('Host-assigned change request number.'),
183
+ }).readonly().describe('Change request the snapshot describes.'),
184
+ 'url': z.string().readonly().describe('Web page of the change request.'),
185
+ 'title': z.string().readonly().describe('Title as the author wrote it.'),
186
+ 'state': z.union([z.literal("open"), z.literal("closed"), z.literal("merged")]).readonly().describe('Lifecycle state.'),
187
+ 'draft': z.boolean().readonly().describe('Whether the author marked the change request as a draft.'),
188
+ 'author': z.union([z.literal(null), z.string()]).readonly().describe('Author login, or null when the host hides it.'),
189
+ 'headBranch': z.string().readonly().describe('Branch that carries the proposed commits.'),
190
+ 'headSha': z.string().readonly().describe('Commit object name at the head of the change request.'),
191
+ 'baseBranch': z.string().readonly().describe('Branch the change request merges into.'),
192
+ 'additions': z.number().readonly().describe('Lines the change request adds.'),
193
+ 'deletions': z.number().readonly().describe('Lines the change request deletes.'),
194
+ 'mergeability': z.union([z.literal("unknown"), z.literal("mergeable"), z.literal("conflicting")]).readonly().describe('Merge conflict status; `unknown` while the host computes it.'),
195
+ 'mergeReady': z.boolean().readonly().describe('Whether the host would merge the change request now for the signed-in user: open, not a draft, and meeting the base branch\'s merge rules.'),
196
+ 'mergeMethods': z.array(z.union([z.literal("merge"), z.literal("squash"), z.literal("rebase")])).readonly().describe('Merge methods the repository accepts, the signed-in user\'s usual one first.'),
197
+ 'reviewDecision': z.union([z.literal("none"), z.literal("approved"), z.literal("changes-requested"), z.literal("review-required")]).readonly().describe('Aggregate review outcome.'),
198
+ 'checks': z.array(z.object({
199
+ 'name': z.string().readonly().describe('Check name as the host displays it.'),
200
+ 'state': z.union([z.literal("cancelled"), z.literal("pending"), z.literal("neutral"), z.literal("success"), z.literal("failure"), z.literal("skipped")]).readonly().describe('Normalized check outcome.'),
201
+ 'url': z.union([z.literal(null), z.string()]).readonly().describe('Web page for the check, or null when the host reports none.'),
202
+ 'workflow': z.union([z.literal(null), z.string()]).readonly().describe('Workflow that produced the check, or null when the host reports none.'),
203
+ 'startedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the check started, or null before it starts and when the host reports none.'),
204
+ 'completedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the check completed, or null while it runs and when the host reports none.'),
205
+ })).readonly().describe('Checks on the head commit in host order.'),
206
+ 'checksRollup': z.union([z.literal("pending"), z.literal("success"), z.literal("none"), z.literal("failure")]).readonly().describe('Combined check outcome.'),
207
+ 'checksTruncated': z.boolean().readonly().describe('Whether the host reported more checks than `checks` contains.'),
208
+ 'unresolvedThreads': z.number().readonly().describe('Number of review threads that are not resolved.'),
209
+ 'updatedAt': z.string().readonly().describe('ISO 8601 time of the host\'s last update to the change request.'),
210
+ 'closedAt': z.union([z.literal(null), z.string()]).readonly().describe('ISO 8601 time the change request was merged or closed, or null while it is open.'),
211
+ }).readonly().describe('Status read from the host.'),
212
+ }), z.object({
213
+ 'key': z.string().readonly().describe('Canonical identity of the watched change request.'),
214
+ 'fetchedAt': z.number().readonly().describe('Epoch milliseconds when the result settled.'),
215
+ 'failure': z.object({
216
+ 'code': z.union([z.literal("unauthenticated"), z.literal("unavailable"), z.literal("not-found"), z.literal("too-large")]).readonly().describe('`not-found`: the host does not expose it; `unauthenticated`: credentials are missing or rejected; `too-large`: the host or the provider refuses an answer over its size limit, so reading again fails the same way; `unavailable`: any other failure.'),
217
+ 'message': z.string().readonly().describe('Human-readable cause.'),
218
+ }).readonly().describe('Reason the status could not be read.'),
219
+ })]).readonly().describe('Latest polling result, or null before the first poll and without a provider.'),
220
+ })).readonly().describe('Visible change request bindings with their latest polling results, in first-recorded order.'),
221
+ 'worktree': z.object({
222
+ 'editable': z.boolean().readonly().describe('Whether the Session can still request or withdraw a worktree: a worktree service is mounted, no turn has started, and none was created.'),
223
+ 'blocker': z.union([z.literal(null), z.literal("read-only"), z.literal("not-git"), z.literal("outside-writable-root")]).readonly().describe('Why the checkout cannot host a worktree, or null when it can, before the first inspection, and after a failed one.'),
224
+ 'request': z.union([z.literal(null), z.object({
225
+ 'from': z.union([z.literal(null), z.string()]).readonly().describe('Base branch, or null for HEAD of the source checkout.'),
226
+ })]).readonly().describe('Open request, or null without one.'),
227
+ 'created': z.union([z.literal(null), z.object({
228
+ 'path': z.string().readonly().describe('Canonical checkout directory.'),
229
+ 'branch': z.string().readonly().describe('Branch created for the checkout.'),
230
+ 'from': z.union([z.literal(null), z.string()]).readonly().describe('Requested base branch, or null when the checkout started from HEAD of the source checkout.'),
231
+ 'baseCommit': z.string().readonly().describe('Commit object name the branch started from.'),
232
+ 'repositoryRoot': z.string().readonly().describe('Canonical root of the source checkout.'),
233
+ })]).readonly().describe('Created worktree, or null before creation.'),
234
+ 'creation': z.union([z.literal(null), z.object({
235
+ 'phase': z.union([z.literal("prepare"), z.literal("checkout")]).readonly().describe('Running step: `prepare` validates and creates the branch, then `checkout` writes the files.'),
236
+ 'branch': z.string().readonly().describe('Branch the attempt creates.'),
237
+ 'from': z.union([z.literal(null), z.string()]).readonly().describe('Base branch, or null for HEAD.'),
238
+ 'held': z.boolean().readonly().describe('Whether a message waits for the creation before its turn starts. Only such a creation can be stopped, after which the message keeps waiting; a creation at the first step serves a message the Session already holds.'),
239
+ })]).readonly().describe('Running creation, or null.'),
240
+ 'failure': z.union([z.literal(null), z.object({
241
+ 'branch': z.union([z.literal(null), z.string()]).readonly().describe('Branch the attempt created, or null when it failed before naming one.'),
242
+ 'from': z.union([z.literal(null), z.string()]).readonly().describe('Base branch of the attempt, or null for HEAD.'),
243
+ 'phase': z.union([z.literal("prepare"), z.literal("checkout")]).readonly().describe('Step that failed.'),
244
+ 'message': z.string().readonly().describe('Failure text.'),
245
+ })]).readonly().describe('The last failed attempt of the creation a message waits for, or null. It clears when another attempt starts, when the request changes or is withdrawn, and when the wait ends.'),
246
+ 'missing': z.union([z.literal(null), z.object({
247
+ 'branchExists': z.union([z.literal(null), z.literal(false), z.literal(true)]).readonly().describe('Whether its branch exists, or null when an incomplete restoration cannot inspect it.'),
248
+ })]).readonly().describe('The created worktree the Session works in when its directory is gone, or null.'),
249
+ 'restoration': z.union([z.literal(null), z.object({
250
+ 'phase': z.union([z.literal("prepare"), z.literal("checkout")]).readonly().describe('Running step: `prepare` registers the checkout again, creating a missing branch, then `checkout` writes the files.'),
251
+ })]).readonly().describe('Running restoration of the removed worktree, or null.'),
252
+ 'waiting': z.union([z.literal(null), z.literal("creation"), z.literal("restoration")]).readonly().describe('What a message of the Session waits for before its turn starts, or null while none waits.'),
253
+ }).readonly().describe('Worktree request and creation state.'),
254
+ 'local': z.union([z.literal(null), z.object({
255
+ 'base': z.string().readonly().describe('Ref or abbreviated commit the scope compares with.'),
256
+ 'files': z.array(z.object({
257
+ 'path': z.string().readonly().describe('Path relative to the repository root after the change.'),
258
+ 'additions': z.number().readonly().describe('Lines added, or 0 for a binary file.'),
259
+ 'deletions': z.number().readonly().describe('Lines deleted, or 0 for a binary file.'),
260
+ 'binary': z.boolean().readonly().describe('Whether the content is binary.'),
261
+ })).readonly().describe('Changed files in Git\'s path order, untracked files last, at most `maxUntrackedFiles` of those.'),
262
+ })]).readonly().describe('Files the `branch` scope changes, or null before the first inspection, outside a checkout, and without a fork point.'),
263
+ }))
264
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0$schema$value
265
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0$schema$value ??= z.string())
266
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1$schema$value
267
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1$schema$value ??= z.union([z.object({
268
+ 'kind': z.literal("branch").readonly(),
269
+ }), z.object({
270
+ 'kind': z.literal("uncommitted").readonly(),
271
+ }), z.object({
272
+ 'kind': z.literal("unstaged").readonly(),
273
+ }), z.object({
274
+ 'kind': z.literal("staged").readonly(),
275
+ })]))
276
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_result$schema$value
277
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_result$schema$value ??= z.object({
278
+ 'base': z.union([z.literal(null), z.string()]).readonly().describe('Ref or abbreviated commit the `branch` scope compares with, such as `origin/master`; null for other scopes.'),
279
+ 'files': z.array(z.object({
280
+ 'path': z.string().readonly().describe('Path relative to the repository root after the change, or before it for a deleted file.'),
281
+ 'previousPath': z.union([z.literal(null), z.string()]).readonly().describe('Path before a rename, else null.'),
282
+ 'status': z.union([z.literal("deleted"), z.literal("added"), z.literal("modified"), z.literal("renamed")]).readonly().describe('How the file changed.'),
283
+ 'binary': z.boolean().readonly().describe('Whether the content is binary, which carries no hunks.'),
284
+ 'oversized': z.boolean().readonly().describe('Whether an untracked file exceeds `maxDiffBytes`, so it carries no hunks.'),
285
+ 'untracked': z.boolean().readonly().describe('Whether Git does not track the file yet; only local diffs list such files.'),
286
+ 'additions': z.number().readonly().describe('Lines added.'),
287
+ 'deletions': z.number().readonly().describe('Lines deleted.'),
288
+ 'hunks': z.array(z.object({
289
+ 'oldStart': z.number().readonly().describe('First old line the hunk covers, or the old line it comes before when it covers none.'),
290
+ 'oldLines': z.number().readonly().describe('Old lines the hunk covers.'),
291
+ 'newStart': z.number().readonly().describe('First new line the hunk covers, or the new line it comes before when it covers none.'),
292
+ 'newLines': z.number().readonly().describe('New lines the hunk covers.'),
293
+ 'lines': z.array(z.string()).readonly().describe('Lines in patch form: a leading space for context, `+` for added, `-` for deleted, and `\\` for a missing final newline.'),
294
+ })).readonly().describe('Hunks in file order; none for a binary file or a change of mode or name only.'),
295
+ })).readonly().describe('Changed files in Git\'s path order, untracked files last.'),
296
+ 'omitted': z.number().readonly().describe('Untracked files left out beyond `maxUntrackedFiles`.'),
297
+ }))
298
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0$schema$value
299
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0$schema$value ??= z.string())
300
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1$schema$value
301
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1$schema$value ??= z.union([z.object({
302
+ 'kind': z.literal("branch").readonly(),
303
+ }), z.object({
304
+ 'kind': z.literal("uncommitted").readonly(),
305
+ }), z.object({
306
+ 'kind': z.literal("unstaged").readonly(),
307
+ }), z.object({
308
+ 'kind': z.literal("staged").readonly(),
309
+ })]))
310
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2$schema$value
311
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2$schema$value ??= z.string())
312
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_result$schema$value
313
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_result$schema$value ??= z.string())
314
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0$schema$value
315
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0$schema$value ??= z.string())
316
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1$schema$value
317
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1$schema$value ??= z.string())
318
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_result$schema$value
319
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_result$schema$value ??= z.void())
320
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0$schema$value
321
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0$schema$value ??= z.string())
322
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1$schema$value
323
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1$schema$value ??= z.string())
324
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2$schema$value
325
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2$schema$value ??= z.union([z.literal("merge"), z.literal("squash"), z.literal("rebase")]))
326
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3$schema$value
327
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3$schema$value ??= z.string())
328
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_result$schema$value
329
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_result$schema$value ??= z.void())
330
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0$schema$value
331
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0$schema$value ??= z.string())
332
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_result$schema$value
333
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_result$schema$value ??= z.void())
334
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0$schema$value
335
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0$schema$value ??= z.string())
336
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1$schema$value
337
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1$schema$value ??= z.union([z.literal(null), z.string()]))
338
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_result$schema$value
339
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_result$schema$value ??= z.void())
340
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0$schema$value
341
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0$schema$value ??= z.string())
342
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_result$schema$value
343
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_result$schema$value ??= z.void())
344
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0$schema$value
345
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0$schema$value ??= z.string())
346
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_result$schema$value
347
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_result$schema$value ??= z.void())
348
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0$schema$value
349
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0$schema$value ??= z.string())
350
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_result$schema$value
351
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_result$schema$value ??= z.void())
352
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0$schema$value
353
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0$schema$value ??= z.string())
354
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1$schema$value
355
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1$schema$value ??= z.string())
356
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_result$schema$value
357
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_result$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_result$schema$value ??= z.void())
358
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0_strict$schema$value
359
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0_strict$schema$value ??= z.string())
360
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0_strict$schema$value
361
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0_strict$schema$value ??= z.string())
362
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0_strict$schema$value
363
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0_strict$schema$value ??= z.string())
364
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1_strict$schema$value
365
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1_strict$schema$value ??= z.string())
366
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0_strict$schema$value
367
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0_strict$schema$value ??= z.string())
368
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1_strict$schema$value
369
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1_strict$schema$value ??= z.string())
370
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2_strict$schema$value
371
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2_strict$schema$value ??= z.string())
372
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3_strict$schema$value
373
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3_strict$schema$value ??= z.string())
374
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0_strict$schema$value
375
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0_strict$schema$value ??= z.string())
376
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0_strict$schema$value
377
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0_strict$schema$value ??= z.string())
378
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1_strict$schema$value
379
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1_strict$schema$value ??= z.string())
380
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0_strict$schema$value
381
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0_strict$schema$value ??= z.string())
382
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0_strict$schema$value
383
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0_strict$schema$value ??= z.string())
384
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1_strict$schema$value
385
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1_strict$schema$value ??= z.union([z.strictObject({
386
+ 'kind': z.literal("branch").readonly(),
387
+ }), z.strictObject({
388
+ 'kind': z.literal("uncommitted").readonly(),
389
+ }), z.strictObject({
390
+ 'kind': z.literal("unstaged").readonly(),
391
+ }), z.strictObject({
392
+ 'kind': z.literal("staged").readonly(),
393
+ })]))
394
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0_strict$schema$value
395
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0_strict$schema$value ??= z.string())
396
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1_strict$schema$value
397
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1_strict$schema$value ??= z.union([z.strictObject({
398
+ 'kind': z.literal("branch").readonly(),
399
+ }), z.strictObject({
400
+ 'kind': z.literal("uncommitted").readonly(),
401
+ }), z.strictObject({
402
+ 'kind': z.literal("unstaged").readonly(),
403
+ }), z.strictObject({
404
+ 'kind': z.literal("staged").readonly(),
405
+ })]))
406
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2_strict$schema$value
407
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2_strict$schema$value ??= z.string())
408
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0_strict$schema$value
409
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0_strict$schema$value ??= z.string())
410
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1_strict$schema$value
411
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1_strict$schema$value ??= z.string())
412
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0_strict$schema$value
413
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0_strict$schema$value ??= z.string())
414
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1_strict$schema$value
415
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1_strict$schema$value ??= z.string())
416
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2_strict$schema$value
417
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2_strict$schema$value ??= z.union([z.literal("merge"), z.literal("squash"), z.literal("rebase")]))
418
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3_strict$schema$value
419
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3_strict$schema$value ??= z.string())
420
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0_strict$schema$value
421
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0_strict$schema$value ??= z.string())
422
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0_strict$schema$value
423
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0_strict$schema$value ??= z.string())
424
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1_strict$schema$value
425
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1_strict$schema$value ??= z.union([z.literal(null), z.string()]))
426
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0_strict$schema$value
427
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0_strict$schema$value ??= z.string())
428
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0_strict$schema$value
429
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0_strict$schema$value ??= z.string())
430
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0_strict$schema$value
431
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0_strict$schema$value ??= z.string())
432
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0_strict$schema$value
433
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0_strict$schema$value ??= z.string())
434
+ let _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1_strict$schema$value
435
+ const _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1_strict$schema = () => (_deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1_strict$schema$value ??= z.string())
436
+
437
+ const $remote = createTypertRemoteInfo({
438
+ package: '@deepseek-ai/dsh-experimental-client-ui-forge',
439
+ methods: {
440
+ 'forgePanel/branches': {
441
+ service: 'forgePanel',
442
+ description: 'List the local branches that can start a worktree of the Session\'s current checkout.',
443
+ invocation: { kind: 'direct' },
444
+ parameters: [
445
+ {
446
+ name: 'session',
447
+ wire: 'sessionId',
448
+ description: 'Session whose current directory is listed.',
449
+ source: 'lookup',
450
+ lookup: 'session',
451
+ codec: {
452
+ mode: 'strict',
453
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
454
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0$schema,
455
+ jsonSchema: {"type":"string"},
456
+ },
457
+ strictCodec: {
458
+ mode: 'strict',
459
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
460
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_parameter_0_strict$schema,
461
+ jsonSchema: {"type":"string"},
462
+ },
463
+ },
464
+ ],
465
+ cancellation: { parameter: 'signal' },
466
+ result: {
467
+ mode: 'strict',
468
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeBranches',
469
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_branches_result$schema,
470
+ description: 'the checked-out branch and at most `maxBranches` local branches, the checked-out one first.',
471
+ jsonSchema: {"type":"object","properties":{"current":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"Checked-out branch, or null when HEAD is detached."},"branches":{"type":"array","items":{"type":"string"},"description":"Local branch names, `current` first and then most recently committed first, at most `maxBranches`."}},"required":["current","branches"],"additionalProperties":true},
472
+ },
473
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":188,"column":9},
474
+ },
475
+ 'forgePanel/cancelWorktree': {
476
+ service: 'forgePanel',
477
+ description: 'Withdraw the open worktree request of a Session with its failed attempt, which lets a waiting message go on in the current checkout; without a request the Session is unchanged. Withdrawing needs no worktree service.',
478
+ invocation: { kind: 'direct' },
479
+ parameters: [
480
+ {
481
+ name: 'session',
482
+ wire: 'sessionId',
483
+ description: 'Session without a started turn.',
484
+ source: 'lookup',
485
+ lookup: 'session',
486
+ codec: {
487
+ mode: 'strict',
488
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
489
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0$schema,
490
+ jsonSchema: {"type":"string"},
491
+ },
492
+ strictCodec: {
493
+ mode: 'strict',
494
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
495
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_parameter_0_strict$schema,
496
+ jsonSchema: {"type":"string"},
497
+ },
498
+ },
499
+ ],
500
+ cancellation: { parameter: 'signal' },
501
+ result: {
502
+ mode: 'strict',
503
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/cancelWorktree:result',
504
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_cancelWorktree_result$schema,
505
+ jsonSchemaError: 'typert tool schema: unsupported void value',
506
+ },
507
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":407,"column":9},
508
+ },
509
+ 'forgePanel/changeRequestDiff': {
510
+ service: 'forgePanel',
511
+ description: 'Read the changes of a change request of a Session as its code host computes them, at the head commit of its latest status. A patch already read at the same head commit and base branch is reused from memory, for any Session, until `maxCachedDiffBytes` evicts it.',
512
+ invocation: { kind: 'direct' },
513
+ parameters: [
514
+ {
515
+ name: 'session',
516
+ wire: 'sessionId',
517
+ description: 'Session the change request is bound to.',
518
+ source: 'lookup',
519
+ lookup: 'session',
520
+ codec: {
521
+ mode: 'strict',
522
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
523
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0$schema,
524
+ jsonSchema: {"type":"string"},
525
+ },
526
+ strictCodec: {
527
+ mode: 'strict',
528
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
529
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_0_strict$schema,
530
+ jsonSchema: {"type":"string"},
531
+ },
532
+ },
533
+ {
534
+ name: 'url',
535
+ description: 'binding URL of the change request.',
536
+ source: 'json',
537
+ codec: {
538
+ mode: 'strict',
539
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestDiff:url',
540
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1$schema,
541
+ jsonSchema: {"type":"string"},
542
+ },
543
+ strictCodec: {
544
+ mode: 'strict',
545
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestDiff:url',
546
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_parameter_1_strict$schema,
547
+ jsonSchema: {"type":"string"},
548
+ },
549
+ },
550
+ ],
551
+ cancellation: { parameter: 'signal' },
552
+ result: {
553
+ mode: 'strict',
554
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeChangeRequestDiff',
555
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestDiff_result$schema,
556
+ description: 'the files, the head commit, each file\'s web page, and the commits the checkout has beyond the head.',
557
+ jsonSchemaError: 'typert tool schema: selected dictionaries require string keys and unconstrained JSON values',
558
+ },
559
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":287,"column":9},
560
+ },
561
+ 'forgePanel/changeRequestStates': {
562
+ service: 'forgePanel',
563
+ description: 'Stream the last known state of every change request that a listed Session the caller may read binds: the stored states first, then each state a poll changes or a new binding reveals. Listing reads no Session log: loaded Sessions report their bindings, others the cached Session summary, and a Session without one shows nothing until it is opened. Closed requests are polled at the idle cadence so reopening is observed. The stream ends when `signal` aborts or the Remote stops.',
564
+ mode: 'stream',
565
+ invocation: { kind: 'direct' },
566
+ parameters: [
567
+ ],
568
+ cancellation: { parameter: 'signal' },
569
+ result: {
570
+ mode: 'strict',
571
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeChangeRequestStatesFrame',
572
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestStates_result$schema,
573
+ description: 'frames in publication order.',
574
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"type":{"type":"string","const":"baseline"},"states":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Title as the author wrote it."},"state":{"type":"string","enum":["open","closed","merged"],"description":"Lifecycle state."},"url":{"type":"string","description":"Web page of the change request."},"draft":{"type":"boolean","description":"Whether the author marked the change request as a draft."},"checksRollup":{"type":"string","enum":["pending","success","none","failure"],"description":"Combined check outcome."},"reviewDecision":{"type":"string","enum":["none","approved","changes-requested","review-required"],"description":"Aggregate review outcome."},"mergeability":{"type":"string","enum":["unknown","mergeable","conflicting"],"description":"Merge conflict status; `unknown` while the host computes it."},"number":{"type":"number","description":"Change request number on its code host."}},"required":["title","state","url","draft","checksRollup","reviewDecision","mergeability","number"],"additionalProperties":true}}},"required":["type","states"],"additionalProperties":true},{"type":"object","properties":{"type":{"type":"string","const":"changed"},"states":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","description":"Title as the author wrote it."},"state":{"type":"string","enum":["open","closed","merged"],"description":"Lifecycle state."},"url":{"type":"string","description":"Web page of the change request."},"draft":{"type":"boolean","description":"Whether the author marked the change request as a draft."},"checksRollup":{"type":"string","enum":["pending","success","none","failure"],"description":"Combined check outcome."},"reviewDecision":{"type":"string","enum":["none","approved","changes-requested","review-required"],"description":"Aggregate review outcome."},"mergeability":{"type":"string","enum":["unknown","mergeable","conflicting"],"description":"Merge conflict status; `unknown` while the host computes it."},"number":{"type":"number","description":"Change request number on its code host."}},"required":["title","state","url","draft","checksRollup","reviewDecision","mergeability","number"],"additionalProperties":true}}},"required":["type","states"],"additionalProperties":true}]},
575
+ },
576
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":175,"column":10},
577
+ },
578
+ 'forgePanel/changeRequestText': {
579
+ service: 'forgePanel',
580
+ description: 'Read one file of a change request\'s repository at a commit, which supplies the unchanged lines between the hunks of its diff.',
581
+ invocation: { kind: 'direct' },
582
+ parameters: [
583
+ {
584
+ name: 'session',
585
+ wire: 'sessionId',
586
+ description: 'Session the change request is bound to.',
587
+ source: 'lookup',
588
+ lookup: 'session',
589
+ codec: {
590
+ mode: 'strict',
591
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
592
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0$schema,
593
+ jsonSchema: {"type":"string"},
594
+ },
595
+ strictCodec: {
596
+ mode: 'strict',
597
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
598
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_0_strict$schema,
599
+ jsonSchema: {"type":"string"},
600
+ },
601
+ },
602
+ {
603
+ name: 'url',
604
+ description: 'binding URL of the change request.',
605
+ source: 'json',
606
+ codec: {
607
+ mode: 'strict',
608
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:url',
609
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1$schema,
610
+ jsonSchema: {"type":"string"},
611
+ },
612
+ strictCodec: {
613
+ mode: 'strict',
614
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:url',
615
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_1_strict$schema,
616
+ jsonSchema: {"type":"string"},
617
+ },
618
+ },
619
+ {
620
+ name: 'commit',
621
+ description: 'commit object name, the head commit of the diff.',
622
+ source: 'json',
623
+ codec: {
624
+ mode: 'strict',
625
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:commit',
626
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2$schema,
627
+ jsonSchema: {"type":"string"},
628
+ },
629
+ strictCodec: {
630
+ mode: 'strict',
631
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:commit',
632
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_2_strict$schema,
633
+ jsonSchema: {"type":"string"},
634
+ },
635
+ },
636
+ {
637
+ name: 'path',
638
+ description: 'path relative to the repository root.',
639
+ source: 'json',
640
+ codec: {
641
+ mode: 'strict',
642
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:path',
643
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3$schema,
644
+ jsonSchema: {"type":"string"},
645
+ },
646
+ strictCodec: {
647
+ mode: 'strict',
648
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:path',
649
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_parameter_3_strict$schema,
650
+ jsonSchema: {"type":"string"},
651
+ },
652
+ },
653
+ ],
654
+ cancellation: { parameter: 'signal' },
655
+ result: {
656
+ mode: 'strict',
657
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/changeRequestText:result',
658
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_changeRequestText_result$schema,
659
+ description: 'the text.',
660
+ jsonSchema: {"type":"string"},
661
+ },
662
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":331,"column":9},
663
+ },
664
+ 'forgePanel/continueInProject': {
665
+ service: 'forgePanel',
666
+ description: 'Move a Session from its created worktree to the source checkout the worktree came from; the Session no longer works in the worktree. Runs as Agent maintenance, inside the wait of a message that waits for the removed worktree, which then goes on.',
667
+ invocation: { kind: 'direct' },
668
+ parameters: [
669
+ {
670
+ name: 'session',
671
+ wire: 'sessionId',
672
+ description: 'Session with a created worktree.',
673
+ source: 'lookup',
674
+ lookup: 'session',
675
+ codec: {
676
+ mode: 'strict',
677
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
678
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0$schema,
679
+ jsonSchema: {"type":"string"},
680
+ },
681
+ strictCodec: {
682
+ mode: 'strict',
683
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
684
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_parameter_0_strict$schema,
685
+ jsonSchema: {"type":"string"},
686
+ },
687
+ },
688
+ ],
689
+ cancellation: { parameter: 'signal' },
690
+ result: {
691
+ mode: 'strict',
692
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/continueInProject:result',
693
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_continueInProject_result$schema,
694
+ jsonSchemaError: 'typert tool schema: unsupported void value',
695
+ },
696
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":488,"column":9},
697
+ },
698
+ 'forgePanel/dismiss': {
699
+ service: 'forgePanel',
700
+ description: 'Hide a visible binding of a Session; other URLs leave the Session unchanged.',
701
+ invocation: { kind: 'direct' },
702
+ parameters: [
703
+ {
704
+ name: 'session',
705
+ wire: 'sessionId',
706
+ description: 'Session that owns the binding.',
707
+ source: 'lookup',
708
+ lookup: 'session',
709
+ codec: {
710
+ mode: 'strict',
711
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
712
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0$schema,
713
+ jsonSchema: {"type":"string"},
714
+ },
715
+ strictCodec: {
716
+ mode: 'strict',
717
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
718
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_0_strict$schema,
719
+ jsonSchema: {"type":"string"},
720
+ },
721
+ },
722
+ {
723
+ name: 'url',
724
+ description: 'web URL of the change request.',
725
+ source: 'json',
726
+ codec: {
727
+ mode: 'strict',
728
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/dismiss:url',
729
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1$schema,
730
+ jsonSchema: {"type":"string"},
731
+ },
732
+ strictCodec: {
733
+ mode: 'strict',
734
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/dismiss:url',
735
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_parameter_1_strict$schema,
736
+ jsonSchema: {"type":"string"},
737
+ },
738
+ },
739
+ ],
740
+ cancellation: { parameter: 'signal' },
741
+ result: {
742
+ mode: 'strict',
743
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/dismiss:result',
744
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_dismiss_result$schema,
745
+ jsonSchemaError: 'typert tool schema: unsupported void value',
746
+ },
747
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":216,"column":9},
748
+ },
749
+ 'forgePanel/follow': {
750
+ service: 'forgePanel',
751
+ description: 'Stream the panel state of a Session: the current state first, then each later state. Intermediate states may be skipped when the reader is slower than the updates. The stream ends when `signal` aborts or the Remote stops.',
752
+ mode: 'stream',
753
+ invocation: { kind: 'direct' },
754
+ parameters: [
755
+ {
756
+ name: 'session',
757
+ wire: 'sessionId',
758
+ description: 'Session to follow.',
759
+ source: 'lookup',
760
+ lookup: 'session',
761
+ codec: {
762
+ mode: 'strict',
763
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
764
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0$schema,
765
+ jsonSchema: {"type":"string"},
766
+ },
767
+ strictCodec: {
768
+ mode: 'strict',
769
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
770
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_parameter_0_strict$schema,
771
+ jsonSchema: {"type":"string"},
772
+ },
773
+ },
774
+ ],
775
+ cancellation: { parameter: 'signal' },
776
+ result: {
777
+ mode: 'strict',
778
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgePanelState',
779
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_follow_result$schema,
780
+ description: 'panel states in publication order.',
781
+ jsonSchemaError: 'typert tool schema: selected union branches overlap or have no required discriminator',
782
+ },
783
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":158,"column":10},
784
+ },
785
+ 'forgePanel/localDiff': {
786
+ service: 'forgePanel',
787
+ description: 'Read the changes one scope covers in the checkout of the Session\'s current directory, with Git confined to the Session\'s read-only sandbox.',
788
+ invocation: { kind: 'direct' },
789
+ parameters: [
790
+ {
791
+ name: 'session',
792
+ wire: 'sessionId',
793
+ description: 'Session whose checkout is read.',
794
+ source: 'lookup',
795
+ lookup: 'session',
796
+ codec: {
797
+ mode: 'strict',
798
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
799
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0$schema,
800
+ jsonSchema: {"type":"string"},
801
+ },
802
+ strictCodec: {
803
+ mode: 'strict',
804
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
805
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_0_strict$schema,
806
+ jsonSchema: {"type":"string"},
807
+ },
808
+ },
809
+ {
810
+ name: 'scope',
811
+ description: 'which changes to read.',
812
+ source: 'json',
813
+ codec: {
814
+ mode: 'strict',
815
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeLocalScope',
816
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1$schema,
817
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"branch"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"uncommitted"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"unstaged"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"staged"}},"required":["kind"],"additionalProperties":true}]},
818
+ },
819
+ strictCodec: {
820
+ mode: 'strict',
821
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeLocalScope',
822
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_parameter_1_strict$schema,
823
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"branch"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"uncommitted"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unstaged"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"staged"}},"required":["kind"],"additionalProperties":false}]},
824
+ },
825
+ },
826
+ ],
827
+ cancellation: { parameter: 'signal' },
828
+ result: {
829
+ mode: 'strict',
830
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeLocalDiff',
831
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localDiff_result$schema,
832
+ description: 'the files, the base of the `branch` scope, and the untracked files left out.',
833
+ jsonSchema: {"type":"object","properties":{"base":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"Ref or abbreviated commit the `branch` scope compares with, such as `origin/master`; null for other scopes."},"files":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","description":"Path relative to the repository root after the change, or before it for a deleted file."},"previousPath":{"oneOf":[{"type":"null","const":null},{"type":"string"}],"description":"Path before a rename, else null."},"status":{"type":"string","enum":["deleted","added","modified","renamed"],"description":"How the file changed."},"binary":{"type":"boolean","description":"Whether the content is binary, which carries no hunks."},"oversized":{"type":"boolean","description":"Whether an untracked file exceeds `maxDiffBytes`, so it carries no hunks."},"untracked":{"type":"boolean","description":"Whether Git does not track the file yet; only local diffs list such files."},"additions":{"type":"number","description":"Lines added."},"deletions":{"type":"number","description":"Lines deleted."},"hunks":{"type":"array","items":{"type":"object","properties":{"oldStart":{"type":"number","description":"First old line the hunk covers, or the old line it comes before when it covers none."},"oldLines":{"type":"number","description":"Old lines the hunk covers."},"newStart":{"type":"number","description":"First new line the hunk covers, or the new line it comes before when it covers none."},"newLines":{"type":"number","description":"New lines the hunk covers."},"lines":{"type":"array","items":{"type":"string"},"description":"Lines in patch form: a leading space for context, `+` for added, `-` for deleted, and `\\` for a missing final newline."}},"required":["oldStart","oldLines","newStart","newLines","lines"],"additionalProperties":true},"description":"Hunks in file order; none for a binary file or a change of mode or name only."}},"required":["path","previousPath","status","binary","oversized","untracked","additions","deletions","hunks"],"additionalProperties":true},"description":"Changed files in Git's path order, untracked files last."},"omitted":{"type":"number","description":"Untracked files left out beyond `maxUntrackedFiles`."}},"required":["base","files","omitted"],"additionalProperties":true},
834
+ },
835
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":245,"column":9},
836
+ },
837
+ 'forgePanel/localText': {
838
+ service: 'forgePanel',
839
+ description: 'Read the new side of one changed file in a scope, which supplies the unchanged lines between its hunks: the index for `staged`, else the working tree.',
840
+ invocation: { kind: 'direct' },
841
+ parameters: [
842
+ {
843
+ name: 'session',
844
+ wire: 'sessionId',
845
+ description: 'Session whose checkout is read.',
846
+ source: 'lookup',
847
+ lookup: 'session',
848
+ codec: {
849
+ mode: 'strict',
850
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
851
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0$schema,
852
+ jsonSchema: {"type":"string"},
853
+ },
854
+ strictCodec: {
855
+ mode: 'strict',
856
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
857
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_0_strict$schema,
858
+ jsonSchema: {"type":"string"},
859
+ },
860
+ },
861
+ {
862
+ name: 'scope',
863
+ description: 'the scope the diff was read in.',
864
+ source: 'json',
865
+ codec: {
866
+ mode: 'strict',
867
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeLocalScope',
868
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1$schema,
869
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"branch"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"uncommitted"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"unstaged"}},"required":["kind"],"additionalProperties":true},{"type":"object","properties":{"kind":{"type":"string","const":"staged"}},"required":["kind"],"additionalProperties":true}]},
870
+ },
871
+ strictCodec: {
872
+ mode: 'strict',
873
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge/types#ForgeLocalScope',
874
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_1_strict$schema,
875
+ jsonSchema: {"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"branch"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"uncommitted"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"unstaged"}},"required":["kind"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"staged"}},"required":["kind"],"additionalProperties":false}]},
876
+ },
877
+ },
878
+ {
879
+ name: 'path',
880
+ description: 'path relative to the checkout\'s top-level directory, as the diff names it.',
881
+ source: 'json',
882
+ codec: {
883
+ mode: 'strict',
884
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/localText:path',
885
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2$schema,
886
+ jsonSchema: {"type":"string"},
887
+ },
888
+ strictCodec: {
889
+ mode: 'strict',
890
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/localText:path',
891
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_parameter_2_strict$schema,
892
+ jsonSchema: {"type":"string"},
893
+ },
894
+ },
895
+ ],
896
+ cancellation: { parameter: 'signal' },
897
+ result: {
898
+ mode: 'strict',
899
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/localText:result',
900
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_localText_result$schema,
901
+ description: 'the text.',
902
+ jsonSchema: {"type":"string"},
903
+ },
904
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":267,"column":9},
905
+ },
906
+ 'forgePanel/markReady': {
907
+ service: 'forgePanel',
908
+ description: 'Mark a draft change request of a Session ready for review; the change request is polled again once the host answers.',
909
+ invocation: { kind: 'direct' },
910
+ parameters: [
911
+ {
912
+ name: 'session',
913
+ wire: 'sessionId',
914
+ description: 'Session the change request is bound to.',
915
+ source: 'lookup',
916
+ lookup: 'session',
917
+ codec: {
918
+ mode: 'strict',
919
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
920
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0$schema,
921
+ jsonSchema: {"type":"string"},
922
+ },
923
+ strictCodec: {
924
+ mode: 'strict',
925
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
926
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_0_strict$schema,
927
+ jsonSchema: {"type":"string"},
928
+ },
929
+ },
930
+ {
931
+ name: 'url',
932
+ description: 'binding URL of the change request.',
933
+ source: 'json',
934
+ codec: {
935
+ mode: 'strict',
936
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/markReady:url',
937
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1$schema,
938
+ jsonSchema: {"type":"string"},
939
+ },
940
+ strictCodec: {
941
+ mode: 'strict',
942
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/markReady:url',
943
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_parameter_1_strict$schema,
944
+ jsonSchema: {"type":"string"},
945
+ },
946
+ },
947
+ ],
948
+ cancellation: { parameter: 'signal' },
949
+ result: {
950
+ mode: 'strict',
951
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/markReady:result',
952
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_markReady_result$schema,
953
+ jsonSchemaError: 'typert tool schema: unsupported void value',
954
+ },
955
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":348,"column":9},
956
+ },
957
+ 'forgePanel/merge': {
958
+ service: 'forgePanel',
959
+ description: 'Merge a change request of a Session while its head is still `headSha`; the change request is polled again once the host answers.',
960
+ invocation: { kind: 'direct' },
961
+ parameters: [
962
+ {
963
+ name: 'session',
964
+ wire: 'sessionId',
965
+ description: 'Session the change request is bound to.',
966
+ source: 'lookup',
967
+ lookup: 'session',
968
+ codec: {
969
+ mode: 'strict',
970
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
971
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0$schema,
972
+ jsonSchema: {"type":"string"},
973
+ },
974
+ strictCodec: {
975
+ mode: 'strict',
976
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
977
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_0_strict$schema,
978
+ jsonSchema: {"type":"string"},
979
+ },
980
+ },
981
+ {
982
+ name: 'url',
983
+ description: 'binding URL of the change request.',
984
+ source: 'json',
985
+ codec: {
986
+ mode: 'strict',
987
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/merge:url',
988
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1$schema,
989
+ jsonSchema: {"type":"string"},
990
+ },
991
+ strictCodec: {
992
+ mode: 'strict',
993
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/merge:url',
994
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_1_strict$schema,
995
+ jsonSchema: {"type":"string"},
996
+ },
997
+ },
998
+ {
999
+ name: 'method',
1000
+ description: 'how the commits enter the base branch.',
1001
+ source: 'json',
1002
+ codec: {
1003
+ mode: 'strict',
1004
+ typeSymbol: '@deepseek-ai/dsh-experimental-forge/types#MergeMethod',
1005
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2$schema,
1006
+ jsonSchema: {"type":"string","enum":["merge","squash","rebase"]},
1007
+ },
1008
+ strictCodec: {
1009
+ mode: 'strict',
1010
+ typeSymbol: '@deepseek-ai/dsh-experimental-forge/types#MergeMethod',
1011
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_2_strict$schema,
1012
+ jsonSchema: {"type":"string","enum":["merge","squash","rebase"]},
1013
+ },
1014
+ },
1015
+ {
1016
+ name: 'headSha',
1017
+ description: 'head commit the user confirmed.',
1018
+ source: 'json',
1019
+ codec: {
1020
+ mode: 'strict',
1021
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/merge:headSha',
1022
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3$schema,
1023
+ jsonSchema: {"type":"string"},
1024
+ },
1025
+ strictCodec: {
1026
+ mode: 'strict',
1027
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/merge:headSha',
1028
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_parameter_3_strict$schema,
1029
+ jsonSchema: {"type":"string"},
1030
+ },
1031
+ },
1032
+ ],
1033
+ cancellation: { parameter: 'signal' },
1034
+ result: {
1035
+ mode: 'strict',
1036
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/merge:result',
1037
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_merge_result$schema,
1038
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1039
+ },
1040
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":367,"column":9},
1041
+ },
1042
+ 'forgePanel/refresh': {
1043
+ service: 'forgePanel',
1044
+ description: 'Reinspect a followed Session\'s checkout, probe sign-in again, and poll its change requests at once; an unfollowed Session is unchanged.',
1045
+ invocation: { kind: 'direct' },
1046
+ parameters: [
1047
+ {
1048
+ name: 'session',
1049
+ wire: 'sessionId',
1050
+ description: 'Session whose panel refreshes.',
1051
+ source: 'lookup',
1052
+ lookup: 'session',
1053
+ codec: {
1054
+ mode: 'strict',
1055
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1056
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0$schema,
1057
+ jsonSchema: {"type":"string"},
1058
+ },
1059
+ strictCodec: {
1060
+ mode: 'strict',
1061
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1062
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_parameter_0_strict$schema,
1063
+ jsonSchema: {"type":"string"},
1064
+ },
1065
+ },
1066
+ ],
1067
+ cancellation: { parameter: 'signal' },
1068
+ result: {
1069
+ mode: 'strict',
1070
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/refresh:result',
1071
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_refresh_result$schema,
1072
+ description: 'settles once the inspection and the sign-in probe have ended; poll results reach the panel stream later.',
1073
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1074
+ },
1075
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":229,"column":9},
1076
+ },
1077
+ 'forgePanel/requestWorktree': {
1078
+ service: 'forgePanel',
1079
+ description: 'Ask for a new worktree before the Session\'s first turn, replacing an open request and forgetting a failed attempt. While the next message waits in the inbox, or else at the first step proposal, the panel creates a branch from `from`, or from HEAD of the current checkout when it is null, and enters its checkout. A message that already waits after a failed or stopped attempt keeps waiting for {@link ForgePanelController.retryWorktree}.',
1080
+ invocation: { kind: 'direct' },
1081
+ parameters: [
1082
+ {
1083
+ name: 'session',
1084
+ wire: 'sessionId',
1085
+ description: 'Session without a started turn.',
1086
+ source: 'lookup',
1087
+ lookup: 'session',
1088
+ codec: {
1089
+ mode: 'strict',
1090
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1091
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0$schema,
1092
+ jsonSchema: {"type":"string"},
1093
+ },
1094
+ strictCodec: {
1095
+ mode: 'strict',
1096
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1097
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_0_strict$schema,
1098
+ jsonSchema: {"type":"string"},
1099
+ },
1100
+ },
1101
+ {
1102
+ name: 'from',
1103
+ description: 'local base branch, or null for HEAD.',
1104
+ source: 'json',
1105
+ codec: {
1106
+ mode: 'strict',
1107
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/requestWorktree:from',
1108
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1$schema,
1109
+ jsonSchema: {"oneOf":[{"type":"null","const":null},{"type":"string"}]},
1110
+ },
1111
+ strictCodec: {
1112
+ mode: 'strict',
1113
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/requestWorktree:from',
1114
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_parameter_1_strict$schema,
1115
+ jsonSchema: {"oneOf":[{"type":"null","const":null},{"type":"string"}]},
1116
+ },
1117
+ },
1118
+ ],
1119
+ cancellation: { parameter: 'signal' },
1120
+ result: {
1121
+ mode: 'strict',
1122
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/requestWorktree:result',
1123
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_requestWorktree_result$schema,
1124
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1125
+ },
1126
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":388,"column":9},
1127
+ },
1128
+ 'forgePanel/restoreWorktree': {
1129
+ service: 'forgePanel',
1130
+ description: 'Check out the created worktree of a Session again at its recorded directory when that directory is gone: its branch when the branch still exists, otherwise a new branch of the same name at the base commit. Changes that were never committed are not recovered. Runs as Agent maintenance, inside the wait of a message that waits for the restoration, which then goes on; without a missing directory the Session is unchanged.',
1131
+ invocation: { kind: 'direct' },
1132
+ parameters: [
1133
+ {
1134
+ name: 'session',
1135
+ wire: 'sessionId',
1136
+ description: 'Session whose worktree directory is gone.',
1137
+ source: 'lookup',
1138
+ lookup: 'session',
1139
+ codec: {
1140
+ mode: 'strict',
1141
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1142
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0$schema,
1143
+ jsonSchema: {"type":"string"},
1144
+ },
1145
+ strictCodec: {
1146
+ mode: 'strict',
1147
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1148
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_parameter_0_strict$schema,
1149
+ jsonSchema: {"type":"string"},
1150
+ },
1151
+ },
1152
+ ],
1153
+ cancellation: { parameter: 'signal' },
1154
+ result: {
1155
+ mode: 'strict',
1156
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/restoreWorktree:result',
1157
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_restoreWorktree_result$schema,
1158
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1159
+ },
1160
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":457,"column":9},
1161
+ },
1162
+ 'forgePanel/retryWorktree': {
1163
+ service: 'forgePanel',
1164
+ description: 'Make another attempt, with a new branch name, at the worktree a message of the Session waits for after a failed or stopped attempt.',
1165
+ invocation: { kind: 'direct' },
1166
+ parameters: [
1167
+ {
1168
+ name: 'session',
1169
+ wire: 'sessionId',
1170
+ description: 'Session whose message waits.',
1171
+ source: 'lookup',
1172
+ lookup: 'session',
1173
+ codec: {
1174
+ mode: 'strict',
1175
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1176
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0$schema,
1177
+ jsonSchema: {"type":"string"},
1178
+ },
1179
+ strictCodec: {
1180
+ mode: 'strict',
1181
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1182
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_parameter_0_strict$schema,
1183
+ jsonSchema: {"type":"string"},
1184
+ },
1185
+ },
1186
+ ],
1187
+ cancellation: { parameter: 'signal' },
1188
+ result: {
1189
+ mode: 'strict',
1190
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/retryWorktree:result',
1191
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_retryWorktree_result$schema,
1192
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1193
+ },
1194
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":436,"column":9},
1195
+ },
1196
+ 'forgePanel/stopCreation': {
1197
+ service: 'forgePanel',
1198
+ description: 'Stop the creation a message of the Session waits for; the message keeps waiting with the request still open. Without such a creation the Session is unchanged.',
1199
+ invocation: { kind: 'direct' },
1200
+ parameters: [
1201
+ {
1202
+ name: 'session',
1203
+ wire: 'sessionId',
1204
+ description: 'Session whose creation stops.',
1205
+ source: 'lookup',
1206
+ lookup: 'session',
1207
+ codec: {
1208
+ mode: 'strict',
1209
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1210
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0$schema,
1211
+ jsonSchema: {"type":"string"},
1212
+ },
1213
+ strictCodec: {
1214
+ mode: 'strict',
1215
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1216
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_parameter_0_strict$schema,
1217
+ jsonSchema: {"type":"string"},
1218
+ },
1219
+ },
1220
+ ],
1221
+ cancellation: { parameter: 'signal' },
1222
+ result: {
1223
+ mode: 'strict',
1224
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/stopCreation:result',
1225
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_stopCreation_result$schema,
1226
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1227
+ },
1228
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":423,"column":9},
1229
+ },
1230
+ 'forgePanel/track': {
1231
+ service: 'forgePanel',
1232
+ description: 'Bind a change request to a Session by URL, or restore a dismissed binding.',
1233
+ invocation: { kind: 'direct' },
1234
+ parameters: [
1235
+ {
1236
+ name: 'session',
1237
+ wire: 'sessionId',
1238
+ description: 'Session that receives the binding.',
1239
+ source: 'lookup',
1240
+ lookup: 'session',
1241
+ codec: {
1242
+ mode: 'strict',
1243
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1244
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0$schema,
1245
+ jsonSchema: {"type":"string"},
1246
+ },
1247
+ strictCodec: {
1248
+ mode: 'strict',
1249
+ typeSymbol: '@deepseek-ai/dsh-session/types#SessionId',
1250
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_0_strict$schema,
1251
+ jsonSchema: {"type":"string"},
1252
+ },
1253
+ },
1254
+ {
1255
+ name: 'url',
1256
+ description: 'web URL of the change request.',
1257
+ source: 'json',
1258
+ codec: {
1259
+ mode: 'strict',
1260
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/track:url',
1261
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1$schema,
1262
+ jsonSchema: {"type":"string"},
1263
+ },
1264
+ strictCodec: {
1265
+ mode: 'strict',
1266
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/track:url',
1267
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_parameter_1_strict$schema,
1268
+ jsonSchema: {"type":"string"},
1269
+ },
1270
+ },
1271
+ ],
1272
+ cancellation: { parameter: 'signal' },
1273
+ result: {
1274
+ mode: 'strict',
1275
+ typeSymbol: '@deepseek-ai/dsh-experimental-client-ui-forge#forgePanel/track:result',
1276
+ create: _deepseek_ai_dsh_experimental_client_ui_forge_forgePanel_track_result$schema,
1277
+ jsonSchemaError: 'typert tool schema: unsupported void value',
1278
+ },
1279
+ sourceLocation: {"file":"packages/experimental/client-ui-forge/src/index.ts","line":201,"column":9},
1280
+ },
1281
+ },
1282
+ }, z)
1283
+
1284
+ export const TYPERT = {
1285
+ package: '@deepseek-ai/dsh-experimental-client-ui-forge',
1286
+ face: 'host',
1287
+ schemas: [
1288
+ ],
1289
+ get invocations() { return $remote.descriptors },
1290
+ model: {
1291
+ "services": [
1292
+ {
1293
+ "description": "Serves the forge panel. Following a Session inspects the checkout of its current directory read-only in the Session's execution world, recognizes the code host of the upstream remote or `origin`, probes sign-in for that host, and polls the Session's bound change requests through `ctx.forge` until the last follower of that Session leaves. A worktree request makes the panel create a branch and checkout through an optional `ctx.worktrees` and enter it while the Session's first message waits in the inbox, or at the first step proposal of a message no wait took. After a failed or stopped attempt the message keeps waiting for another attempt or for the request to be withdrawn. A message also waits while the worktree the Session works in is gone, until that worktree is checked out again or left for the source checkout. Changes to a Session's checkout run as Agent maintenance, so a message that arrives meanwhile waits for them.",
1294
+ "summary": "Serves the forge panel.",
1295
+ "tags": [],
1296
+ "jsDoc": "/**\n * Serves the forge panel. Following a Session inspects the checkout of its\n * current directory read-only in the Session's execution world, recognizes the\n * code host of the upstream remote or `origin`, probes sign-in for that host,\n * and polls the Session's bound change requests through `ctx.forge` until the\n * last follower of that Session leaves. A worktree request makes the panel\n * create a branch and checkout through an optional `ctx.worktrees` and enter\n * it while the Session's first message waits in the inbox, or at the first\n * step proposal of a message no wait took. After a failed or stopped attempt\n * the message keeps waiting for another attempt or for the request to be\n * withdrawn. A message also waits while the worktree the Session works in is\n * gone, until that worktree is checked out again or left for the source\n * checkout. Changes to a Session's checkout run as Agent maintenance, so a\n * message that arrives meanwhile waits for them.\n */",
1297
+ "key": "forgePanel",
1298
+ "exportName": "ForgePanelController",
1299
+ "members": [
1300
+ {
1301
+ "kind": "method",
1302
+ "name": "follow",
1303
+ "signature": "@Remote({ mode: 'stream' }) async *follow(session: Session, signal: AbortSignal): AsyncIterable<ForgePanelState>",
1304
+ "summary": "Stream the panel state of a Session: the current state first, then each later state.",
1305
+ "jsDoc": "/**\n * Stream the panel state of a Session: the current state first, then each\n * later state. Intermediate states may be skipped when the reader is slower\n * than the updates. The stream ends when `signal` aborts or the Remote stops.\n * @param session - Session to follow.\n * @param signal - ends the stream.\n * @returns panel states in publication order.\n */"
1306
+ },
1307
+ {
1308
+ "kind": "method",
1309
+ "name": "changeRequestStates",
1310
+ "signature": "@Remote({ mode: 'stream' }) async *changeRequestStates(signal: AbortSignal): AsyncIterable<ForgeChangeRequestStatesFrame>",
1311
+ "summary": "Stream the last known state of every change request that a listed Session the caller may read binds: the stored states first, then each state a poll changes or a new binding reveals.",
1312
+ "jsDoc": "/**\n * Stream the last known state of every change request that a listed\n * Session the caller may read binds: the stored states first, then each\n * state a poll changes or a new binding reveals. Listing reads no Session\n * log: loaded Sessions report their bindings, others the cached Session\n * summary, and a Session without one shows nothing until it is opened.\n * Closed requests are polled at the idle cadence so reopening is observed. The\n * stream ends when `signal` aborts or the Remote stops.\n * @param signal - ends the stream.\n * @returns frames in publication order.\n * @throws when the Host lacks the Session query, projection cache, storage, or Session store service.\n */"
1313
+ },
1314
+ {
1315
+ "kind": "method",
1316
+ "name": "branches",
1317
+ "signature": "@Remote async branches(session: Session, signal: AbortSignal): Promise<ForgeBranches>",
1318
+ "summary": "List the local branches that can start a worktree of the Session's current checkout.",
1319
+ "jsDoc": "/**\n * List the local branches that can start a worktree of the Session's current checkout.\n * @param session - Session whose current directory is listed.\n * @param signal - request cancellation.\n * @returns the checked-out branch and at most `maxBranches` local branches, the checked-out one first.\n * @throws when the current directory is not inside a checkout or Git fails.\n */"
1320
+ },
1321
+ {
1322
+ "kind": "method",
1323
+ "name": "track",
1324
+ "signature": "@Remote async track(session: Session, url: string, signal: AbortSignal): Promise<void>",
1325
+ "summary": "Bind a change request to a Session by URL, or restore a dismissed binding.",
1326
+ "jsDoc": "/**\n * Bind a change request to a Session by URL, or restore a dismissed binding.\n * @param session - Session that receives the binding.\n * @param url - web URL of the change request.\n * @param signal - request cancellation.\n * @throws `forgePanel/unrecognized-url` when no registered provider serves the URL.\n */"
1327
+ },
1328
+ {
1329
+ "kind": "method",
1330
+ "name": "dismiss",
1331
+ "signature": "@Remote async dismiss(session: Session, url: string, signal: AbortSignal): Promise<void>",
1332
+ "summary": "Hide a visible binding of a Session; other URLs leave the Session unchanged.",
1333
+ "jsDoc": "/**\n * Hide a visible binding of a Session; other URLs leave the Session unchanged.\n * @param session - Session that owns the binding.\n * @param url - web URL of the change request.\n * @param signal - request cancellation.\n */"
1334
+ },
1335
+ {
1336
+ "kind": "method",
1337
+ "name": "refresh",
1338
+ "signature": "@Remote async refresh(session: Session, signal: AbortSignal): Promise<void>",
1339
+ "summary": "Reinspect a followed Session's checkout, probe sign-in again, and poll its change requests at once; an unfollowed Session is unchanged.",
1340
+ "jsDoc": "/**\n * Reinspect a followed Session's checkout, probe sign-in again, and poll its\n * change requests at once; an unfollowed Session is unchanged.\n * @param session - Session whose panel refreshes.\n * @param signal - request cancellation.\n * @returns settles once the inspection and the sign-in probe have ended; poll results reach the panel stream later.\n */"
1341
+ },
1342
+ {
1343
+ "kind": "method",
1344
+ "name": "localDiff",
1345
+ "signature": "@Remote async localDiff(session: Session, scope: ForgeLocalScope, signal: AbortSignal): Promise<ForgeLocalDiff>",
1346
+ "summary": "Read the changes one scope covers in the checkout of the Session's current directory, with Git confined to the Session's read-only sandbox.",
1347
+ "jsDoc": "/**\n * Read the changes one scope covers in the checkout of the Session's\n * current directory, with Git confined to the Session's read-only sandbox.\n * @param session - Session whose checkout is read.\n * @param scope - which changes to read.\n * @param signal - request cancellation.\n * @returns the files, the base of the `branch` scope, and the untracked files left out.\n * @throws `forgePanel/not-a-checkout` outside a checkout; `forgePanel/no-fork-point` for the `branch`\n * scope of a checkout without one; `forgePanel/diff-too-large` over `maxDiffBytes`; the Git error when Git fails.\n */"
1348
+ },
1349
+ {
1350
+ "kind": "method",
1351
+ "name": "localText",
1352
+ "signature": "@Remote async localText(session: Session, scope: ForgeLocalScope, path: string, signal: AbortSignal): Promise<string>",
1353
+ "summary": "Read the new side of one changed file in a scope, which supplies the unchanged lines between its hunks: the index for `staged`, else the working tree.",
1354
+ "jsDoc": "/**\n * Read the new side of one changed file in a scope, which supplies the\n * unchanged lines between its hunks: the index for `staged`, else the working tree.\n * @param session - Session whose checkout is read.\n * @param scope - the scope the diff was read in.\n * @param path - path relative to the checkout's top-level directory, as the diff names it.\n * @param signal - request cancellation.\n * @returns the text.\n * @throws `forgePanel/not-a-checkout` outside a checkout; `forgePanel/diff-too-large` over `maxDiffBytes`;\n * an error for a path outside the checkout, binary content, or a failed read.\n */"
1355
+ },
1356
+ {
1357
+ "kind": "method",
1358
+ "name": "changeRequestDiff",
1359
+ "signature": "@Remote async changeRequestDiff(session: Session, url: string, signal: AbortSignal): Promise<ForgeChangeRequestDiff>",
1360
+ "summary": "Read the changes of a change request of a Session as its code host computes them, at the head commit of its latest status.",
1361
+ "jsDoc": "/**\n * Read the changes of a change request of a Session as its code host\n * computes them, at the head commit of its latest status. A patch already\n * read at the same head commit and base branch is reused from memory, for\n * any Session, until `maxCachedDiffBytes` evicts it.\n * @param session - Session the change request is bound to.\n * @param url - binding URL of the change request.\n * @param signal - request cancellation.\n * @returns the files, the head commit, each file's web page, and the commits the checkout has beyond the head.\n * @throws `forgePanel/not-bound` unless the URL is a visible binding of the Session that a provider serves;\n * `forgePanel/diff-too-large` when the host or its provider refuses the diff over a size limit;\n * `forgePanel/diff-failed` before its status was read and when the host does not provide the diff otherwise.\n */"
1362
+ },
1363
+ {
1364
+ "kind": "method",
1365
+ "name": "changeRequestText",
1366
+ "signature": "@Remote async changeRequestText(session: Session, url: string, commit: string, path: string, signal: AbortSignal): Promise<string>",
1367
+ "summary": "Read one file of a change request's repository at a commit, which supplies the unchanged lines between the hunks of its diff.",
1368
+ "jsDoc": "/**\n * Read one file of a change request's repository at a commit, which\n * supplies the unchanged lines between the hunks of its diff.\n * @param session - Session the change request is bound to.\n * @param url - binding URL of the change request.\n * @param commit - commit object name, the head commit of the diff.\n * @param path - path relative to the repository root.\n * @param signal - request cancellation.\n * @returns the text.\n * @throws `forgePanel/not-bound` unless the URL is a visible binding of the Session that a provider serves;\n * `forgePanel/diff-too-large` when the host or its provider refuses the file over a size limit;\n * `forgePanel/diff-failed` when the host does not provide the file otherwise.\n */"
1369
+ },
1370
+ {
1371
+ "kind": "method",
1372
+ "name": "markReady",
1373
+ "signature": "@Remote async markReady(session: Session, url: string, signal: AbortSignal): Promise<void>",
1374
+ "summary": "Mark a draft change request of a Session ready for review; the change request is polled again once the host answers.",
1375
+ "jsDoc": "/**\n * Mark a draft change request of a Session ready for review; the change\n * request is polled again once the host answers.\n * @param session - Session the change request is bound to.\n * @param url - binding URL of the change request.\n * @param signal - request cancellation.\n * @throws `forgePanel/not-bound` unless the URL is a visible binding of the Session that a provider serves;\n * `forgePanel/action-failed` with the host's reason when the host refuses or cannot be reached.\n */"
1376
+ },
1377
+ {
1378
+ "kind": "method",
1379
+ "name": "merge",
1380
+ "signature": "@Remote async merge(session: Session, url: string, method: MergeMethod, headSha: string, signal: AbortSignal): Promise<void>",
1381
+ "summary": "Merge a change request of a Session while its head is still `headSha`; the change request is polled again once the host answers.",
1382
+ "jsDoc": "/**\n * Merge a change request of a Session while its head is still `headSha`;\n * the change request is polled again once the host answers.\n * @param session - Session the change request is bound to.\n * @param url - binding URL of the change request.\n * @param method - how the commits enter the base branch.\n * @param headSha - head commit the user confirmed.\n * @param signal - request cancellation.\n * @throws `forgePanel/not-bound` unless the URL is a visible binding of the Session that a provider serves;\n * `forgePanel/stale-head` when the head moved past `headSha`; `forgePanel/action-failed` with the host's\n * reason when the host refuses otherwise or cannot be reached.\n */"
1383
+ },
1384
+ {
1385
+ "kind": "method",
1386
+ "name": "requestWorktree",
1387
+ "signature": "@Remote async requestWorktree(session: Session, from: string | null, signal: AbortSignal): Promise<void>",
1388
+ "summary": "Ask for a new worktree before the Session's first turn, replacing an open request and forgetting a failed attempt.",
1389
+ "jsDoc": "/**\n * Ask for a new worktree before the Session's first turn, replacing an open\n * request and forgetting a failed attempt. While the next message waits in\n * the inbox, or else at the first step proposal, the panel creates a branch\n * from `from`, or from HEAD of the current checkout when it is null, and\n * enters its checkout. A message that already waits after a failed or\n * stopped attempt keeps waiting for {@link ForgePanelController.retryWorktree}.\n * @param session - Session without a started turn.\n * @param from - local base branch, or null for HEAD.\n * @param signal - request cancellation.\n * @throws `forgePanel/invalid-branch` when `from` is empty; `forgePanel/worktrees-unavailable`\n * without a worktree service; `forgePanel/session-started` after a turn started or the worktree was\n * created; `forgePanel/session-busy` while the worktree is being created.\n */"
1390
+ },
1391
+ {
1392
+ "kind": "method",
1393
+ "name": "cancelWorktree",
1394
+ "signature": "@Remote async cancelWorktree(session: Session, signal: AbortSignal): Promise<void>",
1395
+ "summary": "Withdraw the open worktree request of a Session with its failed attempt, which lets a waiting message go on in the current checkout; without a request the Session is unchanged.",
1396
+ "jsDoc": "/**\n * Withdraw the open worktree request of a Session with its failed attempt,\n * which lets a waiting message go on in the current checkout; without a\n * request the Session is unchanged. Withdrawing needs no worktree service.\n * @param session - Session without a started turn.\n * @param signal - request cancellation.\n * @throws `forgePanel/session-started` after a turn started or the worktree was created;\n * `forgePanel/session-busy` while the worktree is being created.\n */"
1397
+ },
1398
+ {
1399
+ "kind": "method",
1400
+ "name": "stopCreation",
1401
+ "signature": "@Remote async stopCreation(session: Session, signal: AbortSignal): Promise<void>",
1402
+ "summary": "Stop the creation a message of the Session waits for; the message keeps waiting with the request still open.",
1403
+ "jsDoc": "/**\n * Stop the creation a message of the Session waits for; the message keeps\n * waiting with the request still open. Without such a creation the Session\n * is unchanged.\n * @param session - Session whose creation stops.\n * @param signal - request cancellation.\n */"
1404
+ },
1405
+ {
1406
+ "kind": "method",
1407
+ "name": "retryWorktree",
1408
+ "signature": "@Remote async retryWorktree(session: Session, signal: AbortSignal): Promise<void>",
1409
+ "summary": "Make another attempt, with a new branch name, at the worktree a message of the Session waits for after a failed or stopped attempt.",
1410
+ "jsDoc": "/**\n * Make another attempt, with a new branch name, at the worktree a message\n * of the Session waits for after a failed or stopped attempt.\n * @param session - Session whose message waits.\n * @param signal - request cancellation.\n * @throws `forgePanel/not-waiting` when no message waits or an attempt is running.\n */"
1411
+ },
1412
+ {
1413
+ "kind": "method",
1414
+ "name": "restoreWorktree",
1415
+ "signature": "@Remote async restoreWorktree(session: Session, signal: AbortSignal): Promise<void>",
1416
+ "summary": "Check out the created worktree of a Session again at its recorded directory when that directory is gone: its branch when the branch still exists, otherwise a new branch of the same name at the base commit.",
1417
+ "jsDoc": "/**\n * Check out the created worktree of a Session again at its recorded\n * directory when that directory is gone: its branch when the branch still\n * exists, otherwise a new branch of the same name at the base commit. Changes\n * that were never committed are not recovered. Runs as Agent maintenance,\n * inside the wait of a message that waits for the restoration, which then\n * goes on; without a missing directory the Session is unchanged.\n * @param session - Session whose worktree directory is gone.\n * @param signal - request cancellation, which aborts the restoration.\n * @throws `forgePanel/no-worktree` without a created worktree; `forgePanel/worktrees-unavailable`\n * without a worktree service; `forgePanel/session-busy` while the Session's Agent is not loaded or\n * has other work; `forgePanel/restore-failed` when Git fails.\n */"
1418
+ },
1419
+ {
1420
+ "kind": "method",
1421
+ "name": "continueInProject",
1422
+ "signature": "@Remote async continueInProject(session: Session, signal: AbortSignal): Promise<void>",
1423
+ "summary": "Move a Session from its created worktree to the source checkout the worktree came from; the Session no longer works in the worktree.",
1424
+ "jsDoc": "/**\n * Move a Session from its created worktree to the source checkout the\n * worktree came from; the Session no longer works in the worktree. Runs as\n * Agent maintenance, inside the wait of a message that waits for the removed\n * worktree, which then goes on.\n * @param session - Session with a created worktree.\n * @param signal - request cancellation.\n * @throws `forgePanel/no-worktree` without a created worktree; `forgePanel/session-busy` while the\n * Session's Agent is not loaded or has other work; the working-directory service's error when the\n * source checkout no longer exists.\n */"
1425
+ }
1426
+ ],
1427
+ "types": [
1428
+ {
1429
+ "name": "AfterScheduleRecord",
1430
+ "declaration": "export interface AfterScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'after';\n readonly title: string;\n readonly prompt: string;\n readonly afterSeconds: number;\n readonly scheduledAt: string;\n}"
1431
+ },
1432
+ {
1433
+ "name": "AgentCancelCause",
1434
+ "declaration": "export type AgentCancelCause = { readonly kind: 'user'; } | { readonly kind: 'parent'; } | { readonly kind: 'hook'; readonly reason: string; } | { readonly kind: 'disposed'; };"
1435
+ },
1436
+ {
1437
+ "name": "AgentMessageSource",
1438
+ "declaration": "export interface AgentMessageSource {\n readonly kind: 'agent-message';\n readonly form: 'relay';\n readonly senderSessionId: SessionId;\n}"
1439
+ },
1440
+ {
1441
+ "name": "AllowedModelRoute",
1442
+ "declaration": "export interface AllowedModelRoute {\n readonly provider: string;\n readonly model: string;\n}"
1443
+ },
1444
+ {
1445
+ "name": "ApprovalOutcome",
1446
+ "declaration": "export type ApprovalOutcome = 'allowed-once' | 'rejected' | 'cancelled' | 'unavailable';"
1447
+ },
1448
+ {
1449
+ "name": "ApprovalPolicy",
1450
+ "declaration": "export type ApprovalPolicy = 'ask' | 'never';"
1451
+ },
1452
+ {
1453
+ "name": "ApprovalRequestId",
1454
+ "declaration": "export type ApprovalRequestId = Branded<'ApprovalRequestId'>;"
1455
+ },
1456
+ {
1457
+ "name": "AssistantMessage",
1458
+ "declaration": "export interface AssistantMessage extends MessageBase {\n readonly role: 'assistant';\n readonly source: ModelMessageSource;\n}"
1459
+ },
1460
+ {
1461
+ "name": "AssistantProviderMetadata",
1462
+ "declaration": "export interface AssistantProviderMetadata {\n provider: string;\n model: string;\n replayState?: unknown;\n}"
1463
+ },
1464
+ {
1465
+ "name": "AssistantStreamRecord",
1466
+ "declaration": "export type AssistantStreamRecord = { readonly type: 'text-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly texts: readonly string[]; } | { readonly type: 'reasoning-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly texts: readonly string[]; } | { readonly type: 'tool-call-chunks'; readonly time0: number; readonly index: number; readonly dt: readonly number[]; readonly id: ToolCallId; readonly name?: string; readonly args: readonly string[]; } | { readonly type: 'chunk'; readonly time: number; readonly chunk: StreamChunk; };"
1467
+ },
1468
+ {
1469
+ "name": "AtScheduleRecord",
1470
+ "declaration": "export interface AtScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'at';\n readonly title: string;\n readonly prompt: string;\n readonly scheduledAt: string;\n}"
1471
+ },
1472
+ {
1473
+ "name": "AttachmentId",
1474
+ "declaration": "export type AttachmentId = Branded<'AttachmentId'>;"
1475
+ },
1476
+ {
1477
+ "name": "BindingOrigin",
1478
+ "declaration": "export type BindingOrigin = 'created' | 'referenced' | 'discovered' | 'tracked';"
1479
+ },
1480
+ {
1481
+ "name": "Branded",
1482
+ "declaration": "export type Branded<B extends string> = string & { readonly [BRAND]: B; };"
1483
+ },
1484
+ {
1485
+ "name": "BrandedNumber",
1486
+ "declaration": "export type BrandedNumber<B extends string> = number & { readonly [BRAND]: B; };"
1487
+ },
1488
+ {
1489
+ "name": "ChangeRequestCheck",
1490
+ "declaration": "export interface ChangeRequestCheck {\n readonly name: string;\n readonly state: CheckState;\n readonly url: string | null;\n readonly workflow: string | null;\n readonly startedAt: string | null;\n readonly completedAt: string | null;\n}"
1491
+ },
1492
+ {
1493
+ "name": "ChangeRequestKey",
1494
+ "declaration": "export type ChangeRequestKey = Branded<'ChangeRequestKey'>;"
1495
+ },
1496
+ {
1497
+ "name": "ChangeRequestRef",
1498
+ "declaration": "export interface ChangeRequestRef {\n readonly repository: ForgeRepository;\n readonly number: number;\n}"
1499
+ },
1500
+ {
1501
+ "name": "ChangeRequestSnapshot",
1502
+ "declaration": "export interface ChangeRequestSnapshot {\n readonly ref: ChangeRequestRef;\n readonly url: string;\n readonly title: string;\n readonly state: ChangeRequestState;\n readonly draft: boolean;\n readonly author: string | null;\n readonly headBranch: string;\n readonly headSha: string;\n readonly baseBranch: string;\n readonly additions: number;\n readonly deletions: number;\n readonly mergeability: Mergeability;\n readonly mergeReady: boolean;\n readonly mergeMethods: readonly MergeMethod[];\n readonly reviewDecision: ReviewDecision;\n readonly checks: readonly ChangeRequestCheck[];\n readonly checksRollup: ChecksRollup;\n readonly checksTruncated: boolean;\n readonly unresolvedThreads: number;\n readonly updatedAt: string;\n readonly closedAt: string | null;\n}"
1503
+ },
1504
+ {
1505
+ "name": "ChangeRequestState",
1506
+ "declaration": "export type ChangeRequestState = 'open' | 'closed' | 'merged';"
1507
+ },
1508
+ {
1509
+ "name": "ChangeRequestUpdate",
1510
+ "declaration": "export type ChangeRequestUpdate = { readonly key: ChangeRequestKey; readonly fetchedAt: number; } & ({ readonly snapshot: ChangeRequestSnapshot; } | { readonly failure: ForgeFailure; });"
1511
+ },
1512
+ {
1513
+ "name": "ChecksRollup",
1514
+ "declaration": "export type ChecksRollup = 'none' | 'pending' | 'success' | 'failure';"
1515
+ },
1516
+ {
1517
+ "name": "CheckState",
1518
+ "declaration": "export type CheckState = 'pending' | 'success' | 'failure' | 'neutral' | 'skipped' | 'cancelled';"
1519
+ },
1520
+ {
1521
+ "name": "CommandId",
1522
+ "declaration": "export type CommandId = Branded<'CommandId'>;"
1523
+ },
1524
+ {
1525
+ "name": "CommandSource",
1526
+ "declaration": "export type CommandSource = CommandSourceMap[keyof CommandSourceMap];"
1527
+ },
1528
+ {
1529
+ "name": "CommandSourceMap",
1530
+ "declaration": "export interface CommandSourceMap {\n user: { kind: 'user'; };\n}"
1531
+ },
1532
+ {
1533
+ "name": "CompactionCheckpointSource",
1534
+ "declaration": "export type CompactionCheckpointSource = typeof COMPACT_CHECKPOINT_MARKER & { readonly compactionId: CompactionId; readonly sourceCommandId?: CommandId; };"
1535
+ },
1536
+ {
1537
+ "name": "CompactionId",
1538
+ "declaration": "export type CompactionId = Branded<'CompactionId'>;"
1539
+ },
1540
+ {
1541
+ "name": "ContentBlock",
1542
+ "declaration": "export type ContentBlock = ContentBlockMap[ContentBlockType];"
1543
+ },
1544
+ {
1545
+ "name": "ContentBlockMap",
1546
+ "declaration": "export interface ContentBlockMap {\n text: TextBlock;\n reasoning: ReasoningBlock;\n image: ImageBlock;\n file: FileBlock;\n 'tool-call': ToolCallBlock;\n 'tool-addition': ToolAdditionBlock;\n 'tool-removal': ToolRemovalBlock;\n}"
1547
+ },
1548
+ {
1549
+ "name": "ContentBlockType",
1550
+ "declaration": "export type ContentBlockType = keyof ContentBlockMap;"
1551
+ },
1552
+ {
1553
+ "name": "ContextFormed",
1554
+ "declaration": "export type ContextFormed = { readonly form?: never; } | { readonly form: 'instructions'; } | { readonly form: 'catalog'; } | { readonly form: 'snapshot'; readonly sections: readonly ContextSnapshotSection[]; } | { readonly form: 'notice'; readonly summary: string; } | { readonly form: 'relay'; } | { readonly form: 'recall'; };"
1555
+ },
1556
+ {
1557
+ "name": "ContextSnapshotSection",
1558
+ "declaration": "export interface ContextSnapshotSection {\n readonly name: string;\n readonly text: string;\n}"
1559
+ },
1560
+ {
1561
+ "name": "ContinuableSubagentDescriptorData",
1562
+ "declaration": "export interface ContinuableSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'continuable';\n readonly label: string;\n readonly agentProvider?: string;\n readonly agentModel?: string;\n readonly agentReasoningEffort?: ReasoningEffortId;\n readonly persona?: string;\n readonly toolFilter?: ToolRestriction;\n}"
1563
+ },
1564
+ {
1565
+ "name": "DeveloperMessage",
1566
+ "declaration": "export interface DeveloperMessage extends MessageBase {\n readonly role: 'developer';\n}"
1567
+ },
1568
+ {
1569
+ "name": "EpochHeader",
1570
+ "declaration": "export interface EpochHeader {\n config: LlmCallConfig;\n adapterDefaults?: LlmCallConfigAdapterDefaults;\n tools?: ToolSchema[];\n system?: never;\n}"
1571
+ },
1572
+ {
1573
+ "name": "EveryScheduleDispatchChange",
1574
+ "declaration": "export interface EveryScheduleDispatchChange {\n readonly version: 1;\n readonly operation: 'dispatch';\n readonly id: ScheduleId;\n readonly acceptedAt: string;\n}"
1575
+ },
1576
+ {
1577
+ "name": "EveryScheduleRecord",
1578
+ "declaration": "export interface EveryScheduleRecord {\n readonly id: ScheduleId;\n readonly kind: 'every';\n readonly title: string;\n readonly prompt: string;\n readonly everySeconds: number;\n readonly scheduledAt: string;\n}"
1579
+ },
1580
+ {
1581
+ "name": "FeedbackCategory",
1582
+ "declaration": "export type FeedbackCategory = 'task-result' | 'instruction-following' | 'product-interaction' | 'service-stability' | 'resource-cost' | 'security-privacy-permission' | 'other';"
1583
+ },
1584
+ {
1585
+ "name": "FeedbackRecord",
1586
+ "declaration": "export interface FeedbackRecord {\n readonly text?: string;\n readonly category?: FeedbackCategory;\n}"
1587
+ },
1588
+ {
1589
+ "name": "FileAttachmentRef",
1590
+ "declaration": "export interface FileAttachmentRef {\n attachmentId: AttachmentId;\n name: string;\n bytes: number;\n}"
1591
+ },
1592
+ {
1593
+ "name": "FileBlock",
1594
+ "declaration": "export interface FileBlock {\n type: 'file';\n attachment: FileAttachmentRef;\n}"
1595
+ },
1596
+ {
1597
+ "name": "FinishReason",
1598
+ "declaration": "export type FinishReason = FinishReasonMap[keyof FinishReasonMap];"
1599
+ },
1600
+ {
1601
+ "name": "FinishReasonMap",
1602
+ "declaration": "export interface FinishReasonMap {\n stop: { kind: 'stop'; };\n 'tool-calls': { kind: 'tool-calls'; };\n 'max-tokens': { kind: 'max-tokens'; };\n aborted: { kind: 'aborted'; failure: LlmFailure; };\n error: { kind: 'error'; failure: LlmFailure; };\n}"
1603
+ },
1604
+ {
1605
+ "name": "ForgeBranches",
1606
+ "declaration": "export interface ForgeBranches {\n readonly current: string | null;\n readonly branches: readonly string[];\n}"
1607
+ },
1608
+ {
1609
+ "name": "ForgeChangedFile",
1610
+ "declaration": "export interface ForgeChangedFile {\n readonly path: string;\n readonly additions: number;\n readonly deletions: number;\n readonly binary: boolean;\n}"
1611
+ },
1612
+ {
1613
+ "name": "ForgeChangeRequestDiff",
1614
+ "declaration": "export interface ForgeChangeRequestDiff {\n readonly headSha: string;\n readonly files: readonly ForgeDiffFile[];\n readonly localAhead: number | null;\n readonly fileUrls: Readonly<Record<string, string>>;\n}"
1615
+ },
1616
+ {
1617
+ "name": "ForgeChangeRequestListState",
1618
+ "declaration": "export type ForgeChangeRequestListState = Pick<ChangeRequestSnapshot, 'url' | 'title' | 'state' | 'draft' | 'checksRollup' | 'reviewDecision' | 'mergeability'> & { readonly number: number; };"
1619
+ },
1620
+ {
1621
+ "name": "ForgeChangeRequestStatesFrame",
1622
+ "declaration": "export type ForgeChangeRequestStatesFrame = { readonly type: 'baseline'; readonly states: readonly ForgeChangeRequestListState[]; } | { readonly type: 'changed'; readonly states: readonly ForgeChangeRequestListState[]; };"
1623
+ },
1624
+ {
1625
+ "name": "ForgeCheckout",
1626
+ "declaration": "export interface ForgeCheckout {\n readonly root: string;\n readonly branch: string | null;\n readonly linked: boolean;\n readonly commit: string | null;\n}"
1627
+ },
1628
+ {
1629
+ "name": "ForgeCheckoutState",
1630
+ "declaration": "export type ForgeCheckoutState = { readonly state: 'pending'; } | { readonly state: 'none'; } | { readonly state: 'failed'; readonly message: string; } | { readonly state: 'ready'; readonly checkout: ForgeCheckout; };"
1631
+ },
1632
+ {
1633
+ "name": "ForgeDiffFile",
1634
+ "declaration": "export interface ForgeDiffFile {\n readonly path: string;\n readonly previousPath: string | null;\n readonly status: ForgeDiffStatus;\n readonly binary: boolean;\n readonly oversized: boolean;\n readonly untracked: boolean;\n readonly additions: number;\n readonly deletions: number;\n readonly hunks: readonly ForgeDiffHunk[];\n}"
1635
+ },
1636
+ {
1637
+ "name": "ForgeDiffHunk",
1638
+ "declaration": "export interface ForgeDiffHunk {\n readonly oldStart: number;\n readonly oldLines: number;\n readonly newStart: number;\n readonly newLines: number;\n readonly lines: readonly string[];\n}"
1639
+ },
1640
+ {
1641
+ "name": "ForgeDiffStatus",
1642
+ "declaration": "export type ForgeDiffStatus = 'added' | 'deleted' | 'modified' | 'renamed';"
1643
+ },
1644
+ {
1645
+ "name": "ForgeFailure",
1646
+ "declaration": "export interface ForgeFailure {\n readonly code: 'not-found' | 'unauthenticated' | 'too-large' | 'unavailable';\n readonly message: string;\n}"
1647
+ },
1648
+ {
1649
+ "name": "ForgeLocalChanges",
1650
+ "declaration": "export interface ForgeLocalChanges {\n readonly base: string;\n readonly files: readonly ForgeChangedFile[];\n}"
1651
+ },
1652
+ {
1653
+ "name": "ForgeLocalDiff",
1654
+ "declaration": "export interface ForgeLocalDiff {\n readonly base: string | null;\n readonly files: readonly ForgeDiffFile[];\n readonly omitted: number;\n}"
1655
+ },
1656
+ {
1657
+ "name": "ForgeLocalScope",
1658
+ "declaration": "export type ForgeLocalScope = { readonly kind: 'branch'; } | { readonly kind: 'uncommitted'; } | { readonly kind: 'unstaged'; } | { readonly kind: 'staged'; };"
1659
+ },
1660
+ {
1661
+ "name": "ForgeMissingWorktree",
1662
+ "declaration": "export interface ForgeMissingWorktree {\n readonly branchExists: boolean | null;\n}"
1663
+ },
1664
+ {
1665
+ "name": "ForgePanelChangeRequest",
1666
+ "declaration": "export interface ForgePanelChangeRequest extends SessionChangeRequest {\n readonly snapshot: ChangeRequestSnapshot | null;\n}"
1667
+ },
1668
+ {
1669
+ "name": "ForgePanelState",
1670
+ "declaration": "export interface ForgePanelState {\n readonly directory: string;\n readonly checkout: ForgeCheckoutState;\n readonly repository: ForgeRepository | null;\n readonly readiness: ForgeReadiness | null;\n readonly changeRequests: readonly ForgePanelChangeRequest[];\n readonly worktree: ForgePanelWorktree;\n readonly local: ForgeLocalChanges | null;\n}"
1671
+ },
1672
+ {
1673
+ "name": "ForgePanelWorktree",
1674
+ "declaration": "export interface ForgePanelWorktree {\n readonly editable: boolean;\n readonly blocker: ForgeWorktreeBlocker | null;\n readonly request: ForgeWorktreeRequest | null;\n readonly created: ForgeSessionWorktree | null;\n readonly creation: ForgeWorktreeCreation | null;\n readonly failure: ForgeWorktreeFailure | null;\n readonly missing: ForgeMissingWorktree | null;\n readonly restoration: ForgeWorktreeRestoration | null;\n readonly waiting: ForgeWorktreeWaiting | null;\n}"
1675
+ },
1676
+ {
1677
+ "name": "ForgeReadiness",
1678
+ "declaration": "export interface ForgeReadiness {\n readonly state: 'ready' | 'unauthenticated' | 'unavailable';\n readonly message: string | null;\n}"
1679
+ },
1680
+ {
1681
+ "name": "ForgeRepository",
1682
+ "declaration": "export interface ForgeRepository {\n readonly forge: string;\n readonly host: string;\n readonly owner: string;\n readonly name: string;\n}"
1683
+ },
1684
+ {
1685
+ "name": "ForgeSessionWorktree",
1686
+ "declaration": "export interface ForgeSessionWorktree {\n readonly path: string;\n readonly branch: string;\n readonly from: string | null;\n readonly baseCommit: string;\n readonly repositoryRoot: string;\n}"
1687
+ },
1688
+ {
1689
+ "name": "ForgeWorktreeBlocker",
1690
+ "declaration": "export type ForgeWorktreeBlocker = 'not-git' | 'outside-writable-root' | 'read-only';"
1691
+ },
1692
+ {
1693
+ "name": "ForgeWorktreeCreation",
1694
+ "declaration": "export interface ForgeWorktreeCreation {\n readonly phase: 'prepare' | 'checkout';\n readonly branch: string;\n readonly from: string | null;\n readonly held: boolean;\n}"
1695
+ },
1696
+ {
1697
+ "name": "ForgeWorktreeFailure",
1698
+ "declaration": "export interface ForgeWorktreeFailure {\n readonly branch: string | null;\n readonly from: string | null;\n readonly phase: 'prepare' | 'checkout';\n readonly message: string;\n}"
1699
+ },
1700
+ {
1701
+ "name": "ForgeWorktreeRequest",
1702
+ "declaration": "export interface ForgeWorktreeRequest {\n readonly from: string | null;\n}"
1703
+ },
1704
+ {
1705
+ "name": "ForgeWorktreeRestoration",
1706
+ "declaration": "export interface ForgeWorktreeRestoration {\n readonly phase: 'prepare' | 'checkout';\n}"
1707
+ },
1708
+ {
1709
+ "name": "ForgeWorktreeWaiting",
1710
+ "declaration": "export type ForgeWorktreeWaiting = 'creation' | 'restoration';"
1711
+ },
1712
+ {
1713
+ "name": "GoalBlockReason",
1714
+ "declaration": "export interface GoalBlockReason {\n readonly code: string;\n readonly message: string;\n}"
1715
+ },
1716
+ {
1717
+ "name": "GoalChangeMeta",
1718
+ "declaration": "export type GoalChangeMeta = GoalSnapshotChangeMeta | GoalClearChangeMeta;"
1719
+ },
1720
+ {
1721
+ "name": "GoalClearChangeMeta",
1722
+ "declaration": "export interface GoalClearChangeMeta {\n readonly kind: 'goal/change';\n readonly version: 1;\n readonly operation: 'clear';\n readonly cleared: GoalRef;\n readonly clearedAt: number;\n}"
1723
+ },
1724
+ {
1725
+ "name": "GoalId",
1726
+ "declaration": "export type GoalId = Branded<'GoalId'>;"
1727
+ },
1728
+ {
1729
+ "name": "GoalMessageSource",
1730
+ "declaration": "export interface GoalMessageSource {\n readonly kind: 'goal';\n readonly goalId: GoalId;\n readonly revision: number;\n readonly round: number;\n}"
1731
+ },
1732
+ {
1733
+ "name": "GoalOperation",
1734
+ "declaration": "export type GoalOperation = 'create' | 'edit' | 'pause' | 'resume' | 'complete' | 'block' | 'clear';"
1735
+ },
1736
+ {
1737
+ "name": "GoalPhase",
1738
+ "declaration": "export type GoalPhase = 'active' | 'paused' | 'blocked' | 'complete';"
1739
+ },
1740
+ {
1741
+ "name": "GoalRef",
1742
+ "declaration": "export interface GoalRef {\n readonly id: GoalId;\n readonly revision: number;\n}"
1743
+ },
1744
+ {
1745
+ "name": "GoalSnapshot",
1746
+ "declaration": "export interface GoalSnapshot extends GoalRef {\n readonly objective: string;\n readonly phase: GoalPhase;\n readonly blockedReason?: GoalBlockReason;\n readonly maxGoalRounds: number;\n}"
1747
+ },
1748
+ {
1749
+ "name": "GoalSnapshotChangeMeta",
1750
+ "declaration": "export interface GoalSnapshotChangeMeta {\n readonly kind: 'goal/change';\n readonly version: 1;\n readonly operation: Exclude<GoalOperation, 'clear'>;\n readonly goal: GoalSnapshot;\n readonly roundsStarted: number;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
1751
+ },
1752
+ {
1753
+ "name": "ImageAttachmentRef",
1754
+ "declaration": "export interface ImageAttachmentRef {\n attachmentId: AttachmentId;\n mediaType: ImageMediaType;\n bytes: number;\n width: number;\n height: number;\n name?: string;\n originalDimensions?: { width: number; height: number; };\n}"
1755
+ },
1756
+ {
1757
+ "name": "ImageBlock",
1758
+ "declaration": "export interface ImageBlock {\n type: 'image';\n attachment: ImageAttachmentRef;\n offloaded?: true;\n}"
1759
+ },
1760
+ {
1761
+ "name": "ImageMediaType",
1762
+ "declaration": "export type ImageMediaType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/gif';"
1763
+ },
1764
+ {
1765
+ "name": "ImageOffloadTarget",
1766
+ "declaration": "export interface ImageOffloadTarget {\n seq: SessionSeq;\n imageIndexes: number[];\n}"
1767
+ },
1768
+ {
1769
+ "name": "InboxTarget",
1770
+ "declaration": "export type InboxTarget = 'next-turn' | 'next-step';"
1771
+ },
1772
+ {
1773
+ "name": "JobId",
1774
+ "declaration": "export type JobId = Branded<'JobId'>;"
1775
+ },
1776
+ {
1777
+ "name": "JobOutcome",
1778
+ "declaration": "export interface JobOutcome {\n status: 'completed' | 'killed' | 'failed';\n detail?: string;\n result?: string;\n}"
1779
+ },
1780
+ {
1781
+ "name": "JobRegisteredData",
1782
+ "declaration": "export interface JobRegisteredData {\n readonly jobId: JobId;\n readonly owner: SessionId;\n readonly kind: string;\n readonly label: string;\n readonly startedAt: number;\n readonly toolCall?: JobToolCall;\n}"
1783
+ },
1784
+ {
1785
+ "name": "JobSettleCause",
1786
+ "declaration": "export type JobSettleCause = 'producer' | 'kill' | 'teardown';"
1787
+ },
1788
+ {
1789
+ "name": "JobSettledData",
1790
+ "declaration": "export interface JobSettledData extends JobRegisteredData {\n readonly finishedAt: number;\n readonly status: JobOutcome['status'];\n readonly cause: JobSettleCause;\n readonly producerReported: boolean;\n readonly detail?: string;\n}"
1791
+ },
1792
+ {
1793
+ "name": "JobToolCall",
1794
+ "declaration": "export interface JobToolCall {\n readonly callId: SessionEventMap['tool/call']['callId'];\n readonly rootCallId: SessionEventMap['tool/call']['callId'];\n}"
1795
+ },
1796
+ {
1797
+ "name": "JsonValue",
1798
+ "declaration": "export type JsonValue = null | boolean | number | string | JsonValue[] | { [key: string]: JsonValue; };"
1799
+ },
1800
+ {
1801
+ "name": "KnownCatalogMode",
1802
+ "declaration": "export type KnownCatalogMode = { readonly mode: 'one-shot'; readonly label?: string; } | { readonly mode: 'continuable'; readonly label: string; };"
1803
+ },
1804
+ {
1805
+ "name": "LegacyAfterScheduleRecord",
1806
+ "declaration": "export interface LegacyAfterScheduleRecord extends Omit<AfterScheduleRecord, 'title'> {\n readonly title?: string;\n}"
1807
+ },
1808
+ {
1809
+ "name": "LegacyAtScheduleRecord",
1810
+ "declaration": "export interface LegacyAtScheduleRecord extends Omit<AtScheduleRecord, 'title'> {\n readonly title?: string;\n}"
1811
+ },
1812
+ {
1813
+ "name": "LegacyEveryScheduleRecord",
1814
+ "declaration": "export interface LegacyEveryScheduleRecord extends Omit<EveryScheduleRecord, 'title'> {\n readonly title?: string;\n}"
1815
+ },
1816
+ {
1817
+ "name": "LegacyScheduleRecord",
1818
+ "declaration": "export type LegacyScheduleRecord = LegacyAfterScheduleRecord | LegacyAtScheduleRecord | LegacyEveryScheduleRecord;"
1819
+ },
1820
+ {
1821
+ "name": "LlmCallConfig",
1822
+ "declaration": "export interface LlmCallConfig extends LlmCallControls {\n provider: string;\n model: string;\n}"
1823
+ },
1824
+ {
1825
+ "name": "LlmCallConfigAdapterDefaults",
1826
+ "declaration": "export interface LlmCallConfigAdapterDefaults {\n reasoningEffort?: true;\n maxTokens?: true;\n}"
1827
+ },
1828
+ {
1829
+ "name": "LlmCallControls",
1830
+ "declaration": "export interface LlmCallControls {\n reasoningEffort?: ReasoningEffortId;\n temperature?: number;\n maxTokens?: number;\n stop?: string[];\n}"
1831
+ },
1832
+ {
1833
+ "name": "LlmFailure",
1834
+ "declaration": "export interface LlmFailure {\n readonly message: string;\n readonly code: string;\n readonly status?: number;\n readonly providerRetryAfterMs?: number;\n readonly requestId?: ProviderRequestId;\n readonly offloadImages?: number;\n}"
1835
+ },
1836
+ {
1837
+ "name": "LlmRetryEventData",
1838
+ "declaration": "export type LlmRetryEventData = { retryId: RetryId; turn: number; step: number; provider: string; mode: 'normal'; policyKey: string; retry: number; maxRetries: number; delayMs: number; failure: LlmFailure; } | { retryId: RetryId; turn: number; step: number; provider: string; mode: 'always'; policyKey: string; retry: number; delayMs: number; failure: LlmFailure; };"
1839
+ },
1840
+ {
1841
+ "name": "LlmRetryStartedEventData",
1842
+ "declaration": "export interface LlmRetryStartedEventData {\n retryId: RetryId;\n turn: number;\n step: number;\n retry: number;\n}"
1843
+ },
1844
+ {
1845
+ "name": "Mergeability",
1846
+ "declaration": "export type Mergeability = 'mergeable' | 'conflicting' | 'unknown';"
1847
+ },
1848
+ {
1849
+ "name": "MergeMethod",
1850
+ "declaration": "export type MergeMethod = 'merge' | 'squash' | 'rebase';"
1851
+ },
1852
+ {
1853
+ "name": "Message",
1854
+ "declaration": "export type Message = MessageRoleMap[keyof MessageRoleMap];"
1855
+ },
1856
+ {
1857
+ "name": "MessageBase",
1858
+ "declaration": "export interface MessageBase {\n readonly id: MessageId;\n readonly content: readonly ContentBlock[];\n readonly source: MessageSource;\n}"
1859
+ },
1860
+ {
1861
+ "name": "MessageFeedbackDelete",
1862
+ "declaration": "export interface MessageFeedbackDelete {\n readonly sessionId: SessionId;\n readonly messageId: MessageId;\n}"
1863
+ },
1864
+ {
1865
+ "name": "MessageFeedbackItem",
1866
+ "declaration": "export interface MessageFeedbackItem {\n readonly messageId: MessageId;\n readonly rating: MessageFeedbackRating;\n readonly note?: string;\n readonly category?: FeedbackCategory;\n readonly version: MessageFeedbackVersion;\n readonly createdAt: number;\n readonly updatedAt: number;\n}"
1867
+ },
1868
+ {
1869
+ "name": "MessageFeedbackPut",
1870
+ "declaration": "export interface MessageFeedbackPut {\n readonly sessionId: SessionId;\n readonly item: MessageFeedbackItem;\n}"
1871
+ },
1872
+ {
1873
+ "name": "MessageFeedbackRating",
1874
+ "declaration": "export type MessageFeedbackRating = 'positive' | 'negative';"
1875
+ },
1876
+ {
1877
+ "name": "MessageFeedbackVersion",
1878
+ "declaration": "export type MessageFeedbackVersion = Branded<'MessageFeedbackVersion'>;"
1879
+ },
1880
+ {
1881
+ "name": "MessageId",
1882
+ "declaration": "export type MessageId = Branded<'MessageId'>;"
1883
+ },
1884
+ {
1885
+ "name": "MessageRoleMap",
1886
+ "declaration": "export interface MessageRoleMap {\n system: SystemMessage;\n developer: DeveloperMessage;\n user: UserMessage;\n assistant: AssistantMessage;\n tool: ToolResultMessage;\n}"
1887
+ },
1888
+ {
1889
+ "name": "MessageSource",
1890
+ "declaration": "export type MessageSource = MessageSourceMap[keyof MessageSourceMap];"
1891
+ },
1892
+ {
1893
+ "name": "MessageSourceMap",
1894
+ "declaration": "export interface MessageSourceMap {\n user: { kind: 'user'; };\n model: ModelMessageSource;\n tool: ToolMessageSource;\n 'system-prompt': SystemPromptMessageSource;\n 'model-selection': { kind: 'model-selection'; } & ContextFormed;\n 'tool-registry': { kind: 'tool-registry'; };\n 'action-cards': { kind: 'action-cards'; through: SessionSeq; } & ContextFormed;\n 'runtime-context': { kind: 'runtime-context'; } & ContextFormed;\n 'user-rpc': { kind: 'user'; rpcId: SessionRequestId; clientTimeZone?: string; principal?: Principal; };\n 'working-directory': { kind: 'working-directory'; };\n 'user-approval': { kind: 'user-approval'; } & ContextFormed;\n 'agent-message': AgentMessageSource;\n 'subagent-settled': SubagentSettledMessageSource;\n 'skill-invocation': SkillInvocationSource;\n 'ptc-mode': { kind: 'ptc-mode'; };\n 'compact-checkpoint': CompactionCheckpointSource;\n 'cordis-host-runner': { kind: 'cordis-host-runner'; };\n 'user-question-reply': { kind: 'user-question-reply'; callId: ToolCallId; outcome: 'answered'; };\n 'team-message': TeamMessageSource;\n goal: GoalMessageSource;\n 'plan-mode': { kind: 'plan-mode'; } & ContextFormed;\n schedule: { kind: 'schedule'; } & ContextFormed;\n 'session-reference': SessionReferenceSource;\n webhook: { readonly kind: 'webhook'; readonly provider: string; readonly source: WebhookSourceId; readonly deliveryId: WebhookDeliveryId; readonly ruleId: WebhookRuleId; readonly form: 'notice'; readonly summary: string; };\n}"
1895
+ },
1896
+ {
1897
+ "name": "ModelMessageSource",
1898
+ "declaration": "export interface ModelMessageSource extends AssistantProviderMetadata {\n kind: 'model';\n}"
1899
+ },
1900
+ {
1901
+ "name": "ModelSelection",
1902
+ "declaration": "export interface ModelSelection {\n provider: string;\n model: string;\n reasoningEffort?: ReasoningEffortId;\n}"
1903
+ },
1904
+ {
1905
+ "name": "OneShotScheduleDispatchChange",
1906
+ "declaration": "export interface OneShotScheduleDispatchChange {\n readonly version: 1;\n readonly operation: 'dispatch';\n readonly id: ScheduleId;\n}"
1907
+ },
1908
+ {
1909
+ "name": "OneShotSubagentDescriptorData",
1910
+ "declaration": "export interface OneShotSubagentDescriptorData extends SubagentDescriptorBase {\n readonly mode: 'one-shot';\n readonly label?: string;\n}"
1911
+ },
1912
+ {
1913
+ "name": "OptionalSessionSeq",
1914
+ "declaration": "export type OptionalSessionSeq = SessionSeq | null;"
1915
+ },
1916
+ {
1917
+ "name": "Principal",
1918
+ "declaration": "export type Principal = PrincipalMap[keyof PrincipalMap];"
1919
+ },
1920
+ {
1921
+ "name": "PrincipalMap",
1922
+ "declaration": "export interface PrincipalMap {\n owner: { readonly kind: 'owner'; };\n 'share-viewer': ShareViewerPrincipal;\n}"
1923
+ },
1924
+ {
1925
+ "name": "ProviderRequestId",
1926
+ "declaration": "export type ProviderRequestId = Branded<'ProviderRequestId'>;"
1927
+ },
1928
+ {
1929
+ "name": "PtcDispatchEventData",
1930
+ "declaration": "export interface PtcDispatchEventData extends PtcDispatchStartEventData {\n isError: boolean;\n content: ContentBlock[];\n meta?: JsonValue;\n error?: { name: string; code: string; reason?: string; };\n}"
1931
+ },
1932
+ {
1933
+ "name": "PtcDispatchStartEventData",
1934
+ "declaration": "export interface PtcDispatchStartEventData {\n rootCallId: ToolCallId;\n parentCallId: ToolCallId;\n subCallId: ToolCallId;\n name: string;\n arguments: unknown;\n}"
1935
+ },
1936
+ {
1937
+ "name": "ReasoningBlock",
1938
+ "declaration": "export interface ReasoningBlock {\n type: 'reasoning';\n text: string;\n}"
1939
+ },
1940
+ {
1941
+ "name": "ReasoningEffortId",
1942
+ "declaration": "export type ReasoningEffortId = Branded<'ReasoningEffortId'>;"
1943
+ },
1944
+ {
1945
+ "name": "ReplayEnvelope",
1946
+ "declaration": "export interface ReplayEnvelope {\n response: unknown;\n blocks?: readonly unknown[];\n}"
1947
+ },
1948
+ {
1949
+ "name": "RequestContext",
1950
+ "declaration": "export interface RequestContext {\n provider: string;\n model: string;\n contextWindow?: number;\n systemPromptUpdate?: SystemPromptUpdate;\n}"
1951
+ },
1952
+ {
1953
+ "name": "RequestHeaderReason",
1954
+ "declaration": "export type RequestHeaderReason = 'initial' | 'resume' | 'change' | 'series';"
1955
+ },
1956
+ {
1957
+ "name": "RetryId",
1958
+ "declaration": "export type RetryId = Branded<'RetryId'>;"
1959
+ },
1960
+ {
1961
+ "name": "ReviewDecision",
1962
+ "declaration": "export type ReviewDecision = 'approved' | 'changes-requested' | 'review-required' | 'none';"
1963
+ },
1964
+ {
1965
+ "name": "SandboxMode",
1966
+ "declaration": "export type SandboxMode = 'read-only' | 'workspace-write' | 'danger-full-access';"
1967
+ },
1968
+ {
1969
+ "name": "ScheduleChange",
1970
+ "declaration": "export type ScheduleChange = ScheduleCreateChange | ScheduleDeleteChange | ScheduleDispatchChange;"
1971
+ },
1972
+ {
1973
+ "name": "ScheduleCreateChange",
1974
+ "declaration": "export interface ScheduleCreateChange {\n readonly version: 1;\n readonly operation: 'create';\n readonly schedule: LegacyScheduleRecord;\n}"
1975
+ },
1976
+ {
1977
+ "name": "ScheduleDeleteChange",
1978
+ "declaration": "export interface ScheduleDeleteChange {\n readonly version: 1;\n readonly operation: 'delete';\n readonly id: ScheduleId;\n}"
1979
+ },
1980
+ {
1981
+ "name": "ScheduleDispatchChange",
1982
+ "declaration": "export type ScheduleDispatchChange = OneShotScheduleDispatchChange | EveryScheduleDispatchChange;"
1983
+ },
1984
+ {
1985
+ "name": "ScheduleId",
1986
+ "declaration": "export type ScheduleId = Branded<'ScheduleId'>;"
1987
+ },
1988
+ {
1989
+ "name": "Session",
1990
+ "declaration": "export class Session {\n get surface(): SessionSurface;\n readonly header: SessionHeader;\n readonly inheritedEventCount: SessionLogOffset;\n get id(): SessionId;\n readonly firstLiveSeq: SessionLogOffset;\n readonly firstLifecycleSeq: SessionLogOffset;\n eventAt(seq: SessionSeq): SessionEvent | undefined;\n snapshotEvents(fromSeq: SessionLogOffset = SessionLogOffset(0), toSeqExclusive: SessionLogOffset = this.seq): readonly SessionEvent[];\n ownEvents(): readonly SessionEvent[];\n isOwnSeq(seq: SessionSeq): boolean;\n get seq(): SessionLogOffset;\n append<T extends SessionEventType>(type: T, data: SessionEventMap[T], ...opts: T extends SurfaceEventType ? [opts: SurfaceIntent<T>] : []): SessionEvent<T>;\n requestHeader(): EpochHeader | undefined;\n requestContext(): RequestContext | undefined;\n toolHistory(): ToolHistory;\n deriveMessages(): Message[];\n deriveEventMessage(event: SessionEvent): Message | null;\n}"
1991
+ },
1992
+ {
1993
+ "name": "SessionChangeRequest",
1994
+ "declaration": "export interface SessionChangeRequest {\n readonly url: string;\n readonly origin: BindingOrigin;\n readonly ref: ChangeRequestRef | null;\n readonly update: ChangeRequestUpdate | null;\n}"
1995
+ },
1996
+ {
1997
+ "name": "SessionEvent",
1998
+ "declaration": "export type SessionEvent<T extends SessionEventType = SessionEventType> = { [K in SessionEventType]: { type: K; seq: SessionSeq; time: number; data: SessionEventMap[K]; ignorable?: true; } & (K extends SurfaceEventType ? SurfaceIntent<K> : { surfaceOp?: never; sourceEventSeqs?: never; }) }[T];"
1999
+ },
2000
+ {
2001
+ "name": "SessionEventMap",
2002
+ "declaration": "export interface SessionEventMap {\n 'turn/start': { turn: number; };\n 'turn/end': { turn: number; reason: TurnEndReason; };\n 'step/start': { turn: number; step: number; };\n 'step/end': { turn: number; step: number; };\n 'user/message': UserMessage;\n 'developer/message': { turn: number; step: number; message: DeveloperMessage; headerSeq?: SessionSeq; };\n 'system/message': { turn: number; step: number; message: SystemMessage; };\n 'assistant/message': { turn: number; step: number; message: AssistantMessage; stream: AssistantStreamRecord[]; usage?: TokenUsage; interrupted?: true; };\n 'assistant/attempt': { turn: number; step: number; stream: AssistantStreamRecord[]; };\n 'tool/call': { turn: number; step: number; callId: ToolCallId; name: string; arguments: string; };\n 'tool/result': { turn: number; step: number; message: ToolResultMessage; error?: { name: string; code: string; reason?: string; }; meta?: JsonValue; };\n 'request/header': { header: EpochHeader; reason: RequestHeaderReason; startsSeries?: true; };\n 'request/context': RequestContext;\n 'session/end-seed': { inherited?: true; };\n 'agent/inbox/spliced': { target: InboxTarget; start: number; removedCount?: number; inserted: UserMessage[]; outcome?: 'canceled'; };\n 'model/selection': ModelSelection;\n 'sandbox/mode': { mode: SandboxMode; source?: 'delegation'; };\n 'agent-preset/selected': { agentPreset: string; };\n 'job/registered': JobRegisteredData;\n 'job/settled': JobSettledData;\n 'command/run': { commandId: CommandId; name: string; args?: string; source: CommandSource; };\n 'command/done': { commandId: CommandId; kind: 'success' | 'error'; text?: string; sourceEventSeq?: import('@deepseek-ai/dsh-session/types').SessionSeq; };\n 'image/offload': { targets: ImageOffloadTarget[]; };\n 'session/title': SessionTitleEventData;\n 'todo/write': { todos: TodoItem[]; };\n 'working-directory/change': { cwd: string; };\n 'approval/asked': { id: ApprovalRequestId; toolName: string; callId?: ToolCallId; reason?: string; };\n 'approval/decided': { id: ApprovalRequestId; outcome: ApprovalOutcome; };\n 'approval/policy': { policy: ApprovalPolicy; source?: 'delegation'; };\n 'permission/preset': { preset: string; };\n 'subagent/descriptor': SubagentDescriptorData;\n 'subagent/catalog': SubagentCatalogEvent;\n 'compaction/start': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; };\n 'compaction/summary': { compactionId: CompactionId; sourceCommandId?: CommandId; summary: ContentBlock[]; shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; provider: string; model: string; maxTokens?: number; usage?: TokenUsage; } & ({ rawOutput: ContentBlock[]; llmStreamCall: true; } | { rawOutput?: ContentBlock[]; llmStreamCall?: never; });\n 'compaction/end': { compactionId: CompactionId; sourceCommandId?: CommandId; turn: number | null; error?: string; };\n 'compaction/prune': { shadowedRange: { start: SessionSeq; end: SessionSeq; }; shadowedSeqs: SessionSeq[]; shadowedTokenCount: number; };\n 'tool/ptc-dispatch-start': PtcDispatchStartEventData;\n 'tool/ptc-dispatch': PtcDispatchEventData;\n 'feedback/record': FeedbackRecord;\n 'llm/retry': LlmRetryEventData;\n 'llm/retry-started': LlmRetryStartedEventData;\n 'team/member': { version: 2; teamId: TeamId; member: TeamMemberSnapshot; };\n 'team/task': { version: 2; teamId: TeamId; task: TeamTaskSnapshot; };\n 'team/message/queued': { version: 2; teamId: TeamId; message: TeamMessageSnapshot; };\n 'team/message/delivered': { version: 2; teamId: TeamId; messageId: TeamMessageId; targetId: SessionId; };\n 'goal/change': GoalChangeMeta;\n 'feedback/message-put': MessageFeedbackPut;\n 'feedback/message-delete': MessageFeedbackDelete;\n 'plan/mode': { active: boolean; };\n 'schedule/change': ScheduleChange;\n 'subagent/model-selection-policy': { allowedModels: AllowedModelRoute[]; };\n 'workspace/changes': { turn: number; };\n}"
2003
+ },
2004
+ {
2005
+ "name": "SessionEventType",
2006
+ "declaration": "export type SessionEventType = keyof SessionEventMap;"
2007
+ },
2008
+ {
2009
+ "name": "SessionHeader",
2010
+ "declaration": "export interface SessionHeader {\n readonly version: typeof SESSION_FORMAT_VERSION;\n readonly id: SessionId;\n readonly createdAt: number;\n readonly cwd?: string;\n readonly parentSession?: SessionId;\n readonly isSeeded: boolean;\n readonly origin?: 'subagent';\n readonly delegationDepth?: number;\n readonly agentPreset?: string;\n}"
2011
+ },
2012
+ {
2013
+ "name": "SessionId",
2014
+ "declaration": "export type SessionId = Branded<'SessionId'>;"
2015
+ },
2016
+ {
2017
+ "name": "SessionLogOffset",
2018
+ "declaration": "export type SessionLogOffset = BrandedNumber<'SessionLogOffset'>;"
2019
+ },
2020
+ {
2021
+ "name": "SessionReferenceSource",
2022
+ "declaration": "export interface SessionReferenceSource {\n kind: 'session-reference';\n form: 'recall';\n version: 1;\n references: { sessionId: string; label: string; capturedFormatVersion?: number; capturedThroughSeq: OptionalSessionSeq; compacted: boolean; originalMessages: number; retainedMessages: number; omittedMessages: number; omittedBytes: number; truncated: boolean; inputIndex: number; }[];\n}"
2023
+ },
2024
+ {
2025
+ "name": "SessionRequestId",
2026
+ "declaration": "export type SessionRequestId = Branded<'session-request-id'>;"
2027
+ },
2028
+ {
2029
+ "name": "SessionSeq",
2030
+ "declaration": "export type SessionSeq = BrandedNumber<'SessionSeq'>;"
2031
+ },
2032
+ {
2033
+ "name": "SessionSurface",
2034
+ "declaration": "export interface SessionSurface {\n readonly nodes: readonly SessionSeq[];\n readonly replaceGeneration: number;\n readonly contentGeneration: number;\n}"
2035
+ },
2036
+ {
2037
+ "name": "SessionTitleEventData",
2038
+ "declaration": "export interface SessionTitleEventData {\n readonly title: string;\n readonly messageSeqs: SessionSeq[];\n readonly source: SessionTitleSource;\n}"
2039
+ },
2040
+ {
2041
+ "name": "SessionTitleModelIdentity",
2042
+ "declaration": "export interface SessionTitleModelIdentity {\n readonly provider: string;\n readonly model: string;\n}"
2043
+ },
2044
+ {
2045
+ "name": "SessionTitleProviderId",
2046
+ "declaration": "export type SessionTitleProviderId = Branded<'SessionTitleProviderId'>;"
2047
+ },
2048
+ {
2049
+ "name": "SessionTitleSource",
2050
+ "declaration": "export type SessionTitleSource = { readonly kind: 'fallback'; } | { readonly kind: 'provider'; readonly provider: SessionTitleProviderId; readonly model?: SessionTitleModelIdentity; } | { readonly kind: 'user'; };"
2051
+ },
2052
+ {
2053
+ "name": "ShareViewerPrincipal",
2054
+ "declaration": "export interface ShareViewerPrincipal {\n readonly kind: 'share-viewer';\n readonly shareId: string;\n readonly actor: { readonly providerId: string; readonly tenantId: string; readonly subjectId: string; readonly displayName?: string; };\n}"
2055
+ },
2056
+ {
2057
+ "name": "SkillInvocationSource",
2058
+ "declaration": "export interface SkillInvocationSource {\n readonly kind: 'skill-invocation';\n readonly name: string;\n readonly form: 'instructions';\n}"
2059
+ },
2060
+ {
2061
+ "name": "StreamChunk",
2062
+ "declaration": "export type StreamChunk = { type: 'block-start'; index: number; blockType: ContentBlockType; } | { type: 'text-delta'; index: number; text: string; } | { type: 'reasoning-delta'; index: number; text: string; } | { type: 'tool-call-delta'; index: number; id: ToolCallId; name?: string; argumentsDelta: string; } | { type: 'block-end'; index: number; block: ContentBlock; } | { type: 'usage'; usage: TokenUsage; } | { type: 'finish'; reason: FinishReason; replayState?: ReplayEnvelope; };"
2063
+ },
2064
+ {
2065
+ "name": "SubagentCatalogEvent",
2066
+ "declaration": "export type SubagentCatalogEvent = { readonly childId: SessionId; readonly childCreatedAt: number; } & (({ readonly version: 0; } & KnownCatalogMode) | ({ readonly version: 1; } & (KnownCatalogMode | { readonly mode: 'unknown'; readonly label?: string; })) | { readonly version: 2; readonly mode: 'external'; readonly label?: string; });"
2067
+ },
2068
+ {
2069
+ "name": "SubagentDescriptorBase",
2070
+ "declaration": "export interface SubagentDescriptorBase {\n readonly version: number;\n readonly mode: 'one-shot' | 'continuable';\n readonly provider: string;\n}"
2071
+ },
2072
+ {
2073
+ "name": "SubagentDescriptorData",
2074
+ "declaration": "export type SubagentDescriptorData = OneShotSubagentDescriptorData | ContinuableSubagentDescriptorData;"
2075
+ },
2076
+ {
2077
+ "name": "SubagentSettledMessageSource",
2078
+ "declaration": "export interface SubagentSettledMessageSource {\n readonly kind: 'subagent-settled';\n readonly form: 'notice';\n readonly summary: string;\n readonly senderSessionId: SessionId;\n}"
2079
+ },
2080
+ {
2081
+ "name": "SurfaceEventType",
2082
+ "declaration": "export type SurfaceEventType = 'system/message' | 'developer/message' | 'user/message' | 'assistant/message' | 'tool/result';"
2083
+ },
2084
+ {
2085
+ "name": "SurfaceIntent",
2086
+ "declaration": "export type SurfaceIntent<T extends SurfaceEventType = SurfaceEventType> = { surfaceOp: SurfaceOp; } & (T extends 'assistant/message' ? { sourceEventSeqs?: never; } : { sourceEventSeqs?: SessionSeq[]; });"
2087
+ },
2088
+ {
2089
+ "name": "SurfaceOp",
2090
+ "declaration": "export type SurfaceOp = 'append' | { op: 'replace'; startSeq: SessionSeq; endSeq: SessionSeq; };"
2091
+ },
2092
+ {
2093
+ "name": "SystemMessage",
2094
+ "declaration": "export interface SystemMessage extends MessageBase {\n readonly role: 'system';\n readonly source: MessageSourceMap['system-prompt'];\n}"
2095
+ },
2096
+ {
2097
+ "name": "SystemPromptMessageSource",
2098
+ "declaration": "export interface SystemPromptMessageSource {\n kind: 'system-prompt';\n}"
2099
+ },
2100
+ {
2101
+ "name": "SystemPromptUpdate",
2102
+ "declaration": "export type SystemPromptUpdate = 'in-history';"
2103
+ },
2104
+ {
2105
+ "name": "TeamId",
2106
+ "declaration": "export type TeamId = Branded<'TeamId'>;"
2107
+ },
2108
+ {
2109
+ "name": "TeamMemberPhase",
2110
+ "declaration": "export type TeamMemberPhase = 'provisioning' | 'active' | 'failed';"
2111
+ },
2112
+ {
2113
+ "name": "TeamMemberSnapshot",
2114
+ "declaration": "export interface TeamMemberSnapshot {\n readonly id: SessionId;\n readonly name: string;\n readonly description: string;\n readonly provider: string;\n readonly context: 'fresh' | 'fork';\n readonly phase: TeamMemberPhase;\n readonly error?: string;\n}"
2115
+ },
2116
+ {
2117
+ "name": "TeamMessageId",
2118
+ "declaration": "export type TeamMessageId = Branded<'TeamMessageId'>;"
2119
+ },
2120
+ {
2121
+ "name": "TeamMessageSnapshot",
2122
+ "declaration": "export interface TeamMessageSnapshot {\n readonly id: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n readonly targetId: SessionId;\n readonly content: ContentBlock[];\n}"
2123
+ },
2124
+ {
2125
+ "name": "TeamMessageSource",
2126
+ "declaration": "export interface TeamMessageSource {\n readonly kind: 'team-message';\n readonly teamId: TeamId;\n readonly messageId: TeamMessageId;\n readonly senderId: SessionId;\n readonly senderName: string;\n}"
2127
+ },
2128
+ {
2129
+ "name": "TeamTaskId",
2130
+ "declaration": "export type TeamTaskId = Branded<'TeamTaskId'>;"
2131
+ },
2132
+ {
2133
+ "name": "TeamTaskSnapshot",
2134
+ "declaration": "export interface TeamTaskSnapshot {\n readonly id: TeamTaskId;\n readonly revision: number;\n readonly subject: string;\n readonly description: string;\n readonly status: TeamTaskStatus;\n readonly ownerId?: SessionId;\n readonly blockedBy: TeamTaskId[];\n readonly writeScopes: string[];\n}"
2135
+ },
2136
+ {
2137
+ "name": "TeamTaskStatus",
2138
+ "declaration": "export type TeamTaskStatus = 'pending' | 'in_progress' | 'completed' | 'deleted';"
2139
+ },
2140
+ {
2141
+ "name": "TextBlock",
2142
+ "declaration": "export interface TextBlock {\n type: 'text';\n text: string;\n}"
2143
+ },
2144
+ {
2145
+ "name": "TodoItem",
2146
+ "declaration": "export interface TodoItem {\n content: string;\n status: 'pending' | 'in_progress' | 'completed';\n}"
2147
+ },
2148
+ {
2149
+ "name": "TokenUsage",
2150
+ "declaration": "export interface TokenUsage {\n inputTokens: number;\n outputTokens: number;\n totalTokens?: number;\n cacheReadTokens?: number;\n cacheWriteTokens?: number;\n reasoningTokens?: number;\n}"
2151
+ },
2152
+ {
2153
+ "name": "ToolAdditionBlock",
2154
+ "declaration": "export interface ToolAdditionBlock {\n type: 'tool-addition';\n toolName: string;\n tool?: never;\n}"
2155
+ },
2156
+ {
2157
+ "name": "ToolCallBlock",
2158
+ "declaration": "export interface ToolCallBlock {\n type: 'tool-call';\n id: ToolCallId;\n name: string;\n arguments: string;\n}"
2159
+ },
2160
+ {
2161
+ "name": "ToolCallId",
2162
+ "declaration": "export type ToolCallId = Branded<'ToolCallId'>;"
2163
+ },
2164
+ {
2165
+ "name": "ToolHistory",
2166
+ "declaration": "export interface ToolHistory {\n readonly tools: readonly ToolSchema[];\n readonly updates: readonly { readonly messageId: MessageId; readonly additions: readonly ToolSchema[]; }[];\n}"
2167
+ },
2168
+ {
2169
+ "name": "ToolMessageSource",
2170
+ "declaration": "export interface ToolMessageSource {\n kind: 'tool';\n callId: ToolCallId;\n}"
2171
+ },
2172
+ {
2173
+ "name": "ToolRemovalBlock",
2174
+ "declaration": "export interface ToolRemovalBlock {\n type: 'tool-removal';\n toolName: string;\n}"
2175
+ },
2176
+ {
2177
+ "name": "ToolRestriction",
2178
+ "declaration": "export interface ToolRestriction {\n readonly allow?: readonly string[];\n readonly deny?: readonly string[];\n}"
2179
+ },
2180
+ {
2181
+ "name": "ToolResultMessage",
2182
+ "declaration": "export interface ToolResultMessage extends MessageBase {\n readonly role: 'tool';\n readonly source: ToolMessageSource;\n readonly toolCallId: ToolCallId;\n readonly isError?: boolean;\n}"
2183
+ },
2184
+ {
2185
+ "name": "ToolSchema",
2186
+ "declaration": "export interface ToolSchema {\n deferLoading?: true;\n name: string;\n description: string;\n parameters: Record<string, unknown>;\n}"
2187
+ },
2188
+ {
2189
+ "name": "TurnEndCancelCause",
2190
+ "declaration": "export type TurnEndCancelCause = AgentCancelCause | { readonly kind: 'legacy'; };"
2191
+ },
2192
+ {
2193
+ "name": "TurnEndReason",
2194
+ "declaration": "export type TurnEndReason = TurnEndReasonMap[keyof TurnEndReasonMap];"
2195
+ },
2196
+ {
2197
+ "name": "TurnEndReasonMap",
2198
+ "declaration": "export interface TurnEndReasonMap {\n completed: { kind: 'completed'; };\n aborted: { kind: 'aborted'; reason: TurnEndCancelCause; };\n blocked: { kind: 'blocked'; };\n error: { kind: 'error'; error: LlmFailure; };\n 'max-tokens': { kind: 'max-tokens'; };\n interrupted: { kind: 'interrupted'; };\n forked: { kind: 'forked'; };\n}"
2199
+ },
2200
+ {
2201
+ "name": "UserMessage",
2202
+ "declaration": "export interface UserMessage extends MessageBase {\n readonly role: 'user';\n}"
2203
+ },
2204
+ {
2205
+ "name": "WebhookDeliveryId",
2206
+ "declaration": "export type WebhookDeliveryId = Branded<'WebhookDeliveryId'>;"
2207
+ },
2208
+ {
2209
+ "name": "WebhookRuleId",
2210
+ "declaration": "export type WebhookRuleId = Branded<'WebhookRuleId'>;"
2211
+ },
2212
+ {
2213
+ "name": "WebhookSourceId",
2214
+ "declaration": "export type WebhookSourceId = Branded<'WebhookSourceId'>;"
2215
+ }
2216
+ ]
2217
+ }
2218
+ ],
2219
+ "events": [],
2220
+ "objects": []
2221
+ },
2222
+ }