@agentuity/coder 1.0.39 → 1.0.41

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 (49) hide show
  1. package/dist/client.d.ts +2 -2
  2. package/dist/client.d.ts.map +1 -1
  3. package/dist/client.js +2 -0
  4. package/dist/client.js.map +1 -1
  5. package/dist/hub-overlay-state.d.ts +30 -0
  6. package/dist/hub-overlay-state.d.ts.map +1 -0
  7. package/dist/hub-overlay-state.js +68 -0
  8. package/dist/hub-overlay-state.js.map +1 -0
  9. package/dist/hub-overlay.d.ts +41 -2
  10. package/dist/hub-overlay.d.ts.map +1 -1
  11. package/dist/hub-overlay.js +667 -115
  12. package/dist/hub-overlay.js.map +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +19 -34
  15. package/dist/index.js.map +1 -1
  16. package/dist/native-remote-ui-context.d.ts +5 -0
  17. package/dist/native-remote-ui-context.d.ts.map +1 -0
  18. package/dist/native-remote-ui-context.js +30 -0
  19. package/dist/native-remote-ui-context.js.map +1 -0
  20. package/dist/protocol.d.ts +210 -38
  21. package/dist/protocol.d.ts.map +1 -1
  22. package/dist/protocol.js +2 -1
  23. package/dist/protocol.js.map +1 -1
  24. package/dist/remote-lifecycle.d.ts +61 -0
  25. package/dist/remote-lifecycle.d.ts.map +1 -0
  26. package/dist/remote-lifecycle.js +190 -0
  27. package/dist/remote-lifecycle.js.map +1 -0
  28. package/dist/remote-session.d.ts +15 -0
  29. package/dist/remote-session.d.ts.map +1 -1
  30. package/dist/remote-session.js +240 -35
  31. package/dist/remote-session.js.map +1 -1
  32. package/dist/remote-tui.d.ts.map +1 -1
  33. package/dist/remote-tui.js +95 -12
  34. package/dist/remote-tui.js.map +1 -1
  35. package/dist/remote-ui-handler.d.ts +5 -0
  36. package/dist/remote-ui-handler.d.ts.map +1 -0
  37. package/dist/remote-ui-handler.js +53 -0
  38. package/dist/remote-ui-handler.js.map +1 -0
  39. package/package.json +5 -5
  40. package/src/client.ts +5 -3
  41. package/src/hub-overlay-state.ts +117 -0
  42. package/src/hub-overlay.ts +974 -138
  43. package/src/index.ts +19 -50
  44. package/src/native-remote-ui-context.ts +41 -0
  45. package/src/protocol.ts +270 -56
  46. package/src/remote-lifecycle.ts +270 -0
  47. package/src/remote-session.ts +293 -38
  48. package/src/remote-tui.ts +129 -13
  49. package/src/remote-ui-handler.ts +86 -0
@@ -27,8 +27,11 @@
27
27
  * 4. THEN connect — so hydration + replay events are captured
28
28
  */
29
29
  import { createAgentSession, DefaultResourceLoader, InteractiveMode, SessionManager, } from '@mariozechner/pi-coding-agent';
30
+ import { getNativeRemoteExtensionContext, setNativeRemoteExtensionContext, waitForNativeRemoteExtensionContext, } from "./native-remote-ui-context.js";
31
+ import { clearRemoteLifecycleWorkingMessage, getRemoteLifecycleActivityLabel, getRemoteLifecycleLabel, syncRemoteLifecycleWorkingMessage, } from "./remote-lifecycle.js";
30
32
  import { RemoteSession } from "./remote-session.js";
31
33
  import { agentuityCoderHub } from "./index.js";
34
+ import { handleRemoteUiRequest, REMOTE_FIRE_AND_FORGET_UI_METHODS } from "./remote-ui-handler.js";
32
35
  const DEBUG = !!process.env['AGENTUITY_DEBUG'];
33
36
  function log(msg) {
34
37
  if (DEBUG)
@@ -49,6 +52,7 @@ export async function runRemoteTui(options) {
49
52
  process.env.AGENTUITY_CODER_HUB_URL = hubWsUrl;
50
53
  process.env.AGENTUITY_CODER_REMOTE_SESSION = sessionId;
51
54
  process.env.AGENTUITY_CODER_NATIVE_REMOTE = '1';
55
+ setNativeRemoteExtensionContext(null);
52
56
  // ── 1. Create RemoteSession (NOT connected yet) ──
53
57
  // We register all handlers BEFORE connecting so that the hydration
54
58
  // message from the Hub (sent immediately after init) is captured.
@@ -56,6 +60,7 @@ export async function runRemoteTui(options) {
56
60
  // TODO: Remove/Change when we get Agentuity service level auth enabled, this is just temporary
57
61
  remote.apiKey = process.env.AGENTUITY_CODER_API_KEY || null;
58
62
  let hydrationStreamingDetected = false;
63
+ let sessionResumeSeen = false;
59
64
  // ── 2. Create AgentSession with coder extension loaded ──
60
65
  // The extension provides Hub UI (footer, /hub overlay, commands, titlebar).
61
66
  // AGENTUITY_CODER_NATIVE_REMOTE=1 tells it to skip legacy event rendering.
@@ -77,6 +82,32 @@ export async function runRemoteTui(options) {
77
82
  // Calling it early fires session_start twice, duplicating extension init.
78
83
  // Access the Agent instance (typed as `any` for monkey-patching)
79
84
  const agent = session.agent;
85
+ let lifecycleState = remote.getLifecycleState();
86
+ let lifecycleOwnsWorkingMessage = false;
87
+ function applyLifecycleUi(state) {
88
+ const ctx = getNativeRemoteExtensionContext();
89
+ if (!ctx?.hasUI)
90
+ return;
91
+ const shortSession = state.sessionId.slice(0, 16);
92
+ ctx.ui.setStatus('remote_connection', `Remote: ${shortSession}${shortSession.length < state.sessionId.length ? '...' : ''} ${getRemoteLifecycleLabel(state)}`);
93
+ const activity = getRemoteLifecycleActivityLabel(state);
94
+ if (activity) {
95
+ ctx.ui.setStatus('remote_activity', activity);
96
+ }
97
+ else {
98
+ ctx.ui.setStatus('remote_activity', state.isStreaming ? 'agent working...' : 'idle');
99
+ }
100
+ lifecycleOwnsWorkingMessage = syncRemoteLifecycleWorkingMessage(state, ctx.ui, lifecycleOwnsWorkingMessage);
101
+ }
102
+ remote.onLifecycleChange((state) => {
103
+ lifecycleState = state;
104
+ applyLifecycleUi(state);
105
+ });
106
+ void waitForNativeRemoteExtensionContext(10_000).then((ctx) => {
107
+ if (!ctx)
108
+ return;
109
+ applyLifecycleUi(lifecycleState);
110
+ });
80
111
  // ── 3. Patch Agent to be remote-backed ──
81
112
  // Track the running prompt promise so InteractiveMode waits correctly
82
113
  let runningPromptResolve = null;
@@ -231,6 +262,32 @@ export async function runRemoteTui(options) {
231
262
  rpcEvent.replay === true ||
232
263
  rpcEvent.isReplay === true;
233
264
  log(`Event received: ${rpcEvent.type} (source=${source})`);
265
+ if (rpcEvent.type === 'session_resume') {
266
+ sessionResumeSeen = true;
267
+ log(`Session resume signaled (${typeof rpcEvent.streamId === 'string' ? rpcEvent.streamId : 'no stream id'})`);
268
+ return;
269
+ }
270
+ if (rpcEvent.type === 'session_stream_ready') {
271
+ log(`Durable stream ready (${typeof rpcEvent.streamId === 'string' ? rpcEvent.streamId : 'no stream id'})`);
272
+ return;
273
+ }
274
+ if (rpcEvent.type === 'rpc_command_error') {
275
+ const error = typeof rpcEvent.error === 'string'
276
+ ? rpcEvent.error
277
+ : 'Remote command failed';
278
+ const ctx = getNativeRemoteExtensionContext();
279
+ if (ctx?.hasUI) {
280
+ ctx.ui.notify(error, 'warning');
281
+ lifecycleOwnsWorkingMessage = clearRemoteLifecycleWorkingMessage(ctx.ui, lifecycleOwnsWorkingMessage);
282
+ }
283
+ agent._state.error = error;
284
+ seenAgentStart = false;
285
+ seenMessageStart = false;
286
+ resolveRunningPrompt();
287
+ assistantStreamActive = false;
288
+ log(`Remote command error: ${error}`);
289
+ return;
290
+ }
234
291
  // session_hydration is handled separately below — skip it here
235
292
  if (rpcEvent.type === 'session_hydration')
236
293
  return;
@@ -399,12 +456,18 @@ export async function runRemoteTui(options) {
399
456
  });
400
457
  // ── 6. Wire up UI handlers for extension dialogs from sandbox ──
401
458
  remote.setUiHandler(async (request) => {
402
- // TODO: Bridge to InteractiveMode's extension UI context
403
- log(`UI request: ${request.method} (no handler yet)`);
404
- const fireAndForget = ['notify', 'setStatus', 'setWidget', 'setTitle', 'set_editor_text'];
405
- if (fireAndForget.includes(request.method))
406
- return undefined;
407
- return null;
459
+ const ctx = getNativeRemoteExtensionContext() ?? (await waitForNativeRemoteExtensionContext(10_000));
460
+ if (!ctx) {
461
+ log(`UI request: ${request.method} (${request.id}) timed out waiting for extension UI context`);
462
+ return REMOTE_FIRE_AND_FORGET_UI_METHODS.has(request.method) ? undefined : null;
463
+ }
464
+ try {
465
+ return await handleRemoteUiRequest(ctx, request);
466
+ }
467
+ catch (err) {
468
+ log(`UI request handler error for ${request.method}: ${err instanceof Error ? err.message : String(err)}`);
469
+ return REMOTE_FIRE_AND_FORGET_UI_METHODS.has(request.method) ? undefined : null;
470
+ }
408
471
  });
409
472
  // ── 7. Handle hydration (initial state from Hub) ──
410
473
  // Hydration arrives as the message AFTER 'init' on the WebSocket.
@@ -413,8 +476,14 @@ export async function runRemoteTui(options) {
413
476
  // InteractiveMode (which calls renderInitialMessages from SessionManager).
414
477
  const sm = session.sessionManager;
415
478
  let resolveHydration;
479
+ let hydrationComplete = false;
416
480
  const hydrationReady = new Promise((resolve) => {
417
- resolveHydration = resolve;
481
+ resolveHydration = () => {
482
+ if (hydrationComplete)
483
+ return;
484
+ hydrationComplete = true;
485
+ resolve();
486
+ };
418
487
  });
419
488
  let hydrationCount = 0;
420
489
  remote.onEvent((event) => {
@@ -567,13 +636,25 @@ export async function runRemoteTui(options) {
567
636
  log('Connected to Hub as controller');
568
637
  // Wait for hydration message (arrives right after init), with a timeout
569
638
  // in case this is the first connection and there's nothing to hydrate.
570
- const HYDRATION_TIMEOUT_MS = 2000;
571
639
  await Promise.race([
572
640
  hydrationReady,
573
- new Promise((resolve) => setTimeout(() => {
574
- log('Hydration timeout no session_hydration received');
575
- resolve();
576
- }, HYDRATION_TIMEOUT_MS)),
641
+ new Promise((resolve) => {
642
+ const waitStartedAt = Date.now();
643
+ const poll = () => {
644
+ if (hydrationComplete) {
645
+ resolve();
646
+ return;
647
+ }
648
+ const timeoutMs = sessionResumeSeen ? 5000 : 2000;
649
+ if (Date.now() - waitStartedAt >= timeoutMs) {
650
+ log('Hydration timeout — no session_hydration received');
651
+ resolve();
652
+ return;
653
+ }
654
+ setTimeout(poll, 50);
655
+ };
656
+ poll();
657
+ }),
577
658
  ]);
578
659
  const smEntries = sm.getEntries?.() ?? [];
579
660
  log(`SessionManager has ${smEntries.length} entries after hydration`);
@@ -634,6 +715,7 @@ export async function runRemoteTui(options) {
634
715
  // Handle clean shutdown
635
716
  const cleanup = () => {
636
717
  remote.close();
718
+ setNativeRemoteExtensionContext(null);
637
719
  interactive.stop();
638
720
  };
639
721
  process.on('SIGINT', cleanup);
@@ -647,6 +729,7 @@ export async function runRemoteTui(options) {
647
729
  }
648
730
  finally {
649
731
  remote.close();
732
+ setNativeRemoteExtensionContext(null);
650
733
  log('Remote TUI exited');
651
734
  }
652
735
  // ── Helper: resolve the running prompt promise ──
@@ -1 +1 @@
1
- {"version":3,"file":"remote-tui.js","sourceRoot":"","sources":["../src/remote-tui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote-tui.js","sourceRoot":"","sources":["../src/remote-tui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ExtensionContext } from '@mariozechner/pi-coding-agent';
2
+ import type { RpcUiRequest } from './remote-session.ts';
3
+ export declare const REMOTE_FIRE_AND_FORGET_UI_METHODS: Set<string>;
4
+ export declare function handleRemoteUiRequest(ctx: ExtensionContext, request: RpcUiRequest): Promise<unknown>;
5
+ //# sourceMappingURL=remote-ui-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-ui-handler.d.ts","sourceRoot":"","sources":["../src/remote-ui-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,iCAAiC,aAM5C,CAAC;AAEH,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,YAAY,GACnB,OAAO,CAAC,OAAO,CAAC,CAuElB"}
@@ -0,0 +1,53 @@
1
+ export const REMOTE_FIRE_AND_FORGET_UI_METHODS = new Set([
2
+ 'notify',
3
+ 'setStatus',
4
+ 'setWidget',
5
+ 'setTitle',
6
+ 'set_editor_text',
7
+ ]);
8
+ export async function handleRemoteUiRequest(ctx, request) {
9
+ if (!ctx.hasUI) {
10
+ return REMOTE_FIRE_AND_FORGET_UI_METHODS.has(request.method) ? undefined : null;
11
+ }
12
+ const ui = ctx.ui;
13
+ switch (request.method) {
14
+ case 'select': {
15
+ const options = Array.isArray(request.params.options)
16
+ ? request.params.options.filter((option) => typeof option === 'string')
17
+ : [];
18
+ const title = request.params.title ?? 'Select';
19
+ return (await ui.select(title, options)) ?? null;
20
+ }
21
+ case 'confirm':
22
+ return await ui.confirm(request.params.title ?? 'Confirm?', request.params.message ?? 'Confirm?');
23
+ case 'input':
24
+ return ((await ui.input(request.params.title ?? 'Input', request.params.placeholder ?? '')) ?? null);
25
+ case 'editor':
26
+ return ((await ui.editor(request.params.title ?? 'Editor', request.params.prefill ?? '')) ?? null);
27
+ case 'notify':
28
+ ui.notify(request.params.message ?? '', request.params.notifyType ?? 'info');
29
+ return undefined;
30
+ case 'setStatus':
31
+ ui.setStatus(request.params.statusKey ?? 'remote', request.params.statusText ?? undefined);
32
+ return undefined;
33
+ case 'setWidget': {
34
+ const widgetLines = Array.isArray(request.params.widgetLines)
35
+ ? request.params.widgetLines.filter((line) => typeof line === 'string')
36
+ : undefined;
37
+ const widgetPlacement = request.params.widgetPlacement;
38
+ ui.setWidget(request.params.widgetKey ?? 'remote_widget', widgetLines, widgetPlacement === 'aboveEditor' || widgetPlacement === 'belowEditor'
39
+ ? { placement: widgetPlacement }
40
+ : undefined);
41
+ return undefined;
42
+ }
43
+ case 'setTitle':
44
+ ui.setTitle(request.params.title ?? '');
45
+ return undefined;
46
+ case 'set_editor_text':
47
+ ui.setEditorText(request.params.text ?? '');
48
+ return undefined;
49
+ default:
50
+ return null;
51
+ }
52
+ }
53
+ //# sourceMappingURL=remote-ui-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remote-ui-handler.js","sourceRoot":"","sources":["../src/remote-ui-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentuity/coder",
3
- "version": "1.0.39",
3
+ "version": "1.0.41",
4
4
  "description": "Agentuity Coder Hub extension for Pi coding agent",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Agentuity employees and contributors",
@@ -25,13 +25,13 @@
25
25
  "prepublishOnly": "bun run clean && bun run build"
26
26
  },
27
27
  "peerDependencies": {
28
- "@mariozechner/pi-coding-agent": "^0.54.2",
29
- "@mariozechner/pi-tui": "^0.55.1",
28
+ "@mariozechner/pi-coding-agent": "^0.57.1",
29
+ "@mariozechner/pi-tui": "^0.57.1",
30
30
  "@sinclair/typebox": "^0.34.48"
31
31
  },
32
32
  "devDependencies": {
33
- "@mariozechner/pi-coding-agent": "^0.54.2",
34
- "@mariozechner/pi-tui": "^0.55.1",
33
+ "@mariozechner/pi-coding-agent": "^0.57.1",
34
+ "@mariozechner/pi-tui": "^0.57.1",
35
35
  "@sinclair/typebox": "^0.34.48",
36
36
  "@types/bun": "^1.3.9",
37
37
  "bun-types": "^1.3.9",
package/src/client.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { InitMessage, HubRequest, HubResponse } from './protocol.ts';
1
+ import type { HubClientMessage, HubRequest, HubResponse, InitMessage } from './protocol.ts';
2
2
 
3
3
  /** How long to wait for a response before rejecting the pending promise (ms). */
4
4
  const SEND_TIMEOUT_MS = 30_000;
@@ -26,7 +26,7 @@ function log(message: string): void {
26
26
 
27
27
  export type ConnectionState = 'connected' | 'disconnected' | 'reconnecting' | 'closed';
28
28
 
29
- type FireAndForgetMessage = HubRequest | Record<string, unknown>;
29
+ type FireAndForgetMessage = HubClientMessage | Record<string, unknown>;
30
30
 
31
31
  interface QueuedFireAndForgetMessage {
32
32
  kind: 'fire-and-forget';
@@ -324,6 +324,8 @@ export class HubClient {
324
324
  msgType === 'broadcast' ||
325
325
  msgType === 'presence' ||
326
326
  msgType === 'session_hydration' ||
327
+ msgType === 'session_resume' ||
328
+ msgType === 'session_stream_ready' ||
327
329
  msgType === 'rpc_event' ||
328
330
  msgType === 'rpc_response' ||
329
331
  msgType === 'rpc_ui_request'
@@ -461,7 +463,7 @@ export class HubClient {
461
463
  return this.sendRequestNow(request);
462
464
  }
463
465
 
464
- sendNoWait(message: HubRequest | Record<string, unknown>): void {
466
+ sendNoWait(message: HubClientMessage | Record<string, unknown>): void {
465
467
  if (this.connectionState === 'closed') {
466
468
  log('Dropping fire-and-forget message because client is closed');
467
469
  return;
@@ -0,0 +1,117 @@
1
+ export interface StreamBuffer {
2
+ output: string;
3
+ thinking: string;
4
+ }
5
+
6
+ export interface StreamProjectionBlock {
7
+ output?: string;
8
+ thinking?: string;
9
+ }
10
+
11
+ export interface StreamProjection {
12
+ output?: string;
13
+ thinking?: string;
14
+ tasks?: Record<string, StreamProjectionBlock>;
15
+ }
16
+
17
+ export interface ConversationEntryLike {
18
+ type?: string;
19
+ content?: string;
20
+ taskId?: string | null;
21
+ toolName?: string;
22
+ toolArgs?: Record<string, unknown>;
23
+ }
24
+
25
+ export type StreamProjectionSource = 'none' | 'snapshot' | 'replay' | 'hydration' | 'live';
26
+
27
+ export interface NormalizedStreamProjection {
28
+ output: string;
29
+ thinking: string;
30
+ tasks: Record<string, StreamBuffer>;
31
+ }
32
+
33
+ export function normalizeStreamProjection(
34
+ projection: StreamProjection | null | undefined
35
+ ): NormalizedStreamProjection {
36
+ const tasks: Record<string, StreamBuffer> = {};
37
+ const rawTasks =
38
+ projection?.tasks && typeof projection.tasks === 'object' ? projection.tasks : {};
39
+
40
+ for (const [taskId, rawBlock] of Object.entries(rawTasks)) {
41
+ if (!rawBlock || typeof rawBlock !== 'object') continue;
42
+ tasks[taskId] = {
43
+ output: typeof rawBlock.output === 'string' ? rawBlock.output : '',
44
+ thinking: typeof rawBlock.thinking === 'string' ? rawBlock.thinking : '',
45
+ };
46
+ }
47
+
48
+ return {
49
+ output: typeof projection?.output === 'string' ? projection.output : '',
50
+ thinking: typeof projection?.thinking === 'string' ? projection.thinking : '',
51
+ tasks,
52
+ };
53
+ }
54
+
55
+ export function buildProjectionFromEntries(
56
+ entries: ConversationEntryLike[]
57
+ ): NormalizedStreamProjection {
58
+ const projection: NormalizedStreamProjection = {
59
+ output: '',
60
+ thinking: '',
61
+ tasks: {},
62
+ };
63
+
64
+ const append = (kind: 'output' | 'thinking', text: string, taskId?: string | null): void => {
65
+ if (!text) return;
66
+ if (taskId) {
67
+ if (!projection.tasks[taskId]) {
68
+ projection.tasks[taskId] = { output: '', thinking: '' };
69
+ }
70
+ projection.tasks[taskId]![kind] += text;
71
+ return;
72
+ }
73
+ projection[kind] += text;
74
+ };
75
+
76
+ for (const entry of entries) {
77
+ const type = typeof entry.type === 'string' ? entry.type : '';
78
+ if (type === 'tool_call') {
79
+ const toolName = typeof entry.toolName === 'string' ? entry.toolName : 'tool';
80
+ append('output', `[tool_call] ${toolName}\n\n`, entry.taskId);
81
+ continue;
82
+ }
83
+
84
+ const content = typeof entry.content === 'string' ? entry.content : '';
85
+ if (!content) continue;
86
+
87
+ if (type === 'message' || type === 'tool_result' || type === 'task_result') {
88
+ append('output', `${content}\n\n`, entry.taskId);
89
+ continue;
90
+ }
91
+
92
+ if (type === 'thinking') {
93
+ append('thinking', `${content}\n\n`, entry.taskId);
94
+ }
95
+ }
96
+
97
+ return projection;
98
+ }
99
+
100
+ export function shouldReplaceStreamProjection(
101
+ currentSource: StreamProjectionSource,
102
+ nextSource: Exclude<StreamProjectionSource, 'live'>
103
+ ): boolean {
104
+ if (nextSource === 'snapshot') {
105
+ return currentSource === 'none' || currentSource === 'snapshot';
106
+ }
107
+
108
+ if (nextSource === 'replay') {
109
+ return currentSource === 'none' || currentSource === 'snapshot' || currentSource === 'replay';
110
+ }
111
+
112
+ if (nextSource === 'hydration') {
113
+ return currentSource !== 'live';
114
+ }
115
+
116
+ return false;
117
+ }