Peter Steinberger
05ebaf41f6
fix(tool-call-repair): bound serialized stream normalization ( #104100 )
...
* fix(tool-call-repair): bound serialized stream normalization
Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com >
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com >
Co-authored-by: qingminlong <qing.minlong@xydigit.com >
Co-authored-by: WangYan <wang.yan29@xydigit.com >
* fix(tool-call-repair): preserve strict scan narrowing
* fix(tool-call-repair): lint serialized name validation
* fix(tool-call-repair): replay split suffix whitespace
* fix(tool-call-repair): cap complete-call whitespace
* test(tool-call-repair): assert bounded whitespace replay
---------
Co-authored-by: wuqingxuan <wu.qingxuan@xydigit.com >
Co-authored-by: 徐闻涵0668001344 <xu.wenhan1@xydigit.com >
Co-authored-by: qingminlong <qing.minlong@xydigit.com >
Co-authored-by: WangYan <wang.yan29@xydigit.com >
2026-07-10 20:00:11 -07:00
wuqxuan
9e74dabad2
fix: parse zero-argument XML tool calls ( #103220 )
...
* fix: parse zero-argument XML tool calls
* fix(tool-call-repair): handle empty XML calls safely
---------
Co-authored-by: Peter Steinberger <peter@steipete.me >
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-10 07:39:23 +01:00
qingminlong
b20b02a476
fix(tool-payload): enforce UTF-8 byte limits for serialized payloads ( #102450 )
...
* fix(tool-payload): reject oversized XML payload bytes
* fix(tools): enforce serialized payload byte limits
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-07-09 07:47:23 +01:00
Peter Steinberger
048f307695
docs: document remaining plugin sdk files
2026-06-04 19:21:04 -04:00
Jason (Json)
3ea911558c
fix: promote serialized tool calls via repair package
...
Extracts serialized plaintext tool-call parsing, scrubbing, stream normalization, and standalone promotion into the private internal @openclaw/tool-call-repair package.
Provider wrappers and the embedded runner now share one repair path for standalone serialized tool calls, including adjacent text-block splits, while preserving exact argument bytes when already valid. The public plugin SDK payload module remains as the compatibility facade.
Verification:
- pnpm test src/plugin-sdk/provider-stream-shared.test.ts src/plugin-sdk/tool-payload.test.ts src/agents/embedded-agent-runner/run/attempt.tool-call-normalization.test.ts -- --reporter=verbose
- env -u OPENCLAW_TESTBOX pnpm check:changed
- PR CI: all reported checks green/skipped/neutral on ff0b3c0a5c
Refs #86924
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-05-30 22:34:57 +01:00
Jason (Json)
ee655f4d94
fix: scrub serialized tool-call text from replies ( #86924 )
...
* fix: scrub serialized tool-call text from replies
* fix: consume xmlish tool parameters
2026-05-27 01:16:58 +01:00
Jason (Json)
cd627803a0
fix: prevent plain text tool call leaks ( #86222 )
...
Prevent plain text tool call leaks from xAI/LM Studio fallback streams.
- Promotes plain-text tool-call fallback chunks into structured tool calls.
- Strips leaked internal tool syntax before user-facing/outbound text.
- Adds regression coverage across provider stream wrappers, tool payload parsing, user-facing sanitization, and outbound send validation.
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com >
2026-05-25 08:15:11 +01:00
Shakker
ca73c8da43
test: assert tool payload parse blocks
2026-05-11 11:44:55 +01:00
Shakker
8c3a0c1296
test: align plain tool block parser spacing
2026-05-09 09:54:43 +01:00
Shakker
76df5aaac0
test: preserve bracketed tool block spacing
2026-05-09 09:38:25 +01:00
Peter Steinberger
ba2b033774
fix(plugin-sdk): parse harmony text tool calls
2026-05-09 09:25:19 +01:00
Vincent Koc
d99e8ce619
test(plugin-sdk): satisfy tool payload carrier typing
2026-04-08 09:07:29 +01:00
Vincent Koc
be530f085d
refactor(plugin-sdk): share tool payload extraction
2026-04-08 09:07:28 +01:00