@sayknow-cli/agent-core 0.3.9 → 0.3.10

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.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.2] - 2026-07-09
6
+
7
+ ### Fixed
8
+
9
+ - Follow-up queues can now mark individual messages as one-at-a-time, so interactive composer queues can remain sequential without disabling the existing batch mode for other callers.
10
+
5
11
  ## [0.8.2] - 2026-07-06
6
12
  ### Added
7
13
 
@@ -323,8 +323,14 @@ export declare class Agent {
323
323
  /**
324
324
  * Queue a follow-up message to be processed after the agent finishes.
325
325
  * Delivered only when agent has no more tool calls or steering messages.
326
+ *
327
+ * `forceOneAtATime` lets UI composer queues preserve prompt-by-prompt
328
+ * delivery even when the session-wide follow-up mode is set to `all` for
329
+ * other integration paths.
326
330
  */
327
- followUp(m: AgentMessage): void;
331
+ followUp(m: AgentMessage, options?: {
332
+ forceOneAtATime?: boolean;
333
+ }): void;
328
334
  clearSteeringQueue(): void;
329
335
  clearFollowUpQueue(): void;
330
336
  clearAllQueues(): void;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sayknow-cli/agent-core",
4
- "version": "0.3.9",
4
+ "version": "0.3.10",
5
5
  "description": "General-purpose agent with transport abstraction, state management, and attachment support",
6
6
  "homepage": "https://sayknow-cli.com",
7
7
  "author": "jaybeyond",
@@ -35,9 +35,9 @@
35
35
  "fmt": "biome format --write ."
36
36
  },
37
37
  "dependencies": {
38
- "@sayknow-cli/ai": "0.3.9",
39
- "@sayknow-cli/natives": "0.3.9",
40
- "@sayknow-cli/utils": "0.3.9",
38
+ "@sayknow-cli/ai": "0.3.10",
39
+ "@sayknow-cli/natives": "0.3.10",
40
+ "@sayknow-cli/utils": "0.3.10",
41
41
  "@opentelemetry/api": "^1.9.0"
42
42
  },
43
43
  "devDependencies": {
package/src/agent.ts CHANGED
@@ -275,6 +275,7 @@ export class Agent {
275
275
  #transformContext?: (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;
276
276
  #steeringQueue: AgentMessage[] = [];
277
277
  #followUpQueue: AgentMessage[] = [];
278
+ #followUpForceOneAtATime = new WeakSet<AgentMessage>();
278
279
  #steeringMode: "all" | "one-at-a-time";
279
280
  #followUpMode: "all" | "one-at-a-time";
280
281
  #interruptMode: "immediate" | "wait";
@@ -865,8 +866,15 @@ export class Agent {
865
866
  /**
866
867
  * Queue a follow-up message to be processed after the agent finishes.
867
868
  * Delivered only when agent has no more tool calls or steering messages.
869
+ *
870
+ * `forceOneAtATime` lets UI composer queues preserve prompt-by-prompt
871
+ * delivery even when the session-wide follow-up mode is set to `all` for
872
+ * other integration paths.
868
873
  */
869
- followUp(m: AgentMessage) {
874
+ followUp(m: AgentMessage, options?: { forceOneAtATime?: boolean }) {
875
+ if (options?.forceOneAtATime) {
876
+ this.#followUpForceOneAtATime.add(m);
877
+ }
870
878
  this.#followUpQueue.push(m);
871
879
  }
872
880
 
@@ -942,8 +950,18 @@ export class Agent {
942
950
  }
943
951
  return [];
944
952
  }
945
- const followUp = this.#followUpQueue.slice();
946
- this.#followUpQueue = [];
953
+
954
+ const first = this.#followUpQueue[0];
955
+ if (!first) return [];
956
+ if (this.#followUpForceOneAtATime.has(first)) {
957
+ this.#followUpQueue = this.#followUpQueue.slice(1);
958
+ return [first];
959
+ }
960
+
961
+ const forcedIndex = this.#followUpQueue.findIndex(message => this.#followUpForceOneAtATime.has(message));
962
+ const takeCount = forcedIndex === -1 ? this.#followUpQueue.length : forcedIndex;
963
+ const followUp = this.#followUpQueue.slice(0, takeCount);
964
+ this.#followUpQueue = this.#followUpQueue.slice(takeCount);
947
965
  return followUp;
948
966
  }
949
967