@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,61 +0,0 @@
1
- export type RemoteLifecyclePhase = 'connecting' | 'hydrating' | 'replaying' | 'live' | 'paused' | 'resuming' | 'reconnecting' | 'disconnected';
2
- export type RemoteTransportState = 'connecting' | 'connected' | 'reconnecting' | 'disconnected';
3
- export interface RemoteLifecycleState {
4
- sessionId: string;
5
- label: string;
6
- transport: RemoteTransportState;
7
- phase: RemoteLifecyclePhase;
8
- leadConnected: boolean | null;
9
- isStreaming: boolean;
10
- hydrationReceived: boolean;
11
- streamId: string | null;
12
- streamUrl: string | null;
13
- lastError: string | null;
14
- }
15
- export interface RemoteLifecycleWorkingMessageUi {
16
- setWorkingMessage(message?: string): void;
17
- }
18
- export type RemoteLifecycleEvent = {
19
- type: 'connect_start';
20
- reconnect: boolean;
21
- } | {
22
- type: 'init';
23
- sessionId?: string;
24
- label?: string;
25
- } | {
26
- type: 'hydration';
27
- leadConnected?: boolean;
28
- isStreaming?: boolean;
29
- } | {
30
- type: 'replay_event';
31
- } | {
32
- type: 'replay_idle';
33
- } | {
34
- type: 'live_signal';
35
- isStreaming?: boolean;
36
- } | {
37
- type: 'session_resume';
38
- streamId?: string | null;
39
- streamUrl?: string | null;
40
- } | {
41
- type: 'stream_ready';
42
- streamId?: string | null;
43
- streamUrl?: string | null;
44
- } | {
45
- type: 'rpc_command_error';
46
- error: string;
47
- paused: boolean;
48
- } | {
49
- type: 'local_resume_requested';
50
- } | {
51
- type: 'connection_change';
52
- state: 'reconnecting' | 'disconnected';
53
- };
54
- export declare function createRemoteLifecycleState(sessionId: string): RemoteLifecycleState;
55
- export declare function applyRemoteLifecycleEvent(state: RemoteLifecycleState, event: RemoteLifecycleEvent): RemoteLifecycleState;
56
- export declare function getRemoteLifecycleLabel(state: RemoteLifecycleState): string;
57
- export declare function getRemoteLifecycleActivityLabel(state: RemoteLifecycleState): string | undefined;
58
- export declare function getRemoteLifecycleWorkingMessage(state: RemoteLifecycleState): string | undefined;
59
- export declare function clearRemoteLifecycleWorkingMessage(ui: RemoteLifecycleWorkingMessageUi, lifecycleOwnsWorkingMessage: boolean): boolean;
60
- export declare function syncRemoteLifecycleWorkingMessage(state: RemoteLifecycleState, ui: RemoteLifecycleWorkingMessageUi, lifecycleOwnsWorkingMessage: boolean): boolean;
61
- //# sourceMappingURL=remote-lifecycle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-lifecycle.d.ts","sourceRoot":"","sources":["../src/remote-lifecycle.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAC7B,YAAY,GACZ,WAAW,GACX,WAAW,GACX,MAAM,GACN,QAAQ,GACR,UAAU,GACV,cAAc,GACd,cAAc,CAAC;AAElB,MAAM,MAAM,oBAAoB,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC;AAEhG,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,oBAAoB,CAAC;IAChC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,+BAA+B;IAC/C,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,oBAAoB,GAC7B;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACpD;IACA,IAAI,EAAE,WAAW,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAA;CAAE,GACvB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC/E;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7E;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,wBAAwB,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAAA;CAAE,CAAC;AAEzE,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,CAalF;AA8BD,wBAAgB,yBAAyB,CACxC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,oBAAoB,GACzB,oBAAoB,CA6FtB;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAmB3E;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAmB/F;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,GAAG,SAAS,CAiBhG;AAED,wBAAgB,kCAAkC,CACjD,EAAE,EAAE,+BAA+B,EACnC,2BAA2B,EAAE,OAAO,GAClC,OAAO,CAKT;AAED,wBAAgB,iCAAiC,CAChD,KAAK,EAAE,oBAAoB,EAC3B,EAAE,EAAE,+BAA+B,EACnC,2BAA2B,EAAE,OAAO,GAClC,OAAO,CAOT"}
@@ -1,190 +0,0 @@
1
- export function createRemoteLifecycleState(sessionId) {
2
- return {
3
- sessionId,
4
- label: '',
5
- transport: 'disconnected',
6
- phase: 'disconnected',
7
- leadConnected: null,
8
- isStreaming: false,
9
- hydrationReceived: false,
10
- streamId: null,
11
- streamUrl: null,
12
- lastError: null,
13
- };
14
- }
15
- function patchState(state, patch) {
16
- let changed = false;
17
- const next = { ...state };
18
- for (const [key, value] of Object.entries(patch)) {
19
- const typedKey = key;
20
- if (next[typedKey] !== value) {
21
- changed = true;
22
- next[typedKey] =
23
- value;
24
- }
25
- }
26
- return changed ? next : state;
27
- }
28
- function resolveConnectedPhase(input) {
29
- if (input.isStreaming)
30
- return 'live';
31
- if (input.leadConnected === false)
32
- return 'paused';
33
- return 'live';
34
- }
35
- export function applyRemoteLifecycleEvent(state, event) {
36
- switch (event.type) {
37
- case 'connect_start':
38
- return patchState(state, {
39
- transport: event.reconnect ? 'reconnecting' : 'connecting',
40
- phase: event.reconnect ? 'reconnecting' : 'connecting',
41
- lastError: null,
42
- });
43
- case 'init':
44
- return patchState(state, {
45
- sessionId: event.sessionId || state.sessionId,
46
- label: event.label || state.label,
47
- transport: 'connected',
48
- phase: 'hydrating',
49
- lastError: null,
50
- });
51
- case 'hydration': {
52
- const leadConnected = typeof event.leadConnected === 'boolean' ? event.leadConnected : state.leadConnected;
53
- const isStreaming = typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming;
54
- return patchState(state, {
55
- leadConnected,
56
- isStreaming,
57
- hydrationReceived: true,
58
- transport: 'connected',
59
- phase: resolveConnectedPhase({ leadConnected, isStreaming }),
60
- lastError: null,
61
- });
62
- }
63
- case 'replay_event':
64
- if (state.transport !== 'connected')
65
- return state;
66
- return patchState(state, {
67
- phase: 'replaying',
68
- });
69
- case 'replay_idle':
70
- if (state.phase !== 'replaying')
71
- return state;
72
- return patchState(state, {
73
- phase: resolveConnectedPhase({
74
- leadConnected: state.leadConnected,
75
- isStreaming: state.isStreaming,
76
- }),
77
- });
78
- case 'live_signal':
79
- return patchState(state, {
80
- transport: 'connected',
81
- phase: 'live',
82
- leadConnected: true,
83
- isStreaming: typeof event.isStreaming === 'boolean' ? event.isStreaming : state.isStreaming,
84
- lastError: null,
85
- });
86
- case 'session_resume':
87
- return patchState(state, {
88
- streamId: event.streamId ?? state.streamId,
89
- streamUrl: event.streamUrl ?? state.streamUrl,
90
- phase: 'resuming',
91
- lastError: null,
92
- });
93
- case 'stream_ready':
94
- return patchState(state, {
95
- streamId: event.streamId ?? state.streamId,
96
- streamUrl: event.streamUrl ?? state.streamUrl,
97
- });
98
- case 'rpc_command_error':
99
- return patchState(state, {
100
- lastError: event.error,
101
- leadConnected: event.paused ? false : state.leadConnected,
102
- isStreaming: event.paused ? false : state.isStreaming,
103
- phase: event.paused ? 'paused' : state.phase,
104
- });
105
- case 'local_resume_requested':
106
- return patchState(state, {
107
- phase: 'resuming',
108
- lastError: null,
109
- });
110
- case 'connection_change':
111
- return patchState(state, {
112
- transport: event.state,
113
- phase: event.state,
114
- isStreaming: false,
115
- });
116
- }
117
- }
118
- export function getRemoteLifecycleLabel(state) {
119
- switch (state.phase) {
120
- case 'connecting':
121
- return 'Connecting';
122
- case 'hydrating':
123
- return 'Hydrating';
124
- case 'replaying':
125
- return 'Replaying';
126
- case 'paused':
127
- return 'Paused';
128
- case 'resuming':
129
- return 'Resuming';
130
- case 'reconnecting':
131
- return 'Reconnecting';
132
- case 'disconnected':
133
- return 'Disconnected';
134
- case 'live':
135
- return 'Live';
136
- }
137
- }
138
- export function getRemoteLifecycleActivityLabel(state) {
139
- switch (state.phase) {
140
- case 'connecting':
141
- return 'connecting to sandbox...';
142
- case 'hydrating':
143
- return 'hydrating remote session...';
144
- case 'replaying':
145
- return 'replaying remote history...';
146
- case 'paused':
147
- return 'sandbox paused';
148
- case 'resuming':
149
- return 'resuming sandbox...';
150
- case 'reconnecting':
151
- return 'reconnecting...';
152
- case 'disconnected':
153
- return state.lastError ? `disconnected: ${state.lastError}` : 'disconnected';
154
- case 'live':
155
- return undefined;
156
- }
157
- }
158
- export function getRemoteLifecycleWorkingMessage(state) {
159
- switch (state.phase) {
160
- case 'connecting':
161
- return 'Connecting to remote sandbox...';
162
- case 'hydrating':
163
- return 'Hydrating remote session...';
164
- case 'replaying':
165
- return 'Replaying remote history...';
166
- case 'resuming':
167
- return 'Resuming remote sandbox...';
168
- case 'reconnecting':
169
- return 'Connection lost - reconnecting...';
170
- case 'paused':
171
- case 'disconnected':
172
- case 'live':
173
- return undefined;
174
- }
175
- }
176
- export function clearRemoteLifecycleWorkingMessage(ui, lifecycleOwnsWorkingMessage) {
177
- if (lifecycleOwnsWorkingMessage) {
178
- ui.setWorkingMessage();
179
- }
180
- return false;
181
- }
182
- export function syncRemoteLifecycleWorkingMessage(state, ui, lifecycleOwnsWorkingMessage) {
183
- const working = getRemoteLifecycleWorkingMessage(state);
184
- if (working) {
185
- ui.setWorkingMessage(working);
186
- return true;
187
- }
188
- return clearRemoteLifecycleWorkingMessage(ui, lifecycleOwnsWorkingMessage);
189
- }
190
- //# sourceMappingURL=remote-lifecycle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-lifecycle.js","sourceRoot":"","sources":["../src/remote-lifecycle.ts"],"names":[],"mappings":"AA8CA,MAAM,UAAU,0BAA0B,CAAC,SAAiB;IAC3D,OAAO;QACN,SAAS;QACT,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,cAAc;QACzB,KAAK,EAAE,cAAc;QACrB,aAAa,EAAE,IAAI;QACnB,WAAW,EAAE,KAAK;QAClB,iBAAiB,EAAE,KAAK;QACxB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,SAAS,EAAE,IAAI;KACf,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAClB,KAA2B,EAC3B,KAAoC;IAEpC,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAE1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAiC,CAAC;QACnD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YAC9B,OAAO,GAAG,IAAI,CAAC;YACd,IAAI,CAAC,QAAQ,CAAsD;gBACnE,KAAyD,CAAC;QAC5D,CAAC;IACF,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAG9B;IACA,IAAI,KAAK,CAAC,WAAW;QAAE,OAAO,MAAM,CAAC;IACrC,IAAI,KAAK,CAAC,aAAa,KAAK,KAAK;QAAE,OAAO,QAAQ,CAAC;IACnD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,MAAM,UAAU,yBAAyB,CACxC,KAA2B,EAC3B,KAA2B;IAE3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,eAAe;YACnB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY;gBAC1D,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY;gBACtD,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QAEJ,KAAK,MAAM;YACV,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;gBAC7C,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK;gBACjC,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,WAAW;gBAClB,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QAEJ,KAAK,WAAW,CAAC,CAAC,CAAC;YAClB,MAAM,aAAa,GAClB,OAAO,KAAK,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;YACtF,MAAM,WAAW,GAChB,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;YAChF,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,aAAa;gBACb,WAAW;gBACX,iBAAiB,EAAE,IAAI;gBACvB,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,qBAAqB,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC;gBAC5D,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,cAAc;YAClB,IAAI,KAAK,CAAC,SAAS,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAClD,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,KAAK,EAAE,WAAW;aAClB,CAAC,CAAC;QAEJ,KAAK,aAAa;YACjB,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC9C,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,KAAK,EAAE,qBAAqB,CAAC;oBAC5B,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,WAAW,EAAE,KAAK,CAAC,WAAW;iBAC9B,CAAC;aACF,CAAC,CAAC;QAEJ,KAAK,aAAa;YACjB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,SAAS,EAAE,WAAW;gBACtB,KAAK,EAAE,MAAM;gBACb,aAAa,EAAE,IAAI;gBACnB,WAAW,EACV,OAAO,KAAK,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;gBAC/E,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QAEJ,KAAK,gBAAgB;YACpB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;gBAC1C,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;gBAC7C,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QAEJ,KAAK,cAAc;YAClB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ;gBAC1C,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS;aAC7C,CAAC,CAAC;QAEJ,KAAK,mBAAmB;YACvB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,SAAS,EAAE,KAAK,CAAC,KAAK;gBACtB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa;gBACzD,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW;gBACrD,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;aAC5C,CAAC,CAAC;QAEJ,KAAK,wBAAwB;YAC5B,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,KAAK,EAAE,UAAU;gBACjB,SAAS,EAAE,IAAI;aACf,CAAC,CAAC;QAEJ,KAAK,mBAAmB;YACvB,OAAO,UAAU,CAAC,KAAK,EAAE;gBACxB,SAAS,EAAE,KAAK,CAAC,KAAK;gBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,WAAW,EAAE,KAAK;aAClB,CAAC,CAAC;IACL,CAAC;AACF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAA2B;IAClE,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,YAAY;YAChB,OAAO,YAAY,CAAC;QACrB,KAAK,WAAW;YACf,OAAO,WAAW,CAAC;QACpB,KAAK,WAAW;YACf,OAAO,WAAW,CAAC;QACpB,KAAK,QAAQ;YACZ,OAAO,QAAQ,CAAC;QACjB,KAAK,UAAU;YACd,OAAO,UAAU,CAAC;QACnB,KAAK,cAAc;YAClB,OAAO,cAAc,CAAC;QACvB,KAAK,cAAc;YAClB,OAAO,cAAc,CAAC;QACvB,KAAK,MAAM;YACV,OAAO,MAAM,CAAC;IAChB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,KAA2B;IAC1E,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,YAAY;YAChB,OAAO,0BAA0B,CAAC;QACnC,KAAK,WAAW;YACf,OAAO,6BAA6B,CAAC;QACtC,KAAK,WAAW;YACf,OAAO,6BAA6B,CAAC;QACtC,KAAK,QAAQ;YACZ,OAAO,gBAAgB,CAAC;QACzB,KAAK,UAAU;YACd,OAAO,qBAAqB,CAAC;QAC9B,KAAK,cAAc;YAClB,OAAO,iBAAiB,CAAC;QAC1B,KAAK,cAAc;YAClB,OAAO,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,iBAAiB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9E,KAAK,MAAM;YACV,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,KAA2B;IAC3E,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,KAAK,YAAY;YAChB,OAAO,iCAAiC,CAAC;QAC1C,KAAK,WAAW;YACf,OAAO,6BAA6B,CAAC;QACtC,KAAK,WAAW;YACf,OAAO,6BAA6B,CAAC;QACtC,KAAK,UAAU;YACd,OAAO,4BAA4B,CAAC;QACrC,KAAK,cAAc;YAClB,OAAO,mCAAmC,CAAC;QAC5C,KAAK,QAAQ,CAAC;QACd,KAAK,cAAc,CAAC;QACpB,KAAK,MAAM;YACV,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED,MAAM,UAAU,kCAAkC,CACjD,EAAmC,EACnC,2BAAoC;IAEpC,IAAI,2BAA2B,EAAE,CAAC;QACjC,EAAE,CAAC,iBAAiB,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iCAAiC,CAChD,KAA2B,EAC3B,EAAmC,EACnC,2BAAoC;IAEpC,MAAM,OAAO,GAAG,gCAAgC,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI,OAAO,EAAE,CAAC;QACb,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,kCAAkC,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAAC;AAC5E,CAAC"}
@@ -1,128 +0,0 @@
1
- /**
2
- * Remote Session Bridge — TUI ↔ Hub ↔ Sandbox
3
- *
4
- * Handles the WebSocket connection and RPC protocol bridge for remote mode.
5
- * In remote mode, the local Pi TUI connects to an existing sandbox session
6
- * through the Hub, acting as a thin client:
7
- * - User input → rpc_command → Hub → sandbox
8
- * - Sandbox events → rpc_event → Hub → TUI rendering
9
- * - Extension UI dialogs → rpc_ui_request/response → Hub ↔ TUI
10
- *
11
- * This module manages the connection lifecycle and provides an API
12
- * for the extension to send commands and receive events.
13
- */
14
- import type { ExtensionAPI, ExtensionContext } from '@mariozechner/pi-coding-agent';
15
- import { type RemoteLifecycleState } from './remote-lifecycle.ts';
16
- export interface RpcCommand {
17
- type: string;
18
- [key: string]: unknown;
19
- }
20
- export interface RpcEvent {
21
- type: string;
22
- [key: string]: unknown;
23
- }
24
- export interface RpcUiRequest {
25
- id: string;
26
- method: string;
27
- params: Record<string, unknown>;
28
- }
29
- /** RPC response from sandbox (correlated by id) */
30
- export interface RpcResponse {
31
- type: 'response';
32
- id: string;
33
- command: string;
34
- success: boolean;
35
- data?: unknown;
36
- error?: string;
37
- }
38
- export type RemoteEventHandler = (event: RpcEvent) => void;
39
- export type RemoteResponseHandler = (response: RpcResponse) => void;
40
- export type RemoteUiHandler = (request: RpcUiRequest) => Promise<unknown>;
41
- export type RemoteConnectionHandler = (state: 'connected' | 'reconnecting' | 'disconnected') => void;
42
- export type RemoteLifecycleHandler = (state: RemoteLifecycleState) => void;
43
- export declare class RemoteSession {
44
- private ws;
45
- private connected;
46
- private intentionallyClosed;
47
- private hubWsUrl;
48
- private reconnectAttempts;
49
- private reconnectTimer;
50
- private eventHandlers;
51
- private uiHandler;
52
- private responseHandlers;
53
- private connectionHandlers;
54
- private lifecycleHandlers;
55
- private lifecycleState;
56
- private replaySettledTimer;
57
- /** Session ID this client is connected to */
58
- sessionId: string;
59
- /** Session label (populated after connection) */
60
- label: string;
61
- /** API key for Hub authentication */
62
- apiKey: string | null;
63
- constructor(sessionId: string);
64
- private dispatchEvent;
65
- private dispatchResponse;
66
- private applyLifecycle;
67
- private clearReplaySettledTimer;
68
- private scheduleReplaySettled;
69
- private observeLiveSignal;
70
- private getLiveSignalStreamingState;
71
- private shouldMarkResuming;
72
- private shouldObserveRpcResponseAsLive;
73
- /** Register a handler for RPC events from the sandbox */
74
- onEvent(handler: RemoteEventHandler): void;
75
- /** Register a handler for RPC responses from the sandbox */
76
- onResponse(handler: RemoteResponseHandler): void;
77
- /** Register the UI dialog handler (select, confirm, input, editor) */
78
- setUiHandler(handler: RemoteUiHandler): void;
79
- /** Register a connection state change handler */
80
- onConnectionChange(handler: RemoteConnectionHandler): void;
81
- /** Register a lifecycle state handler for remote attach/replay/live transitions. */
82
- onLifecycleChange(handler: RemoteLifecycleHandler): void;
83
- getLifecycleState(): RemoteLifecycleState;
84
- /** Connect to the Hub WebSocket as a controller for the remote session */
85
- connect(hubWsUrl: string): Promise<void>;
86
- private doConnect;
87
- private scheduleReconnect;
88
- private notifyConnectionChange;
89
- /** Send an RPC command to the sandbox (prompt, steer, abort, etc.) */
90
- sendCommand(command: RpcCommand): void;
91
- /** Send a user prompt to the remote sandbox */
92
- prompt(message: string, images?: string[]): void;
93
- /** Steer the agent mid-turn */
94
- steer(message: string): void;
95
- /** Abort current operation */
96
- abort(): void;
97
- /** Get current session state */
98
- getState(): void;
99
- /** Get all messages in current session */
100
- getMessages(): void;
101
- /** Compact the session context */
102
- compact(): void;
103
- /** Close the connection */
104
- close(): void;
105
- get isConnected(): boolean;
106
- /** Handle UI request from sandbox — delegate to registered handler */
107
- private handleUiRequest;
108
- /** Send UI response back to sandbox */
109
- private sendUiResponse;
110
- }
111
- /**
112
- * Set up remote mode for the Pi extension.
113
- *
114
- * Connects to an existing sandbox session through the Hub and bridges
115
- * user input → RPC commands and sandbox events → TUI rendering.
116
- *
117
- * Uses Pi's extension APIs for rich rendering:
118
- * - pi.sendMessage() for completed assistant messages
119
- * - ctx.ui.setWidget() for streaming output
120
- * - ctx.ui.setWorkingMessage() for tool execution status
121
- * - ctx.ui.setStatus() for connection and agent state
122
- */
123
- export declare function setupRemoteMode(pi: ExtensionAPI, hubWsUrl: string, sessionId: string): Promise<RemoteSession>;
124
- /** Internal interface for passing extension context to RemoteSession */
125
- export interface RemoteSessionInternal extends RemoteSession {
126
- _setExtensionCtx?: (ctx: ExtensionContext) => void;
127
- }
128
- //# sourceMappingURL=remote-session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-session.d.ts","sourceRoot":"","sources":["../src/remote-session.ts"],"names":[],"mappings":"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"}