agentx-sdk 0.3.1 → 0.3.3

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":"autocompact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4DnC"}
1
+ {"version":3,"file":"autocompact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAGzD,MAAM,WAAW,kBAAkB;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AASD;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmEnC"}
@@ -16,14 +16,20 @@ export async function autocompact(messages, client, options) {
16
16
  const threshold = maxContextTokens * compactionThreshold;
17
17
  if (currentTokens < threshold)
18
18
  return null;
19
- // Split messages into: system, pinned (boundary summaries), compactable, tail
19
+ // Split into: system messages, a compactable region (early), and a protected
20
+ // tail. Pinned messages in the early region are preserved in their ORIGINAL
21
+ // position (not floated to the top) to keep assistant.tool_calls followed by
22
+ // their `tool` results — OpenAI rejects any other order.
20
23
  const systemMessages = messages.filter(m => m.role === 'system');
21
24
  const nonSystem = messages.filter(m => m.role !== 'system');
22
- const pinned = nonSystem.filter(m => m._pinned === true);
23
- const unpinned = nonSystem.filter(m => m._pinned !== true);
24
- const tailCount = Math.min(tailProtection, unpinned.length);
25
- const toCompact = unpinned.slice(0, unpinned.length - tailCount);
26
- const tailMessages = unpinned.slice(-tailCount);
25
+ const tailCount = Math.min(tailProtection, nonSystem.length);
26
+ const earlyNonSystem = nonSystem.slice(0, nonSystem.length - tailCount);
27
+ const tailMessages = nonSystem.slice(-tailCount);
28
+ // Within the early region, split into pinned (kept verbatim, in place) and
29
+ // compactable (summarized). The relative order of pinned messages to each
30
+ // other is preserved; they are emitted at the top of the early slot.
31
+ const earlyPinned = earlyNonSystem.filter(m => m._pinned === true);
32
+ const toCompact = earlyNonSystem.filter(m => m._pinned !== true);
27
33
  if (toCompact.length === 0)
28
34
  return null;
29
35
  // Build conversation text for summarization
@@ -51,7 +57,7 @@ export async function autocompact(messages, client, options) {
51
57
  };
52
58
  const compactedMessages = [
53
59
  ...systemMessages,
54
- ...pinned,
60
+ ...earlyPinned,
55
61
  summaryMessage,
56
62
  ...tailMessages,
57
63
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"autocompact.js","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autocompact.js","sourceRoot":"","sources":["../../../src/core/compaction/autocompact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAa9D,SAAS,sBAAsB,CAAC,QAA+B;IAC7D,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,OAAO,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,CAAC,CAAC;AACR,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAA+B,EAC/B,MAAiB,EACjB,OAA2B;IAE3B,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAE1E,MAAM,aAAa,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,gBAAgB,GAAG,mBAAmB,CAAC;IAEzD,IAAI,aAAa,GAAG,SAAS;QAAE,OAAO,IAAI,CAAC;IAE3C,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,yDAAyD;IACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;IAC7D,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxE,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjD,2EAA2E;IAC3E,0EAA0E;IAC1E,qEAAqE;IACrE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAwC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAC3G,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAwC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAEzG,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACzC,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QACtF,OAAO,GAAG,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,2CAA2C;IAC5F,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,kOAAkO;iBAC5O;gBACD,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE;aAC5C;YACD,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QAEH,MAAM,cAAc,GAAe;YACjC,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,+EAA+E,QAAQ,CAAC,OAAO,EAAE;YAC1G,sEAAsE;YACtE,OAAO,EAAE,IAAI;SACwB,CAAC;QAExC,MAAM,iBAAiB,GAAG;YACxB,GAAG,cAAc;YACjB,GAAG,WAAW;YACd,cAAc;YACd,GAAG,YAAY;SAChB,CAAC;QAEF,MAAM,SAAS,GAAG,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;QAC5D,OAAO;YACL,QAAQ,EAAE,iBAAiB;YAC3B,WAAW,EAAE,aAAa,GAAG,SAAS;SACvC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -16,7 +16,9 @@ export interface SnipCompactResult {
16
16
  }
17
17
  /**
18
18
  * Remove orphaned tool results from early messages.
19
- * Preserves: system messages, pinned messages, tail messages.
19
+ * Preserves: original message order (critical for OpenAI's invariant that a
20
+ * `tool` message must be preceded by an `assistant` message with matching
21
+ * `tool_calls`). Pinned messages and the tail window are immune to snipping.
20
22
  */
21
23
  export declare function snipCompact(messages: readonly LLMMessage[], options: SnipCompactOptions): SnipCompactResult;
22
24
  //# sourceMappingURL=snip-compact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snip-compact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/snip-compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAoDnB"}
1
+ {"version":3,"file":"snip-compact.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/snip-compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,SAAS,UAAU,EAAE,EAC/B,OAAO,EAAE,kBAAkB,GAC1B,iBAAiB,CAmDnB"}
@@ -8,54 +8,56 @@
8
8
  */
9
9
  /**
10
10
  * Remove orphaned tool results from early messages.
11
- * Preserves: system messages, pinned messages, tail messages.
11
+ * Preserves: original message order (critical for OpenAI's invariant that a
12
+ * `tool` message must be preceded by an `assistant` message with matching
13
+ * `tool_calls`). Pinned messages and the tail window are immune to snipping.
12
14
  */
13
15
  export function snipCompact(messages, options) {
14
16
  const { tailProtection } = options;
15
17
  if (messages.length === 0)
16
18
  return { messages: [], snippedCount: 0 };
17
- // Separate protected messages
18
- const system = messages.filter(m => m.role === 'system');
19
- const pinned = messages.filter(m => m._pinned === true && m.role !== 'system');
20
- const rest = messages.filter(m => m.role !== 'system' && m._pinned !== true);
21
- const tailCount = Math.min(tailProtection, rest.length);
22
- const early = rest.slice(0, rest.length - tailCount);
23
- const tail = rest.slice(-tailCount);
24
- if (early.length === 0) {
25
- return { messages: [...messages], snippedCount: 0 };
19
+ // Determine tail boundary among non-system messages, walking from the end
20
+ // backwards. Anything with a smaller index than `tailStartIdx` is "early"
21
+ // (snipping-eligible). System messages are never in the tail count.
22
+ const nonSystemIndices = [];
23
+ for (let i = 0; i < messages.length; i++) {
24
+ if (messages[i].role !== 'system')
25
+ nonSystemIndices.push(i);
26
26
  }
27
- // Find tool_call_ids that have a matching assistant tool_call anywhere (early + tail)
27
+ const tailStartIdx = nonSystemIndices.length <= tailProtection
28
+ ? 0
29
+ : nonSystemIndices[nonSystemIndices.length - tailProtection];
30
+ // Collect tool_call ids that are referenced by any assistant in the conversation,
31
+ // plus tool_call_id references inside the tail window. Early tool results outside
32
+ // this set are orphans and get snipped.
28
33
  const referencedIds = new Set();
29
- // From tail: both tool_call_id references and assistant tool_calls
30
- for (const msg of tail) {
31
- if (msg.tool_call_id)
32
- referencedIds.add(msg.tool_call_id);
34
+ for (let i = 0; i < messages.length; i++) {
35
+ const msg = messages[i];
33
36
  if (msg.tool_calls) {
34
- for (const tc of msg.tool_calls) {
37
+ for (const tc of msg.tool_calls)
35
38
  referencedIds.add(tc.id);
36
- }
37
39
  }
38
- }
39
- // From early: only assistant tool_calls (not tool results referencing themselves)
40
- for (const msg of early) {
41
- if (msg.tool_calls) {
42
- for (const tc of msg.tool_calls) {
43
- referencedIds.add(tc.id);
44
- }
40
+ if (i >= tailStartIdx && msg.tool_call_id) {
41
+ referencedIds.add(msg.tool_call_id);
45
42
  }
46
43
  }
47
- // Remove orphaned tool results from early messages
44
+ // Walk in order; drop early orphaned tool results; keep everything else where it is.
48
45
  let snippedCount = 0;
49
- const keptEarly = early.filter(msg => {
50
- if (msg.role === 'tool' && msg.tool_call_id && !referencedIds.has(msg.tool_call_id)) {
46
+ const result = [];
47
+ for (let i = 0; i < messages.length; i++) {
48
+ const msg = messages[i];
49
+ const isEarly = i < tailStartIdx && msg.role !== 'system';
50
+ const isPinned = msg._pinned === true;
51
+ if (isEarly &&
52
+ !isPinned &&
53
+ msg.role === 'tool' &&
54
+ msg.tool_call_id &&
55
+ !referencedIds.has(msg.tool_call_id)) {
51
56
  snippedCount++;
52
- return false;
57
+ continue;
53
58
  }
54
- return true;
55
- });
56
- return {
57
- messages: [...system, ...pinned, ...keptEarly, ...tail],
58
- snippedCount,
59
- };
59
+ result.push(msg);
60
+ }
61
+ return { messages: result, snippedCount };
60
62
  }
61
63
  //# sourceMappingURL=snip-compact.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snip-compact.js","sourceRoot":"","sources":["../../../src/core/compaction/snip-compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH;;;GAGG;AACH,MAAM,UAAU,WAAW,CACzB,QAA+B,EAC/B,OAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAEpE,8BAA8B;IAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAE,CAAwC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IACvH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAK,CAAwC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;IAErH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;IAEpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IACtD,CAAC;IAED,sFAAsF;IACtF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,mEAAmE;IACnE,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,GAAG,CAAC,YAAY;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC1D,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAChC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IACD,kFAAkF;IAClF,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAChC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QACnC,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACpF,YAAY,EAAE,CAAC;YACf,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC;QACvD,YAAY;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"snip-compact.js","sourceRoot":"","sources":["../../../src/core/compaction/snip-compact.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,QAA+B,EAC/B,OAA2B;IAE3B,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAEpE,0EAA0E;IAC1E,0EAA0E;IAC1E,oEAAoE;IACpE,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,QAAQ;YAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,IAAI,cAAc;QAC5D,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,cAAc,CAAE,CAAC;IAEhE,kFAAkF;IAClF,kFAAkF;IAClF,wCAAwC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU;gBAAE,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,IAAI,YAAY,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC1C,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,qFAAqF;IACrF,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACzB,MAAM,OAAO,GAAG,CAAC,GAAG,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC1D,MAAM,QAAQ,GAAI,GAA0C,CAAC,OAAO,KAAK,IAAI,CAAC;QAC9E,IACE,OAAO;YACP,CAAC,QAAQ;YACT,GAAG,CAAC,IAAI,KAAK,MAAM;YACnB,GAAG,CAAC,YAAY;YAChB,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,EACpC,CAAC;YACD,YAAY,EAAE,CAAC;YACf,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC"}
@@ -12,7 +12,9 @@
12
12
  import type { LLMMessage } from '../llm/message-types.js';
13
13
  /**
14
14
  * Normalize messages before sending to the LLM API.
15
- * Removes orphaned tool results/calls and empty messages.
15
+ * Removes orphaned tool results/calls and empty messages, and enforces the
16
+ * positional invariant that every `tool` message must be preceded (in order)
17
+ * by an `assistant` message that declared its tool_call_id via `tool_calls`.
16
18
  */
17
19
  export declare function normalizeMessagesForAPI(messages: readonly LLMMessage[]): LLMMessage[];
18
20
  //# sourceMappingURL=message-normalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-normalize.d.ts","sourceRoot":"","sources":["../../src/core/message-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CA4DrF"}
1
+ {"version":3,"file":"message-normalize.d.ts","sourceRoot":"","sources":["../../src/core/message-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,SAAS,UAAU,EAAE,GAAG,UAAU,EAAE,CA6DrF"}
@@ -11,52 +11,58 @@
11
11
  */
12
12
  /**
13
13
  * Normalize messages before sending to the LLM API.
14
- * Removes orphaned tool results/calls and empty messages.
14
+ * Removes orphaned tool results/calls and empty messages, and enforces the
15
+ * positional invariant that every `tool` message must be preceded (in order)
16
+ * by an `assistant` message that declared its tool_call_id via `tool_calls`.
15
17
  */
16
18
  export function normalizeMessagesForAPI(messages) {
17
19
  if (messages.length === 0)
18
20
  return [];
19
- // Collect all tool_call IDs from assistant messages
20
- const declaredToolCallIds = new Set();
21
+ // First pass: positional enforcement.
22
+ // Walk messages in order; a tool message is kept only if its tool_call_id has
23
+ // been declared in a prior assistant message's tool_calls. This catches upstream
24
+ // reordering bugs (e.g. a _pinned tool result floated to the top) that would
25
+ // otherwise violate OpenAI's invariant.
26
+ const seenToolCallIds = new Set();
27
+ const positionallyValid = [];
21
28
  for (const msg of messages) {
22
29
  if (msg.role === 'assistant' && msg.tool_calls) {
23
- for (const tc of msg.tool_calls) {
24
- declaredToolCallIds.add(tc.id);
25
- }
30
+ for (const tc of msg.tool_calls)
31
+ seenToolCallIds.add(tc.id);
32
+ positionallyValid.push(msg);
33
+ continue;
34
+ }
35
+ if (msg.role === 'tool' && msg.tool_call_id) {
36
+ if (!seenToolCallIds.has(msg.tool_call_id))
37
+ continue; // orphan-in-position
38
+ positionallyValid.push(msg);
39
+ continue;
26
40
  }
41
+ positionallyValid.push(msg);
27
42
  }
28
- // Collect all tool_result IDs from tool messages
43
+ // Second pass: strip assistant tool_calls whose result is missing, and drop
44
+ // empty assistants without tool_calls.
29
45
  const presentToolResultIds = new Set();
30
- for (const msg of messages) {
46
+ for (const msg of positionallyValid) {
31
47
  if (msg.role === 'tool' && msg.tool_call_id) {
32
48
  presentToolResultIds.add(msg.tool_call_id);
33
49
  }
34
50
  }
35
51
  const result = [];
36
- for (const msg of messages) {
37
- // Remove orphaned tool results (no matching tool_call in any assistant message)
38
- if (msg.role === 'tool' && msg.tool_call_id) {
39
- if (!declaredToolCallIds.has(msg.tool_call_id))
40
- continue;
41
- }
42
- // Strip orphaned tool_calls from assistant (no matching tool result)
52
+ for (const msg of positionallyValid) {
43
53
  if (msg.role === 'assistant' && msg.tool_calls) {
44
54
  const validCalls = msg.tool_calls.filter(tc => presentToolResultIds.has(tc.id));
45
55
  if (validCalls.length === 0) {
46
- // No valid tool_calls — keep as text-only if has content
47
56
  if (msg.content && typeof msg.content === 'string' && msg.content.trim()) {
48
57
  result.push({ ...msg, tool_calls: undefined });
49
58
  }
50
- // Otherwise skip empty assistant with no valid tool_calls
51
59
  continue;
52
60
  }
53
61
  if (validCalls.length < msg.tool_calls.length) {
54
- // Partial: keep only valid tool_calls
55
62
  result.push({ ...msg, tool_calls: validCalls });
56
63
  continue;
57
64
  }
58
65
  }
59
- // Remove empty assistant messages without tool_calls
60
66
  if (msg.role === 'assistant' &&
61
67
  !msg.tool_calls &&
62
68
  (!msg.content || (typeof msg.content === 'string' && !msg.content.trim()))) {
@@ -1 +1 @@
1
- {"version":3,"file":"message-normalize.js","sourceRoot":"","sources":["../../src/core/message-normalize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAA+B;IACrE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,oDAAoD;IACpD,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/C,KAAK,MAAM,EAAE,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;gBAChC,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/C,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5C,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAEhC,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,gFAAgF;QAChF,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;YAC5C,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC;gBAAE,SAAS;QAC3D,CAAC;QAED,qEAAqE;QACrE,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;YAC/C,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAChF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,yDAAyD;gBACzD,IAAI,GAAG,CAAC,OAAO,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;oBACzE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;gBACjD,CAAC;gBACD,0DAA0D;gBAC1D,SAAS;YACX,CAAC;YACD,IAAI,UAAU,CAAC,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC9C,sCAAsC;gBACtC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,IACE,GAAG,CAAC,IAAI,KAAK,WAAW;YACxB,CAAC,GAAG,CAAC,UAAU;YACf,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,EAC1E,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"message-normalize.js","sourceRoot":"","sources":["../../src/core/message-normalize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,eAAe;IAM5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC;IAgCzE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IA4D/C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAqBnD,QAAQ;YAoCP,cAAc;CA4G9B"}
1
+ {"version":3,"file":"llm-client.d.ts","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,UAAU,EACV,WAAW,EACX,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;;;;;GAOG;AACH,qBAAa,SAAS;IACpB,mEAAmE;IACnE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAW;IAErD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;gBAErB,MAAM,EAAE,eAAe;IAM5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC;IAmCzE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IA+D/C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YAqBnD,QAAQ;YAoCP,cAAc;CA4G9B"}
@@ -1,5 +1,5 @@
1
1
  import { retry } from '../utils/retry.js';
2
- import { buildReasoningArgs, requiresNoSystemRole } from './reasoning.js';
2
+ import { buildReasoningArgs, isReasoningModel, requiresNoSystemRole } from './reasoning.js';
3
3
  function isRetryableStatus(status) {
4
4
  return status === 429 || status >= 500;
5
5
  }
@@ -43,8 +43,12 @@ export class LLMClient {
43
43
  body.response_format = params.responseFormat;
44
44
  if (params.seed !== undefined)
45
45
  body.seed = params.seed;
46
- if (params.maxTokens !== undefined)
47
- body.max_tokens = params.maxTokens;
46
+ if (params.maxTokens !== undefined) {
47
+ if (isReasoningModel(model))
48
+ body.max_completion_tokens = params.maxTokens;
49
+ else
50
+ body.max_tokens = params.maxTokens;
51
+ }
48
52
  const response = await retry(() => this.fetchAPI('/chat/completions', body, params.signal), { maxRetries: 3, initialDelay: 1000, isRetryable: (e) => e instanceof RetryableError });
49
53
  yield* this.parseSSEStream(response, params.signal);
50
54
  }
@@ -69,8 +73,12 @@ export class LLMClient {
69
73
  body.response_format = params.responseFormat;
70
74
  if (params.seed !== undefined)
71
75
  body.seed = params.seed;
72
- if (params.maxTokens !== undefined)
73
- body.max_tokens = params.maxTokens;
76
+ if (params.maxTokens !== undefined) {
77
+ if (isReasoningModel(model))
78
+ body.max_completion_tokens = params.maxTokens;
79
+ else
80
+ body.max_tokens = params.maxTokens;
81
+ }
74
82
  const response = await retry(() => this.fetchAPI('/chat/completions', body, params.signal), { maxRetries: 3, initialDelay: 1000, isRetryable: (e) => e instanceof RetryableError });
75
83
  let json;
76
84
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-client.js","sourceRoot":"","sources":["../../src/llm/llm-client.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,5 @@
1
1
  import type { StreamChatParams } from './message-types.js';
2
- /**
3
- * Adjusts chat parameters based on model family for reasoning support.
4
- */
2
+ export declare function isReasoningModel(model: string): boolean;
5
3
  export declare function buildReasoningArgs(model: string): Partial<StreamChatParams>;
6
- /**
7
- * Checks if a model requires removing system messages (e.g. o1).
8
- */
9
4
  export declare function requiresNoSystemRole(model: string): boolean;
10
5
  //# sourceMappingURL=reasoning.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../src/llm/reasoning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAQ3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D"}
1
+ {"version":3,"file":"reasoning.d.ts","sourceRoot":"","sources":["../../src/llm/reasoning.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAM3D,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAK3E;AAGD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -1,18 +1,17 @@
1
- /**
2
- * Adjusts chat parameters based on model family for reasoning support.
3
- */
1
+ // Matches reasoning families: o1, o3, o4, and gpt-5.x. Accepts optional
2
+ // "openai/" prefix so it works with both OpenRouter and direct OpenAI models.
3
+ const REASONING_MODEL_RE = /^(openai\/)?(o[134](-|$)|gpt-5(\.|-|$))/i;
4
+ export function isReasoningModel(model) {
5
+ return REASONING_MODEL_RE.test(model);
6
+ }
4
7
  export function buildReasoningArgs(model) {
5
- if (model.startsWith('openai/o1') || model.startsWith('openai/o3')) {
6
- // o1/o3 models: no temperature, no system role
8
+ if (isReasoningModel(model)) {
7
9
  return { temperature: undefined };
8
10
  }
9
- // Default: no special adjustments
10
11
  return {};
11
12
  }
12
- /**
13
- * Checks if a model requires removing system messages (e.g. o1).
14
- */
13
+ // Only the original o1 family rejects system role; o3+, o4, and gpt-5 accept it.
15
14
  export function requiresNoSystemRole(model) {
16
- return model.startsWith('openai/o1') || model.startsWith('openai/o3');
15
+ return /^(openai\/)?o1(-|$)/i.test(model);
17
16
  }
18
17
  //# sourceMappingURL=reasoning.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../../src/llm/reasoning.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACnE,+CAA+C;QAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;IAED,kCAAkC;IAClC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"reasoning.js","sourceRoot":"","sources":["../../src/llm/reasoning.ts"],"names":[],"mappings":"AAEA,wEAAwE;AACxE,8EAA8E;AAC9E,MAAM,kBAAkB,GAAG,0CAA0C,CAAC;AAEtE,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentx-sdk",
3
- "version": "0.3.1",
3
+ "version": "0.3.3",
4
4
  "description": "AgentX SDK - Standalone TypeScript agent library with streaming, tools, memory, knowledge (RAG), and skills",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",