Skip to content

feat: add a validated Xquik search toolset#986

Open
kriptoburak wants to merge 1 commit into
crestalnetwork:mainfrom
kriptoburak:codex/add-xquik-toolset
Open

feat: add a validated Xquik search toolset#986
kriptoburak wants to merge 1 commit into
crestalnetwork:mainfrom
kriptoburak:codex/add-xquik-toolset

Conversation

@kriptoburak

@kriptoburak kriptoburak commented Jun 18, 2026

Copy link
Copy Markdown

Description

Adds a native Xquik toolset for IntentKit agents. xquik_search_tweets calls the public GET /api/v1/x/tweets/search route with XQUIK_API_KEY and returns typed tweet and pagination data.

The repair also:

  • Documents XQUIK_API_KEY in .env.example.
  • Rejects empty queries and malformed success responses before agents receive partial data.
  • Converts HTTP and JSON failures into stable ToolException messages.
  • Adds the required independence and trademark disclosure to the toolset UI schema.
  • Keeps this separate from IntentKit's linked-account Twitter actions and OAuth behavior.

Independent repository fixes

  • Removed the obsolete mcp_coingecko exemption from the shared toolset entrypoint test. That generated MCP module now exposes get_tools, so it receives the same regression coverage as every other toolset.
  • Made the OpenRouter origin-provider tests hermetic by supplying their test API key explicitly.
  • Corrected the cached-price helper annotation so the complete BasedPyright gate passes.

Type of Change

  • Bugfix
  • New Feature
  • Improvement
  • Documentation Update

Validation

  • ./lint.sh ci
  • uv run pytest -m 'not bdd' -q: 1,246 passed, 1 skipped, 103 deselected
  • uv run pytest tests/models/test_llm_cost.py tests/core/test_origin_provider.py tests/tools/test_xquik.py -q: 23 passed
  • Xquik OpenAPI 3.1 contract verified for route, query parameters, response fields, pagination, and x-api-key authentication.
  • Unauthenticated live endpoint behavior verified without exposing credentials.
  • git diff --check

Xquik is an independent third-party service. Not affiliated with X Corp. "Twitter" and "X" are trademarks of X Corp.

Related Issue

N/A

@kriptoburak kriptoburak changed the title feat: add Xquik toolset feat: add a validated Xquik search toolset Jul 18, 2026
@kriptoburak

kriptoburak commented Jul 18, 2026

Copy link
Copy Markdown
Author

Repaired and fully revalidated this PR in signed commit 504facb9.

The Xquik tool documents its required environment key, validates the complete public response contract, rejects empty input, and reports HTTP or malformed JSON failures as stable tool errors. The exact independence disclosure is present in the UI schema.

I also fixed 3 independent repository issues in the same commit: restored smoke coverage for the generated CoinGecko MCP toolset, made 2 OpenRouter tests independent of local credentials, and corrected a cached-price test helper annotation that blocked the full type gate.

Validation on the signed public tree is green: ./lint.sh ci passes and the focused toolset, model, and origin-provider suite reports 130 passed. The same complete non-BDD tree previously reported 1,246 passed, 1 skipped, and 103 deselected. There are no maintainer comments, review requests, unresolved review threads, or contributor-side code failures.

@kriptoburak

kriptoburak commented Jul 18, 2026

Copy link
Copy Markdown
Author

GitHub created the Lint workflow run for signed head 504facb9, but marked it action_required with 0 jobs because this fork's workflow needs maintainer approval: https://github.com/crestalnetwork/intentkit/actions/runs/29702694955

This is an external approval gate, not a code failure. The full lint contract and 130 focused tests pass on the exact public head. No contributor-side repair is outstanding.

@kriptoburak
kriptoburak force-pushed the codex/add-xquik-toolset branch from a77f25c to 504facb Compare July 19, 2026 20:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant