@agentuity/coder 2.0.7 → 2.0.9

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 (113) hide show
  1. package/AGENTS.md +43 -0
  2. package/README.md +75 -37
  3. package/dist/index.d.ts +1 -3
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1669
  6. package/dist/index.js.map +1 -1
  7. package/package.json +9 -12
  8. package/src/index.ts +51 -1996
  9. package/dist/chain-preview.d.ts +0 -55
  10. package/dist/chain-preview.d.ts.map +0 -1
  11. package/dist/chain-preview.js +0 -472
  12. package/dist/chain-preview.js.map +0 -1
  13. package/dist/client.d.ts +0 -44
  14. package/dist/client.d.ts.map +0 -1
  15. package/dist/client.js +0 -411
  16. package/dist/client.js.map +0 -1
  17. package/dist/commands.d.ts +0 -22
  18. package/dist/commands.d.ts.map +0 -1
  19. package/dist/commands.js +0 -99
  20. package/dist/commands.js.map +0 -1
  21. package/dist/footer.d.ts +0 -34
  22. package/dist/footer.d.ts.map +0 -1
  23. package/dist/footer.js +0 -249
  24. package/dist/footer.js.map +0 -1
  25. package/dist/handlers.d.ts +0 -24
  26. package/dist/handlers.d.ts.map +0 -1
  27. package/dist/handlers.js +0 -83
  28. package/dist/handlers.js.map +0 -1
  29. package/dist/hub-overlay-state.d.ts +0 -31
  30. package/dist/hub-overlay-state.d.ts.map +0 -1
  31. package/dist/hub-overlay-state.js +0 -78
  32. package/dist/hub-overlay-state.js.map +0 -1
  33. package/dist/hub-overlay.d.ts +0 -146
  34. package/dist/hub-overlay.d.ts.map +0 -1
  35. package/dist/hub-overlay.js +0 -2354
  36. package/dist/hub-overlay.js.map +0 -1
  37. package/dist/native-remote-ui-context.d.ts +0 -5
  38. package/dist/native-remote-ui-context.d.ts.map +0 -1
  39. package/dist/native-remote-ui-context.js +0 -30
  40. package/dist/native-remote-ui-context.js.map +0 -1
  41. package/dist/output-viewer.d.ts +0 -49
  42. package/dist/output-viewer.d.ts.map +0 -1
  43. package/dist/output-viewer.js +0 -389
  44. package/dist/output-viewer.js.map +0 -1
  45. package/dist/overlay.d.ts +0 -40
  46. package/dist/overlay.d.ts.map +0 -1
  47. package/dist/overlay.js +0 -225
  48. package/dist/overlay.js.map +0 -1
  49. package/dist/protocol.d.ts +0 -605
  50. package/dist/protocol.d.ts.map +0 -1
  51. package/dist/protocol.js +0 -4
  52. package/dist/protocol.js.map +0 -1
  53. package/dist/remote-lifecycle.d.ts +0 -61
  54. package/dist/remote-lifecycle.d.ts.map +0 -1
  55. package/dist/remote-lifecycle.js +0 -190
  56. package/dist/remote-lifecycle.js.map +0 -1
  57. package/dist/remote-session.d.ts +0 -128
  58. package/dist/remote-session.d.ts.map +0 -1
  59. package/dist/remote-session.js +0 -876
  60. package/dist/remote-session.js.map +0 -1
  61. package/dist/remote-tui.d.ts +0 -40
  62. package/dist/remote-tui.d.ts.map +0 -1
  63. package/dist/remote-tui.js +0 -867
  64. package/dist/remote-tui.js.map +0 -1
  65. package/dist/remote-ui-handler.d.ts +0 -5
  66. package/dist/remote-ui-handler.d.ts.map +0 -1
  67. package/dist/remote-ui-handler.js +0 -53
  68. package/dist/remote-ui-handler.js.map +0 -1
  69. package/dist/renderers.d.ts +0 -34
  70. package/dist/renderers.d.ts.map +0 -1
  71. package/dist/renderers.js +0 -669
  72. package/dist/renderers.js.map +0 -1
  73. package/dist/review.d.ts +0 -15
  74. package/dist/review.d.ts.map +0 -1
  75. package/dist/review.js +0 -154
  76. package/dist/review.js.map +0 -1
  77. package/dist/titlebar.d.ts +0 -3
  78. package/dist/titlebar.d.ts.map +0 -1
  79. package/dist/titlebar.js +0 -59
  80. package/dist/titlebar.js.map +0 -1
  81. package/dist/todo/index.d.ts +0 -3
  82. package/dist/todo/index.d.ts.map +0 -1
  83. package/dist/todo/index.js +0 -3
  84. package/dist/todo/index.js.map +0 -1
  85. package/dist/todo/store.d.ts +0 -6
  86. package/dist/todo/store.d.ts.map +0 -1
  87. package/dist/todo/store.js +0 -43
  88. package/dist/todo/store.js.map +0 -1
  89. package/dist/todo/types.d.ts +0 -13
  90. package/dist/todo/types.d.ts.map +0 -1
  91. package/dist/todo/types.js +0 -2
  92. package/dist/todo/types.js.map +0 -1
  93. package/src/chain-preview.ts +0 -621
  94. package/src/client.ts +0 -527
  95. package/src/commands.ts +0 -132
  96. package/src/footer.ts +0 -305
  97. package/src/handlers.ts +0 -113
  98. package/src/hub-overlay-state.ts +0 -127
  99. package/src/hub-overlay.ts +0 -3037
  100. package/src/native-remote-ui-context.ts +0 -41
  101. package/src/output-viewer.ts +0 -480
  102. package/src/overlay.ts +0 -294
  103. package/src/protocol.ts +0 -758
  104. package/src/remote-lifecycle.ts +0 -270
  105. package/src/remote-session.ts +0 -1080
  106. package/src/remote-tui.ts +0 -1020
  107. package/src/remote-ui-handler.ts +0 -86
  108. package/src/renderers.ts +0 -740
  109. package/src/review.ts +0 -201
  110. package/src/titlebar.ts +0 -63
  111. package/src/todo/index.ts +0 -2
  112. package/src/todo/store.ts +0 -49
  113. package/src/todo/types.ts +0 -14
@@ -1,270 +0,0 @@
1
- export type RemoteLifecyclePhase =
2
- | 'connecting'
3
- | 'hydrating'
4
- | 'replaying'
5
- | 'live'
6
- | 'paused'
7
- | 'resuming'
8
- | 'reconnecting'
9
- | 'disconnected';
10
-
11
- export type RemoteTransportState = 'connecting' | 'connected' | 'reconnecting' | 'disconnected';
12
-
13
- export interface RemoteLifecycleState {
14
- sessionId: string;
15
- label: string;
16
- transport: RemoteTransportState;
17
- phase: RemoteLifecyclePhase;
18
- leadConnected: boolean | null;
19
- isStreaming: boolean;
20
- hydrationReceived: boolean;
21
- streamId: string | null;
22
- streamUrl: string | null;
23
- lastError: string | null;
24
- }
25
-
26
- export interface RemoteLifecycleWorkingMessageUi {
27
- setWorkingMessage(message?: string): void;
28
- }
29
-
30
- export type RemoteLifecycleEvent =
31
- | { type: 'connect_start'; reconnect: boolean }
32
- | { type: 'init'; sessionId?: string; label?: string }
33
- | {
34
- type: 'hydration';
35
- leadConnected?: boolean;
36
- isStreaming?: boolean;
37
- }
38
- | { type: 'replay_event' }
39
- | { type: 'replay_idle' }
40
- | { type: 'live_signal'; isStreaming?: boolean }
41
- | { type: 'session_resume'; streamId?: string | null; streamUrl?: string | null }
42
- | { type: 'stream_ready'; streamId?: string | null; streamUrl?: string | null }
43
- | { type: 'rpc_command_error'; error: string; paused: boolean }
44
- | { type: 'local_resume_requested' }
45
- | { type: 'connection_change'; state: 'reconnecting' | 'disconnected' };
46
-
47
- export function createRemoteLifecycleState(sessionId: string): RemoteLifecycleState {
48
- return {
49
- sessionId,
50
- label: '',
51
- transport: 'disconnected',
52
- phase: 'disconnected',
53
- leadConnected: null,
54
- isStreaming: false,
55
- hydrationReceived: false,
56
- streamId: null,
57
- streamUrl: null,
58
- lastError: null,
59
- };
60
- }
61
-
62
- function patchState(
63
- state: RemoteLifecycleState,
64
- patch: Partial<RemoteLifecycleState>
65
- ): RemoteLifecycleState {
66
- let changed = false;
67
- const next = { ...state };
68
-
69
- for (const [key, value] of Object.entries(patch)) {
70
- const typedKey = key as keyof RemoteLifecycleState;
71
- if (next[typedKey] !== value) {
72
- changed = true;
73
- (next[typedKey] as RemoteLifecycleState[keyof RemoteLifecycleState]) =
74
- value as RemoteLifecycleState[keyof RemoteLifecycleState];
75
- }
76
- }
77
-
78
- return changed ? next : state;
79
- }
80
-
81
- function resolveConnectedPhase(input: {
82
- leadConnected: boolean | null;
83
- isStreaming: boolean;
84
- }): RemoteLifecyclePhase {
85
- if (input.isStreaming) return 'live';
86
- if (input.leadConnected === false) return 'paused';
87
- return 'live';
88
- }
89
-
90
- export function applyRemoteLifecycleEvent(
91
- state: RemoteLifecycleState,
92
- event: RemoteLifecycleEvent
93
- ): RemoteLifecycleState {
94
- switch (event.type) {
95
- case 'connect_start':
96
- return patchState(state, {
97
- transport: event.reconnect ? 'reconnecting' : 'connecting',
98
- phase: event.reconnect ? 'reconnecting' : 'connecting',
99
- lastError: null,
100
- });
101
-
102
- case 'init':
103
- return patchState(state, {
104
- sessionId: event.sessionId || state.sessionId,
105
- label: event.label || state.label,
106
- transport: 'connected',
107
- phase: 'hydrating',
108
- lastError: null,
109
- });
110
-
111
- case 'hydration': {
112
- const leadConnected =
113
- typeof event.leadConnected === 'boolean' ? event.leadConnected : state.leadConnected;
114
- const isStreaming =
115
- typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming;
116
- return patchState(state, {
117
- leadConnected,
118
- isStreaming,
119
- hydrationReceived: true,
120
- transport: 'connected',
121
- phase: resolveConnectedPhase({ leadConnected, isStreaming }),
122
- lastError: null,
123
- });
124
- }
125
-
126
- case 'replay_event':
127
- if (state.transport !== 'connected') return state;
128
- return patchState(state, {
129
- phase: 'replaying',
130
- });
131
-
132
- case 'replay_idle':
133
- if (state.phase !== 'replaying') return state;
134
- return patchState(state, {
135
- phase: resolveConnectedPhase({
136
- leadConnected: state.leadConnected,
137
- isStreaming: state.isStreaming,
138
- }),
139
- });
140
-
141
- case 'live_signal':
142
- return patchState(state, {
143
- transport: 'connected',
144
- phase: 'live',
145
- leadConnected: true,
146
- isStreaming:
147
- typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming,
148
- lastError: null,
149
- });
150
-
151
- case 'session_resume':
152
- return patchState(state, {
153
- streamId: event.streamId ?? state.streamId,
154
- streamUrl: event.streamUrl ?? state.streamUrl,
155
- phase: 'resuming',
156
- lastError: null,
157
- });
158
-
159
- case 'stream_ready':
160
- return patchState(state, {
161
- streamId: event.streamId ?? state.streamId,
162
- streamUrl: event.streamUrl ?? state.streamUrl,
163
- });
164
-
165
- case 'rpc_command_error':
166
- return patchState(state, {
167
- lastError: event.error,
168
- leadConnected: event.paused ? false : state.leadConnected,
169
- isStreaming: event.paused ? false : state.isStreaming,
170
- phase: event.paused ? 'paused' : state.phase,
171
- });
172
-
173
- case 'local_resume_requested':
174
- return patchState(state, {
175
- phase: 'resuming',
176
- lastError: null,
177
- });
178
-
179
- case 'connection_change':
180
- return patchState(state, {
181
- transport: event.state,
182
- phase: event.state,
183
- isStreaming: false,
184
- });
185
- }
186
- }
187
-
188
- export function getRemoteLifecycleLabel(state: RemoteLifecycleState): string {
189
- switch (state.phase) {
190
- case 'connecting':
191
- return 'Connecting';
192
- case 'hydrating':
193
- return 'Hydrating';
194
- case 'replaying':
195
- return 'Replaying';
196
- case 'paused':
197
- return 'Paused';
198
- case 'resuming':
199
- return 'Resuming';
200
- case 'reconnecting':
201
- return 'Reconnecting';
202
- case 'disconnected':
203
- return 'Disconnected';
204
- case 'live':
205
- return 'Live';
206
- }
207
- }
208
-
209
- export function getRemoteLifecycleActivityLabel(state: RemoteLifecycleState): string | undefined {
210
- switch (state.phase) {
211
- case 'connecting':
212
- return 'connecting to sandbox...';
213
- case 'hydrating':
214
- return 'hydrating remote session...';
215
- case 'replaying':
216
- return 'replaying remote history...';
217
- case 'paused':
218
- return 'sandbox paused';
219
- case 'resuming':
220
- return 'resuming sandbox...';
221
- case 'reconnecting':
222
- return 'reconnecting...';
223
- case 'disconnected':
224
- return state.lastError ? `disconnected: ${state.lastError}` : 'disconnected';
225
- case 'live':
226
- return undefined;
227
- }
228
- }
229
-
230
- export function getRemoteLifecycleWorkingMessage(state: RemoteLifecycleState): string | undefined {
231
- switch (state.phase) {
232
- case 'connecting':
233
- return 'Connecting to remote sandbox...';
234
- case 'hydrating':
235
- return 'Hydrating remote session...';
236
- case 'replaying':
237
- return 'Replaying remote history...';
238
- case 'resuming':
239
- return 'Resuming remote sandbox...';
240
- case 'reconnecting':
241
- return 'Connection lost - reconnecting...';
242
- case 'paused':
243
- case 'disconnected':
244
- case 'live':
245
- return undefined;
246
- }
247
- }
248
-
249
- export function clearRemoteLifecycleWorkingMessage(
250
- ui: RemoteLifecycleWorkingMessageUi,
251
- lifecycleOwnsWorkingMessage: boolean
252
- ): boolean {
253
- if (lifecycleOwnsWorkingMessage) {
254
- ui.setWorkingMessage();
255
- }
256
- return false;
257
- }
258
-
259
- export function syncRemoteLifecycleWorkingMessage(
260
- state: RemoteLifecycleState,
261
- ui: RemoteLifecycleWorkingMessageUi,
262
- lifecycleOwnsWorkingMessage: boolean
263
- ): boolean {
264
- const working = getRemoteLifecycleWorkingMessage(state);
265
- if (working) {
266
- ui.setWorkingMessage(working);
267
- return true;
268
- }
269
- return clearRemoteLifecycleWorkingMessage(ui, lifecycleOwnsWorkingMessage);
270
- }