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

dev -> main #582

Merged
merged 114 commits into from
Oct 13, 2024
Merged

dev -> main #582

merged 114 commits into from
Oct 13, 2024

Conversation

creatorrr
Copy link
Contributor

No description provided.

HamadaSalhab and others added 30 commits September 30, 2024 15:43
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Implement `ToolCallStep` and fix transition logic after `PromptStep`
in workflow execution.
> 
>   - **ToolCallStep Implementation**:
> - Implements `tool_call_step()` in `tool_call_step.py` to handle tool
calls, including generating a call ID and validating tool names.
> - Updates `STEP_TO_ACTIVITY` in `task_execution/__init__.py` to map
`ToolCallStep` to `tool_call_step()`.
>   - **PromptStep Transition Fix**:
> - Updates transition logic in `task_execution/__init__.py` to handle
tool calls after a `PromptStep`.
> - Removes unused code related to tool calls in `PromptStep` handling.
>   - **State Machine Update**:
> - Updates `valid_transitions` in `tasks.py` to allow 'wait' to 'step'
transition.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 5ab9e3a. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> This PR updates the handling of integrations and systems by adding new
models, updating workflows, and modifying session options, along with
dependency updates and a migration script.
> 
>   - **Behavior**:
> - Adds `execute_integration` function in `execute_integration.py` to
handle integration tool calls.
> - Updates `prompt_step.py` to handle unwrapping of prompt responses
and tool call results.
> - Modifies `tool_call_step.py` to handle tool calls using `Tool`
model.
>   - **Models**:
>     - Adds `IntegrationDef` and `SystemDef` models in `Tools.py`.
> - Updates `CreateToolRequest`, `PatchToolRequest`,
`UpdateToolRequest`, and `Tool` to use `IntegrationDef` and `SystemDef`.
> - Adds `forward_tool_results` option to session models in
`Sessions.py`.
>   - **Workflow**:
> - Updates `TaskExecutionWorkflow` in `task_execution/__init__.py` to
handle integration tool calls.
>   - **Dependencies**:
> - Updates `@typespec/*` dependencies in `package.json` to version
`0.60.x`.
>   - **Migration**:
> - Adds migration script
`migrate_1727235852_add_forward_tool_calls_option.py` to add
`forward_tool_calls` option to sessions.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for a49aa12. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Introduces a new integration service with FastAPI, Docker setup, and support for multiple integrations like DALL-E and Wikipedia.

- Integration Service:
  + Adds integrations-service with Docker setup in docker-compose.yml and Dockerfile.
  + FastAPI application in web.py with routers for execution and integration management.
- Models:
  + Defines models for DalleImageGenerator, DuckDuckGoSearch, HackerNews, Weather, and Wikipedia in models directory.
  + IntegrationExecutionRequest and IntegrationExecutionResponse for handling execution requests.
- Utilities:
  + Implements execute_integration in execute_integration.py to handle integration execution logic.
  + Integration utilities for DALL-E, DuckDuckGo, Hacker News, Weather, and Wikipedia in utils/integrations.
- Configuration:
  + Adds pyproject.toml for dependency management with Poetry.
  + Adds pytype.toml for type checking configuration.
#521)

- **fix(typespec,agents-api): Rename integration providers**
- **feat(agents-api,integrations): Working integrations for tool-call
step**

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add integration service handling for tool-call steps in agents API,
including provider renames and workflow updates.
> 
>   - **Integrations**:
> - Implement `run_integration_service` in `clients/integrations.py` to
handle integration service calls.
> - Update `execute_integration` in `activities/execute_integration.py`
to use `run_integration_service` for non-dummy providers.
> - Add `INTEGRATION_SERVICE_URL` to `.env.example`, `env.py`, and
`docker-compose.yml`.
>   - **Renames**:
> - Rename integration providers in `Tools.py` and `scalars.tsp` (e.g.,
`dall-e` to `dalle_image_generator`).
>   - **Workflows**:
> - Update `task_execution/__init__.py` to handle integration tool calls
using `execute_integration`.
>   - **Tests**:
>     - Add `integration_example.yaml` for sample tasks.
> - Add tests for integration tool calls in
`test_execution_workflow.py`.
> - Add `patch_integration_service` in `utils.py` for mocking
integration service calls.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for f13f8dd. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Removes unnecessary transition call in `WaitForInputStep` case in
`TaskExecutionWorkflow.run()` and updates tests accordingly.
> 
>   - **Behavior**:
> - Removes `await transition(context, type="wait", output=output)` from
`WaitForInputStep` case in `run()` in `__init__.py`.
>   - **Tests**:
> - Updates `test_execution_workflow.py` to ensure workflow behaves
correctly without the removed transition call.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 6600cee. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
…d Upgrade to python 3.12 (#525)

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

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Upgrade to Python 3.12 and add support for reading setup arguments
from metadata in `agents-api`.
> 
>   - **Python Version Upgrade**:
> - Upgrade Python to 3.12 in `.tool-versions`, `Dockerfile`,
`Dockerfile.worker`, `pyproject.toml`, and `pytype.toml`.
>   - **Setup Arguments from Metadata**:
> - `execute_integration()` in `execute_integration.py` now reads setup
arguments from metadata.
> - `get_tool_args_from_metadata()` in `get_tool_args_from_metadata.py`
updated to handle `arg_type` for "args" and "setup".
>   - **CI and Documentation**:
>     - Delete `generate-docs.yml` workflow.
> - Update `lint-and-format.yml` to focus on `agents-api` and use Python
3.12.
>     - Update `pytype` version in `pyproject.toml`.
> - Change `x-tool-parameters` to `x-integration-args` in
`julep-concepts.md`.
>     - Adjust backup schedule in `docker-compose.yml` from 1h to 3h.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for b1c0615. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Introduce Docker Bake for building and pushing images with updated GitHub Actions workflows and Dockerfiles.

  - **GitHub Actions Workflows**:
    - Add `.github/workflows/dev-push-to-hub.yml` and `.github/workflows/main-push-to-hub.yml` for building and pushing images on `dev` and `main` branch merges.
    - Remove `push-to-hub.yml` workflow.
  - **Docker Build System**:
    - Introduce `docker-bake.hcl` for defining Docker build targets and configurations.
    - Update Dockerfiles in `agents-api`, `agents-api.worker`, `agents-api.migration` to use Docker Bake.
  - **Documentation**:
    - Update `CONTRIBUTING.md` with instructions for building Docker images using Docker Bake.
  - **Miscellaneous**:
    - Add submodules for `sdks/node-sdk` and `sdks/python-sdk`.
  - **GitHub Actions**:
    - Add `docker-bake-on-pr.yml` for baking images on pull requests.
    - Rename `dev-push-to-hub.yml` to `bake-push-to-hub.yml` and `main-push-to-hub.yml` to `latest-push-to-hub.yml`.
    - Update `bake-push-to-hub.yml` and `latest-push-to-hub.yml` to use `docker/bake-action@v5` and remove branch name and git sha setting steps.
Update GitHub Actions workflow to generate changelog from release notes on release event.

  - **Workflow Changes**:
    - Renames workflow from `Changelog CI` to `Changelog on release` in `.github/workflows/changelog-ci.yml`.
    - Changes trigger from `pull_request` to `release` with type `published`.
  - **Actions**:
    - Updates `actions/checkout` from `v2` to `v4` with `fetch-depth: 0` and `ref: dev`.
    - Replaces `saadmk11/[email protected]` with `rhysd/changelog-from-release/action@v3` to generate changelog from release notes.
Enhance workflows to bake images on release and generate changelogs from release notes.

  - **Workflows**:
    - Update `.github/workflows/bake-push-to-hub.yml` to trigger on `release` events in addition to `push` to `dev` and tags `v*`.
    - Update `.github/workflows/changelog-ci.yml` to trigger on `release` events and generate changelog from release notes using `rhysd/changelog-from-release/action@v3`.
  - **Workflow Addition**:
    - Adds `bandit-security-check-python-agents-api.yml` to `.github/workflows/`.
    - Triggers on pull requests to the `main` branch.
  - **Security Check**:
    - Uses `mdegis/[email protected]` to check Python code in `./agents-api/agents_api`.
    - Configured with `level: high` and `confidence: high`.
    - `exit_zero: true` allows workflow to pass even if issues are found.
  - **Workflow Configuration**:
    - Adds `dev` branch to trigger `bandit-security-check-python-agents-api.yml` workflow.
    - Updates Bandit action version from `v1.1` to `v1.0.1` in the workflow.
…ons service (#540)

Add new integrations for Brave, BrowserBase, and Spider, and refactor the integration service to support these changes.

  - **Integrations**:
    - Add new providers: `brave`, `browserbase`, and `spider` in `providers.py`.
    - Refactor existing providers: `wikipedia`, `weather`, `hacker_news`.
  - **Models**:
    - Add `BraveSearchSetup`, `BraveSearchArguments`, `BraveSearchOutput` in `brave.py`.
    - Add `BrowserBaseSetup`, `BrowserBaseLoadArguments`, `BrowserBaseLoadOutput` in `browserbase.py`.
    - Add `SpiderSetup`, `SpiderFetchArguments`, `SpiderFetchOutput` in `spider.py`.
    - Update `ExecutionRequest`, `ExecutionResponse` in `execution.py` to include new providers.
  - **Routers**:
    - Add `get_integration` in `get_integration.py`.
    - Add `get_integration_tool` in `get_integration_tool.py`.
    - Update `execute` in `execute.py` to handle new providers and methods.
  - **Utilities**:
    - Refactor `execute_integration` in `execute_integration.py` to dynamically load and execute provider methods.
    - Add integration logic for new providers in `integrations/utils/integrations/`.
  - **Misc**:
    - Update `pyproject.toml` to include new dependencies: `spider-client`, `browserbase`.
    - Update `scalars.tsp` and `models.tsp` to include new integration providers.
Updated the main image 1-line description
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Improves task execution updates by encoding task tokens with metadata
and enhancing error handling in `raise_complete_async.py` and
`update_execution.py`.
> 
>   - **Behavior**:
> - In `raise_complete_async.py`, task tokens are now base64 encoded and
include metadata with activity, run, and workflow IDs.
> - In `update_execution.py`, added error handling for stopping and
resuming executions, using metadata for async activity handle retrieval.
>   - **Database Queries**:
> - In `get_paused_execution_token.py`, query updated to include
`metadata` and sort by `created_at` with a limit of 1.
>   - **Error Handling**:
> - Added try-except blocks in `update_execution.py` to handle
exceptions when stopping or resuming executions.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for f3de527. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Fixes `name` attribute in `get_job_status` in `routers.py` and updates
string encoding and exception syntax in other files.
> 
>   - **Behavior**:
> - Fixes `name` attribute in `get_job_status` function in `routers.py`
to use `job_description.workflow_type` instead of `handle.id`.
>   - **Formatting**:
> - Adjusts string encoding in `raise_complete_async.py` and
`update_execution.py` to use double quotes for `ascii`.
> - Updates exception raising syntax in `update_execution.py` for
consistency.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for bfc8490. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->
…RIBUTING.md file (#543)

Added temporal payload decoding route, updated setup instructions in `CONTRIBUTING.md`, and modified Docker and FastAPI configurations.

  - **New Features**:
    - Added `/temporal/decode` route in `router.py` for decoding temporal payloads using `PydanticEncodingPayloadConverter`.
  - **Documentation**:
    - Updated `CONTRIBUTING.md` with setup instructions, including environment setup, Docker volume creation, and running the project in single or multi-tenant mode.
  - **Configuration**:
    - Added `internal.router` to `web.py` to include the new internal routes.
    - Updated `docker-compose.yml` to expose port `8080` for `agents-api` and `agents-api-multi-tenant` services.
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Add `README.md` to `cookbooks` with Jupyter notebook overview and
Colab links.
> 
>   - **Documentation**:
>     - Adds `README.md` to `cookbooks` directory.
>     - Provides an overview of Jupyter notebooks for AI tasks.
> - Includes Colab links for each notebook:
`01-Website_Crawler_using_Spider.ipynb`,
`02-Sarcastic_News_Headline_Generator.ipynb`,
`03-SmartResearcher_With_WebSearch.ipynb`,
`04-TripPlanner_With_Weather_And_WikiInfo.ipynb`.
>     - Contact information and contribution guidelines included.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for a1ad58e. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
…pressions in task creation | Add validation for subworkflows (#570)

Closes #535 

<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Add static validation for Python expressions and Jinja templates in
task creation and validate subworkflows in `openapi_model.py` and
`steps.tsp`.
> 
>   - **Validation**:
> - Add `validate_python_expression()` and `validate_jinja_template()`
in `openapi_model.py`.
> - Integrate validation into `EvaluateStep`, `ToolCallStep`,
`PromptStep`, `SetStep`, `LogStep`, `ReturnStep`, `YieldStep`,
`IfElseWorkflowStep`, and `MapReduceStep` in `openapi_model.py`.
>   - **Models**:
> - Update `CreateTaskRequest` in `openapi_model.py` to validate
subworkflows using `WorkflowType`.
> - Add `YieldStep` to `MappableWorkflowStep` and
`NonConditionalWorkflowStep` in `steps.tsp`.
>   - **Misc**:
>     - Reorder `YieldStep` in `Tasks.py` to maintain consistency.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 9952ad5. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Diwank Singh Tomer <[email protected]>
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Adds detailed code reading and contributing instructions to
`CONTRIBUTING.md`, covering project architecture, setup, and
contribution guidelines.
> 
>   - **Documentation**:
>     - Adds detailed code reading instructions to `CONTRIBUTING.md`.
> - Includes sections on project overview, system architecture, API
specifications, core API implementation, database and storage, workflow
management, testing, and additional services.
> - Provides a step-by-step guide for setting up the development
environment and contributing to the project.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 4bb3e8c. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
…573)

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

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Refactor validation logic using monkeypatching and add new models and
custom types in `openapi_model.py`.
> 
>   - **Validation Refactor**:
> - Switch from subclassing to monkeypatching for validation functions
in `EvaluateStep`, `ToolCallStep`, `PromptStep`, `SetStep`, `LogStep`,
`ReturnStep`, `YieldStep`, `IfElseWorkflowStep`, and `MapReduceStep`.
>     - Add validators for Python expressions and Jinja templates.
>   - **Model Changes**:
>     - Add `CreateTransitionRequest` and `CreateEntryRequest` classes.
> - Define custom types `ChatMLContent`, `ChatMLRole`, `ChatMLSource`,
`ExecutionStatus`, and `TransitionType`.
>   - **Misc**:
> - Allow extra fields in `CreateTaskRequest`, `PatchTaskRequest`, and
`UpdateTaskRequest` using `ConfigDict`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 8c03d93. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Signed-off-by: Diwank Singh Tomer <[email protected]>
HamadaSalhab and others added 21 commits October 8, 2024 21:08
… Add more non-retryable errors (#612)

<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Replaces retry policies with Temporal interceptors to handle
non-retryable errors and updates worker to use these interceptors.
> 
>   - **Interceptors**:
> - Add `CustomActivityInterceptor` and `CustomWorkflowInterceptor` in
`interceptors.py` to handle non-retryable errors by raising
`ApplicationError`.
> - `CustomInterceptor` combines both activity and workflow
interceptors.
>   - **Non-Retryable Errors**:
> - Define `NON_RETRYABLE_ERROR_TYPES` and `is_non_retryable_error()` in
`exceptions/tasks.py` to identify non-retryable errors.
>   - **Retry Policy**:
> - Set `DEFAULT_RETRY_POLICY` to `None` in `retry_policies.py` due to
conflict with interceptors.
>   - **Worker**:
> - Update `create_worker()` in `worker.py` to use `CustomInterceptor`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 7a50b72. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: HamadaSalhab <[email protected]>
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->


----

> [!IMPORTANT]
> Replace `docs/README.md` with a symbolic link to `README.md` for
consistency and reduced redundancy.
> 
>   - **Documentation**:
> - Replace `docs/README.md` with a symbolic link to `README.md` to
ensure consistency and reduce redundancy.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 00cba9f. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
…yable errors (#622)

Added the following exceptions:

- `litellm.exceptions.NotFoundError`.
- `litellm.exceptions.InvalidRequestError`.
- `litellm.exceptions.AuthenticationError`.
- `litellm.exceptions.ServiceUnavailableError`.
- `litellm.exceptions.OpenAIError`.
- `litellm.exceptions.APIError`.
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add LiteLLM exceptions to non-retryable errors in `tasks.py`.
> 
>   - **Exceptions**:
> - Added `litellm.exceptions.NotFoundError`, `InvalidRequestError`,
`AuthenticationError`, `ServiceUnavailableError`, `OpenAIError`, and
`APIError` to `NON_RETRYABLE_ERROR_TYPES` in `tasks.py`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 018360c. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
…nside `foreach` step (#625)

<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Add `WaitForInputStep` to `foreach` step in agents API, updating
`Tasks.py`, `steps.tsp`, and OpenAPI specs.
> 
>   - **Behavior**:
> - Add `WaitForInputStep` to `ForeachDo` and `ForeachDoUpdateItem` in
`Tasks.py`, allowing it as a valid step in `foreach`.
> - Update `SequentialWorkflowStep` alias in `steps.tsp` to include
`WaitForInputStep`.
>   - **OpenAPI**:
> - Update `openapi-0.4.0.yaml` and `openapi-1.0.0.yaml` to include
`WaitForInputStep` in `ForeachDo` and `ForeachDoUpdateItem` schemas.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for ac9b7c1. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
- **fix(agents-api): Allow url etc to be overridden by arguments**
- **fix(agents-api): base64 encode http content**
- **feat(agents-api): Extend stdlib**
- **fix(agents-api): Fix interceptors and simplify get/set steps**
- **fix(agents-api): Fix the bug where execution.output was not being
set**

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> This PR enhances API call execution, extends the standard library,
improves error handling, refines execution transitions, and updates
workflow execution in the `agents-api` module.
> 
>   - **API Call Execution**:
> - `execute_api_call` in `excecute_api_call.py` now supports overriding
`url` and `headers` via `RequestArgs`.
>     - HTTP content is base64 encoded before being returned.
>   - **Standard Library Extension**:
> - `utils.py` extended with classes for `re`, `json`, `yaml`, `time`,
`random`, `itertools`, `functools`, `base64`, `urllib`, `string`,
`zoneinfo`, `datetime`, `math`, and `statistics`.
>   - **Error Handling**:
> - Updated `is_non_retryable_error` in `exceptions/tasks.py` to accept
`BaseException`.
> - `CustomActivityInterceptor` and `CustomWorkflowInterceptor` in
`interceptors.py` now handle `BaseException`.
>   - **Execution Transition**:
> - Fixed bug in `create_execution_transition.py` where
`execution.output` was not set correctly for non-error transitions.
>   - **Workflow Execution**:
> - Removed user state management from `TaskExecutionWorkflow` in
`task_execution/__init__.py`.
> - Updated `continue_as_child` in `helpers.py` to handle user state via
workflow memo.
>   - **Testing**:
> - Updated tests in `test_execution_workflow.py` to cover new
functionalities and ensure correct behavior.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 2b78559. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: creatorrr <[email protected]>
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add Claude-generated notebooks for task execution and management using
Julep client, with updates to execution handling and agent models.
> 
>   - **Behavior**:
> - Adds `time.sleep()` to wait for task execution completion in
`01-Website_Crawler_using_Spider.py`,
`02-Sarcastic_News_Headline_Generator.py`,
`03-SmartResearcher_With_WebSearch.py`,
`04-TripPlanner_With_Weather_And_WikiInfo.py`,
`07-Integrating_External_Tools_and_APIs.py`,
`08-Managing_Persistent_Sessions.py`,
`09-User_Management_and_Personalization.py`,
`10-Document_Management_and_Search.py`,
`11-Advanced_Chat_Interactions.py`, `12-Monitoring_Task_Executions.py`,
and `13-Error_Handling_and_Recovery.py`.
> - Updates print statements for execution steps in
`01-Website_Crawler_using_Spider.py`,
`02-Sarcastic_News_Headline_Generator.py`,
`03-SmartResearcher_With_WebSearch.py`,
`04-TripPlanner_With_Weather_And_WikiInfo.py`,
`07-Integrating_External_Tools_and_APIs.py`,
`08-Managing_Persistent_Sessions.py`,
`09-User_Management_and_Personalization.py`,
`10-Document_Management_and_Search.py`,
`11-Advanced_Chat_Interactions.py`, `12-Monitoring_Task_Executions.py`,
and `13-Error_Handling_and_Recovery.py`.
> - Changes agent model to `gpt-4o` in
`05-Basic_Agent_Creation_and_Interaction.py`,
`06-Designing_Multi-Step_Tasks.py`,
`07-Integrating_External_Tools_and_APIs.py`,
`08-Managing_Persistent_Sessions.py`,
`09-User_Management_and_Personalization.py`,
`10-Document_Management_and_Search.py`,
`11-Advanced_Chat_Interactions.py`, `12-Monitoring_Task_Executions.py`,
and `13-Error_Handling_and_Recovery.py`.
>   - **Misc**:
> - Adds "UNDER CONSTRUCTION" comments to indicate incomplete
functionality in `05-Basic_Agent_Creation_and_Interaction.py`,
`10-Document_Management_and_Search.py`,
`11-Advanced_Chat_Interactions.py`, `12-Monitoring_Task_Executions.py`,
and `13-Error_Handling_and_Recovery.py`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 7ffae7f. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: vedantsahai18 <[email protected]>
Co-authored-by: Ikko Eltociear Ashimine <[email protected]>
Co-authored-by: creatorrr <[email protected]>
<!-- ELLIPSIS_HIDDEN -->



> [!IMPORTANT]
> Fix broken `CONTRIBUTING.md` link and update Table of Contents in
`README.md` and `docs/README.md`.
> 
>   - **Links**:
> - Update `CONTRIBUTING.md` link to absolute URL in `README.md` and
`docs/README.md`.
>   - **Table of Contents**:
> - Add "Call for Contributors!" and "DevFest.AI October 2024" sections
to TOC in `README.md` and `docs/README.md`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for e31f247. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Co-authored-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> Add Prometheus and Grafana support with FastAPI metrics and Docker
Compose configurations.
> 
>   - **Metrics Integration**:
> - Add `prometheus-fastapi-instrumentator` to `web.py` for FastAPI
metrics.
> - Update `pyproject.toml` to include
`prometheus-fastapi-instrumentator` dependency.
>   - **Docker Compose**:
> - Add `prometheus/docker-compose.yml` for Prometheus configuration.
>     - Add `grafana/docker-compose.yml` for Grafana configuration.
> - Update root `docker-compose.yml` to include Prometheus and Grafana
services.
>   - **Traefik Configuration**:
> - Update `traefik.yml.template` to route `/grafana` to Grafana
service.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 124ecc7. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Diwank Singh Tomer <[email protected]>
<!-- ELLIPSIS_HIDDEN -->


> [!IMPORTANT]
> `create_or_update_agent` now excludes unset fields from
`default_settings`, and a test is skipped in `test_docs_queries.py`.
> 
>   - **Behavior**:
> - In `create_or_update_agent`, `default_settings` now uses
`model_dump(exclude_unset=True)` to exclude unset fields.
>   - **Tests**:
> - Skips test `model: get docs` in `test_docs_queries.py` with a note
to execute embedding workflow to fix it.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for b49f435. It will automatically
update as commits are pushed.</sup>


<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: Diwank Singh Tomer <[email protected]>
Co-authored-by: whiterabbit1983 <[email protected]>
…loads (#642)

- **feat(blob-store): Add blob store for storing large blobs for agent
workflows**
- **feat(blob-store): Add authentication**

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Introduces a new blob-store service using SeaweedFS for handling large
temporal payloads, with Docker and authentication setup.
> 
>   - **Blob Store Service**:
> - Introduces a new blob-store service using SeaweedFS in
`blob-store/Dockerfile`, `docker-compose.yml`, and
`docker-compose-ha.yml`.
> - Adds `entrypoint.sh` for environment variable checks and
configuration file generation.
>     - Includes `s3.json.template` for S3 configuration.
>   - **Environment Configuration**:
> - Updates `.env.example` with `S3_ENDPOINT`, `S3_ACCESS_KEY`, and
`S3_SECRET_KEY` for blob store configuration.
> - Adds `USE_BLOB_STORE_FOR_TEMPORAL` and `BLOB_STORE_CUTOFF_KB` for
temporal payload handling.
>   - **Authentication**:
> - Implements authentication in `s3.json.template` with access and
secret keys for the `julep` account.
>   - **Miscellaneous**:
> - Adds `.gitignore` entry for `/s3.json` in `blob-store/.gitignore`.
> - Updates main `docker-compose.yml` to include
`blob-store/docker-compose.yml`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 736b9df. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Signed-off-by: Diwank Singh Tomer <[email protected]>
Draft PR for #600

> Some known issues that are to be fixed yet (this is just a draft PR)

- The workflow takes too long for translations, approx. ~10 mins, may
batch translating content be helpful?
- Code blocks are exempted from translations due to unexpected
translations of syntax
- Hyperlinks for TOC currently aren't being translated

Currently the translator uses Google AJAX Api for translations so the
translations may not be "good". Best approach would perhaps be utilizing
machine translation instead.

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Automates translation of `README.md` into multiple languages using a
GitHub workflow and Python script, preserving code blocks and HTML tags.
> 
>   - **Workflow**:
> - Adds `.github/workflows/translate-readme.yml` to automate
translation of `README.md` on push.
> - Uses `deep-translator` and `parmapper` for translation and parallel
processing.
>     - Translates into Chinese, Japanese, and French.
>   - **Script**:
> - `scripts/readme_translator.py` translates `README.md`, preserving
code blocks and HTML tags.
> - Uses `GoogleTranslator` from `deep-translator` for language
translation.
> - Saves translated files as `README-CN.md`, `README-JA.md`,
`README-FR.md`.
>   - **Known Issues**:
>     - Translation process is slow (~10 mins), potential for batching.
>     - Code blocks and TOC links are not translated.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 020e102. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: itsamziii <[email protected]>
Co-authored-by: Diwank Singh Tomer <[email protected]>
Signed-off-by: Diwank Singh Tomer <[email protected]>
Copy link

gitguardian bot commented Oct 13, 2024

⚠️ GitGuardian has uncovered 2 secrets following the scan of your pull request.

Please consider investigating the findings and remediating the incidents. Failure to do so may lead to compromising the associated services or software components.

🔎 Detected hardcoded secrets in your pull request
GitGuardian id GitGuardian status Secret Commit Filename
14144714 Triggered Generic Password ca03414 deploy/simple-docker-compose.yaml View secret
14144715 Triggered Generic Password ca03414 deploy/simple-docker-compose.yaml View secret
🛠 Guidelines to remediate hardcoded secrets
  1. Understand the implications of revoking this secret by investigating where it is used in your code.
  2. Replace and store your secrets safely. Learn here the best practices.
  3. Revoke and rotate these secrets.
  4. If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.

To avoid such incidents in the future consider


🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.

creatorrr and others added 7 commits October 13, 2024 21:45
Signed-off-by: Diwank Singh Tomer <[email protected]>
Fix #620 
This is enhance the user experience to report issues. 
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Adds new issue templates for bug reports, documentation improvements,
and feature requests, enhancing user interaction and issue management.
> 
>   - **New Templates**:
> - Adds `bug_report.yml` for bug reporting with fields for description,
reproduction steps, expected and actual behavior, OS, browsers, and
more.
> - Adds `docs_improvement.yml` for documentation suggestions with
fields for current section, improvement suggestion, and additional
context.
> - Adds `feature_request.yml` for feature proposals with fields for
feature description, pitch, solution, and alternatives.
>   - **Configuration**:
> - Adds `config.yml` to disable blank issues and provide a Discord
contact link.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for bf0bb0c. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Signed-off-by: Diwank Singh Tomer <[email protected]>

<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Redefines `ChildStreamEndpoint`, updates dependencies, and removes
`YieldStep` from task definitions in typespec files.
> 
>   - **Behavior**:
> - Redefines `ChildStreamEndpoint` in `interfaces.tsp` to use
`SSEStream<StreamEvent<T>>`.
> - Removes `YieldStep` from task definitions in `endpoints.tsp` and
`openapi-0.4.0.yaml`.
>   - **Models**:
>     - Adds `StreamEvent<T>` union in `types.tsp`.
>   - **Dependencies**:
> - Updates `package.json` dependencies to `@typespec/[email protected]`,
`@typespec/[email protected]`, `@typespec/[email protected]`, and others.
>   - **Misc**:
>     - Adds `TasksGetRoute` interface in `endpoints.tsp`.
>     - Enables `omit-unreachable-types` in `tspconfig.yaml`.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 2f2eafe. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->

Signed-off-by: Diwank Singh Tomer <[email protected]>
…or README readers. (#636)

Added a Move to Top button to enhance the ease of navigation for README
readers. because of readme file length.

Hi 👋 @creatorrr, Please review my PR and accept my small contribution
and if need any changes please let me know. Thank you
<!-- ELLIPSIS_HIDDEN -->

----

> [!IMPORTANT]
> Add 'Move to Top' button to README.md for easier navigation.
> 
>   - **README.md**:
> - Adds a 'Move to Top' button at the end of the file for easier
navigation.
> 
> <sup>This description was created by </sup>[<img alt="Ellipsis"
src="https://img.shields.io/badge/Ellipsis-blue?color=175173">](https://www.ellipsis.dev?ref=julep-ai%2Fjulep&utm_source=github&utm_medium=referral)<sup>
for 809e5cf. It will automatically
update as commits are pushed.</sup>

<!-- ELLIPSIS_HIDDEN -->
@creatorrr creatorrr merged commit 0cab96d into main Oct 13, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.