Skip to content
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

feat(agents-api): Return full objects instead of ResourceCreated/Updated #1089

Merged
merged 12 commits into from
Jan 27, 2025

Conversation

creatorrr
Copy link
Contributor

@creatorrr creatorrr commented Jan 24, 2025

User description

Signed-off-by: Diwank Singh Tomer [email protected]


PR Type

Enhancement, Bug fix, Tests


Description

  • Replaced ResourceCreatedResponse and ResourceUpdatedResponse with full object models across APIs.

    • Updated return types in routers and queries to return full objects instead of generic responses.
    • Adjusted OpenAPI specifications to reflect these changes.
  • Added new utility functions and refactored existing ones for better data transformation.

    • Introduced transform_doc utility for consistent document transformation.
    • Removed redundant transformation functions in favor of centralized utilities.
  • Enhanced test coverage and updated existing tests to align with new return types.

    • Modified assertions to validate full object structures instead of partial responses.
  • Updated TypeSpec definitions and dependencies for improved API documentation and compatibility.


Changes walkthrough 📝

Relevant files
Enhancement
15 files
Tasks.py
Added new models for task creation and updates                     
+633/-42
Tools.py
Refactored integration definitions and updated setup parameters
+31/-47 
create_doc.py
Changed return type to full document object                           
+9/-11   
list_docs.py
Replaced transformation function with centralized utility
+2/-23   
get_doc.py
Replaced transformation function with centralized utility
+2/-23   
patch_agent.py
Updated patch agent query to return full agent object       
+7/-4     
create_task_execution.py
Changed return type to dictionary for task execution         
+6/-7     
create_file.py
Updated file creation to return full file object                 
+3/-11   
create_task.py
Updated task creation to return full task object                 
+5/-6     
patch_agent.py
Updated patch agent router to return full agent object     
+3/-3     
create_doc.py
Updated document creation to return full document object 
+4/-7     
create_or_update_task.py
Updated task creation or update to return full task object
+4/-4     
update_agent.py
Updated update agent router to return full agent object   
+3/-3     
patch_task.py
Updated patch task query to return full task object           
+7/-4     
create_entries.py
Updated entry creation to return full entry object             
+4/-8     
Tests
5 files
test_docs_queries.py
Updated tests to validate full document objects                   
+15/-14 
test_task_queries.py
Updated task tests to validate full task objects                 
+3/-5     
test_session_queries.py
Adjusted session tests for new return types                           
+4/-6     
fixtures.py
Adjusted test fixtures for new document return types         
+2/-2     
test_agent_queries.py
Updated agent tests to validate full agent objects             
+2/-3     
Additional files
57 files
Common.py +0/-36   
openapi_model.py +1/-1     
template.py +1/-1     
create_agent.py +3/-3     
update_agent.py +3/-3     
create_developer.py +3/-3     
utils.py +21/-0   
create_or_update_session.py +6/-3     
create_session.py +2/-3     
patch_session.py +6/-3     
update_session.py +3/-3     
update_task.py +4/-5     
patch_tool.py +2/-2     
update_tool.py +2/-5     
patch_user.py +9/-2     
update_user.py +6/-3     
utils.py +1/-1     
create_agent.py +3/-5     
create_agent_tool.py +3/-8     
create_or_update_agent.py +3/-5     
patch_agent_tool.py +2/-5     
update_agent_tool.py +2/-5     
create_or_update_session.py +2/-5     
create_session.py +3/-12   
patch_session.py +2/-5     
update_session.py +2/-5     
create_or_update_task.py +2/-5     
create_task.py +2/-5     
create_or_update_user.py +3/-5     
create_user.py +3/-5     
patch_user.py +2/-2     
update_user.py +2/-2     
test_agent_routes.py +1/-1     
test_developer_queries.py +1/-2     
test_execution_workflow.py +0/-1     
test_file_routes.py +2/-0     
test_files_queries.py +1/-2     
test_user_queries.py +2/-4     
Chat.py +4/-21   
Common.py +12/-42 
Executions.py +1/-1     
Files.py +4/-2     
Sessions.py +1/-2     
generate_openapi_code.sh +1/-1     
endpoints.tsp +5/-5     
interfaces.tsp +16/-8   
types.tsp +0/-14   
endpoints.tsp +2/-2     
endpoints.tsp +3/-1     
endpoints.tsp +1/-1     
package-lock.json +35/-22 
package.json +8/-8     
endpoints.tsp +4/-4     
endpoints.tsp +5/-3     
openapi-1.0.0.yaml +36/-76 
tspconfig.yaml +1/-0     
endpoints.tsp +4/-4     

Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.

  • Important

    Replaced ResourceCreatedResponse and ResourceUpdatedResponse with full object models across APIs, updating return types, OpenAPI specs, utilities, and tests.

    • Behavior:
      • Replaced ResourceCreatedResponse and ResourceUpdatedResponse with full object models in APIs.
      • Updated return types in routers and queries to return full objects.
      • Adjusted OpenAPI specifications accordingly.
    • Utilities:
      • Introduced transform_doc utility for document transformation.
      • Removed redundant transformation functions.
    • Tests:
      • Enhanced test coverage for new return types.
      • Updated assertions to validate full object structures.
    • TypeSpec:
      • Updated TypeSpec definitions for improved API documentation.

    This description was created by Ellipsis for bf84810. It will automatically update as commits are pushed.

    Copy link
    Contributor

    qodo-merge-pro-for-open-source bot commented Jan 24, 2025

    CI Feedback 🧐

    (Feedback updated until commit bf84810)

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

    Action: Typecheck

    Failed stage: Typecheck [❌]

    Failed test name: agents_api.autogen.openapi_model

    Failure summary:

    The pytype check failed due to invalid type annotations in the file
    agents_api/autogen/openapi_model.py:

  • Invalid base class definition in the ListResponse class
  • Invalid type annotation for the items field using list[DataT]
  • The error occurs because the generic type parameter DataT is not properly defined or used

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    1218:  [18/299] check agents_api.clients.sync_s3
    1219:  [19/299] check agents_api.queries.utils
    1220:  [20/299] check agents_api.common.utils.db_exceptions
    1221:  [21/299] check agents_api.queries.docs.utils
    1222:  [22/299] check agents_api.common.protocol.developers
    1223:  [23/299] check agents_api.common.protocol.agents
    1224:  [24/299] check agents_api.worker.codec
    1225:  [25/299] check agents_api.autogen.openapi_model
    1226:  FAILED: /home/runner/work/julep/julep/agents-api/.pytype/pyi/agents_api/autogen/openapi_model.pyi 
    1227:  /home/runner/work/julep/julep/agents-api/.venv/bin/python -m pytype.main --disable pyi-error --imports_info /home/runner/work/julep/julep/agents-api/.pytype/imports/agents_api.autogen.openapi_model.imports --module-name agents_api.autogen.openapi_model --platform linux -V 3.12 -o /home/runner/work/julep/julep/agents-api/.pytype/pyi/agents_api/autogen/openapi_model.pyi --analyze-annotated --nofail --none-is-not-bool --quick --strict-none-binding /home/runner/work/julep/julep/agents-api/agents_api/autogen/openapi_model.py
    1228:  /home/runner/work/julep/julep/agents-api/agents_api/autogen/openapi_model.py:37:1: error: in <module>: Invalid base class: (<instance of Callable>,) [base-class-error]
    1229:  class ListResponse[DataT: BaseModel](BaseModel):
    1230:  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1231:  items: list[DataT]
    1232:  ~~~~~~~~~~~~~~~~~~~~~~
    1233:  /home/runner/work/julep/julep/agents-api/agents_api/autogen/openapi_model.py:38:12: error: in ListResponse: Invalid type annotation '<instance of Callable>'  [invalid-annotation]
    1234:  Not a type
    1235:  items: list[DataT]
    1236:  ~~~~~~~~~~~
    1237:  For more details, see https://google.github.io/pytype/errors.html
    ...
    
    1302:  [90/299] check agents_api.metrics.__init__
    1303:  [91/299] check agents_api.common.exceptions.agents
    1304:  [92/299] check agents_api.__init__
    1305:  [93/299] check agents_api.dependencies.__init__
    1306:  [94/299] check tests.test_nlp_utilities
    1307:  [95/299] check tests.test_messages_truncation
    1308:  [96/299] check agents_api.rec_sum.entities
    1309:  [97/299] check agents_api.common.utils.json
    1310:  ninja: build stopped: cannot make progress due to previous errors.
    1311:  Computing dependencies
    1312:  Generated API key since not set in the environment: 92168382545619394425263508884874
    1313:  Sentry DSN not found. Sentry will not be enabled.
    1314:  Analyzing 289 sources with 0 local dependencies
    1315:  Leaving directory '.pytype'
    1316:  ##[error]Process completed with exit code 1.
    

    @Vedantsahai18 Vedantsahai18 marked this pull request as ready for review January 25, 2025 21:56
    Copy link
    Contributor

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

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

    Code Duplication

    Multiple similar model classes are defined with only minor differences (e.g. CaseThenCreateItem/CaseThenCreateOrUpdateItem, ForeachStepCreateItem/ForeachStepCreateOrUpdateItem). Consider refactoring to reduce duplication using inheritance or composition.

    class CaseThenCreateItem(BaseModel):
        model_config = ConfigDict(
            populate_by_name=True,
        )
        case: Literal["_"] | str
        """
        The condition to evaluate
        """
        then: (
            EvaluateStep
            | ToolCallStep
            | PromptStepCreateItem
            | GetStep
            | SetStep
            | LogStep
            | YieldStep
            | ReturnStep
            | SleepStep
            | ErrorWorkflowStep
            | WaitForInputStep
        )
        """
        The steps to run if the condition is true
        """
    
    
    class CaseThenCreateOrUpdateItem(BaseModel):
        model_config = ConfigDict(
            populate_by_name=True,
        )
        case: Literal["_"] | str
        """
        The condition to evaluate
        """
        then: (
            EvaluateStep
            | ToolCallStep
            | PromptStepCreateOrUpdateItem
            | GetStep
            | SetStep
            | LogStep
            | YieldStep
            | ReturnStep
            | SleepStep
            | ErrorWorkflowStep
            | WaitForInputStep
        )
        """
        The steps to run if the condition is true
        """
    
    
    class CaseThenUpdateItem(BaseModel):
        model_config = ConfigDict(
            populate_by_name=True,
    Type Consistency

    The create_doc function returns a dict type but is used in tests as if it returns a Doc model. Consider making the return type consistent across the codebase.

    @wrap_in_class(
        dict,
        one=True,
        transform=lambda d: {

    Copy link
    Contributor

    qodo-merge-pro-for-open-source bot commented Jan 25, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Score
    Possible issue
    ✅ Remove hardcoded mock data
    Suggestion Impact:The hardcoded mock data {'main': [{'evaluate': {'hi': '_'}}]} was removed from the transform lambda function

    code diff:

    -    transform=lambda d: {
    -        **d,
    -        "id": d["task_id"],
    -        "main": [{"evaluate": {"hi": "_"}}],
    -    },

    The hardcoded mock task main field with {"evaluate": {"hi": "_"}} should be removed
    as it overwrites the actual task data.

    agents-api/agents_api/queries/tasks/patch_task.py [117-121]

     transform=lambda d: {
         **d,
         "id": d["task_id"],
    -    "main": [{"evaluate": {"hi": "_"}}],
     },
    • Apply this suggestion
    Suggestion importance[1-10]: 9

    Why: The suggestion removes a serious bug where hardcoded mock data overwrites the actual task data, which would break task functionality in production.

    9
    Add task schema validation

    Add input schema validation for the task before creating/updating it to prevent
    invalid task specifications from being stored.

    agents-api/agents_api/queries/tasks/create_or_update_task.py [24-25]

    -# TODO: Do thorough validation of the task spec
    -# SCRUM-10
    +# Validate task input schema
    +if data.input_schema:
    +    try:
    +        validate(data.input_schema, Draft7Validator.META_SCHEMA)
    +    except (SchemaError, ValidationError) as e:
    +        raise HTTPException(status_code=400, detail=f"Invalid input schema: {str(e)}")
    • Apply this suggestion
    Suggestion importance[1-10]: 8

    Why: The suggestion adds crucial input schema validation to prevent invalid task specifications, which could lead to runtime errors or data integrity issues.

    8
    Validate coordinate list length

    The coordinate field in RemoteBrowserArguments and RemoteBrowserArgumentsUpdate
    should validate that exactly 2 integers are provided for x,y coordinates. Add a
    validator to ensure the list has exactly 2 elements.

    integrations-service/integrations/autogen/Tools.py [1482-1493]

     coordinate: Annotated[
         list | None,
         Field(
             json_schema_extra={
                 "prefixItems": [
                     {"type": "integer", "format": "uint16"},
                     {"type": "integer", "format": "uint16"},
    -            ]
    +            ],
    +            "minItems": 2,
    +            "maxItems": 2
             }
         ),
     ] = None
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    Why: The suggestion improves input validation by ensuring the coordinate list contains exactly 2 elements for x,y coordinates, preventing potential runtime errors from invalid coordinate data.

    7
    ✅ Add null check for JSON parsing

    Add null check before attempting to parse embeddings as JSON to prevent potential
    JSON decoding errors on invalid input.

    agents-api/agents_api/queries/docs/utils.py [45-48]

    -if isinstance(embeddings, str):
    -    embeddings = json.loads(embeddings)
    -elif isinstance(embeddings, list) and all(isinstance(e, str) for e in embeddings):
    -    embeddings = [json.loads(e) for e in embeddings]
    +if embeddings:
    +    if isinstance(embeddings, str):
    +        embeddings = json.loads(embeddings) if embeddings.strip() else None
    +    elif isinstance(embeddings, list) and all(isinstance(e, str) for e in embeddings):
    +        embeddings = [json.loads(e) for e in embeddings if e.strip()]

    [Suggestion has been applied]

    Suggestion importance[1-10]: 7

    Why: The suggestion adds important null checks and string validation before JSON parsing, which helps prevent potential runtime errors from empty or malformed input strings.

    7

    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.

    👍 Looks good to me! Reviewed everything up to ac1d6b2 in 1 minute and 2 seconds

    More details
    • Looked at 3668 lines of code in 76 files
    • Skipped 1 files when reviewing.
    • Skipped posting 5 drafted comments based on config settings.
    1. typespec/users/endpoints.tsp:14
    • Draft comment:
      The CreateEndpoint, CreateOrUpdateEndpoint, UpdateEndpoint, and PatchEndpoint interfaces now include a Type parameter to specify the response type. This change ensures that the response type is explicitly defined as User, aligning with the PR's intent to return full objects instead of ResourceCreated/Updated responses.
    • Reason this comment was not posted:
      Comment did not seem useful.
    2. typespec/common/interfaces.tsp:36
    • Draft comment:
      The CreateEndpoint, CreateOrUpdateEndpoint, UpdateEndpoint, and PatchEndpoint interfaces now include a Type parameter to specify the response type. This change ensures that the response type is explicitly defined, aligning with the PR's intent to return full objects instead of ResourceCreated/Updated responses.
    • Reason this comment was not posted:
      Marked as duplicate.
    3. typespec/common/interfaces.tsp:52
    • Draft comment:
      The CreateOrUpdateEndpoint interface now includes a Type parameter to specify the response type. This change ensures that the response type is explicitly defined, aligning with the PR's intent to return full objects instead of ResourceCreated/Updated responses.
    • Reason this comment was not posted:
      Marked as duplicate.
    4. typespec/common/interfaces.tsp:74
    • Draft comment:
      The UpdateEndpoint interface now includes a Type parameter to specify the response type. This change ensures that the response type is explicitly defined, aligning with the PR's intent to return full objects instead of ResourceCreated/Updated responses.
    • Reason this comment was not posted:
      Marked as duplicate.
    5. typespec/common/interfaces.tsp:96
    • Draft comment:
      The PatchEndpoint interface now includes a Type parameter to specify the response type. This change ensures that the response type is explicitly defined, aligning with the PR's intent to return full objects instead of ResourceCreated/Updated responses.
    • Reason this comment was not posted:
      Marked as duplicate.

    Workflow ID: wflow_Hm17ya5BEHDuwPXY


    You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

    @Vedantsahai18 Vedantsahai18 force-pushed the f/better-return-models branch from be1e58c to c5dba13 Compare January 25, 2025 21:57
    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.

    👍 Looks good to me! Incremental review on c5dba13 in 24 seconds

    More details
    • Looked at 34 lines of code in 2 files
    • Skipped 0 files when reviewing.
    • Skipped posting 2 drafted comments based on config settings.
    1. agents-api/agents_api/queries/entries/create_entries.py:8
    • Draft comment:
      Reorder imports to follow the convention: standard library imports, third-party imports, and then local application imports.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The import order in Python should follow the convention of standard library imports, third-party imports, and then local application imports. The current order in create_entries.py does not follow this convention.
    2. agents-api/tests/test_task_queries.py:40
    • Draft comment:
      Add an assertion to verify that the task was created successfully. This ensures the test checks the expected outcome.
    • Reason this comment was not posted:
      Comment was on unchanged code.

    Workflow ID: wflow_KKVBXkbTn4j2IxbY


    You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

    Vedantsahai18 and others added 2 commits January 25, 2025 17:00
    Co-authored-by: qodo-merge-pro-for-open-source[bot] <189517486+qodo-merge-pro-for-open-source[bot]@users.noreply.github.com>
    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.

    👍 Looks good to me! Incremental review on 128534c in 13 seconds

    More details
    • Looked at 14 lines of code in 2 files
    • Skipped 0 files when reviewing.
    • Skipped posting 0 drafted comments based on config settings.

    Workflow ID: wflow_02vMlhWJuoTMgFTQ


    You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and 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.

    👍 Looks good to me! Incremental review on 0861a1b in 31 seconds

    More details
    • Looked at 26 lines of code in 2 files
    • Skipped 0 files when reviewing.
    • Skipped posting 1 drafted comments based on config settings.
    1. agents-api/agents_api/queries/docs/create_doc.py:59
    • Draft comment:
      The @pg_query() decorator should be used without parentheses.
    @pg_query
    
    • Reason this comment was not posted:
      Comment looked like it was already resolved.

    Workflow ID: wflow_VZAbvPgxCvomY2zn


    You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

    agents-api/agents_api/queries/entries/create_entries.py Outdated Show resolved Hide resolved
    agents-api/agents_api/queries/tasks/create_task.py Outdated Show resolved Hide resolved
    agents-api/agents_api/routers/docs/create_doc.py Outdated Show resolved Hide resolved
    agents-api/agents_api/routers/docs/create_doc.py Outdated Show resolved Hide resolved
    agents-api/tests/test_agent_queries.py Show resolved Hide resolved
    """


    class Main(BaseModel):
    Copy link
    Contributor

    Choose a reason for hiding this comment

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

    There's something wrong with this file in general. This is the map step. And seems like the old Main model is called MainModel now.

    Copy link
    Member

    Choose a reason for hiding this comment

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

    i guess it's typespec issue ?

    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.

    ❌ Changes requested. Incremental review on 4d3dd14 in 1 minute and 3 seconds

    More details
    • Looked at 786 lines of code in 17 files
    • Skipped 0 files when reviewing.
    • Skipped posting 5 drafted comments based on config settings.
    1. agents-api/agents_api/queries/docs/utils.py:43
    • Draft comment:
      Ensure that the embeddings key is handled properly to avoid potential KeyError. Consider using d.get("embeddings", []) to provide a default value.
    • Reason this comment was not posted:
      Comment did not seem useful.
    2. agents-api/agents_api/queries/entries/create_entries.py:66
    • Draft comment:
      The pg_query decorator has debug=True, which might not be intended for production. Consider removing it or controlling it via a configuration setting.
    • Reason this comment was not posted:
      Comment looked like it was already resolved.
    3. agents-api/agents_api/queries/tasks/create_task.py:100
    • Draft comment:
      The pg_query decorator is missing a return type annotation for fetchrow. Ensure it includes fetchrow as a possible return type.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The create_task function in create_task.py is missing a return type annotation for the pg_query decorator. It should include fetchrow as a possible return type.
    4. agents-api/agents_api/queries/tasks/create_or_update_task.py:133
    • Draft comment:
      The pg_query decorator is missing a return type annotation for fetchrow. Ensure it includes fetchrow as a possible return type.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The create_or_update_task function in create_or_update_task.py is missing a return type annotation for the pg_query decorator. It should include fetchrow as a possible return type.
    5. agents-api/agents_api/routers/tasks/create_task_execution.py:118
    • Draft comment:
      The pg_query decorator is missing a return type annotation for fetchrow. Ensure it includes fetchrow as a possible return type.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The create_task_execution function in create_task_execution.py is missing a return type annotation for the pg_query decorator. It should include fetchrow as a possible return type.

    Workflow ID: wflow_yh1xpV3lVQoRBUYv


    Want Ellipsis to fix these issues? Tag @ellipsis-dev in a comment. You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and 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.

    👍 Looks good to me! Incremental review on bf84810 in 21 seconds

    More details
    • Looked at 117 lines of code in 6 files
    • Skipped 0 files when reviewing.
    • Skipped posting 4 drafted comments based on config settings.
    1. agents-api/agents_api/queries/tasks/create_or_update_task.py:8
    • Draft comment:
      The import order of spec_to_task and task_to_spec is inconsistent across files. Consider maintaining a consistent order for better readability.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The import statement for task_to_spec and spec_to_task is inconsistent across files. It should be consistent for better readability and maintainability.
    2. agents-api/agents_api/queries/tasks/create_task.py:8
    • Draft comment:
      The import order of spec_to_task and task_to_spec is inconsistent across files. Consider maintaining a consistent order for better readability.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The import statement for task_to_spec and spec_to_task is inconsistent across files. It should be consistent for better readability and maintainability.
    3. agents-api/agents_api/queries/tasks/patch_task.py:7
    • Draft comment:
      The import order of spec_to_task and task_to_spec is inconsistent across files. Consider maintaining a consistent order for better readability.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The import statement for task_to_spec and spec_to_task is inconsistent across files. It should be consistent for better readability and maintainability.
    4. agents-api/agents_api/queries/tasks/update_task.py:7
    • Draft comment:
      The import order of spec_to_task and task_to_spec is inconsistent across files. Consider maintaining a consistent order for better readability.
    • Reason this comment was not posted:
      Confidence changes required: 50%
      The import statement for task_to_spec and spec_to_task is inconsistent across files. It should be consistent for better readability and maintainability.

    Workflow ID: wflow_8ug4uq5dX7RGDEwm


    You can customize Ellipsis with 👍 / 👎 feedback, review rules, user-specific overrides, quiet mode, and more.

    @HamadaSalhab HamadaSalhab merged commit dbde7a8 into dev Jan 27, 2025
    11 of 18 checks passed
    @HamadaSalhab HamadaSalhab deleted the f/better-return-models branch January 27, 2025 08:08
    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.

    3 participants