Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 01 May 04:35
· 210 commits to main since this release
v0.2.0
6f6e777

BREAKING CHANGES

  • buildXmlToolSystemPrompt() signature change: The function now accepts an optional second parameter options: BuildXmlToolSystemPromptOptions. While backwards compatible (the parameter is optional and defaults to { format: 'xml' }), this is a minor signature change. Callers using TypeScript with strict settings may need to update type signatures.
    • Old: buildXmlToolSystemPrompt(tools: readonly XmlToolInfo[]): string
    • New: buildXmlToolSystemPrompt(tools: readonly XmlToolInfo[], options?: BuildXmlToolSystemPromptOptions): string

Added

  • buildNativeToolsArray() function for building OpenAI-compatible tool definitions with support for strict mode (DeepSeek, OpenAI structured outputs), enum constraints, and additionalProperties: false enforcement
  • Multiple tool-calling format support in buildXmlToolSystemPrompt():
    • format: 'xml' (default) — Custom XML format for most models
    • format: 'hermes' — NousResearch Hermes 2 Pro format for Qwen models (Qwen2.5, Qwen3, etc.)
    • format: 'none' — No instructions (for models using native API parameters like Ollama's tools field)
  • JsonSchemaProperty interface for more complete JSON Schema draft 7 support, including:
    • Full object schema support (properties, required, additionalProperties)
    • Array schemas (items, minItems, maxItems)
    • Numeric constraints (minimum, maximum, multipleOf, etc.)
    • Composition keywords (anyOf, oneOf, allOf, not)
    • Schema references ($ref, $defs, $def for DeepSeek compatibility)
    • Enum constraints (enum, const)
  • Bare JSON fallback in extractXmlToolCalls() for models that emit tool calls without XML wrappers (e.g., models trained on Hermes format that ignore custom XML instructions)
  • New type exports:
    • BuildXmlToolSystemPromptOptions interface
    • NativeTool interface
    • BuildNativeToolsOptions interface
    • NativeToolParameter type (deprecated, use JsonSchemaProperty instead)

Fixed

  • Resolved SonarQube code quality findings (cyclomatic complexity, string comparison, type unions)
  • Fixed false positive Qwik linting errors in test files
  • Removed forbidden non-null assertions (25+ instances)
  • Improved code quality across normalizers, structured parsing, context handling, and processors

What Else Has Changed

  • chore(deps): bump picomatch from 2.3.1 to 2.3.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #35
  • chore(deps-dev): bump vite from 7.3.1 to 7.3.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #36
  • chore(deps): bump basic-ftp from 5.2.0 to 5.2.1 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #37
  • chore(deps): bump basic-ftp from 5.2.1 to 5.2.2 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #38
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #39
  • feat(tool-calls): improve JSON Schema quality for native tool calling by @selfagency in #40
  • chore(deps): bump postcss from 8.5.9 to 8.5.13 in the npm_and_yarn group across 1 directory by @dependabot[bot] in #41
  • fix: resolve SonarQube code quality issues and Qwik false positives by @selfagency in #42

Full Changelog: v0.1.5...v0.2.0