improvement(integrations): validate and expand devin, cursor, and greptile#4820
Conversation
…ptile - devin: fix missing org_id path segment on all session endpoints, add 7 session sub-resource tools (list messages/attachments, get/append/replace tags, archive, terminate), pagination, and is_archived output - cursor: add get_api_key_info, list_models, list_repositories tools - greptile: align block and docs - normalize array outputs to default [] and tighten types
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview Cursor adds List Models, List Repositories, and Get API Key Info (legacy + v2 tools, block dropdowns, registry, docs, landing catalog). Artifact download metadata now includes base64 Greptile updates branding to Docs ( Reviewed by Cursor Bugbot for commit a14e058. Configure here. |
Greptile SummaryThis PR fixes a critical URL construction bug in the Devin integration (missing
Confidence Score: 5/5Safe to merge — the critical 404 bug fix is correct, all new tools follow established patterns, and block/registry wiring is complete and consistent. All Devin URL paths now correctly include the No files require special attention. Important Files Changed
Sequence DiagramsequenceDiagram
participant Block as Devin/Cursor Block
participant Registry as Tool Registry
participant Tool as Tool (e.g. devin_list_sessions)
participant API as External API
Block->>Registry: "lookup tool by `devin_${operation}` or `cursor_${operation}`"
Registry-->>Block: ToolConfig
Block->>Tool: params (incl. orgId, apiKey, sessionId, ...)
Note over Tool: URL: /v3/organizations/${orgId}/sessions/${sessionId}
Tool->>API: "GET/POST/PUT/DELETE request, Authorization: Bearer {apiKey}"
API-->>Tool: "JSON response ({ items: [...], end_cursor, has_next_page, total })"
Tool->>Tool: transformResponse() - normalize arrays, map snake_case to camelCase
Tool-->>Block: "{ success: true, output: { sessions/messages/attachments, endCursor, hasNextPage } }"
Reviews (3): Last reviewed commit: "docs(integrations): regenerate tool docs..." | Re-trigger Greptile |
Collapse the redundant `?? []` + `Array.isArray` double-guard into a single Array.isArray check, per PR review feedback. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…tag inputs - Only map sessionTags into the tools tags param for append/replace operations, preventing stale sessionTags state from clobbering create_session tags - Fall back to a wired tags value when sessionTags is empty for tag operations - Normalize tag inputs (string or wired string[]) via normalizeTags so array values from other blocks no longer throw on .split Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@greptile |
|
@cursor review |
…adata The legacy CursorBlock exposes only content + metadata (no v2 file output), so metadata.data was the only way legacy-block workflows could access downloaded artifact bytes. Restore the base64 data field and document it in the outputs/type instead of dropping it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
@greptile |
|
@cursor review |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit a14e058. Configure here.
Summary
{org_id}path segment (all requests would 404). Added anorgIdparam across all tools and the block.first/after,endCursor/hasNextPage/total) andis_archivedoutput.[](notnull), added.trim()on all path IDs, tightened types, and added a NaN guard on numeric coercion.get_api_key_info,list_models, andlist_repositoriestools (registered + block wiring).Type of Change
Testing
Tested manually. Full
tsc --noEmitpasses (0 errors); biome clean.Checklist