Skip to content

Conversation

@icecrasher321
Copy link
Collaborator

Summary

Nested props should show up in block configs.

Type of Change

  • Other: Context Improvement

Testing

Tested manually

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel
Copy link

vercel bot commented Jan 22, 2026

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

1 Skipped Deployment
Project Deployment Review Updated (UTC)
docs Skipped Skipped Jan 22, 2026 3:27am

Request Review

@greptile-apps
Copy link
Contributor

greptile-apps bot commented Jan 22, 2026

Greptile Summary

Refactored output schema extraction to include nested properties and array item types in block configurations.

  • Created new extractOutputField helper function that recursively processes output field definitions
  • Updated OutputFieldSchema interface to include properties (for nested objects) and items (for arrays)
  • Replaced inline output field extraction logic in extractTriggerOutputs and extractOutputs with calls to the new helper
  • Enables the copilot to receive complete type information for complex output structures like metadata.title, metadata.assignees[], etc.

The refactoring consolidates duplicate code across three locations into a single reusable function that properly handles nested object properties and array item schemas.

Confidence Score: 5/5

  • Safe to merge with no risk - clean refactoring with improved type support
  • The change is a straightforward refactoring that consolidates duplicate code into a well-structured helper function. The logic correctly handles string types, object types with nested properties (recursively), and array types with item schemas. No breaking changes to existing functionality.
  • No files require special attention

Important Files Changed

Filename Overview
apps/sim/lib/copilot/tools/server/blocks/get-block-config.ts Refactored output extraction to support nested properties and array items through new extractOutputField helper function

Sequence Diagram

sequenceDiagram
    participant Copilot
    participant getBlockConfig
    participant extractOutputs
    participant extractOutputField
    participant toolsRegistry/triggers

    Copilot->>getBlockConfig: execute(blockType, operation, trigger)
    getBlockConfig->>extractOutputs: Get output schema
    
    alt Trigger Mode
        extractOutputs->>extractOutputs: extractTriggerOutputs()
        extractOutputs->>triggers: getTrigger(triggerId)
        triggers-->>extractOutputs: trigger.outputs
    else Operation Specific
        extractOutputs->>toolsRegistry: Get tool by operation
        toolsRegistry-->>extractOutputs: tool.outputs
    else Block Level
        extractOutputs->>extractOutputs: Use blockConfig.outputs
    end
    
    loop For each output field
        extractOutputs->>extractOutputField: Process output definition
        
        alt String type
            extractOutputField-->>extractOutputs: {type: def}
        else Object with properties
            extractOutputField->>extractOutputField: Recursively process properties
            extractOutputField-->>extractOutputs: {type, description, properties}
        else Object with items
            extractOutputField-->>extractOutputs: {type, description, items}
        end
    end
    
    extractOutputs-->>getBlockConfig: Complete outputs schema
    getBlockConfig-->>Copilot: Block config with nested outputs
Loading

@icecrasher321 icecrasher321 merged commit 42159c2 into staging Jan 22, 2026
12 checks passed
waleedlatif1 added a commit that referenced this pull request Jan 22, 2026
* fix(zustand): updated to useShallow from deprecated createWithEqualityFn (#2919)

* fix(logger): use direct env access for webpack inlining (#2920)

* fix(notifications): text overflow with line-clamp (#2921)

* chore(helm): add env vars for Vertex AI, orgs, and telemetry (#2922)

* fix(auth): improve reset password flow and consolidate brand detection (#2924)

* fix(auth): improve reset password flow and consolidate brand detection

* fix(auth): set errorHandled for EMAIL_NOT_VERIFIED to prevent duplicate error

* fix(auth): clear success message on login errors

* chore(auth): fix import order per lint

* fix(action-bar): duplicate subflows with children (#2923)

* fix(action-bar): duplicate subflows with children

* fix(action-bar): add validateTriggerPaste for subflow duplicate

* fix(resolver): agent response format, input formats, root level (#2925)

* fix(resolvers): agent response format, input formats, root level

* fix response block initial seeding

* fix tests

* fix(messages-input): fix cursor alignment and auto-resize with overlay (#2926)

* fix(messages-input): fix cursor alignment and auto-resize with overlay

* fixed remaining zustand warnings

* fix(stores): remove dead code causing log spam on startup (#2927)

* fix(stores): remove dead code causing log spam on startup

* fix(stores): replace custom tools zustand store with react query cache

* improvement(ui): use BrandedButton and BrandedLink components (#2930)

- Refactor auth forms to use BrandedButton component
- Add BrandedLink component for changelog page
- Reduce code duplication in login, signup, reset-password forms
- Update star count default value

* fix(custom-tools): remove unsafe title fallback in getCustomTool (#2929)

* fix(custom-tools): remove unsafe title fallback in getCustomTool

* fix(custom-tools): restore title fallback in getCustomTool lookup

Custom tools are referenced by title (custom_${title}), not database ID.
The title fallback is required for client-side tool resolution to work.

* fix(null-bodies): empty bodies handling (#2931)

* fix(null-statuses): empty bodies handling

* address bugbot comment

* fix(token-refresh): microsoft, notion, x, linear (#2933)

* fix(microsoft): proactive refresh needed

* fix(x): missing token refresh flag

* notion and linear missing flag too

* address bugbot comment

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback (#2932)

* fix(auth): handle EMAIL_NOT_VERIFIED in onError callback

* refactor(auth): extract redirectToVerify helper to reduce duplication

* fix(workflow-selector): use dedicated selector for workflow dropdown (#2934)

* feat(workflow-block): preview (#2935)

* improvement(copilot): tool configs to show nested props (#2936)

* fix(auth): add genericOAuth providers to trustedProviders (#2937)

---------

Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
Co-authored-by: Emir Karabeg <78010029+emir-karabeg@users.noreply.github.com>
@waleedlatif1 waleedlatif1 deleted the fix/copilot-configs branch January 22, 2026 06:54
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.

2 participants