Skip to content

dev -> main (Apr 23) #1331

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 84 commits into
base: main
Choose a base branch
from
Open

dev -> main (Apr 23) #1331

wants to merge 84 commits into from

Conversation

Ahmad-mtos
Copy link
Contributor

@Ahmad-mtos Ahmad-mtos commented Apr 23, 2025

PR Type

Enhancement, Tests, Documentation, Configuration changes


Description

  • Introduced Mailgun integration across API, schema, and type definitions, enabling email sending via Mailgun and supporting new setup/argument/output models.

  • Added comprehensive usage tracking for LLM and embedding APIs, including new utilities, database schema (usage table), and cost calculation logic.

  • Implemented new endpoint and models for listing available agent models.

  • Enhanced error handling for query parameters, references, and validation errors, including new exception types and improved HTTP error mapping.

  • Refactored query parameter validation to use annotated types and reusable validators across multiple listing endpoints.

  • Added and expanded test coverage for invalid query parameters, error scenarios, usage tracking, and new API features.

  • Added service health check utilities and refactored health endpoint for concurrent checks and detailed status reporting.

  • Updated Gunicorn worker configuration to use environment variables and CPU count in both API and integration services.

  • Added and updated configuration files: docker-compose, LiteLLM model config, Hasura metadata, and environment variables.

  • Added and improved documentation: new advanced and integration pages, tutorials, and fixed links/formatting in existing docs.

  • Updated cookbooks and notebooks for improved API key handling, output consistency, and template usage.

  • Added TypeSpec definitions for Mailgun and updated schemas for new integration and document search parameters.


Changes walkthrough 📝

Relevant files
Enhancement
31 files
Agents.py
Add model listing response and info Pydantic models           

agents-api/agents_api/autogen/Agents.py

  • Added new Pydantic models: ListModelsResponse and ModelInfo for model
    listing API responses.
  • +28/-0   
    Tools.py
    Add Mailgun integration and API call response content option

    agents-api/agents_api/autogen/Tools.py

  • Added Mailgun integration: new classes for setup, arguments, and
    integration definitions.
  • Included Mailgun in relevant Union types for tool creation, update,
    and patch requests.
  • Added include_response_content field to ApiCallDef and
    ApiCallDefUpdate.
  • Updated provider lists to include "mailgun".
  • +162/-0 
    usage.py
    Add utilities for tracking LLM and embedding API usage     

    agents-api/agents_api/common/utils/usage.py

  • Added utility functions track_usage and track_embedding_usage for
    tracking LLM and embedding API usage.
  • Handles token counting, cost tracking, and calls create_usage_record.
  • Supports both direct and estimated token/cost calculation.
  • +123/-0 
    create_usage_record.py
    Add create_usage_record for tracking LLM API usage and costs

    agents-api/agents_api/queries/usage/create_usage_record.py

  • Added new function create_usage_record to insert usage/cost records
    into the database.
  • Implements fallback pricing for certain models if cost calculation
    fails.
  • Handles custom API key usage and estimation flags.
  • +137/-0 
    Tools.py
    Add Mailgun integration and API call response content option
    (integrations-service)

    integrations-service/integrations/autogen/Tools.py

  • Added Mailgun integration: new classes for setup, arguments, and
    integration definitions.
  • Included Mailgun in relevant Union types for tool creation, update,
    and patch requests.
  • Added include_response_content field to ApiCallDef and
    ApiCallDefUpdate.
  • Updated provider lists to include "mailgun".
  • +162/-0 
    execution.py
    Add Mailgun support to execution models and outputs           

    integrations-service/integrations/models/execution.py

  • Added Mailgun setup and argument types to execution models.
  • Included Mailgun output in execution response union.
  • Refactored ordering of argument/setup types for clarity.
  • +26/-20 
    mailgun.py
    Add Mailgun integration utility for sending emails             

    integrations-service/integrations/utils/integrations/mailgun.py

  • Added Mailgun integration utility for sending emails via Mailgun API.
  • Includes email validation, retry logic, and error handling.
  • Supports CC/BCC and uses environment API key if needed.
  • +104/-0 
    litellm.py
    Add usage tracking for completions and embeddings in LiteLLM client

    agents-api/agents_api/clients/litellm.py

  • Added usage tracking for completions and embeddings by calling
    track_usage and track_embedding_usage after API calls.
  • Introduced error handling to log but not fail requests if usage
    tracking fails.
  • Imported new usage tracking utilities.
  • +43/-1   
    validation.py
    Add QueryParamsValidationError exception for query parameter
    validation

    agents-api/agents_api/common/exceptions/validation.py

  • Introduced a new exception class QueryParamsValidationError for query
    parameter validation errors.
  • +8/-0     
    checks.py
    Add service health check utilities for health endpoint     

    agents-api/agents_api/common/utils/checks.py

  • Added health check functions for Postgres, Temporal, LiteLLM, and
    Integration service.
  • Each function returns a health status and logs errors if checks fail.
  • +60/-0   
    __init__.py
    Import usage module into queries package                                 

    agents-api/agents_api/queries/init.py

    • Imported the new usage module into the queries package.
    +1/-0     
    list_docs.py
    Use annotated type validation for list_docs query parameters

    agents-api/agents_api/queries/docs/list_docs.py

  • Switched to using annotated types and validators for limit and offset
    parameters.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +18/-14 
    list_entries.py
    Use annotated type validation for list_entries query parameters

    agents-api/agents_api/queries/entries/list_entries.py

  • Switched to using annotated types and validators for limit and offset
    parameters, allowing up to 1000 entries.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +14/-9   
    list_executions.py
    Use annotated type validation for list_executions query parameters

    agents-api/agents_api/queries/executions/list_executions.py

  • Switched to using annotated types and validators for limit and offset
    parameters.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +16/-12 
    list_files.py
    Use annotated type validation for list_files query parameters

    agents-api/agents_api/queries/files/list_files.py

  • Switched to using annotated types and validators for limit and offset
    parameters.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +18/-15 
    list_tasks.py
    Use annotated type validation for list_tasks query parameters

    agents-api/agents_api/queries/tasks/list_tasks.py

  • Switched to using annotated types and validators for limit and offset
    parameters.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +16/-13 
    __init__.py
    Add usage tracking module with create_usage_record export

    agents-api/agents_api/queries/usage/init.py

  • Added a new module docstring describing the purpose of the usage
    tracking module.
  • Exported create_usage_record from the module.
  • +20/-0   
    list_users.py
    Use annotated type validation for list_users query parameters

    agents-api/agents_api/queries/users/list_users.py

  • Switched to using annotated types and validators for limit and offset
    parameters.
  • Removed manual validation and replaced with type-based validation.
  • Imported and used make_num_validator.
  • +14/-9   
    utils.py
    Add make_num_validator utility for parameter validation   

    agents-api/agents_api/queries/utils.py

  • Added make_num_validator function for reusable numeric validation.
  • Imports and uses new QueryParamsValidationError.
  • +23/-0   
    __init__.py
    Import list_models endpoint in agents router                         

    agents-api/agents_api/routers/agents/init.py

  • Added import for list_models endpoint to the agents router module.
  • +1/-0     
    list_models.py
    Add endpoint to list available agent models                           

    agents-api/agents_api/routers/agents/list_models.py

  • Added a new endpoint /agents/models to list all available models for
    agents.
  • Uses dependency injection for developer ID and optional custom API
    key.
  • Returns a ListModelsResponse with model info.
  • +26/-0   
    check_health.py
    Refactor healthz endpoint to use concurrent service checks

    agents-api/agents_api/routers/healthz/check_health.py

  • Refactored health check endpoint to use new concurrent health check
    utilities.
  • Returns detailed service health status and raises HTTP 500 if any
    service is degraded.
  • +27/-12 
    Agents.py
    Add model listing response models to Agents API                   

    integrations-service/integrations/autogen/Agents.py

  • Added ListModelsResponse and ModelInfo Pydantic models for model
    listing endpoint.
  • +28/-0   
    __init__.py
    Add MailgunSendEmailOutput to models package                         

    integrations-service/integrations/models/init.py

    • Added import for MailgunSendEmailOutput to models package.
    +1/-0     
    mailgun.py
    Add MailgunSendEmailOutput model for email integration     

    integrations-service/integrations/models/mailgun.py

  • Added new model MailgunSendEmailOutput for Mailgun email sending
    results.
  • +10/-0   
    providers.py
    Add Mailgun provider and register in available providers 

    integrations-service/integrations/providers.py

  • Added Mailgun provider definition with send_email method and metadata.
  • Registered Mailgun in the available providers dictionary.
  • +23/-0   
    create_agent_request.json
    Add Mailgun integration and new doc search parameters to schema

    schemas/create_agent_request.json

  • Added Mailgun integration definitions and argument schemas.
  • Added new parameters for document search (confidence, k_multiplier,
    trigram_similarity_threshold).
  • Updated default values for some search parameters.
  • Added include_response_content to API call schemas.
  • +347/-7 
    create_task_request.json
    Add Mailgun integration and new doc search parameters to schema

    schemas/create_task_request.json

  • Added Mailgun integration definitions and argument schemas.
  • Added new parameters for document search (confidence, k_multiplier,
    trigram_similarity_threshold).
  • Updated default values for some search parameters.
  • Added include_response_content to API call schemas.
  • +347/-7 
    execute_api_call.py
    Add include_response_content option to API call execution

    agents-api/agents_api/activities/execute_api_call.py

  • Added support for include_response_content in API call execution.
  • Only includes response content in output if requested.
  • Switched to using b64encode from base64.
  • +7/-5     
    000036_usage.up.sql
    Add migration for usage tracking table in memory store     

    memory-store/migrations/000036_usage.up.sql

  • Added a new SQL migration to create a usage table for tracking token
    usage and costs.
  • Defined constraints, indexes, and hypertable dimensions for efficient
    time-series queries.
  • Added comments for documentation.
  • +41/-0   
    mailgun.tsp
    Add TypeSpec definition for Mailgun integration                   

    typespec/tools/mailgun.tsp

  • Added a new TypeSpec definition for Mailgun integration.
  • Defined setup, arguments, integration definition, provider card, and
    output models for Mailgun.
  • Enabled support for sending emails via Mailgun in the type system.
  • +79/-0   
    Error handling
    1 files
    db_exceptions.py
    Improve error handling for query parameter and reference errors

    agents-api/agents_api/common/utils/db_exceptions.py

  • Improved error handling for invalid references, sort fields, and sort
    directions.
  • Added support for custom QueryParamsValidationError and beartype
    violations.
  • Enhanced mapping of database and validation errors to HTTPException
    with detailed messages.
  • +37/-0   
    Tests
    9 files
    test_docs_queries.py
    Add tests for invalid doc listing parameters and missing references

    agents-api/tests/test_docs_queries.py

  • Added tests for invalid parameters (limit, offset, sort_by, direction)
    in list_docs for users and agents.
  • Added tests for error handling when creating docs with missing
    user/agent references.
  • Expanded test coverage for edge cases and error scenarios.
  • +241/-1 
    test_entry_queries.py
    Add tests for invalid entry listing parameters and error handling

    agents-api/tests/test_entry_queries.py

  • Added tests for invalid limit, offset, sort_by, and direction in
    list_entries.
  • Ensured proper error handling and HTTPException raising for bad query
    parameters.
  • +78/-0   
    test_execution_queries.py
    Add tests for invalid execution listing parameters and error handling

    agents-api/tests/test_execution_queries.py

  • Added tests for invalid limit, offset, sort_by, and direction in
    list_executions.
  • Ensured proper error handling and HTTPException raising for bad query
    parameters.
  • +97/-1   
    test_files_queries.py
    Add tests for invalid file listing parameters and error handling

    agents-api/tests/test_files_queries.py

  • Added tests for invalid limit, offset, sort_by, and direction in
    list_files.
  • Ensured proper error handling and HTTPException raising for bad query
    parameters.
  • +71/-1   
    test_task_execution_workflow.py
    Add tests for API call tool response content inclusion     

    agents-api/tests/test_task_execution_workflow.py

  • Added tests for API call tool step with various
    include_response_content settings.
  • Ensured correct inclusion/exclusion of response content in API call
    results.
  • +138/-0 
    test_task_queries.py
    Add tests for invalid task listing parameters and error handling

    agents-api/tests/test_task_queries.py

  • Added tests for invalid limit, offset, sort_by, and direction in
    list_tasks.
  • Ensured proper error handling and HTTPException raising for bad query
    parameters.
  • +74/-0   
    test_usage_tracking.py
    Add comprehensive tests for usage tracking and cost calculation

    agents-api/tests/test_usage_tracking.py

  • Added comprehensive tests for usage tracking and cost calculation.
  • Tested create_usage_record, track_usage, and track_embedding_usage for
    various models and scenarios.
  • Included tests for fallback pricing and error handling.
  • +259/-0 
    test_user_queries.py
    Add tests for invalid user listing parameters and error handling

    agents-api/tests/test_user_queries.py

  • Added tests for invalid limit, offset, sort_by, and direction in
    list_users.
  • Ensured proper error handling and HTTPException raising for bad query
    parameters.
  • +76/-1   
    test_agent_queries.py
    Add test for invalid sort direction in list_agents query 

    tests/test_agent_queries.py

  • Added a test for listing agents with an invalid sort direction,
    expecting an HTTP 400 error.
  • Miscellaneous
    4 files
    00-Devfest-Email-Assistant.ipynb
    Update notebook outputs and template variable usage for email
    assistant

    cookbooks/00-Devfest-Email-Assistant.ipynb

  • Updated output cells to reflect newer package versions and execution
    results.
  • Fixed template variable usage for email fields in YAML blocks.
  • Updated execution counts and outputs for demonstration cells.
  • +27/-31 
    02-sarcastic-news-headline-generator.ipynb
    Improve API key handling and update notebook outputs for headline
    generator

    cookbooks/02-sarcastic-news-headline-generator.ipynb

  • Updated API key handling to use environment variables.
  • Fixed integration setup key for Brave API.
  • Improved execution polling and output printing logic.
  • Updated example outputs and execution counts.
  • +69/-51 
    05-video-processing-with-natural-language.ipynb
    Improve API key handling and update video processing notebook outputs

    cookbooks/05-video-processing-with-natural-language.ipynb

  • Updated API key handling to use environment variables.
  • Improved Cloudinary transformation prompt and extraction logic.
  • Updated example URLs and outputs for video processing steps.
  • Refined transformation JSON extraction and formatting.
  • +55/-48 
    06-browser-use.ipynb
    Fix browser goal formatting and update notebook metadata 

    cookbooks/06-browser-use.ipynb

  • Fixed string formatting in YAML blocks for browser goal.
  • Updated recall argument and removed extra_body from task creation.
  • Updated notebook kernel metadata and Python version.
  • +5/-9     
    Configuration changes
    7 files
    env.py
    Add Gunicorn worker configuration based on CPU and env vars

    agents-api/agents_api/env.py

  • Added Gunicorn worker configuration based on CPU count and environment
    variables.
  • Introduced gunicorn_cpu_divisor and gunicorn_workers variables.
  • +8/-0     
    gunicorn_conf.py
    Use gunicorn_workers from environment for Gunicorn config

    agents-api/gunicorn_conf.py

  • Switched Gunicorn worker calculation to use new gunicorn_workers from
    environment.
  • Removed direct use of multiprocessing.cpu_count().
  • +2/-2     
    docker-compose.yml
    Update docker-compose to use hasura instead of graphql     

    docker-compose.yml

  • Changed included compose file from graphql/docker-compose.yml to
    hasura/docker-compose.yml.
  • +1/-1     
    hasura_metadata_2025_04_07_16_21_57_118.json
    Add Hasura metadata for database schema and permissions   

    hasura/metadata/hasura_metadata_2025_04_07_16_21_57_118.json

  • Added new Hasura metadata file with detailed table, relationship, and
    permission configurations.
  • +945/-0 
    gunicorn_conf.py
    Use gunicorn_workers from environment for Gunicorn config

    integrations-service/gunicorn_conf.py

  • Switched Gunicorn worker calculation to use gunicorn_workers from
    environment.
  • Removed direct use of multiprocessing.cpu_count().
  • +3/-4     
    env.py
    Add Gunicorn and Mailgun config to integrations env           

    integrations-service/integrations/env.py

  • Added Gunicorn worker configuration based on CPU count and environment
    variables.
  • Added mailgun_api_key environment variable.
  • +12/-0   
    litellm-config.yaml
    Add new Gemini, OpenRouter, and Cerebras models to LiteLLM config

    llm-proxy/litellm-config.yaml

  • Added new Gemini models (gemini-2.0-flash,
    gemini-2.5-pro-preview-03-25).
  • Added new OpenRouter models (llama-4-scout, llama-4-maverick, and
    their free variants).
  • Added new Cerebras model (llama-4-scout-17b-16e-instruct).
  • +43/-0   
    Documentation
    10 files
    docs.mdx
    Update and fix documentation links and code formatting     

    documentation/concepts/docs.mdx

  • Fixed and updated internal documentation links for API reference and
    SDKs.
  • Improved YAML code formatting in examples.
  • +37/-37 
    browser-use.mdx
    Add tutorial for browser automation with Julep                     

    documentation/tutorials/browser-use.mdx

  • Added a new tutorial on browser automation with Julep, including YAML
    task examples and SDK usage.
  • Provides step-by-step breakdown and code samples for Python and
    Node.js.
  • +626/-0 
    rag-chatbot.mdx
    Improve formatting and links in RAG chatbot tutorial         

    documentation/tutorials/rag-chatbot.mdx

  • Improved YAML formatting and indentation in code examples.
  • Fixed and updated documentation links.
  • Enhanced clarity of step-by-step instructions.
  • +193/-193
    agentic-patterns.mdx
    New documentation page on agentic workflow patterns and best practices

    documentation/advanced/agentic-patterns.mdx

  • Added a new advanced documentation page describing agentic workflow
    patterns.
  • Introduced detailed explanations and YAML examples for prompt
    chaining, routing, parallelization, orchestrator-workers, and
    evaluator-optimizer patterns.
  • Included best practices and support information for building Julep
    agents.
  • [link]   
    architecture-deep-dive.mdx
    New documentation page for Julep architecture deep dive   

    documentation/advanced/architecture-deep-dive.mdx

  • Added a new documentation page providing an architectural overview of
    Julep.
  • Described core and infrastructure components, data flow, and security
    features.
  • Included diagrams, card groups, and support information.
  • [link]   
    files.mdx
    New documentation page for file handling and management   

    documentation/advanced/files.mdx

  • Added a new documentation page about file handling and management in
    Julep.
  • Provided API usage examples in Python and JavaScript.
  • Outlined file properties and basic CRUD operations.
  • [link]   
    localsetup.mdx
    New documentation page for local setup instructions           

    documentation/advanced/localsetup.mdx

  • Added a new documentation page for local setup instructions.
  • Provided step-by-step guide for running Julep locally with Docker.
  • Included troubleshooting and support information.
  • [link]   
    multi-agent-multi-user-sessions.mdx
    New documentation page for multi-agent multi-user sessions

    documentation/advanced/multi-agent-multi-user-sessions.mdx

  • Added a new documentation page about multi-agent and multi-user
    session management.
  • Explained session types, user and agent behaviors, and advanced
    scenarios.
  • Included support section.
  • [link]   
    new-syntax.mdx
    New documentation page for workflow syntax changes and migration

    documentation/advanced/new-syntax.mdx

  • Added a new documentation page explaining the new workflow syntax.
  • Detailed changes in input/output references, template syntax, and use
    of the $ prefix.
  • Provided migration examples from old to new syntax.
  • [link]   
    supported-integrations.mdx
    New documentation page listing supported integrations       

    documentation/integrations/supported-integrations.mdx

  • Added a new documentation page listing all supported integrations in
    Julep.
  • Organized integrations by category with links to detailed pages.
  • Provided next steps for further exploration.
  • +56/-0   
    Additional files
    62 files
    .env.example +7/-0     
    CHANGELOG.md +13/-1   
    task_validation.py +0/-1     
    list_agents.py +0/-4     
    docker-compose.yml +2/-0     
    pyproject.toml +1/-0     
    test_agent_queries.py +17/-0   
    01-website-crawler.ipynb +49/-124
    03-trip-planning-assistant.ipynb +453/-475
    chat.mdx +3/-3     
    lifecycle.mdx +3/-3     
    python-expression.mdx +3/-3     
    render.mdx +1/-1     
    types-of-task-steps.mdx +2/-2     
    agents.mdx +6/-6     
    execution.mdx +2/-2     
    sessions.mdx +5/-5     
    tasks.mdx +39/-39 
    tools.mdx +42/-42 
    users.mdx +3/-3     
    docs.json +43/-43 
    supported-integrations.mdx +0/-56   
    browser-use.mdx +0/-601 
    chat-with-an-agent.mdx +2/-2     
    create-and-execute-julep-task.mdx +3/-3     
    email.mdx +23/-21 
    weather.mdx +17/-15 
    contributing-integrations.mdx [link]   
    cloudinary.mdx +27/-25 
    ffmpeg.mdx +16/-14 
    llamaparse.mdx +25/-23 
    unstructured.mdx +20/-19 
    algolia.mdx +21/-19 
    arxiv.mdx +17/-17 
    brave.mdx +16/-15 
    wikipedia.mdx +15/-14 
    supported-models.mdx +9/-2     
    browserbase.mdx +16/-16 
    remote-browser.mdx +38/-37 
    spider.mdx +21/-21 
    install.mdx +1/-1     
    julep.mdx +6/-6     
    quickstart.mdx +2/-2     
    commands.mdx +1/-1     
    introduction.mdx +24/-24 
    concepts.mdx +6/-6     
    examples.mdx +4/-4     
    quickstart.mdx +3/-3     
    roadmap.mdx +2/-2     
    trip-planning.mdx +113/-114
    video-processing.mdx +175/-175
    docker-compose.yml +1/-0     
    entrypoint.sh +1/-0     
    traefik.yml.template +15/-0   
    docker-compose.yml +0/-13   
    docker-compose.yml +28/-0   
    docker-compose.yml +3/-0     
    000036_usage.down.sql +16/-0   
    endpoints.tsp +9/-1     
    models.tsp +12/-0   
    models.tsp +18/-0   
    openapi-1.0.0.yaml +165/-0 

    Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • HamadaSalhab and others added 30 commits March 31, 2025 20:27
    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
    chore: Replace Postgraphile with Hasura for GraphQL service
    chore(gateway): Expose GraphQL API
    feat: Add a flag to optionally include API response content
    …tion
    
    refactor: Move query parameters validation to beartype
    chore(hasura): Add hasura metadata
    Vedantsahai18 and others added 25 commits April 15, 2025 10:59
    …dating service checks into utility functions
    Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
    refactor(docs): update documentation structure and remove deprecated …
    fix(cookbooks, docs): update string formatting and improve evaluation…
    feat(agents-api): enhance health check endpoint to monitor multiple s…
    fix(cookbooks): Fix regressed issues in cookbooks
    fix(documentation): Add missing $ to expression
    feat(integrations-service): Add mailgun integration
    feat(agents-api): add list available models endpoint
    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
    🧪 PR contains tests
    🔒 No security concerns identified
    ⚡ Recommended focus areas for review

    Email Field Access

    The notebook has been updated to use _['from'] instead of _.from in one place but still uses steps[0].input.from in another place which should be updated to steps[0].input['from'] for consistency and to avoid Python keyword conflicts.

    "    A user with email address {{ steps[0].input['from'] }} has sent the following inquiry:\n",
    "    ------\n",
    
    String Formatting

    The f-string formatting in the goal section has been modified but may have syntax issues. The concatenation of variables and strings using + inside an f-string could lead to unexpected behavior or errors.

    "        * + {steps[0].input.goal} + NEWLINE + </GOAL> \"\"\"\n",
    "    workflow_label: \"run_browser\" # <----- REMOVE THIS\n",
    

    Copy link
    Contributor

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    Possible issue
    Fix template variable access

    The email field access syntax is incorrect. In YAML templates, dictionary keys
    with special characters should be accessed using square bracket notation. Change
    {{ _.from }} to {{ _['from'] }} to properly access the email address.

    cookbooks/00-Devfest-Email-Assistant.ipynb [296]

     - prompt: |-
         $ f'''You are {{ agent.name }}. {{ agent.about }}
     
    -    A user with email address {{ _.from }} has sent the following inquiry:
    +    A user with email address {{ _['from'] }} has sent the following inquiry:
         ------
           Subject: {{ _.subject }}
     
           {{ _.body }}
         ------
    

    [To ensure code accuracy, apply this suggestion manually]

    Suggestion importance[1-10]: 9

    __

    Why: The suggestion correctly identifies a critical issue with accessing email fields in the template. Using {{ _.from }} would cause runtime errors since 'from' is a Python keyword, while the corrected {{ _['from'] }} properly accesses the dictionary key, which is essential for the email assistant to function correctly.

    High
    Fix f-string formatting

    The string formatting is incorrect. Change from a regular string ($ """) to an
    f-string ($ f""") and fix the goal formatting to properly include the variable
    in curly braces.

    cookbooks/06-browser-use.ipynb [403-415]

     - role: "user"
       content: |-
    -    $ """
    +    $ f"""
         <SYSTEM_CAPABILITY>
         * You are utilising a headless chrome browser to interact with the internet.
         * You can use the computer tool to interact with the browser.
         * You can navigate to websites, click on links, and read the content of the page.
         * You can scroll up and down the page.
         * You can fill in forms and submit them.
         * You can take screenshots of the page.
         * YOU CANNOT WRITE TO THE SEARCH BAR OF THE BROWSER.
         </SYSTEM_CAPABILITY>
         <GOAL>
    -    *""" + steps[0].input.goal + NEWLINE + "</GOAL>"
    +    * {steps[0].input.goal} 
    +    </GOAL>"""
    

    [To ensure code accuracy, apply this suggestion manually]

    Suggestion importance[1-10]: 9

    __

    Why: The suggestion correctly fixes a critical string formatting issue that would prevent the browser goal from being properly included in the prompt. The change from a regular string to an f-string with proper variable interpolation is essential for the browser functionality to work.

    High
    Fix template syntax error

    Fix the syntax error in the URL parameter. There should be no space between the
    dollar sign and the underscore in the expression.

    cookbooks/01-website-crawler.ipynb [256]

     # Step 0: Call the spider_crawler tool with the url input
     - tool: spider_crawler
       arguments:
    -    url: $ _['url'] # You can also use 'steps[0].input.url'
    +    url: $_['url'] # You can also use 'steps[0].input.url'
         params:
           request: smart_mode
           limit: $ 2 # limit to 2 pages
           return_format: markdown
           proxy_enabled: $ True
           filter_output_images: $ True
    

    [To ensure code accuracy, apply this suggestion manually]

    Suggestion importance[1-10]: 8

    __

    Why: The suggestion correctly identifies a syntax error in the URL parameter where there's an incorrect space between $ and _['url']. This could cause the task to fail when executed as the variable reference wouldn't be properly parsed.

    Medium
    Fix indentation issue

    Fix the indentation of the unwrap: true parameter. It should be at the same
    indentation level as the prompt parameter to be properly associated with the
    step.

    cookbooks/01-website-crawler.ipynb [284]

     '''
     {{_['documents']}}
     I want you to create a short summary (no longer than 100 words) of the results you found while crawling that website.
     '''
    -unwrap: true
    

    [To ensure code accuracy, apply this suggestion manually]

    Suggestion importance[1-10]: 7

    __

    Why: The suggestion correctly identifies an indentation issue with the "unwrap: true" parameter. The parameter is incorrectly indented and should be at the same level as the prompt parameter, which could cause unexpected behavior in the task execution.

    Medium
    • More

    Copy link
    Contributor

    @ellipsis-dev ellipsis-dev bot left a comment

    Choose a reason for hiding this comment

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

    Caution

    Changes requested ❌

    Reviewed everything up to 5599f40 in 6 minutes and 28 seconds. Click for details.
    • Reviewed 10601 lines of code in 118 files
    • Skipped 11 files when reviewing.
    • Skipped posting 62 draft comments. View those below.
    • Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
    1. .env.example:133
    • Draft comment:
      New HASURA configuration variables are added. Please ensure these are documented in the README so users know how to configure Hasura in their environment.
    • Reason this comment was not posted:
      Comment did not seem useful. Confidence is useful = 0% <= threshold 50% This comment is asking the PR author to document configuration variables in the README. While documentation is important, the comment is essentially asking the author to ensure something is done, which violates the rule against asking the author to ensure something is done. Therefore, this comment should be removed.
    2. agents-api/agents_api/activities/execute_api_call.py:73
    • Draft comment:
      The code now conditionally includes response content using the 'include_response_content' flag. Verify that the b64encode import is available and that this behavior is consistently applied for both true and false values. Consider adding a brief inline comment clarifying how the flag is prioritized.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    3. agents-api/agents_api/queries/docs/list_docs.py:60
    • Draft comment:
      Validation checks for sort direction and sort field have been commented out here; however, tests expect HTTPExceptions with specific messages. Please ensure that parameter validation for fields like 'direction' and 'sort_by' is consistently enforced either via annotations or through explicit checks.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    4. agents-api/agents_api/autogen/Tools.py:1493
    • Draft comment:
      Mailgun integration types and update models are added. Please double-check that the use of Literal for the 'provider' field and the overall structure matches the API contract. Additionally, ensure that the documentation for optional fields (e.g., 'method', 'setup', 'arguments') is updated.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    5. typespec/agents/endpoints.tsp:16
    • Draft comment:
      The new listModels endpoint is added. Confirm that the documentation in the OpenAPI and Typespec outputs is consistent with the implementation.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    6. integrations-service/integrations/utils/integrations/mailgun.py:1
    • Draft comment:
      The Mailgun utility function added uses exponential backoff and validates email formats. Ensure that the domain extraction logic for the Mailgun API URL (prefixing with 'email.' when needed) is consistent with Mailgun's requirements.
    • Reason this comment was not posted:
      Comment did not seem useful. Confidence is useful = 0% <= threshold 50% The comment is asking the author to ensure consistency with Mailgun's requirements, which is a form of asking for confirmation or verification. This violates the rule against asking the PR author to confirm or ensure behavior. The comment does not provide a specific suggestion or point out a specific issue in the code.
    7. agents-api/agents_api/activities/execute_api_call.py:70
    • Draft comment:
      The new conditional for including response content is a good approach; however, the precedence between the function parameter and the api_call attribute is not clearly documented. Consider adding a comment to clarify which one takes priority if both are provided.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    8. agents-api/agents_api/queries/agents/list_agents.py:73
    • Draft comment:
      Explicit validations for 'direction' and 'sort_by' have been commented out. Since the parameters are now Liniteral types, FastAPI's built-in validation will trigger, potentially leading to different error responses. Confirm that this change is intentional and that tests align with the new behavior.
    • Reason this comment was not posted:
      Comment looked like it was already resolved.
    9. agents-api/tests/test_agent_queries.py:129
    • Draft comment:
      Test cases expecting a HTTPException with status 400 and specific error messages may now receive 422 errors due to FastAPI's automatic validation. Verify that the API error codes and messages are updated consistently across the tests.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    10. integrations-service/integrations/utils/integrations/mailgun.py:1
    • Draft comment:
      The regex used for email validation is quite simplistic and may not accept all valid email formats. Consider using a more robust regex or a dedicated email validation library.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% The current regex handles basic email validation which is likely sufficient for most cases. The code is used for validation before sending to Mailgun's API, which will do its own validation. Making the regex more complex could introduce maintenance issues and potential bugs. The simple regex acts as a basic sanity check which is appropriate for this use case. The comment correctly points out that the regex could miss some valid email formats. A more robust validation could prevent some API calls from failing. The current simple validation is sufficient as a first line of defense, with Mailgun's API providing the ultimate validation. Over-validation at this stage could reject valid emails that Mailgun would accept. The comment should be deleted as the current simple validation is appropriate for its purpose as an initial sanity check before the API call.
    11. integrations-service/integrations/utils/integrations/mailgun.py:25
    • Draft comment:
      The logic that prefixes the extracted domain with 'email.' if it doesn't already start with that could be fragile. Verify that this convention holds for all expected Mailgun domains, or consider parameterizing this behavior.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% The comment raises a valid concern about hardcoding domain prefixing, but it's phrased as a request to verify rather than pointing out a clear issue. It asks the author to "verify" and "consider" rather than identifying a specific problem. Without access to Mailgun's documentation or requirements, we can't be certain this is incorrect. The domain prefixing could indeed be problematic if Mailgun's domain requirements are different. The comment might be identifying a real architectural issue. However, the comment violates our rules by asking for verification rather than pointing out a clear issue. If there was a specific problem with the domain handling, it should state that directly. The comment should be removed because it asks for verification rather than identifying a clear issue, and we don't have strong evidence that the current implementation is incorrect.
    12. schemas/create_agent_request.json:403
    • Draft comment:
      The default value for 'confidence' has been changed from 0 to 0.5 in several JSON schemas. Ensure that this change is intentional and that consumers of these schemas are updated accordingly.
    • Reason this comment was not posted:
      Confidence changes required: 50% <= threshold 50% None
    13. agents-api/agents_api/autogen/Tools.py:1490
    • Draft comment:
      New Mailgun integration definitions and argument models have been added. Verify that these models cover all required fields for Mailgun interactions and that they are integrated seamlessly with existing update and creation flows.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    14. memory-store/migrations/000036_usage.up.sql:1
    • Draft comment:
      The migration for the 'usage' table, including conversion to a hypertable and index creation, appears well-structured. Consider adding inline comments regarding expected data volumes and performance implications for future maintainability.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% While documentation about expected data volumes could be helpful, the implementation already shows strong awareness of performance considerations. The comment is more of a "nice to have" suggestion rather than identifying a clear issue. It's asking for additional documentation rather than pointing out a concrete problem that needs fixing. The comment could have merit since understanding data volumes is important for database design. Future maintainers might benefit from explicit documentation of scale expectations. However, the implementation already demonstrates careful consideration of scale through its use of hypertables and appropriate indexing. Additional inline comments would be purely informative rather than actionable. The comment should be deleted as it violates the rule against purely informative comments and doesn't identify a clear code change that's required.
    15. typespec/agents/endpoints.tsp:16
    • Draft comment:
      The new 'listModels' endpoint is a useful addition. Ensure that its error handling and response structure are consistent with the rest of the API.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    16. llm-proxy/litellm-config.yaml:19
    • Draft comment:
      New Gemini models have been added; ensure that environment variables like GEMINI_API_KEY are correctly configured and that any usage policies for these models are adhered to.
    • Reason this comment was not posted:
      Comment did not seem useful. Confidence is useful = 0% <= threshold 50% This comment is asking the PR author to ensure that environment variables are configured correctly and that usage policies are adhered to. This falls under the category of asking the author to ensure something, which is against the rules.
    17. CHANGELOG.md:33
    • Draft comment:
      Typographical error: The month in the heading is spelled as 'Apri'. Please change it to 'April'.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 20% vs. threshold = 50% While this is a real typo in changed code, changelogs are primarily for human readers and this is a very minor cosmetic issue. The meaning is still completely clear. The rules say not to make obvious or unimportant comments. However, since this is a public-facing document that represents the company, maintaining professional quality could be considered important. I might be overthinking this - the rules clearly state not to make obvious or unimportant comments. A simple typo that doesn't affect functionality probably falls into this category. The critique is valid - while professional documentation is important, this type of minor typo can be caught in many other ways and doesn't warrant a PR comment. This comment should be removed as it points out an obvious and unimportant issue that doesn't affect functionality.
    18. agents-api/agents_api/autogen/Tools.py:266
    • Draft comment:
      Typographical suggestion: The docstring for the 'download_pdf' field currently reads "The download the pdf of the results". Consider rephrasing it to something clearer like "Whether to download the PDF of the results".
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    19. agents-api/agents_api/autogen/Tools.py:1428
    • Draft comment:
      Typographical suggestion: The docstring for the 'provider' field in LlamaParseIntegrationDef states "The provider must be 'LlamaParseSetup'". Since the actual provider value is 'llama_parse', consider updating the docstring to "The provider must be 'llama_parse'" for consistency.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    20. agents-api/agents_api/queries/usage/create_usage_record.py:57
    • Draft comment:
      Typographical issue: In the SQL query definition, the closing parenthesis on line 57 (and similarly on line 67) is immediately followed by a colon. This likely should be a plain ')' without the colon to properly close the list of columns (and values). Please review and correct if this is unintended.
    • Reason this comment was not posted:
      Comment looked like it was already resolved.
    21. agents-api/tests/test_files_queries.py:1
    • Draft comment:
      The header comment on line 1 reads "Tests for entry queries". Since the tests in this file are specifically for file queries, consider updating it to "Tests for file queries" to avoid confusion.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    22. documentation/advanced/architecture-deep-dive.mdx:56
    • Draft comment:
      Typo: In the 'Task & Execution' card (line 56), 'Github Actions-style workflows' should be corrected to 'GitHub Actions-style workflows' to properly reflect GitHub's branding.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    23. documentation/advanced/chat.mdx:95
    • Draft comment:
      Typographical error: 'Chat endpint' should be corrected to 'Chat endpoint' for clarity.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    24. documentation/advanced/lifecycle.mdx:3
    • Draft comment:
      Typographical suggestion: In the frontmatter description on line 3, consider changing 'Understanding the Lifecycle of Task when executed in Julep' to 'Understanding the Lifecycle of a Task when executed in Julep' for improved clarity and readability.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    25. documentation/advanced/localsetup.mdx:8
    • Draft comment:
      Typo: 'Juelp' should be 'Julep'. Please correct the product name to maintain consistency.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    26. documentation/advanced/localsetup.mdx:46
    • Draft comment:
      Typo: 'SeadweedFS' should be 'SeaweedFS'. Please update the spelling to match the correct tool name.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    27. documentation/advanced/localsetup.mdx:68
    • Draft comment:
      Grammatical issue: In the phrase 'a JWT token locally that act as an API KEY', 'act' should be 'acts' to agree with 'token'.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    28. documentation/advanced/new-syntax.mdx:26
    • Draft comment:
      Typo: In the bullet point for _x (line 26), there's an extra space between the dash and 'Has been removed'. Please remove the extra space for consistency.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    29. documentation/advanced/new-syntax.mdx:41
    • Draft comment:
      Typo: In several new syntax code samples (for instance, lines 41, 42, 43 and further in the 'Examples' section), there is an unnecessary space after the '$' prefix. For clarity and to avoid any potential confusion, please remove the extra space so that the '$' immediately precedes the expression (e.g., use '$steps[0].input.a' instead of '$ steps[0].input.a').
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    30. documentation/concepts/tasks.mdx:203
    • Draft comment:
      Typographical Issue: The heading "## How to Use Tasks ?" has an unnecessary space before the question mark. Consider changing it to "## How to Use Tasks?" for a cleaner look.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    31. documentation/concepts/tools.mdx:220
    • Draft comment:
      Typo detected: 'utlize' should be corrected to 'utilize' to improve clarity.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    32. documentation/concepts/users.mdx:166
    • Draft comment:
      There's a minor typographical issue on line 166 in the Tip block. The SDK reference text appears to be missing a closing parenthesis after the [JavaScript] link. Please update it to match the expected format, e.g., 'SDK reference (Python or JavaScript)' so that the links are properly enclosed.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    33. documentation/guides/getting-started/create-and-execute-julep-task.mdx:678
    • Draft comment:
      Consider rewording the Tasks link description. Instead of "Learn about Julep tasks in more details and see other tasks steps", you might say "Learn about Julep tasks in more detail and view additional task steps" or similar for improved clarity.
    • Reason this comment was not posted:
      Comment was on unchanged code.
    34. documentation/integrations/contributing-integrations.mdx:21
    • Draft comment:
      There is an inconsistency in the directory naming between steps 3 and 4: step 3 refers to integration-service/integrations/utils/integrations while step 4 uses integrations-service/integrations/providers.py. Please verify and correct this if it is a typo.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    35. documentation/integrations/mediafile/llamaparse.mdx:72
    • Draft comment:
      Typo: In the YAML Explanation under the 'Tool Configuration' accordion, consider changing "Contains configuration Details" to "Contains configuration details" for consistency.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    36. documentation/integrations/search/brave.mdx:4
    • Draft comment:
      It appears that the icon name 'searchengin' might be a typographical error. Consider correcting it to 'searchengine' (unless 'searchengin' is an intentional naming choice) to ensure consistency.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    37. documentation/integrations/search/wikipedia.mdx:25
    • Draft comment:
      There is an extra label appended to the code fence on line 25 ('yaml Wikipedia Search Example'). Typically, the fence should only include the language (e.g., 'yaml'). Removing 'Wikipedia Search Example' may help tools and editors correctly highlight the YAML content.
    • Reason this comment was not posted:
      Comment was on unchanged code.
    38. documentation/integrations/supported-integrations.mdx:28
    • Draft comment:
      Typographical suggestion: Consider changing 'Cloud based Image and Video Processing' to 'Cloud-based image and video processing' for consistency and correct usage. The term 'Cloud-based' is the standard hyphenated adjective form.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% Looking at the rules, we should not make purely informative comments or comments about obvious things. While the suggestion is technically correct, it's a very minor style issue in documentation. The meaning is perfectly clear either way. This seems like the kind of nitpicky comment that adds noise without significant value. The suggested change would make the documentation more professional and consistent. Poor formatting in documentation could reflect badly on the project. While consistency is good, this is an extremely minor formatting issue that doesn't impact understanding. The rules specifically say to avoid obvious or unimportant comments. This comment should be deleted as it's too minor and doesn't highlight a significant issue that needs addressing.
    39. documentation/integrations/supported-models.mdx:102
    • Draft comment:
      There's a typographical error in the description for 'llama-4-scout-17b-16e-instruct'. 'Deployements' should be corrected to 'deployments'.
    • Reason this comment was not posted:
      Comment did not seem useful. Confidence is useful = 0% <= threshold 50% This comment is purely informative and suggests a correction in the description, which is not relevant to the code functionality. It doesn't provide a code suggestion or ask for a test, so it should be removed.
    40. documentation/integrations/supported-models.mdx:123
    • Draft comment:
      There's a typographical error in the 'Supported Parameters' section where 'paramters' is used. It should be spelled 'parameters'.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    41. documentation/integrations/webbrowser/browserbase.mdx:47
    • Draft comment:
      The YAML snippet in the 'Create Task Definition' step uses quotes for the api_key (line 42) but not for the project_id in the arguments section (line 47). For consistency and clarity, consider quoting BROWSERBASE_PROJECT_ID as well.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% While consistency in documentation examples is good, this is a very minor formatting issue. Both quoted and unquoted strings are valid YAML. The example will work either way. The comment doesn't point out a bug or significant code quality issue. The inconsistency could potentially confuse readers about when quotes are required in YAML. Some might wonder if there's a functional difference. While there could be minor confusion, this is too trivial an issue to warrant a PR comment. YAML basics like quoted vs unquoted strings are well documented elsewhere. Delete the comment as it points out a very minor formatting inconsistency that doesn't affect functionality or significantly impact documentation clarity.
    42. documentation/integrations/webbrowser/browserbase.mdx:2
    • Draft comment:
      There is an inconsistency in naming: the title uses 'Browser Base' (with a space) while the Info sections and other parts of the document refer to the integration as 'Browserbase' (no space). Consider standardizing the naming throughout the document for clarity.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    43. documentation/integrations/webbrowser/remote-browser.mdx:15
    • Draft comment:
      Typographical error: The phrase "the that remote browser" in line 15 is redundant. Consider removing one of the articles (probably remove 'the' so it reads 'that remote browser').
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    44. documentation/integrations/webbrowser/spider.mdx:44
    • Draft comment:
      Typo detected: 'this a placeholder' should be corrected to 'this is a placeholder' for clarity.
    • Reason this comment was not posted:
      Comment was on unchanged code.
    45. documentation/julepcli/introduction.mdx:14
    • Draft comment:
      Typographical error: The code block fence on line 14 reads "bash pip". It seems that "pip" was mistakenly added. It should likely just be "bash" to correctly denote a bash code block.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    46. documentation/julepcli/introduction.mdx:92
    • Draft comment:
      Typographical error: The phrase "There are bunch of templates" on line 92 might be clearer as "There are a bunch of templates". Consider adding the missing article for improved readability.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    47. documentation/responses/examples.mdx:63
    • Draft comment:
      Typo detected: The language identifier for the code block is written as 'python Python'. It should simply be 'python' to ensure proper syntax highlighting.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    48. documentation/responses/examples.mdx:59
    • Draft comment:
      Typographical error: The example output ends with '8..' (two periods). Consider removing the extra period to read '8.' for better clarity.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    49. documentation/responses/quickstart.mdx:191
    • Draft comment:
      There's a typographical error in the block: "To learn more about the CLI one can use the checkout the CLI Documentation." It seems there is an extra or misplaced word. Consider rephrasing it to something like "To learn more about the CLI, check out the CLI Documentation."
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    50. documentation/responses/roadmap.mdx:102
    • Draft comment:
      It appears that 'Computer Tool Call Support' may contain a typographical error. Should 'Computer' be 'Component' or another intended term? Please clarify.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    51. documentation/tutorials/browser-use.mdx:369
    • Draft comment:
      Typo: The text "Juelp Browser Use Agent" appears to contain a spelling error. It should be "Julep Browser Use Agent" to maintain consistency with the repository and documentation.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 0% vs. threshold = 50% The typo is in a string that's used internally for session creation. While it is technically a misspelling, it doesn't affect functionality since this is just a descriptive string used for logging/debugging. The string appears in a tutorial/documentation file but isn't user-facing content that would confuse readers since it's in a code example. The typo could potentially confuse readers of the documentation who are trying to understand the code examples. It's in a tutorial meant to teach users. While it's in a tutorial, this particular string is an implementation detail in a code example, not instructional text. The typo doesn't impact understanding of the concepts being taught. The comment should be deleted as it points out a minor typo that doesn't affect functionality or tutorial comprehension.
    52. documentation/tutorials/rag-chatbot.mdx:135
    • Draft comment:
      Typo: The variable 'succint' is used in multiple places to join the chunks, but it should be spelled 'succinct'. Please update this spelling for clarity.
    • Reason this comment was not posted:
      Comment was on unchanged code.
    53. documentation/tutorials/rag-chatbot.mdx:328
    54. documentation/tutorials/video-processing.mdx:243
    • Draft comment:
      Typographical Error: In the prompt text, 'medial url' should be corrected to 'media URL' for clarity.
    • Reason this comment was not posted:
      Comment was on unchanged code.
    55. documentation/tutorials/video-processing.mdx:243
    • Draft comment:
      Typographical Error: In the prompt text, please change "an overlay an the following image" to "an overlay on the following image", and remove the duplicate 'to' in "I want you to to blur the video". These changes improve readability.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    56. hasura/docker-compose.yml:28
    • Draft comment:
      Minor style issue: The file is missing a trailing newline at the end. Consider adding a newline at the end of the file to comply with common file formatting expectations.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% While missing trailing newlines can cause issues with some tools and is generally considered good practice, this is a very minor formatting issue that would likely be caught by linters or formatters. It's not a logic issue or code quality concern that significantly impacts the functionality. The comment is technically correct and follows a common convention. Missing newlines can cause issues with some Git operations and tools. However, this is exactly the kind of minor formatting issue that should be handled by automated tools rather than manual review comments. It doesn't affect the logic or functionality of the docker-compose configuration. The comment should be removed as it's too minor and would be better handled by automated formatting tools.
    57. integrations-service/docker-compose.yml:4
    • Draft comment:
      The key 'x--shared-environment' has a double dash; consider renaming it to 'x-shared-environment' for consistency and to avoid confusion.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    58. llm-proxy/litellm-config.yaml:216
    • Draft comment:
      Typo: In the Cerebras models section, the model value on line 216 is "cerebras/llama3.1-8b" but the model name is "cerebras/llama-3.1-8b" (with a missing hyphen). Please update it to match the intended name.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    59. memory-store/migrations/000036_usage.down.sql:16
    • Draft comment:
      There's no newline at the end of the file. While this is a very minor, cosmetic issue, adding a newline at the end of the file can help avoid potential warnings in some development environments.
    • Reason this comment was not posted:
      Comment did not seem useful. Confidence is useful = 0% <= threshold 50% The comment is purely informative, suggesting adding a newline to avoid potential warnings. It doesn't provide a specific code suggestion or ask for a test to be written. It doesn't align with the rules for good comments.
    60. memory-store/migrations/000036_usage.down.sql:10
    • Draft comment:
      The error message on line 10 reads "An error occurred during deleting all from usage: %, %". Consider rephrasing it for clarity (e.g., "An error occurred while deleting all rows from usage: %, %") to improve readability.
    • Reason this comment was not posted:
      Decided after close inspection that this draft comment was likely wrong and/or not actionable: usefulness confidence = 10% vs. threshold = 50% This is a minor wording suggestion in an error message that would only be seen during migration failures. While the suggested wording is marginally better, this kind of minor text change doesn't affect functionality and isn't worth the overhead of a code change. Error messages don't need to be perfect as long as they're clear enough to understand the issue. The suggested wording is technically more grammatically correct and could make the error slightly clearer to developers debugging migration issues. However, the existing message is already clear enough to understand what failed, and this kind of minor text improvement doesn't justify the overhead of a code change and review cycle. Delete this comment as it suggests a minor text improvement that doesn't meaningfully impact code quality or functionality.
    61. typespec/tools/models.tsp:77
    • Draft comment:
      Typographical error: the word 'overriden' should be spelled 'overridden' in the comment for the 'name' field.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.
    62. typespec/tools/models.tsp:80
    • Draft comment:
      Typographical error: the word 'overriden' should be spelled 'overridden' in the comment for the 'description' field.
    • Reason this comment was not posted:
      Comment was not on a location in the diff, so it can't be submitted as a review comment.

    Workflow ID: wflow_2XaoDtslS5bGAzJ6

    You can customize Ellipsis by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.

    @@ -137,6 +137,34 @@ class CreateOrUpdateAgentRequest(CreateAgentRequest):
    """


    class ListModelsResponse(BaseModel):
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    These Pydantic models are identical to existing ones. Consider importing from integrations-service instead of duplicating.

    - **Minor Fix**: Resolved documentation formatting issues in 21 files 🔧
    - **Major Enhancement**: Refactored API calls to include developer ID for better tracking 📈
    - **Minor Enhancement**: Improved Gunicorn worker configurability via environment variables 📈
    - **Secondary Performance**: Integrated OpenAPI model and TyeSpecs for expanded functionality 🚀
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Typographical error: TyeSpecs appears to be a typo. Consider verifying if this should be TypeSpecs.

    Suggested change
    - **Secondary Performance**: Integrated OpenAPI model and TyeSpecs for expanded functionality 🚀
    - **Secondary Performance**: Integrated OpenAPI model and TypeSpecs for expanded functionality 🚀

    index_name: your_index_name # this is a placeholder for the actual index name
    query: searchquery # this is a placeholder for the actual search query
    hits_per_page: 10
    attributes_to_retrieve: $ ["attribute1", "attribute2"] # this is a placeholder for the actual attributes to retrieve
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    In the YAML snippet, the line attributes_to_retrieve: $ ["attribute1", "attribute2"] contains an extraneous $. This could cause issues with YAML parsing. Consider removing the $ so the line reads: attributes_to_retrieve: ["attribute1", "attribute2"].

    Suggested change
    attributes_to_retrieve: $ ["attribute1", "attribute2"] # this is a placeholder for the actual attributes to retrieve
    attributes_to_retrieve: ["attribute1", "attribute2"] # this is a placeholder for the actual attributes to retrieve

    * You are already inside the browser.
    * You can't open new tabs or windows.
    * For now, rely on screenshots as the only way to see the browser.
    * You can't don't have access to the browser's UI.
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    Typo: The text You can't don't have access to the browser's UI. should be corrected to either You don't have access to the browser's UI. or You can't access the browser's UI.. Please fix the phrasing.

    Suggested change
    * You can't don't have access to the browser's UI.
    * You don't have access to the browser's UI.

    Copy link
    Contributor

    CI Feedback 🧐

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Dependabot

    Failed stage: Run Dependabot [❌]

    Failure summary:

    The Dependabot action failed because it could not find any dependency files to analyze in the
    specified directory. The error message states "No files found in /model-serving" (line 221). This
    indicates that either:

  • The /model-serving directory doesn't exist in the repository
  • The directory exists but doesn't contain any dependency files that Dependabot can recognize (like
    requirements.txt for Python/pip)
  • There might be a configuration issue in the Dependabot setup pointing to an incorrect directory path

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    56:  Pulling image ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy:v2.0.20250404141843@sha256:488b412514454c4761bb7f61c7f632ba7c393d3d000c280682914dd6257bd37b (attempt 1)...
    57:  Successfully sent metric (dependabot.action.ghcr_image_pull) to remote API endpoint
    58:  Pulled image ghcr.io/github/dependabot-update-job-proxy/dependabot-update-job-proxy:v2.0.20250404141843@sha256:488b412514454c4761bb7f61c7f632ba7c393d3d000c280682914dd6257bd37b
    59:  ##[endgroup]
    60:  Starting update process
    61:  Created proxy container: 08ec646c6939072c9b8e03a8a4b89465723884a79a6d800407db1391f48bc497
    62:  Created container: 8fa51cb1a7e8dfe9a09a0afd0f26ab6e3910b1bd54f04120f86b2a543ca66899
    63:  proxy | 2025/04/24 17:14:23 proxy starting, commit: 0460fa31a2e2abea6b590de770e705dea33dabf6
    64:  proxy | 2025/04/24 17:14:23 Listening (:1080)
    65:  updater | Updating certificates in /etc/ssl/certs...
    66:  updater | rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
    67:  updater | 1 added, 0 removed; done.
    68:  Running hooks in /etc/ca-certificates/update.d...
    69:  updater | done.
    70:  updater | 2025/04/24 17:14:26 INFO <job_1004087754> Starting job processing
    71:  2025/04/24 17:14:26 INFO <job_1004087754> Job definition: {"job":{"allowed-updates":[{"dependency-type":"direct","update-type":"all"}],"commit-message-options":{"prefix":null,"prefix-development":null,"include-scope":null},"credentials-metadata":[{"type":"git_source","host":"github.com"}],"debug":null,"dependencies":["h11","torch","torch","torch","vllm"],"dependency-groups":[{"name":"pip","rules":{"patterns":["*"]},"applies-to":"security-updates"}],"dependency-group-to-refresh":null,"existing-pull-requests":[[{"dependency-name":"fastapi","dependency-version":"0.109.1"}]],"existing-group-pull-requests":[],"experiments":{"record-ecosystem-versions":true,"record-update-job-unknown-error":true,"proxy-cached":true,"move-job-token":true,"dependency-change-validation":true,"nuget-install-dotnet-sdks":true,"nuget-native-analysis":true,"nuget-use-direct-discovery":true,"enable-file-parser-python-local":true,"npm-fallback-version-above-v6":true,"lead-security-dependency":true,"enable-record-ecosystem-meta":true,"enable-shared-helpers-command-timeout":true,"enable-dependabot-setting-up-cronjob":true,"enable-engine-version-detection":true,"avoid-duplicate-updates-package-json":true,"allow-refresh-for-existing-pr-dependencies":true,"allow-refresh-group-with-all-dependencies":true,"exclude-local-composer-packages":true,"enable-enhanced-error-details-for-updater":true,"enable-cooldown-for-python":true,"enable-cooldown-for-uv":true,"enable-cooldown-for-npm-and-yarn":true,"enable-cooldown-for-bun":true,"enable-cooldown-for-bundler":true,"enable-cooldown-for-cargo":true,"enable-cooldown-for-maven":true},"ignore-conditions":[],"lockfile-only":false,"max-updater-run-time":2700,"package-manager":"pip","proxy-log-response-body-on-auth-failure":true,"requirements-update-strategy":null,"reject-external-code":false,"security-advisories":[{"dependency-name":"h11","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 0.16.0"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 0.8.0"]},{"dependency-name":"torch","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 2.5.1"]},{"dependency-name":"torch","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 2.6.0"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":[">= 0.6.5, < 0.8.4"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 0.6.0"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 0.8.1"]},{"dependency-name":"torch","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 2.3.1"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 0.6.2"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":[">= 0.6.5, < 0.8.0"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 0.7.2"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 0.7.0"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 0.5.5"]},{"dependency-name":"vllm","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 0.5.0.post1"]},{"dependency-name":"torch","patched-versions":[],"unaffected-versions":[],"affected-versions":["< 2.2.0"]},{"dependency-name":"torch","patched-versions":[],"unaffected-versions":[],"affected-versions":["<= 1.13.0"]}],"security-updates-only":true,"source":{"provider":"github","repo":"julep-ai/julep","branch":null,"api-endpoint":"https://api.github.com/","hostname":"github.com","directories":["/model-serving"]},"updating-a-pull-request":false,"update-subdependencies":false,"vendor-dependencies":false,"enable-beta-ecosystems":false,"repo-private":false}}
    72:  updater | 2025/04/24 17:14:26 INFO <job_1004087754> Started process PID: 1071 with command: {} git config --global credential.helper '!/home/dependabot/common/lib/dependabot/../../bin/git-credential-store-immutable --file /home/dependabot/dependabot-updater/git.store' {}
    ...
    
    206:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Started process PID: 1375 with command: {} git config --global --replace-all url.https://github.com/.insteadOf ssh://git@github.com/ {}
    207:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Process PID: 1375 completed with status: pid 1375 exit 0
    208:  2025/04/24 17:14:30 INFO <job_1004087754> Total execution time: 0.0 seconds
    209:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Started process PID: 1382 with command: {} git config --global --add url.https://github.com/.insteadOf ssh://git@github.com: {}
    210:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Process PID: 1382 completed with status: pid 1382 exit 0
    211:  2025/04/24 17:14:30 INFO <job_1004087754> Total execution time: 0.0 seconds
    212:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Started process PID: 1389 with command: {} git config --global --add url.https://github.com/.insteadOf git@github.com: {}
    213:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Process PID: 1389 completed with status: pid 1389 exit 0
    214:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Total execution time: 0.01 seconds
    215:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Started process PID: 1396 with command: {} git config --global --add url.https://github.com/.insteadOf git@github.com/ {}
    216:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Process PID: 1396 completed with status: pid 1396 exit 0
    217:  2025/04/24 17:14:30 INFO <job_1004087754> Total execution time: 0.0 seconds
    218:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Started process PID: 1403 with command: {} git config --global --add url.https://github.com/.insteadOf git://github.com/ {}
    219:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Process PID: 1403 completed with status: pid 1403 exit 0
    220:  2025/04/24 17:14:30 INFO <job_1004087754> Total execution time: 0.0 seconds
    221:  updater | 2025/04/24 17:14:30 ERROR <job_1004087754> Error during file fetching; aborting: No files found in /model-serving
    222:  proxy | 2025/04/24 17:14:30 [048] POST /update_jobs/1004087754/record_update_job_error
    223:  proxy | 2025/04/24 17:14:30 [048] 204 /update_jobs/1004087754/record_update_job_error
    224:  proxy | 2025/04/24 17:14:30 [050] PATCH /update_jobs/1004087754/mark_as_processed
    225:  proxy | 2025/04/24 17:14:30 [050] 204 /update_jobs/1004087754/mark_as_processed
    226:  updater | 2025/04/24 17:14:30 INFO <job_1004087754> Finished job processing
    227:  updater | 2025/04/24 17:14:30 INFO Results:
    228:  Dependabot encountered '1' error(s) during execution, please check the logs for more details.
    229:  +------------------------------------------------------------------------------+
    230:  |                                    Errors                                    |
    231:  +---------------------------+--------------------------------------------------+
    232:  | Type                      | Details                                          |
    233:  +---------------------------+--------------------------------------------------+
    234:  | dependency_file_not_found | {                                                |
    235:  |                           |   "message": "No files found in /model-serving", |
    236:  |                           |   "file-path": null                              |
    237:  |                           | }                                                |
    238:  +---------------------------+--------------------------------------------------+
    239:  Failure running container 8fa51cb1a7e8dfe9a09a0afd0f26ab6e3910b1bd54f04120f86b2a543ca66899
    240:  Cleaned up container 8fa51cb1a7e8dfe9a09a0afd0f26ab6e3910b1bd54f04120f86b2a543ca66899
    241:  proxy | 2025/04/24 17:14:30 4/25 calls cached (16%)
    242:  2025/04/24 17:14:30 Posting metrics to remote API endpoint
    243:  ##[error]Dependabot encountered an error performing the update
    244:  
    245:  Error: The updater encountered one or more errors.
    246:  
    247:  For more information see: https://github.com/julep-ai/julep/network/updates/1004087754 (write access to the repository is required to view the log)
    248:  🤖 ~ finished: error reported to Dependabot ~
    249:  Post job cleanup.
    
    

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

    Successfully merging this pull request may close these issues.

    5 participants