Skip to content

Latest commit

 

History

History
564 lines (362 loc) · 54.7 KB

CHANGELOG.md

File metadata and controls

564 lines (362 loc) · 54.7 KB

Changelog

3.0.0 (2026-10-09)

⚠ BREAKING CHANGES

  • StackOneRpcTool, RpcExecuteConfig, BinaryDownloadResult and isBinaryDownloadResult are removed. Action results are the server's { isError, result, ... } object rather than the /actions/rpc body. A file action's result is the server's single-use { download_url, expires_at, file } instead of bytes, and the call raises StackOneAPIError with status 501 when no link can be issued. The /mcp URL no longer pins param-style=flat_prefixed, so tool argument names follow the server's own param style. dryRun returns { url, method: 'tools/call', name, arguments }.
  • RequestBuilder and direct-HTTP execution are removed: ExecuteConfig has no http kind, ParameterLocation is no longer exported, and BaseTool#execute throws unless overridden. BaseTool no longer takes headers and loses getHeaders()/setHeaders() and connector; Tools#getConnectors() is removed. StackOneTool's fifth constructor argument is the account id. StackOneToolSetConfig loses authentication, strict and rpcClient. The constructor throws ToolSetConfigError without an API key. fetchTools() returns fresh tool instances on every call, ordered by account id, and discovers accounts when none is configured.
  • AuthenticationConfig and BaseToolSetConfig are no longer exported. Pass apiKey in StackOneToolSetConfig.
  • ToolExecution, the execution metadata toAISDK() can attach, no longer carries headers, so it can no longer expose the request credential.
  • searchTools(), searchActionNames(), getSearchTool(), SearchTool, the tool_search/tool_execute meta tools, openai({ mode: 'search_and_execute' }) and the search constructor option are removed. Use the server-side search() instead.
  • SemanticSearchClient, SemanticSearchError and the SemanticSearchOptions, SemanticSearchResponse and SemanticSearchResult types are no longer exported. search() runs on the server and returns SearchResult objects.
  • the SearchMode, SearchToolsOptions, SearchActionNamesOptions and SearchConfig types are no longer exported. Use SearchOptions with search().
  • StackOneToolSet#getSearchConfig() and StackOneToolSet#getTools() are removed. For search and execute meta tools, construct the toolset with toolMode: 'search_execute' and call fetchTools().
  • DefenderConfig, DefenderMode and DEFAULT_DEFENDER_CONFIG are no longer exported, and the defender option and StackOneToolSet#defenderMode are removed. Configure Defender in the StackOne dashboard.
  • createFeedbackTool is no longer exported and fetchTools() no longer appends a tool_feedback tool. Use submitFeedback() or the served stackone_submit_feedback tool.
  • toolsets: headers a tool call supplies are dropped unless the tool's served schema declares them.
  • tools: a header argument (an entry of a nested headers object, or a top-level headers_ argument) is forwarded only if the served schema declares it in the same form: headers.properties., any name when headers is an open map (type "object", no properties, and additionalProperties not false), or the headers_ property. Authorization, x-account-id and User-Agent are never forwarded as header arguments, even when declared. A top-level headers argument that is not a plain object is dropped unless the served schema declares headers as a non-object field, in which case it is an ordinary argument sent as given. A headers_ argument whose value is an array or object is dropped. Every other argument is sent unchanged.
  • toolsets: Authorization, x-account-id and User-Agent in the headers constructor option are ignored with a warning; the SDK always sets them itself. Use apiKey and accountId/accountIds instead.
  • ToolSetError (and so ToolSetConfigError and ToolSetLoadError) now extends StackOneError.
  • errors: StackOneAPIError no longer appends responseBody.message to its message. Read the server's explanation from error.responseBody.
  • toolsets: the STACKONE_ACCOUNT_ID environment variable is no longer read. Pass the account id as accountId or accountIds; without one, the toolset discovers every active account linked to the API key.
  • toolsets: accountId: '' and an empty id in accountIds, execute.accountIds, setAccounts() or a call's accountIds now throw ToolSetConfigError. Before, an empty accountId fell back to STACKONE_ACCOUNT_ID or to account discovery. accountId: process.env.STACKONE_ACCOUNT_ID now throws when the variable is set but empty; pass process.env.STACKONE_ACCOUNT_ID || undefined to discover accounts instead.

Features

  • add search(), execute() and submitFeedback() with session ids (c41b100)
  • errors: add ToolArgumentsError (c41b100)
  • feedback: add actionRunId, and send feedback on the lowest account id (c41b100)
  • retry HTTP 429 with Retry-After or backoff, and fail the whole call when a 429 persists (c41b100)
  • retry: warn when a 429's wait would pass the deadline (c41b100)
  • search: tag each search hit with its account_id, and apply topK to the merged ranking (c41b100)
  • tool: preserve root schema keywords in toJsonSchema pass-through (c41b100)
  • tools: add executeOpenAIToolCalls() (c41b100)
  • toolsets: send x-end-user-id for non-shared accounts (c41b100)
  • toolsets: skip non-shared accounts during discovery unless includeNonShared (c41b100)
  • toolsets: warn when STACKONE_ACCOUNT_ID is set but ignored (c41b100)
  • types: type execute() and submitFeedback() results as ActionResult (c41b100)

Bug Fixes

  • align error and warning messages with the Python SDK (c41b100)
  • errors: keep the message StackOneAPIError is given (c41b100)
  • execute: refuse an action whose connector is linked on more than one account (c41b100)
  • mcp-client: give the end-user refusal the failed lookup as its cause (c41b100)
  • mcp-client: keep a retried 429 on record while another request in the session is answered (c41b100)
  • retry: clear the rate-limit flag once a retry succeeds (c41b100)
  • retry: report a timeout while retrying a 429 as the 429 (c41b100)
  • tools: build every adapter from the first tool of each name (c41b100)
  • toolsets: cache healthy accounts and keep each failure when every account fails (c41b100)
  • toolsets: fail discovery when every active account is non-shared (c41b100)
  • toolsets: ignore SDK-owned names in the headers option (c41b100)
  • toolsets: look up a non-shared account's end user when the API asks for it (c41b100)
  • toolsets: look up the providers of failed accounts named explicitly before refusing an action (c41b100)
  • toolsets: re-list only the failed accounts that could serve the action (c41b100)
  • toolsets: refuse to execute while a matching account failed to list (c41b100)
  • toolsets: reject an empty account id instead of widening to every account (c41b100)
  • toolsets: remember when execute()'s provider lookup cannot name a failed account (c41b100)
  • toolsets: rethrow a rate-limited provider lookup from execute() (c41b100)
  • toolsets: say shared accounts are used in the STACKONE_ACCOUNT_ID warning (c41b100)
  • toolsets: stop model-supplied headers from switching tenant (c41b100)
  • tools: forward only the header arguments a served schema declares (c41b100)

Code Refactoring

  • execute every tool over MCP tools/call (c41b100)
  • rebuild the toolset on the served MCP catalog (c41b100)
  • remove AuthenticationConfig and BaseToolSetConfig (c41b100)
  • remove client-side search from the Node SDK (c41b100)
  • remove getSearchConfig() and getTools() (c41b100)
  • remove SDK-side defender configuration (c41b100)
  • remove SemanticSearchClient and its types (c41b100)
  • remove the client-side feedback tool (c41b100)
  • remove the client-side search option types (c41b100)
  • remove ToolExecution#headers (c41b100)
  • root every SDK error at StackOneError (c41b100)
  • toolsets: stop reading STACKONE_ACCOUNT_ID (c41b100)

2.10.0 (2026-07-27)

Features

  • ENG-733: support flat_prefixed MCP param style (#376) (8957a57)

2.9.2 (2026-07-07)

Bug Fixes

2.9.1 (2026-06-03)

Bug Fixes

  • tools: handle binary file downloads in tool execution (#370) (1f18d40)

2.9.0 (2026-05-14)

Features

  • ENG-130: add defender config option to StackOneToolSet (#328) (f3311b5)

2.8.1 (2026-04-27)

Bug Fixes

  • toolsets: prevent x-account-id leak across concurrent fetchTools (#367) (600b792)

2.8.0 (2026-04-20)

Features

  • examples: streamline examples, relocate tests, standardize auth, migrate to Workday (#361) (6539be3)

2.7.0 (2026-04-14)

Features

  • search-optimization: cache fetchTools results and ToolIndex across calls (#359) (91acc15)

2.6.0 (2026-04-07)

Features

  • Include available connectors in search/execute tool descriptions (#355) (9e731c2)

2.5.1 (2026-03-26)

Bug Fixes

  • search: fall back to local search when semantic results don't match MCP tools (#352) (55723cc)

2.5.0 (2026-03-25)

Features

  • search-tools: LLM-driven search and execute and new API (#325) (e06602b)

2.4.0 (2026-03-06)

Features

  • add tool search with semantic, local, and auto search modes (#322) (feefdc5)

2.3.0 (2026-01-29)

Performance Improvements

  • ci: switch to nix-quick-install-action for faster CI (#298) (6e82978)
  • ci: use nix profile install instead of nix develop (#295) (86bf01d)

Miscellaneous Chores

2.2.0 (2026-01-08)

Features

  • tool: add toClaudeAgentSdk() method for Claude Agent SDK integration [ENG-11770] (#283) (f02644b)

2.1.0 (2026-01-05)

Features

  • security: add gitleaks for secret detection (#259) (4c89e91)
  • support AI SDK v5 and v6 via unified imports [ENG-11722] (#269) (043d3b8)
  • test: add property-based testing with @fast-check/vitest (#266) (5d82f23)

Bug Fixes

2.0.9 (2025-12-16)

Bug Fixes

  • toolsets: add accountIds option to StackOneToolSetConfig (#252) (33973ed)

2.0.8 (2025-12-15)

Bug Fixes

2.0.7 (2025-12-15)

Bug Fixes

2.0.6 (2025-12-15)

Bug Fixes

2.0.5 (2025-12-15)

Bug Fixes

2.0.4 (2025-12-15)

Bug Fixes

2.0.3 (2025-12-15)

Bug Fixes

2.0.2 (2025-12-15)

Bug Fixes

  • release: give permission to create id for publishing (#234) (dd5b894)

2.0.1 (2025-12-15)

Bug Fixes

2.0.0 (2025-12-15)

⚠ BREAKING CHANGES

  • Remove unused public exports from the SDK
  • remove unified API integration and migrate to connector-based naming (#219)
  • lint: Linting rules are now significantly stricter. Code that previously passed Biome's checks may now fail with oxlint's pedantic, correctness, suspicious, performance, and style rule categories all set to error level.
  • resolve typecheck errors by upgrading to zod v4 and ai SDK 5.0.108 (#183)
  • BaseToolSetConfig.stackOneClient is now rpcClient
  • bun -> pnpm+vitest && manage deps with flake.nix (#143)
  • OpenAPI spec imports from src/openapi/ are removed
  • desp: update openai sdk to v6 and deprecate v4 (#120)
  • metaRelevantTools() renamed to metaTools() and now returns Promise

Features

  • add Anthropic Claude integration (#208) (08e7ae0)
  • add knip for unused code detection (#174) (9df963d)
  • add meta tools for dynamic tool discovery and execution (#84) (e1da427)
  • add pkg.pr.new ci (#58) (4757773)
  • add provider and action filtering to fetchTools() (#124) (71fe4a4)
  • add test coverage reporting with GitHub Pages deployment (#188) (02a572e)
  • breaking change ai sdk name and toolset config object (#14) (ad1f207)
  • build in ci (#19) (40131d0)
  • check pr title (#45) (56ce286)
  • error from tools (#31) (96e6745)
  • example: add interactive CLI demo with @clack/prompts (#203) (c5c6990)
  • examples: add TanStack AI and Claude Agent SDK integrations with E2E tests (#222) (e890de1)
  • experimental doc handling (#50) (366f3ca)
  • feedback tool (#125) (d943e60)
  • init (468ffea)
  • introduce MCP-backed dynamic tools (#114) (ef5efc1)
  • lint: configure unicorn/prefer-top-level-await rule (#218) (1254196)
  • make AI SDK and OpenAI SDK optional peer dependencies (#112) (e745640)
  • meta-tools: add hybrid BM25 + TF-IDF search strategy (#122) (46fc31a)
  • npm token (#5) (1bb9095)
  • readme ai sdk (#10) (34d39cd)
  • remove deprecated OAS-based getTools, migrate to fetchTools only (#148) (aea526e)
  • tool: add OpenAI Responses API integration (#206) (1e286cf)
  • toolsets: add multi-account support for fetchTools (#118) (926e625)
  • update oas and add planner docs (#21) (6dd4269)
  • update schema (#60) (03c9283)
  • use any openapi spec as tools (#18) (6dd7aeb)

Bug Fixes

Miscellaneous Chores

Code Refactoring

  • flatten client structure and add Zod validation to RPC client (#168) (53bce87)
  • remove unused exports and experimental features (#221) (e131433)

1.1.1 (2025-12-04)

Bug Fixes

  • remove an ambiguous keyword(saas) from package.json (#145) (0e434e3)

1.1.0 (2025-12-03)

Features

  • meta-tools: add hybrid BM25 + TF-IDF search strategy (#122) (46fc31a)

1.0.0 (2025-10-22)

⚠ BREAKING CHANGES

  • desp: update openai sdk to v6 and deprecate v4 (#120)

Features

  • add provider and action filtering to fetchTools() (#124) (71fe4a4)
  • feedback tool (#125) (d943e60)
  • introduce MCP-backed dynamic tools (#114) (ef5efc1)
  • make AI SDK and OpenAI SDK optional peer dependencies (#112) (e745640)
  • toolsets: add multi-account support for fetchTools (#118) (926e625)

Bug Fixes

Miscellaneous Chores

  • desp: update openai sdk to v6 and deprecate v4 (#120) (417ffc5)

0.3.0 (2025-08-19)

⚠ BREAKING CHANGES

  • metaRelevantTools() renamed to metaTools() and now returns Promise

Features

Bug Fixes

Miscellaneous Chores

0.2.0 (2025-06-17)

Features

0.1.0 (2025-06-11)

Features

Bug Fixes

0.0.14 (2025-04-04)

Bug Fixes

0.0.13 (2025-03-24)

Features

0.0.12 (2025-03-24)

Features

Bug Fixes

0.0.10 (2025-03-24)

Features

Bug Fixes

0.0.8 (2025-03-12)

Features

0.0.7 (2025-03-10)

Features

0.0.6 (2025-03-10)

Features

Bug Fixes

0.0.5 (2025-03-05)

Features

  • breaking change ai sdk name and toolset config object (#14) (ad1f207)

0.0.4 (2025-03-05)

Features

Bug Fixes

0.0.3 (2025-03-04)

Features

Bug Fixes

0.0.2 (2025-03-04)

Features

Bug Fixes