Skip to content

Add Super Carl app package, search, and communication actions#21252

Open
mdale wants to merge 8 commits into
PipedreamHQ:masterfrom
super-carl:super-carl-components
Open

Add Super Carl app package, search, and communication actions#21252
mdale wants to merge 8 commits into
PipedreamHQ:masterfrom
super-carl:super-carl-components

Conversation

@mdale

@mdale mdale commented Jun 25, 2026

Copy link
Copy Markdown

Summary

  • Add a new Super Carl app package using API-key auth via X-API-Key.
  • Add search/read actions for network summary, people search, company search, jobs search, and posts search.
  • Add communication actions for capability checks, draft creation, sends, status lookup, cancellation, and history lookup.
  • Add shared helpers for object prop parsing, recursive payload cleanup, communication target validation, and result summaries.

Notes

  • Search actions require a Super Carl API key with the search scope.
  • Communication actions require the communications scope.
  • Send Communication defaults to Dry Run enabled; live sends require explicitly setting Dry Run to false.
  • This introduces a new app directory, so Pipedream still needs to create or approve the managed app/auth representation for super_carl before marketplace publication.
  • Private pd publish now reaches the Super Carl workspace, but is blocked until the super_carl app slug is registered: Invalid app slug(s) in configurableProps: super_carl.

Checklist

  • Component versions are set to 0.0.1 for a new app package.
  • New app integration is documented; Pipedream needs to register super_carl with API-key auth exposed as this.$auth.api_key.
  • Initial actions include read-only network/search actions plus communication draft/send/status/cancel/history actions.
  • CodeRabbit review comments have been acknowledged and addressed in the latest branch commits.
  • Package validation and lint pass locally.

Validation

  • pnpm exec eslint components/super_carl/**/*.mjs
  • node scripts/generate-package-report.js --package=super_carl --verbose
  • node --check on components/super_carl/super_carl.app.mjs, components/super_carl/common/utils.mjs, and all components/super_carl/actions/*/*.mjs files

Summary by CodeRabbit

  • New Features
    • Added Super Carl actions for searching people, companies, jobs, and posts, plus viewing network summary, checking communication capabilities, and canceling communications.
    • Added support documentation with setup, authentication, example workflows, and troubleshooting guidance.
    • Introduced the Super Carl app integration and shared response-cleanup helpers.
  • Bug Fixes
    • Improved handling of empty or missing inputs so searches and communication actions behave more reliably.
    • Added clearer result summaries for search and network-related actions.

@vercel

vercel Bot commented Jun 25, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pipedream-docs-redirect-do-not-edit Ignored Ignored Jul 2, 2026 1:01am

Request Review

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thank you so much for submitting this! We've added it to our backlog to review, and our team has been notified.

@pipedream-component-development

Copy link
Copy Markdown
Collaborator

Thanks for submitting this PR! When we review PRs, we follow the Pipedream component guidelines. If you're not familiar, here's a quick checklist:

@mdale

mdale commented Jun 26, 2026

Copy link
Copy Markdown
Author

Private development publish in the Super Carl workspace currently reaches the workspace but is blocked on app registration:

pd publish components/super_carl/actions/get-network-summary/get-network-summary.mjs --profile supercarl --connect-environment development --dev

component create api call responded with status: 400, body: {"error":"Invalid app slug(s) in configurableProps: super_carl"}

Workspace/project setup is otherwise in place for testing:

  • workspace id: o_nZIqD7L
  • project id: proj_jBs2my6

To unblock private publish and managed auth testing, Pipedream needs to register the super_carl app slug with API-key auth. The component app file expects this..api_key and sends it to Super Carl as X-API-Key.

@coderabbitai

coderabbitai Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 20d5047b-13c4-43b8-824f-87ec9c993d62

📥 Commits

Reviewing files that changed from the base of the PR and between 1aa3619 and d5648c4.

📒 Files selected for processing (2)
  • components/super_carl/actions/cancel-communication/cancel-communication.mjs
  • components/super_carl/actions/check-communication-capabilities/check-communication-capabilities.mjs

📝 Walkthrough

Walkthrough

This PR adds a new Super Carl Pipedream package, shared utilities, setup docs, and actions for network summary, search, and communication workflows.

Changes

Super Carl integration

Layer / File(s) Summary
App scaffold
components/super_carl/package.json, components/super_carl/README.md, components/super_carl/super_carl.app.mjs
Package metadata, setup guidance, app prop definitions, authenticated request helpers, and payload cleaning are added.
Shared helpers
components/super_carl/common/utils.mjs
Object parsing, empty-value detection, request cleaning, query/filter validation, and count summaries are added.
Network summary flow
components/super_carl/super_carl.app.mjs, components/super_carl/actions/get-network-summary/*
The network summary app method and action return a summary based on the returned network entries.
People and companies search
components/super_carl/super_carl.app.mjs, components/super_carl/actions/search-people/*, components/super_carl/actions/search-companies/*
People and company search methods and actions validate inputs, clean payloads, and export result summaries.
Jobs and posts search
components/super_carl/super_carl.app.mjs, components/super_carl/actions/search-jobs/*, components/super_carl/actions/search-posts/*
Jobs and posts search methods and actions validate inputs, add optional people fields, clean payloads, and export count summaries.
Communication actions
components/super_carl/actions/check-communication-capabilities/*, components/super_carl/actions/cancel-communication/*
Communication capability checks and cancel actions validate targets, clean payloads, call Super Carl methods, and export summaries.

Estimated code review effort: 4 (Complex) | ~60 minutes

Suggested reviewers: michelle0927, ashwins01, mariano-pd

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description covers summary, checklist, and validation, but it admits the new app is not yet integrated, which conflicts with the required checklist item. Update the description to confirm the app is already integrated or state the required integration request/status in the checklist before review.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly matches the main change: adding the Super Carl app package plus search and communication actions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/super_carl/actions/get-network-summary/get-network-summary.mjs`:
- Line 7: The component description in get-network-summary is too terse for
agent/workflow use and needs the full agent-friendly structure. Update the
description on the getNetworkSummary action to cover its primary purpose, when
the agent should use it, any relevant cross-tool references, parameter guidance,
and gotchas, while still ending with the required documentation link. Use the
existing getNetworkSummary symbol to locate the description string and keep the
final docs link intact.

In `@components/super_carl/actions/search-companies/search-companies.mjs`:
- Around line 40-74: The company-search prop descriptions in
searchCompaniesAction are too abstract for agent use and need inline examples.
Update the non-obvious fields in the action’s props schema—especially
resolveOnly, resultMode, and rankMode—to show concrete example values or
payloads directly in their descriptions, such as a sample domain or LinkedIn
company URL for resolveOnly and explicit enum examples for resultMode/rankMode.
Keep the descriptions focused on the expected format and usage so an agent can
choose the correct input without guessing.

In `@components/super_carl/actions/search-jobs/search-jobs.mjs`:
- Line 12: Update the description in search-jobs.mjs so it points to the jobs
search reference page instead of the docs homepage, and expand the wording to
include brief agent-facing guidance on when to use this action versus the other
Super Carl search tools. Keep the description concise, but make sure it ends
with a documentation link in the required format and reference the search-jobs
action’s description field so it is easy to locate.

In `@components/super_carl/actions/search-people/search-people.mjs`:
- Line 12: The top-level description in search-people.mjs is too terse and
should be expanded to guide agent selection and setup. Update the action
description so it covers the purpose, when to use it, the key parameter guidance
around preview versus evidenceFormat, and the gotcha that evidenceFormat only
applies when preview is disabled; keep the docs link and make the guidance
explicit in the description field for the searchPeople action.

In `@components/super_carl/actions/search-posts/search-posts.mjs`:
- Line 12: The SearchPostsAction description is too generic and links to the
docs root instead of the posts search API reference. Update the description in
search-posts.mjs to mention the specific posts search endpoint and include brief
agent-oriented usage guidance, then end it with the correct API reference link
using the required “[See the documentation](https://...)” format. Use the
SearchPostsAction component description as the unique place to update.
- Around line 41-49: The `previewLimit` field in `search-posts` is being
redefined inline instead of using the shared app-level prop definition, which
duplicates metadata that should live in the app’s `propDefinitions`. Update the
`search-posts` action to reference the shared `previewLimit` `propDefinition`
from the app (as done in `search-jobs`) and only override any posts-specific
behavior or labels that truly differ, keeping the field definition centralized.

In `@components/super_carl/common/utils.mjs`:
- Around line 26-54: The emptiness handling in isEmptyValue and cleanObject is
only shallow, so nested blank objects like { title: "" } still count as
non-empty and slip past requireQueryOrFilters. Update the helpers in utils.mjs
to recursively treat nested objects/arrays as empty only when all contained
values are empty, and ensure cleanObject prunes those nested empty fields before
building the result. Keep requireQueryOrFilters using the improved isEmptyValue
so search actions validate and clean payloads consistently.

In `@components/super_carl/super_carl.app.mjs`:
- Around line 18-24: Update the shared propDefinitions in super_carl.app.mjs to
make the agent-facing descriptions concrete and unambiguous. In the prop
descriptors for filters, delegateUserId, and the enum-based props in the same
block, add short examples and plain-language meaning for accepted values. Make
filters include a sample JSON shape, make delegateUserId explain that the ID
comes from the team-seat/user record the API key owner can delegate to, and
expand enum descriptions to spell out each allowed value and when to use it.
- Around line 110-117: The shared request helper in _makeRequest currently
concatenates the base URL into url, which breaks the app-file request pattern;
update it to pass baseURL from this._baseUrl() and keep url as path so the
existing header and option merging stays centralized. Make the change in
_makeRequest and preserve the current this._headers(headers) handling while
following the repo’s HTTP request convention.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 66041eae-4d08-45cc-a138-014ef6853ddf

📥 Commits

Reviewing files that changed from the base of the PR and between 3e23c71 and f8eeca6.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (9)
  • components/super_carl/README.md
  • components/super_carl/actions/get-network-summary/get-network-summary.mjs
  • components/super_carl/actions/search-companies/search-companies.mjs
  • components/super_carl/actions/search-jobs/search-jobs.mjs
  • components/super_carl/actions/search-people/search-people.mjs
  • components/super_carl/actions/search-posts/search-posts.mjs
  • components/super_carl/common/utils.mjs
  • components/super_carl/package.json
  • components/super_carl/super_carl.app.mjs

Comment thread components/super_carl/actions/get-network-summary/get-network-summary.mjs Outdated
Comment thread components/super_carl/actions/search-companies/search-companies.mjs
Comment thread components/super_carl/actions/search-jobs/search-jobs.mjs Outdated
Comment thread components/super_carl/actions/search-people/search-people.mjs Outdated
export default {
key: "super_carl-search-posts",
name: "Search Posts",
description: "Search posts, comments, likes, reactions, company mentions, and public activity signals. [See the documentation](https://supercarl.ai/docs)",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Use the posts search API doc here, not the generic docs root.

Like the jobs action, Line 12 points at the homepage rather than the relevant reference page and leaves out the short agent-oriented usage guidance the component guidelines call for. Please make this description specific to the posts search endpoint.

As per coding guidelines, "Component descriptions must end with a documentation link formatted as [See the documentation](https://...) pointing to the relevant API reference page."

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@components/super_carl/actions/search-posts/search-posts.mjs` at line 12, The
SearchPostsAction description is too generic and links to the docs root instead
of the posts search API reference. Update the description in search-posts.mjs to
mention the specific posts search endpoint and include brief agent-oriented
usage guidance, then end it with the correct API reference link using the
required “[See the documentation](https://...)” format. Use the
SearchPostsAction component description as the unique place to update.

Sources: Coding guidelines, Path instructions

Comment thread components/super_carl/actions/search-posts/search-posts.mjs
Comment thread components/super_carl/common/utils.mjs
Comment thread components/super_carl/super_carl.app.mjs Outdated
Comment thread components/super_carl/super_carl.app.mjs
@vetrivigneshwaran

Copy link
Copy Markdown
Contributor

@mdale - Can you kindly address the comment give my coderabbit

Comment thread components/super_carl/actions/get-network-summary/get-network-summary.mjs Outdated

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/super_carl/actions/get-network-summary/get-network-summary.mjs`:
- Line 7: The cross-reference text in the action description uses generic
downstream labels instead of the actual bold tool names. Update the description
in get-network-summary.mjs to either reference the real action names exposed
under components/super_carl/actions/** using bold formatting, or remove the
cross-reference entirely if no exact matching actions exist; also replace the
non-matching “warm-intro searches” wording with the correct tool name if one
exists.

In `@components/super_carl/actions/search-jobs/search-jobs.mjs`:
- Line 12: The cross-reference in the search-jobs tool description uses plain
text instead of the required tool-reference style. Update the description in
search-jobs.mjs so the mention of Search People is bolded as **Search People**,
keeping the rest of the wording unchanged and matching the app’s tool naming
convention.

In `@components/super_carl/actions/search-people/search-people.mjs`:
- Line 12: The description text in search-people.mjs needs the cross-tool
reference format corrected. Update the mention of Search Companies in the
description to use the exact tool name wrapped in bold, matching the
agent-facing cross-tool reference rule, and keep the rest of the guidance
unchanged.

In `@components/super_carl/actions/search-posts/search-posts.mjs`:
- Line 12: The tool description in search-posts.mjs needs to format the
cross-tool reference consistently with the agent-facing tool naming rule. Update
the description in the SearchPosts component so the reference to Search People
is bolded as the exact tool name used elsewhere in the app, matching the
existing pattern for tool cross-references and keeping the rest of the
description unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a24309cf-615d-4913-8a66-ca442425849f

📥 Commits

Reviewing files that changed from the base of the PR and between f8eeca6 and 16e028c.

📒 Files selected for processing (7)
  • components/super_carl/actions/get-network-summary/get-network-summary.mjs
  • components/super_carl/actions/search-companies/search-companies.mjs
  • components/super_carl/actions/search-jobs/search-jobs.mjs
  • components/super_carl/actions/search-people/search-people.mjs
  • components/super_carl/actions/search-posts/search-posts.mjs
  • components/super_carl/common/utils.mjs
  • components/super_carl/super_carl.app.mjs

Comment thread components/super_carl/actions/get-network-summary/get-network-summary.mjs Outdated
Comment thread components/super_carl/actions/search-jobs/search-jobs.mjs Outdated
Comment thread components/super_carl/actions/search-people/search-people.mjs Outdated
Comment thread components/super_carl/actions/search-posts/search-posts.mjs Outdated
@mdale

mdale commented Jun 26, 2026

Copy link
Copy Markdown
Author

@vetrivigneshwaran / Pipedream team: could you confirm the next step for completing the managed app provisioning for this PR?

The component code references the new app slug super_carl, and private publish in our Super Carl workspace is still blocked until that app/auth representation exists:

pd publish components/super_carl/actions/get-network-summary/get-network-summary.mjs --profile supercarl --connect-environment development --dev

Current response:

{"error":"Invalid app slug(s) in configurableProps: super_carl"}

Requested app auth shape:

  • app slug: super_carl
  • auth type: API key
  • component auth field: this.$auth.api_key
  • request header sent to Super Carl: X-API-Key

Can you confirm whether super_carl app slug provisioning happens automatically as part of PR merge/release, or whether there is a separate setup step you need from us before this PR can be fully tested and published? The Super Carl Pipedream workspace/project is already set up for testing.

@mdale mdale changed the title Add Super Carl components Add Super Carl app package and read-only actions Jun 30, 2026
@mdale

mdale commented Jun 30, 2026

Copy link
Copy Markdown
Author

@vetrivigneshwaran / Pipedream team: we have addressed the latest CodeRabbit review items and updated the title/PR body. CodeRabbit is rerunning on commit 03581ba9c3.

Could you also queue or confirm the Super Carl app representation/provisioning in Pipedream’s SaaS/app directory set so the component can be tested and published end-to-end?

Requested app representation:

  • Display name: Super Carl
  • App slug: super_carl
  • Website: https://supercarl.ai
  • Docs: https://supercarl.ai/docs
  • Auth type: API key
  • Component auth field: this.$auth.api_key
  • API header: X-API-Key
  • Initial actions: read-only network summary plus people, company, jobs, and posts search

Current provisioning blocker remains:

{"error":"Invalid app slug(s) in configurableProps: super_carl"}

That error occurs when running:

pd publish components/super_carl/actions/get-network-summary/get-network-summary.mjs --profile supercarl --connect-environment development --dev

Please let us know if you need logo assets, app category metadata, or any additional SaaS listing fields from Super Carl to provision the app representation.

@mdale

mdale commented Jun 30, 2026

Copy link
Copy Markdown
Author

@vetrivigneshwaran quick ping: CodeRabbit is now green on the latest branch head, and we addressed the requested review items. When you have a chance, could you re-review / clear the stale changes-requested state?

The only remaining external blocker we see is app provisioning for the new super_carl slug, called out above. Happy to provide logo/category/listing metadata if that helps route the app setup.

@mdale mdale changed the title Add Super Carl app package and read-only actions Add Super Carl app package, search, and communication actions Jun 30, 2026
@mdale

mdale commented Jun 30, 2026

Copy link
Copy Markdown
Author

Update for reviewers: this PR now includes Super Carl communication actions in addition to the search/read actions.

Added actions:

  • Check Communication Capabilities
  • Create Communication Draft
  • Send Communication
  • Get Communication
  • Cancel Communication
  • Get Communication History

Safety/scope notes: Send Communication defaults to Dry Run enabled, and live sends require explicitly setting Dry Run to false. Communication actions require a Super Carl API key with the communications scope. Local lint, package validation, and syntax checks pass on the updated package.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@components/super_carl/actions/cancel-communication/cancel-communication.mjs`:
- Line 7: The description in cancelCommunication references a nonexistent action
via the bolded “Send Communication” text, so update the text to remove or
replace that cross-tool reference with a valid existing action name from the
super_carl package. Make the wording in the cancel-communication action
description self-contained and ensure any bolded tool name matches a real
action, similar to the fix needed in the sibling capabilities-check description.

In
`@components/super_carl/actions/check-communication-capabilities/check-communication-capabilities.mjs`:
- Line 10: The action description in check-communication-capabilities.mjs
references bolded tool names that do not exist in the current super_carl action
set, so update the description to remove or replace those cross-references with
only real action names. Keep the guidance focused on available actions by
matching the actual name values exposed in this app’s actions directory, and
ensure any bolded tool references correspond to existing tools such as
check-communication-capabilities or cancel-communication.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 80c5b1b4-e2eb-4792-a516-334ef9c35948

📥 Commits

Reviewing files that changed from the base of the PR and between 03581ba and 1aa3619.

📒 Files selected for processing (3)
  • components/super_carl/README.md
  • components/super_carl/actions/cancel-communication/cancel-communication.mjs
  • components/super_carl/actions/check-communication-capabilities/check-communication-capabilities.mjs

Comment thread components/super_carl/actions/cancel-communication/cancel-communication.mjs Outdated
@vetrivigneshwaran

Copy link
Copy Markdown
Contributor

@mdale - As supercarl doesn't have base integration with pipedream. kindly raise a request using below ticket.
https://github.com/PipedreamHQ/pipedream/issues/new?template=app---service-integration.md

cc: @sergio-eliot-rodriguez @s0s0physm

@mdale mdale mentioned this pull request Jul 2, 2026
@mdale

mdale commented Jul 2, 2026

Copy link
Copy Markdown
Author

Opened the requested base app / service integration issue for Super Carl here: #21309

It references this PR and includes the requested app slug/auth details (super_carl, API key auth, this.$auth.api_key, X-API-Key) plus the initial search and communication action set. This should give the Pipedream team the tracking issue needed to provision the base app representation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

User submitted Submitted by a user

Projects

Status: Ready for PR Review

Development

Successfully merging this pull request may close these issues.

5 participants