Skip to content

Conversation

michelle0927
Copy link
Collaborator

@michelle0927 michelle0927 commented Sep 30, 2025

Resolves #17477

Summary by CodeRabbit

  • New Features

    • Chat with Assistant: send messages to an AI assistant and receive responses.
    • Search Documentation: perform semantic/keyword searches with optional version, language, and page size filters.
    • Trigger Update: initiate project updates directly from the app.
    • Configurable Mintlify domain: set a custom domain for integrations.
  • Chores

    • Bumped package to 0.1.0 and added dependencies for HTTP requests and UUID generation.

Copy link

vercel bot commented Sep 30, 2025

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

2 Skipped Deployments
Project Deployment Preview Comments Updated (UTC)
pipedream-docs Ignored Ignored Oct 2, 2025 3:01pm
pipedream-docs-redirect-do-not-edit Ignored Ignored Oct 2, 2025 3:01pm

Copy link
Contributor

coderabbitai bot commented Sep 30, 2025

Walkthrough

Adds three Mintlify actions (chat-with-assistant, search-documentation, trigger-update), expands the Mintlify app with a public domain prop and HTTP helper methods (_baseUrl, _makeRequest, triggerUpdate, searchDocumentation, chatWithAssistant), removes authKeys, and updates package.json (version bump, new deps).

Changes

Cohort / File(s) Summary of changes
Mintlify actions: chat/search/update
components/mintlify/actions/chat-with-assistant/chat-with-assistant.mjs, components/mintlify/actions/search-documentation/search-documentation.mjs, components/mintlify/actions/trigger-update/trigger-update.mjs
Added three action modules. Each exports a default action object with metadata, annotations, props (including mintlify and action-specific inputs), and an async run({ $ }) that calls the corresponding app method (chatWithAssistant, searchDocumentation, triggerUpdate), exports a $summary, and returns the API response.
Mintlify app core
components/mintlify/mintlify.app.mjs
Added domain to propDefinitions; imported axios from @pipedream/platform; introduced _baseUrl() and _makeRequest({ path, ... }) HTTP helpers; added triggerUpdate, searchDocumentation, and chatWithAssistant methods which call Mintlify endpoints using admin_api_key/assistant_api_key; removed authKeys().
Package metadata
components/mintlify/package.json
Bumped package version to 0.1.0; added dependencies @pipedream/platform (^3.1.0) and uuid (^13.0.0); updated JSON formatting.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant U as User
  participant A as Action (Trigger Update)
  participant App as mintlify.app
  participant HTTP as HTTP Client
  participant API as Mintlify API

  U->>A: provide `projectId` / $ context
  A->>App: triggerUpdate({ projectId, $ })
  App->>HTTP: POST /admin/projects/{projectId}/update (admin_api_key)
  HTTP->>API: Request
  API-->>HTTP: Response
  HTTP-->>App: Result
  App-->>A: Result
  A-->>U: $summary "Update triggered"
Loading
sequenceDiagram
  autonumber
  participant U as User
  participant A as Action (Search Documentation)
  participant App as mintlify.app
  participant HTTP as HTTP Client
  participant API as Mintlify API

  U->>A: query, pageSize, version?, language?
  A->>App: searchDocumentation({ domain, data })
  App->>HTTP: POST /assistant/{domain}/search (assistant_api_key)
  HTTP->>API: { query, pageSize, filter? }
  API-->>HTTP: Results[]
  HTTP-->>App: Results[]
  App-->>A: Results[]
  A-->>U: $summary "Found N results"
  rect rgba(230,245,255,0.4)
    note right of A: filter built if version or language provided
  end
Loading
sequenceDiagram
  autonumber
  participant U as User
  participant A as Action (Chat with Assistant)
  participant App as mintlify.app
  participant HTTP as HTTP Client
  participant API as Mintlify API

  U->>A: message, fp, domain
  A->>App: chatWithAssistant({ domain, data })
  App->>HTTP: POST /assistant/{domain}/message (assistant_api_key)
  HTTP->>API: { fp, messages:[{ id, role:"user", content, parts:[{type:"text", text}] }] }
  API-->>HTTP: Assistant response
  HTTP-->>App: Response
  App-->>A: Response
  A-->>U: $summary with response.id
  note right of A: message `id` generated with `uuidv4`
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Poem

I thump my paws and tap the keys,
Three pathways opened with a breeze.
I chat, I search, I nudge the build,
Tiny hops, the docs are thrilled.
Nose twitch, tail high—deploy with ease! 🐇✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description Check ⚠️ Warning The pull request description only contains “Resolves #17477” and does not follow the repository’s description template, leaving out the required WHY section and contextual details. Please complete the description template by adding a WHY section that explains the motivation, context, and summary of the new Mintlify integration components.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The title “Mintlify - new components” succinctly indicates that new Mintlify integration components are being added, which aligns with the main change in the pull request. It is clear and directly related to the content of the PR.
Linked Issues Check ✅ Passed The changes introduce all three Mintlify actions (trigger-update, search-documentation, chat-with-assistant), update the app module with HTTP utilities and domain prop, and align fully with the objectives of issue #17477.
Out of Scope Changes Check ✅ Passed All modifications—including new action modules, updates to mintlify.app.mjs, and package.json dependency additions—directly support the Mintlify API integration objectives with no unrelated or extraneous changes.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch issue-17477

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 476dd50 and 6abe53d.

📒 Files selected for processing (2)
  • components/mintlify/actions/trigger-update/trigger-update.mjs (1 hunks)
  • components/mintlify/mintlify.app.mjs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • components/mintlify/actions/trigger-update/trigger-update.mjs
  • components/mintlify/mintlify.app.mjs
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: Lint Code Base
  • GitHub Check: Publish TypeScript components
  • GitHub Check: pnpm publish
  • GitHub Check: Verify TypeScript components

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 and usage tips.

lcaresia
lcaresia previously approved these changes Oct 1, 2025
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
components/mintlify/actions/search-documentation/search-documentation.mjs (1)

53-58: Simplify filter construction to avoid undefined values.

The current logic includes both version and language in the filter object even when only one is provided, which sends undefined values to the API. Consider constructing the filter more precisely.

Apply this diff to only include defined filter fields:

-        filter: this.version || this.language
-          ? {
-            version: this.version,
-            language: this.language,
-          }
-          : undefined,
+        filter: this.version || this.language
+          ? {
+            ...(this.version && { version: this.version }),
+            ...(this.language && { language: this.language }),
+          }
+          : undefined,
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c51ec5e and 476dd50.

📒 Files selected for processing (3)
  • components/mintlify/actions/chat-with-assistant/chat-with-assistant.mjs (1 hunks)
  • components/mintlify/actions/search-documentation/search-documentation.mjs (1 hunks)
  • components/mintlify/actions/trigger-update/trigger-update.mjs (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • components/mintlify/actions/trigger-update/trigger-update.mjs
🧰 Additional context used
🧬 Code graph analysis (2)
components/mintlify/actions/search-documentation/search-documentation.mjs (2)
components/mintlify/actions/chat-with-assistant/chat-with-assistant.mjs (1)
  • response (35-54)
components/mintlify/actions/trigger-update/trigger-update.mjs (1)
  • response (23-26)
components/mintlify/actions/chat-with-assistant/chat-with-assistant.mjs (2)
components/mintlify/actions/search-documentation/search-documentation.mjs (1)
  • response (47-60)
components/mintlify/actions/trigger-update/trigger-update.mjs (1)
  • response (23-26)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
  • GitHub Check: pnpm publish
  • GitHub Check: Verify TypeScript components
  • GitHub Check: Publish TypeScript components
  • GitHub Check: Lint Code Base
🔇 Additional comments (8)
components/mintlify/actions/chat-with-assistant/chat-with-assistant.mjs (4)

1-2: LGTM! Import pattern follows ESM best practices.

The named import syntax for uuid v4 is correct and aligns with the recommended ESM pattern for the uuid package.


4-14: LGTM! Metadata and annotations are appropriate.

The action metadata correctly reflects the read-only nature of the chat operation with appropriate hints for the platform.


15-33: LGTM! Props are well-defined.

The props include appropriate metadata with clear labels and descriptions. All required fields are correctly specified.


38-54: Message structure aligns with Mintlify API spec. No changes needed.

components/mintlify/actions/search-documentation/search-documentation.mjs (4)

1-1: LGTM!

Import is clean and correct.


3-13: LGTM! Metadata and annotations are appropriate.

The action metadata correctly reflects the read-only search operation with appropriate hints.


14-45: LGTM! Props are well-structured.

The props include a good mix of required and optional parameters with clear labels and helpful descriptions.


62-62: No action needed — response is always an array. The Mintlify API’s “Search documentation” endpoint returns a JSON array (even if empty), so response.length will always be defined.

@michelle0927
Copy link
Collaborator Author

/approve

@michelle0927 michelle0927 requested a review from lcaresia October 3, 2025 14:27
@michelle0927 michelle0927 merged commit d62e552 into master Oct 3, 2025
10 checks passed
@michelle0927 michelle0927 deleted the issue-17477 branch October 3, 2025 14:51
verhovsky added a commit to verhovsky/pipedream that referenced this pull request Oct 6, 2025
* upstream/master:
  Adding app scaffolding for stackby
  Airtop new components (PipedreamHQ#18637)
  Sinch - new components (PipedreamHQ#18635)
  Mintlify - new components (PipedreamHQ#18519)
  Linear App - updates and new components (PipedreamHQ#18606)
  Merging pull request PipedreamHQ#18622
  Adding app scaffolding for airtop
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.

[Components] Mintlify
2 participants