Skip to main content

v1.1.0

Released: March 21, 2026

Highlights

  • Level-based logger — standard log levels (error, warn, info, debug, trace) controlled by TOOLPACK_SDK_LOG_LEVEL or logging.level; deprecated TOOLPACK_SDK_LOG_VERBOSE removed
  • PersistentKnowledgeProvider — disk-backed knowledge storage with reSync flag to skip re-embedding when cached chunks exist
  • Configurable tool result truncationtools.resultMaxChars in toolpack.config.json (default 20k chars)
  • Knowledge embedding progressonEmbeddingProgress callback with 10% milestones during sync

Breaking changes

  • TOOLPACK_SDK_LOG_VERBOSE env var removed — switch to TOOLPACK_SDK_LOG_LEVEL or logging.level
  • logging.verbose option removed from ToolpackConfig
  • TOOLPACK_SDK_TOOL_RESULT_MAX_CHARS env var removed — use tools.resultMaxChars in config instead

toolpack-sdk

Level-based logger

import { logInfo, logDebug, logWarn, logError } from 'toolpack-sdk';

// Or configure via env
process.env.TOOLPACK_SDK_LOG_LEVEL = 'debug'; // error | warn | info | debug | trace

Tool result truncation

// toolpack.config.json
{
"tools": {
"resultMaxChars": 20000
}
}

Web search improvements

web.search Tavily/Brave/DuckDuckGo diagnostics now route through the level-based logger. Fixed numeric freshness mapping so Tavily receives valid days values, restoring "latest results" support.


@toolpack-sdk/knowledge (embedded, pre-extraction)

PersistentKnowledgeProvider

const kb = await Knowledge.create({
provider: new PersistentKnowledgeProvider({ namespace: 'my-kb' }),
sources: [...],
embedder,
description: 'My KB',
reSync: false, // skip re-embedding if cached chunks exist
});

Embedding progress

await Knowledge.create({
// ...
onEmbeddingProgress: (e) => {
console.log(`${e.percent}% — ${e.current}/${e.total} chunks`);
},
});

Install

npm install toolpack-sdk@1.1.0