Add Reevo API module (@friggframework/api-module-reevo) - #97
Merged
Conversation
Reevo is an AI-native Revenue OS whose public API is an x-api-key authenticated REST surface at https://api.reevo.ai/api/v1/public. Adds packages/v1-ready/reevo built on ApiKeyRequester: - Accounts (create/update/get/search) + combined account_contact upsert - Contacts (get/search) - Opportunities (create/update/get/search + shift_stage) - Tasks and manual activities (call / meeting-intelligence logging) - Users/mailboxes search, sequence enrollments, account+contact retrieval Auth uses the x-api-key header via ApiKeyRequester.addAuthHeaders; the entity/credential externalId is a sha256 fingerprint of the key. Offline jest suites cover the API surface and auth wiring (21 tests, no live key). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
Reevo does not publish an OpenAPI document, so reevo.openapi.yaml authored from their help-docs is the machine-readable source of truth. Covers all 18 public operations (accounts, contacts, opportunities, tasks, manual activities, users/mailboxes, sequence enrollments, retrieval) with request schemas, x-api-key security, and reusable components. The api.js client mirrors the spec 1:1 (one method per operationId); a new spec-sync test asserts they cannot drift (24 tests total). Follows the prior art in the library for spec-driven modules (Marketo's captured spec + openapi-client-axios; frigg-scale-test's mock-CRM yaml). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
publishConfig.access is public and the package is a v1-ready workspace member, so it will publish via the repo's lerna/auto release flow. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
The Release workflow's `npm ci` failed with EUSAGE because package-lock.json was out of sync with package.json — the new reevo workspace package (and a batch of pre-existing transitive drift on next: express, aws-sdk, opentelemetry, etc.) were missing from the lock file. Regenerated the lock file with `npm install` so `npm ci` resolves cleanly. Also added @aws-sdk/client-scheduler as a reevo devDependency: @friggframework/ core@2.0.0-next.107 requires it at load time (eventbridge-scheduler-adapter) but does not declare it, so reevo's jest suite could not resolve core. With it installed the package's 24 tests pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
Contributor
Author
seanspeaks
added a commit
that referenced
this pull request
Aug 20, 2026
Node 20 reached end-of-life on 2026-04-30, and `.node-version` was pinned to the long-stale 16.15.0 while the release workflow ran Node 18. Bump both to the current Active LTS line (Node 24; 22 is in maintenance, 26 is Current-not-yet-LTS): - `.node-version`: 16.15.0 → 24 - `.github/workflows/release.yml`: setup-node 18 → 24 `engines.node` in package.json is already `>=18`, which permits 24, so it's left unchanged. Scope is CI-Node-only: the lockfile-sync that originally rode along in this PR is dropped — `next`'s lockfile was already regenerated by the #97/#99 merges, so re-applying the old copy would regress it. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JDh45c1vm91ySYtvVv9Z65
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.
What
Adds
@friggframework/api-module-reevo— a Frigg API module for Reevo, the AI-native Revenue OS (CRM). Branched fromnext(Frigg 2.0).Reevo's public API is a small, API-key-authenticated REST surface (
x-api-keyheader, basehttps://api.reevo.ai/api/v1/public). The module is built onApiKeyRequesterand covers the full documented public surface:account_contactupsertshift_stagemanual_activities(call / meeting-intelligence logging)Auth uses the
x-api-keyheader viaApiKeyRequester.addAuthHeaders(api_key_name = 'x-api-key'); the entity/credentialexternalIdis a sha256 fingerprint of the key (Reevo returns no workspace id at auth time).Canonical OpenAPI spec
Reevo does not publish an OpenAPI document, so
reevo.openapi.yaml(authored from their help-docs reference) ships as the canonical machine-readable contract. Theapi.jsclient mirrors it 1:1 — one method peroperationId— and a spec-sync test asserts they can't drift. Follows the library's prior art for spec-driven modules (Marketo's captured spec +openapi-client-axios).Tests
Offline
jestsuites — API surface, auth/definition wiring, and spec↔client sync. 24 tests, all passing against@friggframework/core@2.0.0-next.107(no live key needed).Publish
privateunset,publishConfig.access: public, workspace member underpackages/v1-ready/*— publishable via the repo's lerna/auto release flow.Files
🤖 Generated with Claude Code
Generated by Claude Code
Version
Published prerelease version:
@friggframework/api-module-reevo@1.0.1-next.0Changelog
🐛 Bug Fix
@friggframework/api-module-reevo@friggframework/api-module-microsoft-teams,@friggframework/api-module-slack,@friggframework/api-module-42matters,@friggframework/api-module-asana,@friggframework/api-module-attio,@friggframework/api-module-clio,@friggframework/api-module-connectwise,@friggframework/api-module-contentful,@friggframework/api-module-contentstack,@friggframework/api-module-crossbeam,@friggframework/api-module-deel,@friggframework/api-module-frigg-scale-test,@friggframework/api-module-frontify,@friggframework/api-module-google-calendar,@friggframework/api-module-google-drive,@friggframework/api-module-helpscout,@friggframework/api-module-hubspot,@friggframework/api-module-ironclad,@friggframework/api-module-linear,@friggframework/api-module-pipedrive,@friggframework/api-module-salesforce,@friggframework/api-module-stripe,@friggframework/api-module-unbabel-projects,@friggframework/api-module-unbabel,@friggframework/api-module-zoho-crm,@friggframework/api-module-zoomAuthors: 2