feat: add structured data and API interaction tools - #870
Open
avoidwork wants to merge 6 commits into
Open
Conversation
…nd tasks for REST API, GraphQL, JSON, YAML, data transformation, and webhook management tools
Add REST API client, GraphQL client, webhook management, JSON/YAML manipulation, and data transformation tools with full test coverage. - src/tools/api.js: REST API client with auth, URL filtering, timeouts - src/tools/graphql.js: GraphQL client with depth/complexity limits - src/tools/webhook.js: Webhook CRUD and HMAC verification - src/tools/json.js: JSON parse, serialize, transform, filter, access - src/tools/yaml.js: YAML parse, serialize, transform, filter, access - src/tools/data.js: JSON/YAML/CSV format conversion - src/sandbox/urlFilter.js: URL allowlist with test mode support - tests/unit/*.test.js: Unit tests for all new tools - tests/integration/*.test.js: Integration tests with mock servers - src/tools/index.js: Tool registration with permission gating
Move completed OpenSpec artifacts to archive with date prefix. Mark all tasks as complete in tasks.md.
- proposal.md: motivation, capabilities, impact - design.md: architecture, decisions, risks - tasks.md: 50 implementation tasks across 10 groups - specs/api/spec.md: REST + GraphQL requirements - specs/webhook/spec.md: webhook management requirements - specs/json/spec.md: JSON manipulation requirements - specs/yaml/spec.md: YAML manipulation requirements - specs/data-transform/spec.md: cross-format transformation requirements
- 75/75 tasks complete - All 6 tools implemented (api, graphql, json, yaml, webhook, data) - 1645 lines of implementation code - Tests exist for api, graphql, json, data tools
- openspec/specs/api/spec.md: REST + GraphQL requirements - openspec/specs/data-transform/spec.md: cross-format transformation - openspec/specs/json/spec.md: JSON manipulation - openspec/specs/webhook/spec.md: webhook management - openspec/specs/yaml/spec.md: YAML manipulation
Owner
Author
Audit Results — Issue #788Goal Fulfillment (7/7 complete)Goal 1: REST API Client Tool ✅
Goal 2: GraphQL Client Tool ✅
Goal 3: Webhook Management Tool ✅
Goal 4: JSON Manipulation Tool ✅
Goal 5: YAML Manipulation Tool ✅
Goal 6: Data Transformation Tool ✅
Goal 7: Integration with Existing Patterns ✅
Spec ComplianceAll 5 spec files (api, json, yaml, webhook, data-transform) are satisfied by the implementation. Each requirement has corresponding test coverage. Task Completion75/75 tasks complete. All tasks in tasks.md marked [x]. Quality Check
SummaryAll 7 goals fulfilled. Implementation is complete, well-structured, and follows project conventions. 43 files changed, +4037 lines, -14 lines. |
avoidwork
enabled auto-merge (squash)
August 25, 2026 14:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add six new tools for structured data and API interaction: REST API client, GraphQL client, webhook management, JSON manipulation, YAML manipulation, and cross-format data transformation.
Type of Change
Testing
Coverage
Checklist
npm run lintpassesFiles Changed (43 files, +4037 lines)
New Tools (src/tools/)
api.js— REST API client with auth (Bearer, Basic, API Key), URL allowlist, timeout, response sanitizationgraphql.js— GraphQL client with query/mutation/introspection, depth/complexity limitsjson.js— JSON manipulation with parse/transform/filter/serialize, JSONPath accessyaml.js— YAML manipulation with parse/transform/filter/serialize, path-based accesswebhook.js— Webhook management with create/list/delete, HMAC-SHA256 verification, rate limitingdata.js— Cross-format data transformation (JSON ↔ YAML ↔ CSV) with mapping rulesRegistration
index.js— Tool registration with permissions and sub-agent mappingTests
tests/unit/api.test.js— URL validation, auth, method teststests/unit/graphql.test.js— Query/mutation/introspection teststests/unit/json.test.js— Parse/transform/filter/serialize teststests/unit/yaml.test.js— Parse/transform/filter/serialize teststests/unit/data.test.js— Format conversion teststests/unit/webhook.test.js— HMAC verification, CRUD teststests/integration/api.test.js— Integration teststests/integration/webhook.test.js— Integration teststests/unit/tool_index.test.js— Updated for new toolsDependencies
package.json— Added node-fetch, graphql-request, jsonpath-plus, js-yaml, csv-parse, csv-generatepackage-lock.json— UpdatedSecurity
src/sandbox/urlFilter.js— Enhanced URL validation with internal IP blockingOpenSpec
openspec/changes/structured-data-api-tools/— Proposal, design, tasks, specsopenspec/specs/— Delta specs for api, json, yaml, webhook, data-transformCloses #788