@kenkaiiii/ggcoder 5.32.0 → 5.34.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"acp-mode.js","sourceRoot":"","sources":["../../src/modes/acp-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acp-mode.js","sourceRoot":"","sources":["../../src/modes/acp-mode.ts"],"names":[],"mappings":"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"}
@@ -164,14 +164,29 @@ function updates(frames) {
164
164
  .filter((frame) => frame.method === "session/update")
165
165
  .map((frame) => frame.params.update);
166
166
  }
167
+ /** Updates a session announces on its own schedule, not as part of a turn. */
168
+ const OUT_OF_BAND_UPDATES = new Set([
169
+ "available_commands_update",
170
+ "usage_update",
171
+ "session_info_update",
172
+ ]);
167
173
  /**
168
174
  * Conversation updates only.
169
175
  *
170
- * The command list is announced on its own schedule after a session opens, so
171
- * an exact-match transcript assertion would otherwise pass or fail on timing.
176
+ * The command list and the context-usage report are announced on their own
177
+ * schedule after a session opens, so an exact-match transcript assertion would
178
+ * otherwise pass or fail on timing.
172
179
  */
173
180
  function transcript(frames) {
174
- return updates(frames).filter((update) => update.sessionUpdate !== "available_commands_update");
181
+ return updates(frames).filter((update) => !OUT_OF_BAND_UPDATES.has(update.sessionUpdate));
182
+ }
183
+ /** Context-usage notifications only, in arrival order. */
184
+ function usageUpdates(frames) {
185
+ return updates(frames).filter((update) => update.sessionUpdate === "usage_update");
186
+ }
187
+ /** Every update of one kind, in arrival order. */
188
+ function updatesOfKind(frames, kind) {
189
+ return updates(frames).filter((update) => update.sessionUpdate === kind);
175
190
  }
176
191
  describe("ACP mode over stdio", () => {
177
192
  it("negotiates initialize and creates a session", async () => {
@@ -189,7 +204,7 @@ describe("ACP mode over stdio", () => {
189
204
  // and `{}` — not `true` — is how ACP spells "supported" for these two.
190
205
  expect(initialize.result.agentCapabilities).toMatchObject({
191
206
  loadSession: true,
192
- sessionCapabilities: { list: {}, resume: {} },
207
+ sessionCapabilities: { list: {}, resume: {}, close: {}, delete: {} },
193
208
  });
194
209
  client.send({ jsonrpc: "2.0", id: 2, method: "session/new", params: { cwd: tmpProject } });
195
210
  const created = (await client.until(2)).at(-1);
@@ -242,7 +257,7 @@ describe("ACP mode over stdio", () => {
242
257
  });
243
258
  const frames = await client.until(91);
244
259
  const replay = frames.filter((frame) => frame.method === "session/update" &&
245
- frame.params.update.sessionUpdate !== "available_commands_update");
260
+ !OUT_OF_BAND_UPDATES.has(frame.params.update.sessionUpdate));
246
261
  // History must arrive BEFORE the response: a client draws a resumed session
247
262
  // with its live-turn renderer, so anything after the reply lands nowhere.
248
263
  expect(replay.length).toBeGreaterThan(0);
@@ -252,10 +267,14 @@ describe("ACP mode over stdio", () => {
252
267
  expect(transcript(frames)).toEqual([
253
268
  {
254
269
  sessionUpdate: "user_message_chunk",
270
+ // Chunks carry the message they belong to, so a client can group them
271
+ // into bubbles instead of guessing at boundaries.
272
+ messageId: "hist-1",
255
273
  content: { type: "text", text: "newer: add the config panel" },
256
274
  },
257
275
  {
258
276
  sessionUpdate: "agent_message_chunk",
277
+ messageId: "hist-2",
259
278
  content: { type: "text", text: "Reading the panel first." },
260
279
  },
261
280
  {
@@ -276,22 +295,27 @@ describe("ACP mode over stdio", () => {
276
295
  },
277
296
  {
278
297
  sessionUpdate: "agent_message_chunk",
298
+ messageId: "hist-3",
279
299
  content: { type: "text", text: "Added the config panel." },
280
300
  },
281
301
  {
282
302
  sessionUpdate: "user_message_chunk",
303
+ messageId: "hist-4",
283
304
  content: { type: "text", text: "after first compaction" },
284
305
  },
285
306
  {
286
307
  sessionUpdate: "agent_message_chunk",
308
+ messageId: "hist-5",
287
309
  content: { type: "text", text: "First follow-up complete." },
288
310
  },
289
311
  {
290
312
  sessionUpdate: "user_message_chunk",
313
+ messageId: "hist-6",
291
314
  content: { type: "text", text: "after second compaction" },
292
315
  },
293
316
  {
294
317
  sessionUpdate: "agent_message_chunk",
318
+ messageId: "hist-7",
295
319
  content: { type: "text", text: "Second follow-up complete." },
296
320
  },
297
321
  ]);
@@ -311,7 +335,7 @@ describe("ACP mode over stdio", () => {
311
335
  expect(turn.at(-1).result).toEqual({ stopReason: "end_turn" });
312
336
  expect(turn
313
337
  .filter((frame) => frame.method === "session/update" &&
314
- frame.params.update.sessionUpdate !== "available_commands_update")
338
+ !OUT_OF_BAND_UPDATES.has(frame.params.update.sessionUpdate))
315
339
  .every((frame) => frame.params.sessionId === newest.sessionId)).toBe(true);
316
340
  // Full replay is display-only: prompting still sees only generation 2.
317
341
  const contextStart = client.received().length;
@@ -349,6 +373,7 @@ describe("ACP mode over stdio", () => {
349
373
  expect(frames.at(-1).error).toBeUndefined();
350
374
  expect(transcript(frames)[0]).toEqual({
351
375
  sessionUpdate: "user_message_chunk",
376
+ messageId: "hist-1",
352
377
  content: { type: "text", text: "newer: add the config panel" },
353
378
  });
354
379
  });
@@ -367,6 +392,7 @@ describe("ACP mode over stdio", () => {
367
392
  expect(transcript(frames)).toEqual([
368
393
  {
369
394
  sessionUpdate: "user_message_chunk",
395
+ messageId: "hist-1",
370
396
  content: {
371
397
  type: "text",
372
398
  text: "[Previous conversation summary]\n\nolder fallback summary",
@@ -374,6 +400,7 @@ describe("ACP mode over stdio", () => {
374
400
  },
375
401
  {
376
402
  sessionUpdate: "agent_message_chunk",
403
+ messageId: "hist-2",
377
404
  content: { type: "text", text: "Recovered from summary." },
378
405
  },
379
406
  ]);
@@ -624,8 +651,18 @@ describe("ACP mode over stdio", () => {
624
651
  }
625
652
  expect(transcript(frames)).toEqual([
626
653
  { sessionUpdate: "agent_thought_chunk", content: { type: "text", text: "planning" } },
627
- { sessionUpdate: "agent_message_chunk", content: { type: "text", text: "Hello " } },
628
- { sessionUpdate: "agent_message_chunk", content: { type: "text", text: "world" } },
654
+ // Both deltas belong to the same message, so they share an id; the tool
655
+ // call below ends it, and anything after starts a new one.
656
+ {
657
+ sessionUpdate: "agent_message_chunk",
658
+ messageId: "msg-1",
659
+ content: { type: "text", text: "Hello " },
660
+ },
661
+ {
662
+ sessionUpdate: "agent_message_chunk",
663
+ messageId: "msg-1",
664
+ content: { type: "text", text: "world" },
665
+ },
629
666
  {
630
667
  sessionUpdate: "tool_call",
631
668
  toolCallId: "t1",
@@ -634,6 +671,8 @@ describe("ACP mode over stdio", () => {
634
671
  kind: "read",
635
672
  status: "in_progress",
636
673
  rawInput: { file_path: "/tmp/example.ts" },
674
+ // Drives "follow the agent": the client opens the file being read.
675
+ locations: [{ path: "/tmp/example.ts" }],
637
676
  },
638
677
  {
639
678
  sessionUpdate: "tool_call_update",
@@ -664,6 +703,281 @@ describe("ACP mode over stdio", () => {
664
703
  },
665
704
  ]);
666
705
  });
706
+ it("reports context usage after session/new, before any prompt runs", async () => {
707
+ client = new AcpClient();
708
+ const sessionId = await client.handshake();
709
+ const usage = await client.untilUpdate("usage_update");
710
+ // A fresh session must show its window immediately: a client that only
711
+ // learns the size after the first reply cannot draw a context meter.
712
+ expect(usage).toEqual({ sessionUpdate: "usage_update", used: 4200, size: 200_000 });
713
+ const frame = client
714
+ .received()
715
+ .find((f) => f.params?.update?.sessionUpdate === "usage_update");
716
+ expect(frame.params.sessionId).toBe(sessionId);
717
+ // Spawning the agent and seeding its session files costs seconds on a CI
718
+ // runner, so every test here that drives a real child process buys headroom
719
+ // over vitest's 5s default rather than reporting a slow machine as a bug.
720
+ }, 20_000);
721
+ it("reports context usage on session/load so a resumed conversation shows it", async () => {
722
+ client = new AcpClient();
723
+ client.send({ jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: 1 } });
724
+ await client.until(1);
725
+ const [newest] = await client.list(90, tmpProject);
726
+ client.send({
727
+ jsonrpc: "2.0",
728
+ id: 91,
729
+ method: "session/load",
730
+ params: { sessionId: newest.sessionId, cwd: tmpProject, mcpServers: [] },
731
+ });
732
+ await client.until(91);
733
+ const usage = await client.untilUpdate("usage_update");
734
+ expect(usage).toEqual({ sessionUpdate: "usage_update", used: 4200, size: 200_000 });
735
+ // Addressed to the id the client asked to load, not the session's internal
736
+ // one, or the update lands on a session the client never heard of.
737
+ const frame = client
738
+ .received()
739
+ .find((f) => f.params?.update?.sessionUpdate === "usage_update");
740
+ expect(frame.params.sessionId).toBe(newest.sessionId);
741
+ }, 20_000);
742
+ it("reports context usage after each model response", async () => {
743
+ client = new AcpClient();
744
+ const sessionId = await client.handshake();
745
+ await client.untilUpdate("usage_update");
746
+ const beforeTurn = client.received().length;
747
+ client.send({
748
+ jsonrpc: "2.0",
749
+ id: 3,
750
+ method: "session/prompt",
751
+ params: { sessionId, prompt: [{ type: "text", text: "world" }] },
752
+ });
753
+ const frames = await client.until(3);
754
+ const turnUsage = usageUpdates(frames.slice(beforeTurn));
755
+ expect(turnUsage).toEqual([{ sessionUpdate: "usage_update", used: 9200, size: 200_000 }]);
756
+ // Like every other turn notification, it must precede the response.
757
+ expect(frames.at(-1).id).toBe(3);
758
+ }, 20_000);
759
+ it("reports the post-compaction count, so a client can see the drop", async () => {
760
+ client = new AcpClient();
761
+ const sessionId = await client.handshake();
762
+ await client.untilUpdate("usage_update");
763
+ const beforeTurn = client.received().length;
764
+ client.send({
765
+ jsonrpc: "2.0",
766
+ id: 3,
767
+ method: "session/prompt",
768
+ params: { sessionId, prompt: [{ type: "text", text: "compact me" }] },
769
+ });
770
+ const frames = await client.until(3);
771
+ // Compaction is invisible on the wire except as a fall in `used` at an
772
+ // unchanged `size`, so the emit right after it is the whole signal.
773
+ expect(usageUpdates(frames.slice(beforeTurn))).toEqual([
774
+ { sessionUpdate: "usage_update", used: 900, size: 200_000 },
775
+ {
776
+ sessionUpdate: "usage_update",
777
+ used: 2400,
778
+ size: 200_000,
779
+ cost: { amount: 0.25, currency: "USD" },
780
+ },
781
+ ]);
782
+ }, 20_000);
783
+ it("sends file edits as a real diff instead of the tool's prose", async () => {
784
+ client = new AcpClient();
785
+ const sessionId = await client.handshake();
786
+ client.send({
787
+ jsonrpc: "2.0",
788
+ id: 3,
789
+ method: "session/prompt",
790
+ params: { sessionId, prompt: [{ type: "text", text: "edit a file" }] },
791
+ });
792
+ const frames = await client.until(3);
793
+ const completed = updatesOfKind(frames, "tool_call_update");
794
+ // The BEFORE contents, captured while the tool was still running. Reading
795
+ // the file twice after the fact would report "after" as both sides.
796
+ expect(completed[0]).toMatchObject({
797
+ toolCallId: "d1",
798
+ status: "completed",
799
+ content: [
800
+ {
801
+ type: "diff",
802
+ path: path.join(tmpProject, "diffed.txt"),
803
+ oldText: "before\n",
804
+ newText: "after\n",
805
+ },
806
+ ],
807
+ });
808
+ // A new file has no old side; ACP spells that as null, which clients render
809
+ // as an all-additions diff.
810
+ expect(completed[1]).toMatchObject({
811
+ toolCallId: "d2",
812
+ content: [
813
+ {
814
+ type: "diff",
815
+ path: path.join(tmpProject, "created.txt"),
816
+ oldText: null,
817
+ newText: "brand new\n",
818
+ },
819
+ ],
820
+ });
821
+ // Relative tool arguments are resolved against the session cwd, since the
822
+ // client is running somewhere else and cannot resolve them itself.
823
+ const starts = updatesOfKind(frames, "tool_call");
824
+ expect(starts[1].locations).toEqual([{ path: path.join(tmpProject, "created.txt") }]);
825
+ }, 20_000);
826
+ it("publishes an approved plan and advances it from [DONE:n] markers", async () => {
827
+ client = new AcpClient();
828
+ const sessionId = await client.handshake();
829
+ client.send({
830
+ jsonrpc: "2.0",
831
+ id: 3,
832
+ method: "session/prompt",
833
+ params: { sessionId, prompt: [{ type: "text", text: "approve a plan" }] },
834
+ });
835
+ const frames = await client.until(3);
836
+ const plans = updatesOfKind(frames, "plan");
837
+ expect(plans).toHaveLength(2);
838
+ // On approval the whole plan appears, with the first step already active:
839
+ // steps run in order, so that is what the agent is doing right now.
840
+ expect(plans[0]).toEqual({
841
+ sessionUpdate: "plan",
842
+ entries: [
843
+ { content: "Wire the transport layer", priority: "medium", status: "in_progress" },
844
+ { content: "Render the results", priority: "medium", status: "pending" },
845
+ { content: "Ship the thing", priority: "medium", status: "pending" },
846
+ ],
847
+ });
848
+ // The marker was split across two text deltas and still registered.
849
+ expect(plans[1]).toEqual({
850
+ sessionUpdate: "plan",
851
+ entries: [
852
+ { content: "Wire the transport layer", priority: "medium", status: "completed" },
853
+ { content: "Render the results", priority: "medium", status: "in_progress" },
854
+ { content: "Ship the thing", priority: "medium", status: "pending" },
855
+ ],
856
+ });
857
+ }, 20_000);
858
+ it("names the session from its first prompt, once", async () => {
859
+ client = new AcpClient();
860
+ const sessionId = await client.handshake();
861
+ for (const id of [3, 4]) {
862
+ client.send({
863
+ jsonrpc: "2.0",
864
+ id,
865
+ method: "session/prompt",
866
+ params: { sessionId, prompt: [{ type: "text", text: `turn ${id}` }] },
867
+ });
868
+ await client.until(id);
869
+ }
870
+ const infos = updatesOfKind(client.received(), "session_info_update");
871
+ // Titled after the FIRST exchange and never renamed underneath the user.
872
+ expect(infos).toHaveLength(1);
873
+ expect(infos[0].title).toBe("turn 3");
874
+ expect(Date.parse(infos[0].updatedAt)).not.toBeNaN();
875
+ }, 20_000);
876
+ it("resumes a stored session without replaying its transcript", async () => {
877
+ client = new AcpClient();
878
+ client.send({ jsonrpc: "2.0", id: 1, method: "initialize", params: { protocolVersion: 1 } });
879
+ await client.until(1);
880
+ const [newest] = await client.list(90, tmpProject);
881
+ client.send({
882
+ jsonrpc: "2.0",
883
+ id: 91,
884
+ method: "session/resume",
885
+ params: { sessionId: newest.sessionId, cwd: tmpProject, mcpServers: [] },
886
+ });
887
+ const frames = await client.until(91);
888
+ expect(frames.at(-1).error).toBeUndefined();
889
+ // The whole point of resume over load: the client already has the
890
+ // transcript, so pushing it a second copy is what it asked to avoid.
891
+ expect(transcript(frames)).toEqual([]);
892
+ // The context is genuinely restored, not merely reported as restored.
893
+ client.send({
894
+ jsonrpc: "2.0",
895
+ id: 92,
896
+ method: "session/prompt",
897
+ params: {
898
+ sessionId: newest.sessionId,
899
+ prompt: [{ type: "text", text: "report loaded context" }],
900
+ },
901
+ });
902
+ const answered = await client.until(92);
903
+ const replied = updatesOfKind(answered, "agent_message_chunk")
904
+ .map((update) => update.content.text)
905
+ .join("");
906
+ // Generation 2, exactly as `session/load` restores it: the live context is
907
+ // the newest checkpoint, not the pre-compaction transcript.
908
+ expect(replied).toContain("after second compaction");
909
+ expect(replied).not.toContain("newer: add the config panel");
910
+ }, 20_000);
911
+ it("closes an active session and refuses to close an unknown one", async () => {
912
+ client = new AcpClient();
913
+ const sessionId = await client.handshake();
914
+ client.send({
915
+ jsonrpc: "2.0",
916
+ id: 3,
917
+ method: "session/close",
918
+ params: { sessionId: "not-a-session" },
919
+ });
920
+ const rejected = (await client.until(3)).at(-1);
921
+ expect(rejected.error.code).toBe(-32602);
922
+ client.send({ jsonrpc: "2.0", id: 4, method: "session/close", params: { sessionId } });
923
+ const closed = (await client.until(4)).at(-1);
924
+ expect(closed.result).toEqual({});
925
+ // Closing frees the session, so prompting the closed id is now a client
926
+ // sequencing error rather than a silently ignored no-op.
927
+ client.send({
928
+ jsonrpc: "2.0",
929
+ id: 5,
930
+ method: "session/prompt",
931
+ params: { sessionId, prompt: [{ type: "text", text: "still there?" }] },
932
+ });
933
+ expect((await client.until(5)).at(-1).error.code).toBe(-32602);
934
+ }, 20_000);
935
+ it("waits for a cancelled turn to unwind before closing the session", async () => {
936
+ client = new AcpClient();
937
+ const sessionId = await client.handshake();
938
+ client.send({
939
+ jsonrpc: "2.0",
940
+ id: 3,
941
+ method: "session/prompt",
942
+ params: { sessionId, prompt: [{ type: "text", text: "hang" }] },
943
+ });
944
+ // Let the turn actually start, or close would tear down an idle session and
945
+ // the race this guards against could never happen.
946
+ await new Promise((resolve) => setTimeout(resolve, 300));
947
+ client.send({ jsonrpc: "2.0", id: 4, method: "session/close", params: { sessionId } });
948
+ expect((await client.until(4)).at(-1).result).toEqual({});
949
+ // The cancelled turn resolves as cancelled, not as an error.
950
+ expect((await client.until(3)).at(-1).result).toEqual({ stopReason: "cancelled" });
951
+ // Close only SIGNALS the abort; the turn keeps unwinding and persists its
952
+ // tail on a later tick. Disposing without waiting drops that write, and a
953
+ // resumed session comes back missing its last exchange.
954
+ const witness = JSON.parse(await fs.readFile(path.join(tmpProject, "dispose-witness.json"), "utf8"));
955
+ expect(witness.disposedMidTurn).toBe(false);
956
+ }, 20_000);
957
+ it("deletes a stored session, and succeeds when it is already gone", async () => {
958
+ client = new AcpClient();
959
+ await client.handshake();
960
+ const before = await client.list(90, tmpProject);
961
+ const target = before.find((entry) => entry.title === "older: rename the widget");
962
+ client.send({
963
+ jsonrpc: "2.0",
964
+ id: 92,
965
+ method: "session/delete",
966
+ params: { sessionId: target.sessionId },
967
+ });
968
+ expect((await client.until(92)).at(-1).result).toEqual({});
969
+ const after = await client.list(93, tmpProject);
970
+ expect(after.map((entry) => entry.title)).not.toContain("older: rename the widget");
971
+ // Idempotent by spec: the user's intent is already satisfied, so deleting
972
+ // it again is a success, not an error.
973
+ client.send({
974
+ jsonrpc: "2.0",
975
+ id: 94,
976
+ method: "session/delete",
977
+ params: { sessionId: target.sessionId },
978
+ });
979
+ expect((await client.until(94)).at(-1).result).toEqual({});
980
+ }, 20_000);
667
981
  it("reports a refusal as its own stop reason", async () => {
668
982
  client = new AcpClient();
669
983
  const sessionId = await client.handshake();